【GuardDuty運用】Discovery:IAMUser/AnomalousBehavior の抑制を検討・適用するモデルケース

2023.08.03

GuardDuty 抑制ルールは「条件に一致した新規 検出結果」を自動アーカイブする機能です。 GuardDutyの運用、特に過検知の抑制で役立ちます。

今回は抑制ルールの策定のモデルケースを1つ紹介します。

例として、私が「よく過検知としてあがってくるな」と感じている Discovery:IAMUser/AnomalousBehavior 検知を抑制していきます。

抑制に向けてのプロセスを記載します。

プロセス全体像

以下のようなプロセスを実施します。

  1. 抑制したい背景
  2. 抑制する検出結果タイプの把握
  3. リスクの把握
  4. 見逃しを減らす対策
  5. 抑制対応

1. 抑制したい背景

GuardDuty で Discovery:IAMUser/AnomalousBehavior (重要度: 低) が よく検知、通知されている状況です。

(私の関わっている環境の話ですが) 本検知は過検知が多くなりがちです。 主に 「出張先など、いつもと違う場所(IP)からのAWSアクセス」 を理由に検知されています。

GuardDutyインシデント対応の日々の運用において、 ノイズになっているため抑制を検討したいです。

2. 抑制する検出結果タイプの把握

対象の検出結果タイプは、以下 公式ドキュメントに記載があります。

Discovery:IAMUser/AnomalousBehavior 検知は 簡単にいうと 「 攻撃者が情報収集している可能性があります 」という メッセージになります。 リクエストされたAPIや、リクエストを行ったユーザー・場所 などから、 GuardDutyの機械学習モデルが異常と判断したものが対象です。

3. リスクの把握

この検知が 過検知でない 場合は、 攻撃者は 「侵害できるEC2インスタンスが無いか」や 「IAM権限昇格できないか」などを調査していると予測できます。

そもそも、そのような調査ができている、ということで 既に認証情報が侵害されている 可能性もあるため、 早急に対応が必要です。

もし、この検出結果タイプを抑制した場合は、 上記に示したようなリスクを見逃す可能性が伴います。

4. 見逃しを減らす対策

攻撃者の動きを見逃すことは、なるべく減らしたいです。 考えられる対策を以下に記載します。

対策1: 他の AnomalousBehavior 検知でカバーできないか

他にも様々な AnomalousBehavior 検知が GuardDutyで対応しています。 簡単に表にまとめました。

検知タイプ 重要度 観測する動き APIの例
CredentialAccess:IAMUser/AnomalousBehavior 認証情報(パスワードやアクセスキー)収集する動き GetPasswordData、GetSecretValue、GenerateDbAuthToken
DefenseEvasion:IAMUser/AnomalousBehavior 痕跡(ログ)を隠す動き DeleteFlowLogs、DisableAlarmActions、StopLogging
Exfiltration:IAMUser/AnomalousBehavior データ漏えいに関連する動き PutBucketReplication、CreateSnapshot、 RestoreDBInstanceFromDBSnapshot
Impact:IAMUser/AnomalousBehavior 運用を妨害するような動き DeleteSecurityGroup、UpdateUser、PutBucketPolicy
InitialAccess:IAMUser/AnomalousBehavior 環境へのアクセスを確立しようとする動き GetFederationToken、StartSession、GetAuthorizationToken
Persistence:IAMUser/AnomalousBehavior 環境へのアクセスを維持しようとする動き CreateAccessKey、ImportKeyPair、ModifyInstanceAttribute
PrivilegeEscalation:IAMUser/AnomalousBehavior 権限昇格に関連する動き AssociateIamInstanceProfile、AddUserToGroup、PutUserPolicy

「攻撃されていること、攻撃しようと準備していること」の検知は、 Discovery 以外にも多く存在します。

今回は「それらで大体はカバーできるだろう」と判断して、 Discovery:IAMUser/AnomalousBehavior を抑制していきます。

対策2: なるべく過検知のみに絞れないか

GuardDutyの抑制ルールは フィルターを多く組み合わせて、極力 過検知のみに絞ること意識して作りましょう

以下フィルター作成の例です。

  • 検出結果タイプ(type): Discovery:IAMUser/AnomalousBehavior
  • 重要度(severity): Low
  • API発信国(API caller country): Japan

img

環境次第では送信元IPアドレス(API caller IPv4 address) あたりも使えるでしょう。

[余談] 本当はユーザー名(Username)を IAM Identity Center のユーザー AWSReservedSSO_... に絞りたかったです。 しかしワイルドカードはフィルタには使えないことが分かったので断念しました。

  • Filters do not accept wild cards.

– 引用: Filtering findings - Amazon GuardDuty

5. 抑制対応

1〜4 のステップをもって、 抑制の可否を判断します。

抑制すると決まれば、早速適用しましょう。

GuardDutyコンソールの検出結果一覧ページから [検出結果の抑制] を選択します。

img

名前と説明を入力して [保存] を選択します。

img

以上で設定は完了です。 今後はフィルターにマッチする Discovery:IAMUser/AnomalousBehavior は検知・通知されないようになりました。

おわりに

以上、 GuardDuty抑制対応の 1モデルケースでした。 オオカミ少年になっているような検知があれば、 ぜひ抑制ルールを活用していきましょう。

また、クラスメソッドではGuardDuty運用に役立つサービスを クラスメソッドメンバーズ向けに展開しています。 ぜひ、以下ページから参照ください。

参考