Slide 1

Slide 1 text

Amazon GuardDuty Malware Protection for Amazon S3 Let’s Try S3のMalwareスキャンしてみた 2024/07/12 株式会社ゆめみ 白"雪姫"

Slide 2

Slide 2 text

自己紹介 ● Name ○ 白”雪姫”(しらゆき) ● Profile ○ 2023年8月ゆめみ入社、ネットワークとセキュリティをメイン担当 しつつインフラとSREをやっている ○ 苗字で呼ばれるのが嫌いで名前orしらゆきで呼んでもらっている ● JAWS(登壇) ○ Storage JAWS/Security JAWS/JAWS-UG クラウド女子会 ● MyFavorite Services ○ Amazon Inspector ● X Account ○ @yuri_snowwhite

Slide 3

Slide 3 text

皆さんは、re:Inforceで気になる 新発表はありましたか?

Slide 4

Slide 4 text

Amazon GuardDuty Malware Protection for Amazon S3ってなんぞ? 要約すると・・・・ Amazon S3に保存されたオブジェクトにマルウェアが潜んでいないか確認してく れるGuardDutyの機能 スキャン結果マルウェア検知、メトリクスとして件数を表示してくれる また、その際にタグも付けてくれる(この際タグは別途料金加算)

Slide 5

Slide 5 text

実際にやってみました!

Slide 6

Slide 6 text

まずはGuardDutyへ

Slide 7

Slide 7 text

左側にいるS3のMalware Protectionを選びます

Slide 8

Slide 8 text

有効にするをクリックして細かい設定します

Slide 9

Slide 9 text

設定するのは すぐにできそう と思ったのは・・・ 私が浅はかでした

Slide 10

Slide 10 text

実際に設定しないと行けないこと ● S3バケットの指定 ○ この時バケット内全てか特定のオブジェク トだけかを選べる ● スキャン後にオブジェクトタグを付ける かどうか ○ スキャンが終わるまで該当バケットの変更 ができないというデメリットがある ● IAMロールへのアクセス許可 ○ 現時点では空にしても新規のIAMロールを 自動では作られません ■ 既存のGuardDutyの設定とは別で 設定が必要です ○ インラインポリシーで権限を与えます

Slide 11

Slide 11 text

問題となったのはIAMロールの許可設定

Slide 12

Slide 12 text

IAMロールの許可設定 ロールに設定する情報は、「アクセス許可を表示」とやると、ポリ シーと信頼関係が出てきます。 それをコピーして、新規にロール作成もしくは、既存ロールに追加し ます。

Slide 13

Slide 13 text

入力した信頼関係(一時的な認証情報の付与)

Slide 14

Slide 14 text

入力した許可ポリシー 許可ポリシーに関しては、長すぎるため、一部を抜粋します。 全部で100行を超える許可設定なので、一度確認をしながら設定をすることをオススメします。 (そのままだと全てのバケット・オブジェクトへのアクセスが許可されています) 今回は、私の個人的都合もあり、出てきた許可をそのまま貼り付けています。

Slide 15

Slide 15 text

無事に有効にできました 有効化に成功すると下記の様な画面になります。 これで暫くするとメトリクスに表示などがされるわけです。(画像は直後のもの)

Slide 16

Slide 16 text

仕込んでいたデータがSpyWareとして検知されました これ

Slide 17

Slide 17 text

検知した詳細 何が検知したか見てみましょう

Slide 18

Slide 18 text

検出内容は下記の様になりました 検知の重要度 検出内容 検出したオブ ジェクト名 ※チェックボックスに チェックを入れたら詳 細が見れました!

Slide 19

Slide 19 text

詳細内容 細かく詳細が 見れるので、 誤検知か どうかも確認が 比較的しやすい。

Slide 20

Slide 20 text

メリットとデメリット <メリット> ● 1度に検査している量が少ないけど確実に 検知できる ● 検知したときに取得してくる情報が細か い ● 今の所コストはかかって無さそう ○ かかった料金は本資料作成時点で不明で す。 ○ オブジェクトに1000個対して0.282USD ○ 1GBあたり0.79USD ● GuardDutyそのものが有効で無くても使 える <デメリット> ● 既存バケットでオブジェクトの数や容量 が多いともの凄く時間がかかる ● IAMロールが既存のGuardDuty用のIAM ロールでは使えない

Slide 21

Slide 21 text

今更ですが・・料金表について・・・(笑) GurdDutyの料金ページの下の方に増えていましたが・・・。

Slide 22

Slide 22 text

・・・よくわかりませんでした。

Slide 23

Slide 23 text

よくわからなかった理由・・・ 資料作成のために本機能を仕込んだのですが、実験に使った既存バケットのオブ ジェクト数と容量がとても多く、スキャンが終わりませんでした!(画像参照) Xの方で結果はお伝えしようと思います!

Slide 24

Slide 24 text

応用すればこんな使い方できるのでは? EventBridgeまでは通知を生成しているはずので、 ● 検知に応じて、Lambdaに連携をして、隔離バケットを用意して、 該当したオブジェクトを隔離する(未検証) ○ 他のオブジェクトに影響を与えないようにできて、該当オブ ジェクトの確認もしやすくなる ○ 同様に削除処理もできるのではないか。(未検証) ● メトリクスで検知を行ってアラートを通知(Slackbot経由でSlack だったり、SNSに通知) ○ Lambda等を組み込んで検知内容の詳細を通知も可能(未検証) などなど・・・

Slide 25

Slide 25 text

Fin. ご静聴ありがとうございました