AWS GuardDuty検証

こんにちは。GMO NIKKOのH.Tです。
普段はMARS DMPの保守や開発を担当しています。
今までアプリケーション開発の仕事が多く、インフラ周りの知識が乏しい事もあり
最近はセキュリティやネットワークに関しての色々調べています。
また、ネットワークを介する物も増えてきているので、
今後はセキュリティ・ネットワークの知見があるエンジニアが重宝されるのでは?
と個人的には期待しています。

そんな背景もあり、今回はAWSの緑系サービスで自動セキュリティ分析サービスである、
AWS Guard​Dutyの紹介と簡単な検証結果について紹介します。

本記事は、特定のサイトなどに対する攻撃を推奨したり事例を紹介するものではなく、攻撃の脅威や脆弱性診断の程度を確認するものです。実際に生じたサイトアタックなどと、本記事は無関係です。

AWS Guard​Dutyとは
AWS Guard​Duty インテリジェントな脅威検出と継続的なモニタリングで AWS アカウントとワークロードを保護する

AWS GuardDuty は、AWS アカウントとワークロードを保護するために悪意のある操作や不正な動作を継続的にモニタリングする脅威検出サービスです。アカウント侵害の可能性を示す異常な API コールや不正なデプロイなどのアクティビティをモニタリングします。インスタンスへの侵入の可能性や攻撃者による偵察も検出します。

簡単に説明すると、既知の脅威となるIPからの攻撃を検出してくれるサービスです。
既知のIP以外にもブラックリストからの検出も可能で、
AWS GuardDutyのコンソールから登録が可能です。
さらに流行りの機械学習も搭載されているので、
収集したログと様々なソース情報を利用して未知の脅威も検出してくれるみたいです。
データソースははVPCフローログ、AWS CloudTrailイベントログ、DNSログとなっています。
また今回は触れませんが、類似サービスにAWS Macie なるものがあり、
こちらはS3バケットに対しての攻撃を検出してくれます。

検証方法
VPC環境のEC2に建てたWordPressに疑似攻撃してみます。
今回は脅威IPをAWS GuardDutyに登録して様々な攻撃がどういったレポート結果を返すか検証します。
きちんとしたペネトレーションテストを実施する場合はAWSの承認を貰う必要があります。
侵入テスト

アーキテクチャ

VPC構築
VPC・サブネット・インターネットゲートウェイ・ルートテーブルをそれぞれ作成して関連付けます。

WordPress構築
先ほど作ったVPC上にEC2インスタンスを立てて、WordPressを導入します。

AWS GuardDutyを設定
AWSコンソールからGuardDutyを有効化するだけで利用できます。

有効後、早速怒られました。脆弱性がある場合でも結果に表示されるみたいです。

レポート結果の詳細はAmazon GuardDuty の結果タイプから確認できます。
sshポートに問題があると結果が出ているため、ポートを変えるかssh2へ変更して対応します。

検証開始
VirtualBoxに建てたKaliLinuxのツール群を使って色々な攻撃を仕掛けてみます。
脅威IPとして認識させるためVMのIPをブラックリストとして登録します。
ブラックリストはテキスト以外のフォーマットもサポートしています。

まずは有名どころのWPScanを使ってユーザー取得・ポートスキャン・プルートフォースアタックを試してみます。

ユーザー取得

ログインパスワードのブルートフォースアタックと取得

次にsqlmapでsqlインジェクションの脆弱性チェック

検証結果
具体的にどのような攻撃があったかはレポートとして出ませんでした。
API呼び出しの通知が届くのでどのような攻撃があったかは呼び出されたAPIから推測して対応が必要になるかと思います。
また、今回は登録した脅威IPからの呼び出しだったので、どのような行動が脅威IPと判断されるかは不明でした。

まとめ
もっと高度な攻撃したらどうなるか引き続き検証中。