Amazon GuardDuty ECS Runtime MonitoringでFargate環境で動作するマイニングソフトを検知してみた

はじめに

本記事はJapan AWS Ambassadors Advent Calendar 2023の11日目の記事になります。
re:Invent参加で溜めてしまった仕事が少しづつ片付きつつ、忘年会が本格的に始まる前に書く事をモチベーションに書いてます。

ECS/Fargateにて見逃せないUpdateがありましたので、下記記事の続きで実際に仮想通貨マイニングソフトが仕込まれたと仮定しGuardDutyでどのように検知されるかを試してみました。

Amazon GuardDuty にて ECS Fargate でセキュリティ上の脅威検出に対応 (Amazon GuardDuty ECS Runtime Monitoring)

目次

手順の概要

  1. GuardDuty ランタイムモニタリング機能の有効化
  2. ECRに新しいイメージをBuild&Push
  3. ECRScanの結果
  4. 新規ECSTaskの実行
  5. 検出結果
  6. GuardDuty検出結果の通知
  7. Bedrockにて通知サマライズ

想定環境

このような構成でマイニングソフトを仕込まれたイメージをECRにPushされてしまうシナリオ想定です。
他にも条件が揃えばアプリケーション脆弱性を突いて仕込む事も可能かもしれませんが、詳しくないため割愛します。

CodeDeploy による Blue/Green デプロイメントには未対応

実は当初、よくある構成でCI/CD Pipeline経由でマイニングソフトを仕込まれるシナリオを想定していたのですが
上記構成で、ECSタスクKill、パイプライン経由での新しいコンテナのデプロイ、ECSサービスの更新、タスク定義確認 何をやっても上手くいかず、AWSサポートに問い合わせた所
現時点では CodeDeploy による Blue/Green デプロイメントには対応していない、との事でした。 残念..ですがUpdateが心待ちな機能が増えました。

手順

1. GuardDuty ランタイムモニタリング機能の有効化

GuardDutyを有効化後、ランタイムモニタリングを有効化、AWS Fargateで自動エージェント設定を有効化するだけです。

2. ECRに新しいイメージをBuild&Push

既に何らかのアプリケーションが動作している環境に cnrig がインストールされ動作した場合に検知出来るかをテストしてみました。
詳細は割愛しますが、Dockerfileは下記のような形です。

3. ECRScanの結果

ECRScanはソフトウェア(ライブラリ)の脆弱性スキャナのため、こちらには引っかかりません。

4. 新規ECSTaskの実行

タスク定義・コンテナ設定では何もしていませんが、勝手にサイドカーコンテナが立ち上がりました!
(aws-guardduty-agent-xxxx)

5. 検出結果

どのクラスタ、タスクId (どのバージョンのタスク定義で動いているか) 、コンテナのイメージ元等の情報が詳細に分かります。

また、プロセス名・ID、どちらのドメインと通信しようとしているか(名前引きされた)等も出てきます。

参考までに、コンテナ起動からGuardDuty画面に検出結果が出てくるまでに5分ほどでした。

6. GuardDuty検出結果の通知

EventBridgeにて設定

せっかくなので、検出されたらSNS Topic経由のEメールにて通知を設定してみます。

取り急ぎ、高(7.0~8.9)の通知を受け取る設定をEventBridgeにて設定してみました。

Amazon GuardDuty の検出結果について
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_findings.html

通知されたメール

無事通知されました!が、折角なのでBedrockでサマライズ&翻訳するとどのようになるのか見てみます。
ちなみに、Amazon Q にJSONを渡して聞いてみようとした所、1,000文字縛りと利用できるキャラクタ制限が厳しく、期待した応答では無かったので断念しました。

7. Bedrockにて通知サマライズ

良い感じにサマライズ&翻訳してくれていますね、Bedrockに突っ込むTopicを用意してあげて、翻訳後のテキスト+元の内容を送信用のTopicに送ってあげると皆幸せになれそうです。

まとめ

これまでは、EKSのみ、EC2ホストの場合のみと色々な制約があったモニタリングツールがECS(Fargate環境)でも利用できるようになりました!
コンテナ導入がどんどん増える中、DockerHub上でそこそこ利用されているImageであっても安心出来ない物も中にはあるので、様々な観点から防御・検知が行える事は非常に重要です。

他にも検知されるパターン、eBPF型Agentのため高速という事でサイドカー有無にてベンチマーク取得等も実施してみたかったのですが、またの機会に。

投稿者プロフィール

takashi
Japan AWS Ambassadors 2023-
開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て
2010年よりスカイアーチネットワークスに在籍しております

機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。

ABOUTこの記事をかいた人

Japan AWS Ambassadors 2023- 開発会社での ASP型WEBサービス企画 / 開発 / サーバ運用 を経て 2010年よりスカイアーチネットワークスに在籍しております 機械化/効率化/システム構築を軸に人に喜んで頂ける物作りが大好きです。