GuardDutyで新たにCloudTrail無効化通知をバイパスする攻撃を検知できるようになったので試してみた

攻撃者がCloudTrailを単純無効化せずに記録するリソースをなくすことによってGuardDutyの検知をバイパスするような巧妙な攻撃を、GuardDutyが検知できるようになったので検証してみました!
2020.05.28

こんにちは、臼田です。

みなさん、GuardDutyで脅威検知していますか?(挨拶

今回はGuardDutyの新しいFindings Updateについて検証してみます。

Stealth:IAMUser/CloudTrailLoggingDisabledのアップデート

GuardDutyのFindingsの1つにStealth:IAMUser/CloudTrailLoggingDisabledがあります。これはCloudTrailのロギングが無効化された際に検知されるFindingsです。

一般的にAWS環境をターゲットにした攻撃が行われる際、証跡をなるべく残さないようにするためCloudTrailが無効化されるケースがあります。

このFindingsではそのような攻撃の一端を検知するためのものです。

今回、単純なCloudTrailの無効化だけではなく、CloudTrail自体は有効にしたまま実質的にロギングされるリソースの種類がなくなるような設定に変更された際にもGuardDutyが検知するようになりました。

具体的には、CloudTrailにはPutEventSelectorsというAPIがあり、これを利用することにより全体の設定は有効にしたまま、記録する対象のイベントを選択することが可能です。これを利用してほぼすべてのイベントを記録しないように変更できますが、攻撃者はこれを悪用してGuardDutyの検知をバイパスする可能性があります。この動きも検知できるようになりました。

やってみた

具体的な設定内容は避けますが下記のように設定変更を実施します。

$ aws cloudtrail put-event-selectors --trail-name Name --event-selectors file://es.json

しばらくするとGuardDutyの通知が飛んできます。30分程で検知しました。

ちなみに上記はChatbot経由のSlackへの通知です。大変見やすいので重宝しています。詳細はこちらで紹介しています。

ついでに調査もしてみましょう。

リンクを押してGuardDutyの画面を確認します。一般的には右枠の詳細にあるLearn MoreからFindingsの詳細や対応方法を確認したりします。更に調査をする場合にはDetectiveの画面に移動するため、Findingsにチェックを入れて「アクション -> 調査」でDetectiveの画面に移動します。

Detectiveの画面では検知したIAMがどこからどのように使われているか確認できます。マップで大まかな位置を見たり…

IPアドレス / IAM別で他にどのようなAPIを呼び出しているか(どのような攻撃をしているか)など関連する様々な情報を一元的に確認できて調査が捗ります。

Detectiveの詳しい活用方法については下記もご参照ください。

まとめ

GuardDutyのStealth:IAMUser/CloudTrailLoggingDisabledが更新された内容を確認しました。

単純なCloudTrailの無効化だけではなく、このような手段でGuardDutyをバイパスするような攻撃が行われるほど、AWS環境に対する攻撃も巧妙化しているのだと感じました。

そのような状況に自動的に検知ルールを更新して対応してくれるGuardDutyは非常に頼もしいですね。今後もアップデートを追随していきます!