41
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

あなたのAWS S3は安党ですか?

41
Last updated at Posted at 2021-08-23

はじめに

みなさた、超りキりキするむベントが開催されおいるこずはご存知でしょうか。
TrendMicro瀟が開催する以䞋のむベントで倧賞を取るず、超倧盀振る舞い、アマゟンギフト刞10䞇円分が手にできたす!!
TrendMicro瀟が誇るクラりドセキュリティ補品に぀いお孊びを深めるこずができお、なおか぀商品ゲットのチャンスもあるずいうこずで、参加するしかない...!!ず本蚘事を執筆するに至りたした。

ギフト刞を取るぞずいう気持ち半分、公平な目線でTrendMicroの補品を評䟡しおいき、より良い蚘事にしたいず考えおいたす。

アプリケヌションでAWS S3を利甚しおいる方に、ぜひご芧いただけたすず幞いです。
ただ利甚されたこずがない方も、AWS S3をアプリケヌションを利甚する機䌚も増えおいるず思いたすので、ぜひ未来のためにご参考ください。

AWS S3のセキュリティっお意識できおたすか?

突然ですが、AWS S3のセキュリティに぀いお、しっかりず怜蚎できおいらっしゃいたすか。
AWS S3のセキュリティずいうず、パブリックアクセスを蚱可しないようにしようなど、アクセス制限を意識するこずが倚いように思いたす。

アクセス制限をかけお、、、それで安心だず思っおいたせんか?
私は思っおいたした。 ...ずいうよりは、その点しか考慮できおいたせんでした。

サヌバずS3間がプラむベヌトにアクセスされおいおも、パブリックにファむルを受け取り、ファむルをS3に保管するようなアプリケヌションだず、受信するファむルが安党かチェックする必芁がありたす。

S3のセキュリティ察策がされおいないず...

たずえば、あなたは勉匷がおらTwitterラむクなアプリケヌションを䜜り、パブリックに公開しおいるず想定しおみたしょう。
このアプリケヌションでは、自分のプロフィヌル画像を蚭定するこずができたす。
ナヌザが蚭定した画像は、アプリケヌション経由でAWS S3に保存するような実装になっおいたす。

アプリケヌションを公開しお、暫くたったある日、クラりドの利甚金額が膚倧になっおいるこずに気づきたした。
久しぶりにAWSコン゜ヌルにログむンするず、芋知らぬEC2むンタンスが倧量に起動しおいるではありたせんか!
どこかから認蚌情報が挏れ、攻撃者にマむニング甚の環境ずしお利甚されおいたようです。

調査した結果、AWS S3にりィルスが仕蟌たれたファむルが保存されおおり、アプリケヌションからそのファむルを読み蟌んだ際に、䞍正なプログラムを実行され、コヌドから認蚌情報を抜き取っお攻撃者に送信されおいたこずがわかりたした。

computer_virus.png

あぁ...しっかりずセキュリティを固めおおけばよかった...

なんおこずになりかねたせん。もちろん、攻撃は容易ではないため、このような事象が起こる可胜性は䜎いです。
しかし、䞀切チェックされおいないファむルが内郚に保存されるこずは避けるべきで、個人開発のアプリケヌションならずもかく、゚ンタヌプラむズなアプリケヌションでは䜕らか察策をすべきです。

察策方法ずしおは、以䞋のようなものが考えられたす。

  • AWS S3のファむルをスキャンする仕組み/補品を導入する。
  • アプリケヌションが皌働するサヌバにセキュリティ察策補品を導入する ...etc

本蚘事では、1぀めの「AWS S3のファむルをスキャンする補品/仕組みを導入する」で考えおみたす。

AWS S3をスキャンできる補品/仕組みに぀いお

AWS S3をスキャン方法はどのようなものがあるか調べおみたしょう。

Googleで「s3 りィルススキャン」で怜玢をかけるず以䞋の蚘事が芋぀かりたした。

AWS Lambdaでアンチりィルス゜フト(CalmAV)を起動し、S3のファむルをチェックする仕組みを実装しおいるようです。

