概要
AWS 環境に対する不正アクセスやマルウェア感染などの脅威は、早期に検知しなければ被害が拡大します。しかし、膨大なログを手動で分析して脅威を見つけ出すのは現実的ではありません。
Amazon GuardDuty は、AWS 環境内の脅威を継続的に監視・検出するマネージドサービスです。AWS CloudTrail のイベントログ、VPC フローログ、DNS クエリログなどの複数のデータソースを機械学習と脅威インテリジェンスで分析し、不審なアクティビティを自動的に検出します。エージェントのインストールやログの手動設定は不要で、有効化するだけで脅威検出を開始できます。
本記事では、GuardDuty の基本概念を理解し、有効化から検出結果(Finding)の確認までを体験します。

クラウドおさるGuardDuty は、AWS アカウントの見張り番でござる。この記事では有効化して、サンプルの検出結果を読むところまで一緒に確かめるでござるよ。
この記事のメリット
- GuardDuty を有効化し、脅威検出を開始する手順を習得できる
- 検出結果(Finding)の重要度と種類を理解し、適切に対応する判断基準を把握できる
- サンプル検出結果を生成して、検出結果の内容と対処方法を事前に確認できる
- GuardDuty が分析するデータソースの種類と検出できる脅威の範囲を理解できる
執筆者とキャラクター紹介
執筆者:土肥(とひ)
株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。


クラウドおさる



はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。



基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。



猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。
技術解説



とひさん、Amazon GuardDuty とはどんなサービスでござるか?
GuardDuty は、AWS アカウント内のセキュリティ脅威を継続的に監視する脅威検出サービスだよ。機械学習、異常検出、統合された脅威インテリジェンスを使って、悪意のあるアクティビティや不正な動作を自動的に見つけてくれるんだ。



具体的には、どんな脅威を見つけてくれるのでござる?
主なユースケースとしては、こんなものがあるよ。
- AWS アカウントの不正利用の検出(漏洩した認証情報の使用など)
- EC2 インスタンスの侵害検出(マルウェア通信、暗号通貨マイニングなど)
- S3 バケットへの不審なアクセスの検出
- 悪意のある IP アドレスや既知の脅威との通信の検出
- IAM ユーザーの異常な API 操作パターンの検出



思った以上に幅広いでござるな!猿山の監視当番も、倉庫の鍵の使われ方、見慣れぬ猿の出入り、夜中の妙な物音と、見る場所がいくつもあるでござる。これだけ見張るには、いろいろなログを読まねばならぬのでは?
そうだね。GuardDuty は以下のデータソースを自動的に分析してくれるんだ。自分でログの設定や転送を行う必要がないのがポイントだよ。
| データソース | 分析対象 | 検出できる脅威の例 |
|---|---|---|
| AWS CloudTrail 管理イベント | API コールの記録 | 異常なリージョンからの API コール、不審な IAM 操作 |
| AWS CloudTrail S3 データイベント(S3 Protection を有効にした場合) | S3 オブジェクトレベルの操作 | S3 バケットへの不審なアクセスパターン |
| VPC フローログ | ネットワークトラフィックの記録 | 既知の悪意ある IP との通信、ポートスキャン |
| DNS クエリログ | DNS リクエストの記録 | マルウェアの C&C サーバーとの通信 |





ログの設定が要らぬとは助かるでござる。では脅威が見つかったら、どうなるのでござるか?
GuardDuty が脅威を検出すると、検出結果(Finding)が生成されるよ。各検出結果には以下の情報が含まれているんだ。
| 要素 | 説明 |
|---|---|
| 重要度 | Critical(重大)、High(高)、Medium(中)、Low(低)の 4 段階 |
| 検出結果タイプ | 脅威の種類を示す識別子(例: UnauthorizedAccess:EC2/MaliciousIPCaller.Custom) |
| 影響を受けるリソース | 脅威に関連する AWS リソース |
| アクション | 検出のトリガーとなったアクションの詳細 |
| アクター | 脅威の発生元(IP アドレス、ユーザーなど) |



検出結果タイプの名前、長くて呪文のようでござる…。何か決まりがあるのでござるか?
いい質問だね。検出結果タイプは 脅威目的:リソースタイプ/脅威名 という形式で命名されているんだ。
| 要素 | 例 |
|---|---|
| 脅威目的 | UnauthorizedAccess、Recon、Trojan、CryptoCurrency |
| リソースタイプ | EC2、S3、IAMUser |
| 脅威名 | MaliciousIPCaller、PortProbeUnprotectedPort |
例えば CryptoCurrency:EC2/BitcoinTool.B なら、EC2 インスタンスが暗号通貨マイニングに関連する通信を行っていることを示しているんだよ。



なるほど、コロンとスラッシュで区切って読めばよいのでござるな!では重要度の 4 段階は、どう使い分けるのでござる?
それぞれの重要度レベルと対応の目安はこんな感じだよ。
| 重要度 | 数値範囲 | 対応の目安 |
|---|---|---|
| Critical(重大) | 9.0 〜 10.0 | 最優先で対応が必要。攻撃シーケンスが進行中か、最近発生した可能性がある |
| High(高) | 7.0 〜 8.9 | 即座に対応が必要。リソースが侵害されている可能性が高い |
| Medium(中) | 4.0 〜 6.9 | 調査が必要。予期しないアクティビティが発生している |
| Low(低) | 1.0 〜 3.9 | 確認推奨。不審だが直接的な被害は低い |