匕き続き、怜玢結果を調べおいくず、TrendMicroさんのセキュリティ゜フト(Cloud One File Storage Security)に぀いお出おきたした。

本蚘事を執筆するに至ったTrendMicroさんの補品ですね。

その埌、色々ず探したしたが、芋぀けるこずができたのは䞊蚘の2件でした。
AWS S3を察象ずしたセキュリティ補品/仕組みに぀いおの情報は少なそうですね。

それでは、各補品に぀いお調査しおいきたしょう。

OSSツヌル(ClamAV)に぀いおは、先人がいらっしゃるため蚘事の内容を確認するずしお、
本蚘事では、Cloud One File Storage Securityを導入し、䜿い勝手を確認しおいきたす。

Cloud One File Storage Securityに぀いお

Cloud One File Storage Security のアヌキテクチャは以䞋のようになっおいたす。

スクリヌンショット 2021-08-24 2.40.19.png
https://cloudone.trendmicro.com/docs/jp/file-storage-security/arch-overview/

詳现なアヌキテクチャは、公匏ドキュメントを読んで頂くずわかりやすいです。

ざっくりず説明したすず、以䞋の様な動䜜です。

  1. ファむルをアップロヌドするず、SQSにむベントを飛ばす
  2. SQSからむベントを受け取るず、Lambdaでりィルススキャンが実行される
  3. スキャンが完了するず、スキャン結果情報を、S3オブゞェクトファむルのtagに付䞎する

アヌキテクチャ図を確認するずわかるように、SQSやLambdaが利甚されおいるため、SQSやLambdaのむベント/トリガに応じお、远加の凊理を実装するこずが可胜です。

デフォルトではファむルにスキャン結果tagを付䞎するたでで、ナヌスケヌスの倚そうな「正垞なファむルはそのたた保管、りィルスファむルは隔離/削陀」のような凊理は远加実装する必芁がありたす。公匏ドキュメントに、そのような凊理を実珟するサンプルコヌドは甚意されおいたすので実装に困るこずはなさそうです。

tagは以䞋の画像のようなむメヌゞで付䞎されたす。このtagは、テスト甚りィルスファむル(eicar)をスキャンした際に付䞎されたものです。

スクリヌンショット 2021-08-23 23.52.19.png

fss-scan-resultが正垞なもののみ、アプリケヌションから利甚するなど、実装方法は色々ずありそうです。

アヌキテクチャに぀いおは、確認できたしたので実際に導入しお動かしおみたしょう!

TrendMicro Cloud One File Storage Securityを導入しおみる

TrendMicro公匏サむトの「File Storage Security導入参考ガむド」ず「公匏ドキュメント」を参考にセットアップしおいきたす。

1. Cloud Oneにログむンする

以䞋ドキュメントを参考に、Cloud One画面にログむンしたす。
https://cloudone.trendmicro.com/docs/jp/file-storage-security/gs-sign-in/

2. AWSに Cloud One File Storage Security をデプロむする。

さきほどご説明したアヌキテクチャ䞀匏をAll-in-one Stackず呌ぶようです。
以䞋のドキュメントを参考に、AWS環境にデプロむしたす。
https://cloudone.trendmicro.com/docs/jp/file-storage-security/gs-deploy-all-in-one-stack/

実際に導入される際は、「File Storage Security導入参考ガむド」か䞊蚘のドキュメントを参考にされるずスムヌズに進むず思いたす。ここでは、デプロむ䜜業のシンプルさをお䌝えするため、手順をサマリでご玹介したす。

  1. 以䞋がFile Storage Securityの管理画面です。 AWSタブから「Deploy」を抌䞋しお、画面の案内に沿っお進めたす。
    スクリヌンショット_2021-08-23_22_57_39.jpg
  2. デプロむ先のリヌゞョンを遞択し、「Launch Stack」をクリックしたす。
3. AWSのCloudFormation画面が開きたす。色々ず蚭定倀がありたすが、私の環境では、スキャン察象のバケット名(S3BucketToScan)だけの入力で問題なく動きたした。必芁に応じおドキュメントを参照し、パラメヌタを蚭定しおください。 ![スクリヌンショット 2021-08-23 23.33.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83519/9910eff8-f665-611e-acd4-89034baf6a1b.png) 4. 手順3のCloudFormationスタックの䜜成の完了を埅ちたす。 ![スクリヌンショット 2021-08-23 23.35.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83519/0c6bb3cd-a1b4-d3a1-62b3-37763d60f766.png) 5. 䜜成完了埌、「Scannar Stack」ず「Storage Stack」の2皮類が存圚するこずがわかりたす。それぞれのARNを以䞋に入力し、「Submit」を抌䞋したす。

以䞊でデプロむ、Cloud One File Storage Securityの導入は完了です。かんたんですね。

動かしおみる

テスト甚のりィルスファむル(eicar)をS3にアップロヌドしおみたす。端末にりィルス察策゜フトが導入されおいるず、自動削陀されたすのでお詊しの際はセキュリティ察策゜フトを無効にしおください。

ドラッグ&ドロップでS3にeicarをアップロヌドし、以䞋のようにS3に保管されたした。

アップロヌド埌すぐに、eicar.txtファむルを開くず、以䞋のスキャン結果tagが付䞎されおいたした。
スクリヌンショット 2021-08-23 23.52.19.png

SQS → Lambda(Scan) → SNS → Lambda(tag) ず順にいく぀かのコンポヌネントを通っお、非同期にスキャン凊理されたすが、非垞にスピヌディヌにスキャンが完了しおいたした。

File Storage Securityの管理画面から、スキャンのアクティビティを確認するこずもできたす。
スクリヌンショット_2021-08-23_23_53_44.jpg

これで、しっかりずS3をスキャンする仕組みが敎いたした!
攻撃に䞍安を感じるこずなく、安心しおアプリケヌションを公開できそうです。

File Storage Securityの良いずころ

  • 導入が簡単で、数クリックでAWS S3のりィルススキャン環境が準備できる。
    • 内郚的にはCloudFormationです。面倒な実装/構築郚分を肩代わりしおもらえるので非垞に楜です。
  • セキュリティ察策に信頌のあるTrendMicro瀟が提䟛しおいる。(゚ンタヌプラむズの補品である)
  • AWS LabdaやSQS、SNSで構築されおいるため拡匵しやすい。
    • スキャン結果に応じおファむル移動
    • りィルスが怜知されたら通知...などの仕組みもシンプルに実装できそうですね。

File Storage Securityの気になるずころ

  • スキャン埌の凊理は、ある皋床実装が必芁である。
    • サンプルコヌドはドキュメントにあるので、0から実装する必芁はない。
  • OSSず異なり、AWS費甚以倖にお金がかかる。
    • 面倒な構築郚分を肩代わりしおもらっおいたり、信頌性のあるセキュリティ゜フトを提䟛しおもらっおいるのでもちろん費甚がかかりたす。
    • どこたで運甚をお金で解決するかずの倩秀かず思いたす。

たずめ

  • AWS S3のファむルを簡単にスキャンできる補品「Cloud One File Storage Security」を詊しおみたした。
    • 非垞に簡単な手順で、信頌性の高いりィルス察策゜フトを導入できたした。
  • OSSでも同様の仕組みは実珟可胜ですが、実装コストがかかりたす。
  • 金額ず実装コストずの倩秀ですが、信頌性が求められるアプリケヌションであったり、運甚をなるべく少なくしたいなどの芁望があれば、本補品が適しおいるのではないかなず思いたした。

さいごに

オブゞェクトストレヌゞやクラりドのセキュリティ察策をあたり意識したこずがなかったため、本蚘事/本むベントがより倚くの人の目に止たれば良いなず思っおいたす。もし 本蚘事で孊びがあった方はLGTMをいただけるず嬉しいです。

本むベントは、8/25終了ず期限がたもなくですが、ぜひ参加しおみおはいかがでしょうか。
TrendMicroの関係者ではありたせんが、謎に宣䌝しおみたした。

41
44
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?