High が出たら、すぐに動かねばならぬのでござるな…。ちなみに、GuardDuty の基本機能のほかにも何かあるのでござるか?
GuardDuty には基本機能に加えて、追加の保護プランが用意されているよ。
| 保護プラン | 対象 |
|---|---|
| S3 Protection | S3 のデータイベントを監視し、不審なアクセスを検出 |
| EKS Protection | EKS クラスターの監査ログを分析し、不審なアクティビティを検出 |
| Malware Protection | EC2 インスタンスや ECS コンテナにマルウェアがないかスキャン |
| RDS Protection | RDS のログインアクティビティを監視し、不審なアクセスを検出 |
| Lambda Protection | Lambda 関数のネットワークアクティビティを監視 |
| Runtime Monitoring | EC2、ECS、EKS のランタイムアクティビティを監視 |



必要に応じて、見張る範囲を広げられるのでござるな。では実際に、GuardDuty を有効化してみるでござる!
実践
前提条件
- リージョン:
ap-northeast-1(東京) - IAM ユーザーまたはロールに GuardDuty の操作権限があること
作成するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| GuardDuty ディテクター | (自動生成) | 脅威検出の有効化 |
ステップ1: GuardDuty の有効化
AWS マネジメントコンソールにログインし、リージョンが ap-northeast-1(東京)であることを確認します。
上部の検索バーに GuardDuty と入力し、表示された「GuardDuty」を選択します。
GuardDuty の開始画面が表示されます。右上の「今すぐ始める」をクリックします。


「GuardDuty にようこそ」画面に切り替わり、GuardDuty が使うサービスのアクセス許可と、有効になる保護プランの説明が表示されます。内容を確認し、「GuardDuty を有効にする」をクリックします。
有効化が完了すると「要約」画面に切り替わり、GuardDuty が有効になったことを示すメッセージが表示されます。この時点では、まだ検出結果はありません。


ステップ2: 有効化されたことを確認する
左側ナビゲーションの「保護プラン」を選択します。
一覧の先頭にある「Foundational GuardDuty」が「有効」になっていることを確認します。CloudTrail 管理イベント、VPC フローログ、DNS クエリログの分析はこの基本の検出に含まれており、ログの出力先や転送を自分で設定する必要はありません。





ログの転送設定を何もしていないのに、もう基本の検出が動いているでござるな。技術解説で見た「有効化するだけ」が、ここで確かめられたでござる。
ステップ3: 保護プランの確認
同じ「保護プラン」画面を下にスクロールし、各保護プランの状態を確認します。
初めて有効化した直後は、S3 Protection、EKS 監査ログ、RDS ログインアクティビティ、Lambda ネットワークアクティビティなどが「有効」になっており、Runtime Monitoring などは「無効」のままです。多くの保護プランには 30 日間の無料トライアルの表示が付いています。
保護プランの有効・無効は、画面右上の「Configure all enablements」から切り替えられます。今回はデフォルトのままにします。


ステップ4: サンプル検出結果の生成
GuardDuty は実際の脅威がなければ検出結果を生成しません。動作確認のために、サンプル検出結果を生成します。
左側ナビゲーションの「設定」を選択します。
画面の中ほどにある「検出結果のサンプル」セクションで、「検出結果サンプルの生成」をクリックします。


確認ダイアログが表示されるので、「Generate sample findings」をクリックします。検出結果タイプごとにサンプルが 1 件以上作られます。今回は 20 秒ほどで生成されました。
ステップ5: 検出結果の確認
左側ナビゲーションの「検出結果」を選択します。
サンプル検出結果の一覧が表示されます。サンプルのタイトルには「[例]」が付いています。一覧では、各検出結果について以下の情報を確認できます。
- タイトル
- 重要度(高・中・低などのバッジ)
- 検出結果タイプ
- 影響を受けるリソース
- 最終アクセス日時


ステップ6: 検出結果の詳細確認
検出結果一覧から任意の検出結果のタイトルをクリックすると、画面の右側に詳細パネルが開きます。
詳細パネルには以下の情報が表示されます。
- パネル上部: タイトル、重要度、説明
- 概要: 検出結果タイプ、重要度、リージョン、作成日時など
- 影響を受けるリソース: リソースの種類、ID、タグなどの情報
その下に、検出結果の種類に応じたリソースやネットワークの詳細が続きます(一部の見出しは英語で表示されます)。





詳細パネルは、上部の説明で「何が起きたか」、影響を受けるリソースで「どこがやられたか」と順に読むと迷わぬでござる。
ステップ7: 検出結果のアーカイブ
対処済みの検出結果はアーカイブして整理できます。
検出結果一覧で対象の検出結果のチェックボックスを選択すると、「アクション」が押せるようになります。「アクション」→「アーカイブ」をクリックします。
アーカイブされた検出結果は、一覧上部の「ステータス」で「最近」から「アーカイブ済み」に切り替えると確認できます。
まとめ
- Amazon GuardDuty は、AWS 環境の脅威を継続的に監視するマネージドサービスで、有効化するだけで脅威検出を開始できる
- CloudTrail 管理イベント、VPC フローログ、DNS クエリログを自動的に分析し、追加のログ設定は不要である
- 検出結果は Critical / High / Medium / Low の 4 段階の重要度で分類され、脅威の種類、影響リソース、発生元の情報が含まれる
- 検出結果タイプは
脅威目的:リソースタイプ/脅威名の命名規則で分類されている - S3 Protection、EKS Protection、Malware Protection などの追加の保護プランで検出範囲を拡張できる
- サンプル検出結果を生成して、検出結果の内容と対処フローを事前に確認できる
参照先
- Amazon GuardDuty とは
- Amazon GuardDuty の開始方法
- Amazon GuardDuty の検出結果について
- GuardDuty の検出結果の重大度
- Amazon GuardDuty の検出結果タイプ
- Amazon GuardDuty の保護プラン
- GuardDuty 基本データソース
- Amazon GuardDuty のサンプル検出結果の生成













