目次
- 初心者から実務者向けの包括的解説
- 概要
- 主な特徴
- アーキテクチャ
- データソース完全解説
- Detector・Finding・Severity
- Protection Plans(保護計画)
- Runtime Monitoring
- Malware Protection(マルウェア保護)
- Extended Threat Detection
- S3 Protection
- RDS Protection
- Lambda Protection
- EKS Protection・Kubernetes 監視
- 主要ユースケース(12+)
- 設定・操作の具体例(CLI/SDK/IaC)
- Organizations 統合・マルチアカウント管理
- EventBridge・Lambda との自動対応
- Security Hub との連携
- Findings 分類・フィルタリング
- 脅威カテゴリと検出例
- 類似サービス比較表
- ベストプラクティス
- トラブルシューティング表
- 2025-2026 最新動向
- 学習リソース・参考文献
- 実装例・導入ロードマップ
- 実装チェックリスト
- コスト・プライシング
- まとめ
AWS GuardDuty 完全ガイド v2.0
初心者から実務者向けの包括的解説
AWS GuardDuty は、機械学習と脅威インテリジェンスを駆使して AWS 環境全体の 継続的な脅威検出 を行うマネージドセキュリティサービスです。CloudTrail・VPC フローログ・DNS ログ・EKS 監査ログを自動分析し、クリプトマイニング・不正アクセス・マルウェア・ランサムウェア活動を検出します。エージェント不要で即日有効化でき、Organizations 統合で複数アカウントを一元管理できるため、クラウドセキュリティの最初の防御線として採用されています。本ドキュメントは、GuardDuty の仕組み・データソース・検出パターン・ユースケース・運用設定・ベストプラクティスを体系的に解説する完全ガイドです。
ドキュメントの目的
本ガイドは以下を対象としています。
- セキュリティ初心者向け: GuardDuty とは何か、なぜ必要かを学びたい方
- クラウドアーキテクト向け: マルチアカウント環境でのセキュリティ脅威検出を設計したい方
- DevSecOps/SRE 向け: 検出から自動対応までのパイプライン構築を目指す方
- セキュリティ管理者向け: 組織全体の GuardDuty ガバナンス・監視・コンプライアンス実装
- インシデント対応者向け: GuardDuty Findings の分類・調査・分析・対応プロセス
- 意思決定者向け: AWS Security Hub/Wiz/Lacework との比較検討
2025-2026 年の GuardDuty エコシステム
- Extended Threat Detection: 複数データソース・複数リソース・複数時間軸の多段階攻撃検出
- Runtime Monitoring 拡張: EKS/EC2/ECS Fargate の OS レベルプロセス監視
- Malware Protection for AWS Backup: EBS スナップショット・AMI・AWS Backup リカバリーポイントのマルウェアスキャン
- S3 Malware Protection: S3 アップロード時のリアルタイムマルウェア検知
- RDS Protection: Aurora・RDS ログイン異常検知・データベースアクセス監視
- Lambda Protection: Lambda VPC フローログの脅威検出
- MITRE ATT&CK Mapping: 検出結果を MITRE フレームワークと自動マッピング
- Extended Threat Detection for ECS/EC2: 2025 年 12 月リリース
定義
AWS 公式による定義:
“Amazon GuardDuty is a threat detection service that continuously monitors, analyzes, and processes AWS data sources and logs in your AWS environment using machine learning (ML) models and threat intelligence feeds.”
エージェント不要、設定最小限で、AWS 全リージョンの API 呼び出し・ネットワーク活動・ストレージアクセスを監視します。
目次
- 概要
- GuardDuty が解決する課題
- 主な特徴
- アーキテクチャ
- データソース完全解説
- Detector・Finding・Severity
- Protection Plans(保護計画)
- Runtime Monitoring
- Malware Protection(マルウェア保護)
- Extended Threat Detection
- S3 Protection
- RDS Protection
- Lambda Protection
- EKS Protection・Kubernetes 監視
- 主要ユースケース(12+)
- 設定・操作の具体例(CLI/SDK/IaC)
- Organizations 統合・マルチアカウント管理
- EventBridge・Lambda との自動対応
- Security Hub との連携
- Findings 分類・フィルタリング
- 脅威カテゴリと検出例
- 類似サービス比較表
- ベストプラクティス
- トラブルシューティング表
- 2025-2026 最新動向
- 学習リソース・参考文献
- 実装例・導入ロードマップ
- 実装チェックリスト
- コスト・プライシング
- まとめ
概要
初心者向けメモ: GuardDuty は「AWS 環境全体の 24/7 セキュリティ番犬」です。インストール・設定なしに有効化するだけで、CloudTrail(API 呼び出し)・VPC フローログ(ネットワーク通信)・DNS ログ(ドメイン問い合わせ)を自動分析。機械学習で行動ベースラインを学習し、異常を検出すると Finding(検出結果)を生成します。検出されたリスクは EventBridge で自動アラート・自動隔離できるため、「検出→対応」が秒単位で実現します。
GuardDuty は、以下を実現する統合脅威検出プラットフォームです。
| 機能 | 説明 |
|---|---|
| エージェントレス監視 | EC2・Lambda・ECS にエージェント不要、CloudTrail・VPC ログから自動分析 |
| ML ベース異常検知 | 正常行動パターンを学習、逸脱を自動検出(クリプトマイニング・不正ログイン) |
| 脅威インテリジェンス統合 | 既知の悪意ある IP・ドメイン・ファイルハッシュとの照合 |
| マルチレイヤー保護 | API・ネットワーク・OS・ストレージ・データベースレベル監視 |
| 自動対応統合 | EventBridge → Lambda で検出→隔離・キー無効化・通知を自動化 |
| Organizations 一元管理 | 管理アカウントから全メンバーアカウント GuardDuty 統制 |
| MITRE ATT&CK マッピング | 検出結果を MITRE フレームワークと自動対応付け |
GuardDuty が解決する課題
1. 従来型 SIEM/IDS の運用負担
課題:Splunk・Datadog・Sumologic は統合・チューニング・ログ保持に数週間・高コスト GuardDuty の解決:1 クリック有効化、即座に脅威検出開始、月数百円から利用可能
2. AWS ネイティブ攻撃パターンの検出困難
課題:外部 SIEM は AWS API 呼び出しパターン・IAM 認証情報漏洩・S3 データ流出を判断できない GuardDuty の解決:AWS ネイティブ行動ベースライン学習により、異常 IAM 活動・ S3 漏洩・クリプトマイニング検出
3. クラウド環境のスケーラブル監視
課題:インスタンス数増加→ ログ量爆増→ ストレージ・解析コスト増加 GuardDuty の解決:自動スケーリング、使用量ベース課金、マルチアカウント統制
4. 組織全体のセキュリティ可視化
課題:複数アカウント・複数リージョン→ 脅威検出が分散、組織全体像不明 GuardDuty の解決:Organizations で全アカウント統制、Security Hub で一元ダッシュボード
主な特徴
1. データソース駆動型分析
GuardDuty は以下のデータソースを自動収集・分析(CloudTrail・VPC ログ・DNS は無料範囲内):
【Foundational(基盤)- 無料範囲】
├── CloudTrail Management Events(API 呼び出し)
├── VPC Flow Logs(EC2/Lambda ネットワーク)
└── DNS Logs(ドメイン問い合わせ)
【Protection Plans(有料)- 追加機能】
├── S3 Protection(S3 データイベント)
├── EKS Protection(Kubernetes 監査ログ)
├── Runtime Monitoring(OS レベルプロセス)
├── Malware Protection EC2(EBS スナップショットスキャン)
├── Malware Protection S3(アップロード時スキャン)
├── Malware Protection AWS Backup(バックアップスキャン)
├── RDS Protection(DB ログイン異常)
└── Lambda Protection(VPC フローログ拡張)
2. AI/ML を使った多段階攻撃検出(Extended Threat Detection)
Individual events(個別イベント)は正常だが、組み合わせると攻撃を形成する多段階検出:
イベント 1: VPC フローログ - 不審なポートスキャン(正常判定)
↓
イベント 2: EC2 にマルウェア検出(HIGH)
↓
イベント 3: CloudTrail - 急激なデータベースアクセス増加
↓
Extended Threat Detection
→ 「多段階攻撃:偵察→侵害→データ流出」を検出
→ 単一 Finding で攻撃シーケンス全体を報告
3. 組織規模での一元制御
AWS Organizations
├── 管理アカウント
│ └── GuardDuty 委任管理者アカウント
│ ├── メンバーアカウント 1 の GuardDuty 統制
│ ├── メンバーアカウント 2 の GuardDuty 統制
│ └── 新規アカウント自動有効化
├── 全 Findings の一元ダッシュボード
└── 組織ポリシー(抑制ルール等)統制
アーキテクチャ
【図1】GuardDuty アーキテクチャ全体図
graph LR
subgraph "AWS Account"
CT["CloudTrail<br/>(API Logs)"]
VPC["VPC Flow Logs<br/>(Network)"]
DNS["DNS Logs<br/>(Domains)"]
S3Data["S3 Data Events<br/>(S3 Protection)"]
EKSAudit["EKS Audit Logs<br/>(EKS Protection)"]
Runtime["OS Events<br/>(Runtime Monitoring)"]
EBS["EBS Snapshots<br/>(Malware EC2)"]
RDSLogin["RDS Login Activity<br/>(RDS Protection)"]
Lambda["Lambda VPC Logs<br/>(Lambda Protection)"]
end
subgraph "GuardDuty Engine"
ML["ML Models<br/>Behavioral Baseline"]
TI["Threat Intelligence<br/>IP/Domain/Hash"]
Extended["Extended Threat Detection<br/>Multi-stage Attacks"]
MITRE["MITRE ATT&CK<br/>Tactic/Technique Mapping"]
end
subgraph "Output & Integration"
Findings["GuardDuty Findings<br/>(Console API)"]
EventBridge["EventBridge<br/>Real-time Events"]
SecurityHub["Security Hub<br/>CSPM Aggregation"]
Detective["Amazon Detective<br/>Investigation"]
end
CT --> ML
VPC --> ML
DNS --> ML
S3Data --> ML
EKSAudit --> ML
Runtime --> ML
EBS --> ML
RDSLogin --> ML
Lambda --> ML
ML --> TI
TI --> Extended
Extended --> MITRE
MITRE --> Findings
Findings --> EventBridge
Findings --> SecurityHub
Findings --> Detective
【図2】脅威検出パイプライン詳細
sequenceDiagram
participant App as Application<br/>EC2/Lambda
participant AWS as AWS Services
participant GD as GuardDuty Engine
participant Auto as Auto Response<br/>Lambda/SNS
participant Dashboard as Console/Hub
App->>AWS: 1. Normal API Call
AWS->>GD: CloudTrail Log
App->>AWS: 2. Suspicious API Pattern
AWS->>GD: CloudTrail Log
App->>AWS: 3. Network Anomaly
AWS->>GD: VPC Flow Log
GD->>GD: ML Analysis<br/>Baseline Comparison
GD->>Dashboard: Finding Generated<br/>(Severity: MEDIUM)
GD->>Auto: EventBridge Trigger
Auto->>AWS: Auto Response<br/>Isolate / Disable Key
Auto->>Dashboard: Notification<br/>Dashboard Update
データソース完全解説
1. CloudTrail Management Events(API 呼び出し監視)
何を検出: IAM ポリシー変更、キー作成、ユーザー削除、ルートアカウント使用
| イベント | 検出シナリオ | Finding 例 |
|---|---|---|
| AssumeRole | Compromised credential の異常使用 | UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B |
| CreateAccessKey | 新規キー作成(侵害の足がかり) | Stealth:IAMUser/CloudTrailDisabled |
| ModifyDBInstance | データベース削除・外部公開化 | Impact:RDS/AnomalousLoginPattern |
| DeleteTrail | CloudTrail 無効化(証跡消去) | Stealth:CloudTrail/CloudTrailDisabled |
2. VPC Flow Logs(ネットワーク通信監視)
何を検出: ポートスキャン、C2 通信、DDoS パターン、既知悪性 IP 通信
| 通信パターン | 検出内容 | Finding 例 |
|---|---|---|
| 高数単位ポート走査 | ポートスキャン活動 | Recon:EC2/Portscan |
| Tor/VPN 経由通信 | 匿名化通信(credential 漏洩) | UnauthorizedAccess:IAMUser/TorIPCaller |
| 既知悪性 IP 通信 | C2 サーバー連携 | Backdoor:EC2/C&CActivity.B |
| 異常なデータ量 | 大規模データ流出 | Trojan:EC2/DGADomainRequest.C |
3. DNS Logs(ドメイン問い合わせ監視)
何を検出: マルウェア C2 通信、フィッシング域名、DGA(動的生成アドレス)
| DNS クエリ | 検出内容 | Finding 例 |
|---|---|---|
| 既知 C2 ドメイン | マルウェア通信 | Trojan:EC2/DGADomainRequest.C |
| DGA パターン | ワーム/ボットネット | Trojan:EC2/RootKit.G |
| 高頻度クエリ | DNS トンネリング(データ流出) | Trojan:EC2/DNSTunnel |
4. S3 Data Events(S3 アクセス監視)
Protection Plan 有効化時に自動検出: 異常なバケットアクセス、データ漏洩、ランサムウェア削除パターン
| S3 アクション | 検出シナリオ | Finding 例 |
|---|---|---|
| GetObject 激増 | データ流出 | Impact:S3/MaliciousIPCaller.Custom |
| DeleteObject 一括実行 | ランサムウェア・データ破壊 | Impact:S3/ObjectLockBypassAttempt |
| PutBucketPolicy 変更 | バケット外部公開(侵害) | Policy:S3/BucketPublicAccessBlockDisabled |
5. EKS Audit Logs(Kubernetes 監視)
EKS Protection 有効化時: Pod コマンド実行、RBAC 変更、Privilege Escalation
| Kubernetes アクション | 検出内容 | Finding 例 |
|---|---|---|
| exec in system pod | 特権昇格・クラスター侵害 | Execution:Kubernetes/ExecInKubeSystemPod |
| RBAC 権限拡大 | クラスター管理権奪取 | PrivilegeEscalation:Kubernetes/AdminAccessToDefaultServiceAccount |
| Secret アクセス激増 | 認証情報窃盗 | CredentialAccess:Kubernetes/TokenBruteForce |
6. OS-Level Events(Runtime Monitoring)
Runtime Monitoring 有効化時(ECS/EKS/EC2): プロセス実行、ファイル変更、ネットワーク接続
| OS イベント | 検出内容 | Finding 例 |
|---|---|---|
| 逆シェル実行 | インタラクティブシェル(侵害確定) | Execution:EC2/RevShell |
| ファイル改ざん | システムファイル書き込み(攻撃) | Impact:EC2/MaliciousFile |
| 権限昇格試行 | sudo/setuid 悪用 | PrivilegeEscalation:EC2/SuspiciousElevation |
Detector・Finding・Severity
1. Detector(検出器)
GuardDuty を有効化すると、アカウント・リージョン単位で 1 つの Detector が自動作成。
# Detector ID 確認
aws guardduty list-detectors --region us-east-1
# Detector 詳細情報
aws guardduty get-detector --detector-id <DETECTOR_ID> --region us-east-1
2. Finding(検出結果)
Finding は以下の形式で生成:
Format: <ThreatPurpose>:<ResourceType>/<ThreatName>.<Confidence>
例 1: UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B
- ThreatPurpose: UnauthorizedAccess(不正アクセス)
- ResourceType: IAMUser
- ThreatName: ConsoleLoginSuccess(コンソールログイン成功)
- Confidence: B(中程度)
例 2: CryptoCurrency:EC2/BitcoinTool.B!DNS
- ThreatPurpose: CryptoCurrency(クリプトマイニング)
- ResourceType: EC2
- ThreatName: BitcoinTool(ビットコインマイニングツール)
- Confidence: B + DNS 証拠
3. Severity(重要度)
8.0 - 8.9: CRITICAL
└─ 即座のインシデント対応が必須
例:クリプトマイニング検出、機密データ流出
6.0 - 7.9: HIGH
└─ 緊急調査
例:C2 通信、ブルートフォース成功
4.0 - 5.9: MEDIUM
└─ 調査・検証
例:異常な API パターン
1.0 - 3.9: LOW
└─ 監視継続
例:ポートスキャン、偵察活動
4. Finding 例:フル詳細
{
"FindingId": "1234567890abcdef1234567890abcd",
"Type": "UnauthorizedAccess:EC2/SSHBruteForce",
"Severity": 7.3,
"CreatedAt": "2026-04-26T12:34:56.000Z",
"UpdatedAt": "2026-04-26T14:15:30.000Z",
"Resource": {
"InstanceDetails": {
"InstanceId": "i-1234567890abcdef0",
"InstanceState": "running",
"LaunchTime": "2026-04-01T00:00:00.000Z"
}
},
"ServiceDetails": {
"Action": {
"NetworkConnectionAction": {
"RemoteIpDetails": {
"IpAddressV4": "203.0.113.45",
"GeoLocation": {
"Country": "CN",
"City": "Beijing"
},
"IpAddressReputation": {
"BadReputation": true
}
},
"LocalPortDetails": {
"Port": 22
},
"Protocol": "TCP"
}
}
},
"Evidence": {
"ThreatIntelligenceDetails": [
{
"ThreatNames": ["Suspicious Activity"],
"ThreatListName": "GuardDutyThreatIntelligence"
}
]
},
"Archived": false,
"Count": 47,
"AccountId": "123456789012"
}
Protection Plans(保護計画)
GuardDuty は Foundational(基盤) + Protection Plans(保護計画) の 2 層構成。
1. Foundational Threat Detection(無料範囲)
自動有効化、追加費用なし:
- ✓ CloudTrail 管理イベント分析
- ✓ VPC フローログ分析
- ✓ DNS ログ分析
- ✓ 多段階攻撃検出(Extended Threat Detection)
2. Protection Plans(有料・オプション)
S3 Protection
- S3 データイベント自動分析
- データ漏洩・破壊検出
- ランサムウェア削除パターン検出
# S3 Protection 有効化
aws guardduty update-detector \
--detector-id <DETECTOR_ID> \
--finding-publishing-frequency FIFTEEN_MINUTES \
--data-sources S3Logs={Enable=true} \
--region us-east-1
EKS Protection
- Kubernetes 監査ログ自動取得
- 権限昇格・RCE・クラスター侵害検出
aws guardduty update-detector \
--detector-id <DETECTOR_ID> \
--data-sources Kubernetes={AuditLogs={Enable=true}} \
--region us-east-1
Runtime Monitoring
- OS レベルプロセス監視(EKS/EC2/ECS Fargate)
- 逆シェル・権限昇格・ファイル改ざん検出
aws guardduty update-detector \
--detector-id <DETECTOR_ID> \
--data-sources MalwareProtection={ScanEc2InstanceWithFindings={EbsVolumes={Enable=true}}} \
--region us-east-1
Malware Protection for EC2
- EBS スナップショット自動スキャン
- 既知マルウェア・ルートキット検出
Malware Protection for S3
- 新規 S3 アップロード時スキャン
- マルウェア・ランサムウェアペイロード検出
Malware Protection for AWS Backup
- 2025 年新機能:EBS スナップショット・AMI・バックアップリカバリーポイントスキャン
RDS Protection
- RDS/Aurora ログイン異常検知
- 認証情報漏洩・ブルートフォース検出
Lambda Protection
- Lambda VPC フローログ分析
- Lambda からのクリプトマイニング・C2 通信検出
Runtime Monitoring
概要
Runtime Monitoring は OS レベルのシステムアクティビティ を監視し、コンテナ内・EC2 インスタンス内の動作を可視化。
対応リソース
- ✓ Amazon EKS(DaemonSet または Managed Add-on)
- ✓ Amazon EC2(Systems Manager Agent)
- ✓ Amazon ECS(Fargate タスク・EC2 起動タイプ)
監視対象イベント
| イベント種類 | 検出例 | Finding 例 |
|---|---|---|
| プロセス実行 | 疑わしいコマンドライン実行 | Execution:EC2/SuspiciousProcess |
| ファイルアクセス | システムファイル改ざん | Impact:EC2/MaliciousFile |
| ネットワーク接続 | 逆シェル・C2 通信 | Execution:EC2/RevShell |
| 権限昇格 | sudo/setuid 悪用 | PrivilegeEscalation:EC2/SuspiciousElevation |
| ライブラリローディング | 悪意あるライブラリ注入 | Execution:EC2/LibraryInjection |
EKS Runtime Monitoring デプロイ
# DaemonSet による手動デプロイ
kubectl apply -f https://s3.amazonaws.com/guardduty-runtime-monitoring/daemonset.yaml
# または AWS Managed Add-on(推奨)
aws eks create-addon \
--cluster-name my-cluster \
--addon-name amazon-guardduty-agent \
--region us-east-1
Malware Protection(マルウェア保護)
EC2 Malware Protection フロー
1. GuardDuty が疑わしい EC2 Finding 検出
2. 自動的に EBS スナップショット作成
3. 専用スキャン環境でスナップショット解析
4. 感染ファイル特定 → Finding に詳細追加
5. 元 EC2 インスタンスへの影響なし(読み取り専用)
S3 Malware Protection
- 新規アップロードをリアルタイムスキャン
- マルウェア・ランサムウェア・トロイの木馬検出
- オンデマンド・継続的両方対応
AWS Backup Malware Protection(2025 年新機能)
- EBS スナップショット
- EC2 AMI(Amazon Machine Image)
- AWS Backup リカバリーポイント
スキャン対象を指定:
aws guardduty update-detector \
--detector-id <DETECTOR_ID> \
--data-sources MalwareProtection={ScanEc2InstanceWithFindings={EbsVolumes={Enable=true}},ScanEc2InstanceWithFindingsSnapshot={EbsVolumes={Enable=true}}} \
--region us-east-1
Extended Threat Detection
概要
個別イベントでは正常でも、組み合わせると攻撃パターンを検出する多段階脅威検出。
攻撃シーケンス例
【Scenario 1】侵害→ 認証情報窃盗→ データ流出
イベント A:VPC フローログ
└─ 不審なポートスキャン(LOW 重要度)
イベント B:CloudTrail
└─ 新規 IAM キー作成(MEDIUM 重要度)
イベント C:S3 Data Event
└─ 大量ファイルダウンロード(HIGH 重要度)
Extended Threat Detection
→ "Multi-stage Attack: Reconnaissance → Credential Creation → Data Exfiltration"
→ 単一 Finding で攻撃全体を報告
2025 年 12 月拡張(EC2/ECS)
Extended Threat Detection は EKS だけでなく EC2・ECS 環境にも拡大:
- ✓ EC2 の多段階攻撃(Runtime Monitoring + CloudTrail + VPC Logs)
- ✓ ECS Fargate の多段階攻撃
- ✓ コンテナ脱出→ ホスト侵害→ データ流出パターン検出
S3 Protection
機能詳細
- ✓ S3 データイベント自動取得(GetObject/PutObject/DeleteObject)
- ✓ 異常なアクセスパターン(急激な量・頻度増加)
- ✓ ランサムウェア削除パターン(Object Lock 回避試行)
- ✓ データ流出検出(外部 IP からの大量ダウンロード)
Finding 例
{
"Type": "Impact:S3/MaliciousIPCaller.Custom",
"Severity": 8.0,
"Description": "An S3 bucket was accessed by an IP address that is known to be malicious.",
"Resource": {
"S3BucketDetails": {
"BucketName": "my-sensitive-bucket",
"Arn": "arn:aws:s3:::my-sensitive-bucket",
"ObjectDetails": {
"ObjectArn": "arn:aws:s3:::my-sensitive-bucket/customer-data.csv",
"Key": "customer-data.csv"
}
}
}
}
RDS Protection
監視対象
- ✓ Amazon RDS(Aurora MySQL, Aurora PostgreSQL, RDS MySQL, RDS PostgreSQL)
- ✓ ログイン異常パターン
- ✓ 認証情報ブルートフォース
- ✓ 異常なアクセス頻度・時間帯
Finding 例
- Type: Impact:RDS/AnomalousLoginPattern
- Severity: 7.0
- Description: An unusual and anomalous pattern of login behavior was detected for database user ‘admin’.
- Unusual: 100+ login attempts in 5 minutes from different IP ranges
Lambda Protection
監視内容
- Lambda VPC フローログ監視
- クリプトマイニング検出
- C2 通信検出
- Data Exfiltration パターン検出
Finding 例
- Type: CryptoCurrency:Lambda/BitcoinTool.A
- Severity: 8.2
- Description: Lambda function is communicating with known cryptocurrency mining pool IP.
EKS Protection・Kubernetes 監視
データソース
- ✓ EKS 監査ログ(自動取得)
- ✓ Runtime Monitoring(DaemonSet/Managed Add-on)
- ✓ VPC Flow Logs
検出パターン
| 攻撃パターン | Finding 例 |
|---|---|
| Pod 内コマンド実行 | Execution:Kubernetes/ExecInKubeSystemPod |
| RBAC 権限昇格 | PrivilegeEscalation:Kubernetes/AdminAccessToDefaultServiceAccount |
| Secret 窃盗 | CredentialAccess:Kubernetes/TokenBruteForce |
| Pod 逃脱 | Execution:Kubernetes/ContainerEscape |
| 永続化メカニズム | Persistence:Kubernetes/PersistentBackdoor |
主要ユースケース(12+)
1. クリプトマイニング検出と自動隔離
- 検出: EC2 インスタンスが既知マイニングプール IP と通信
- 自動対応: Lambda → EC2 セキュリティグループから外部通信遮断
2. IAM 認証情報漏洩の即時対応
- 検出: Tor/VPN 経由で漏洩アクセスキー使用
- 自動対応: Lambda → キー無効化 → SNS 通知 → インシデント対応開始
3. ランサムウェア攻撃検出
- 検出: S3 で大量ファイル削除 + DeleteObject Lock 回避試行
- Finding: Impact:S3/ObjectLockBypassAttempt (CRITICAL)
- 自動対応: S3 バケット MFA 削除有効化 + アラート
4. 内部脅威検出
- 検出: 営業担当が深夜に顧客データベース アクセス + 大量ダウンロード
- Finding: UnauthorizedAccess:RDS/AnomalousLoginPattern (HIGH)
5. コンテナ脱出攻撃検出
- 検出: EKS Pod 内から ホスト OS コマンド実行
- Finding: Execution:Kubernetes/ContainerEscape (CRITICAL)
6. マルウェア感染即時検出
- 検出: EC2 がマルウェア実行 → Runtime Monitoring で検出
- 自動対応: EBS スナップショット作成 → オンデマンドスキャン → 詳細レポート
7. API キー漏洩フロー検出
- 検出: GitHub に commit されたキーが使用開始
- Finding: UnauthorizedAccess:IAMUser/AnomalousBehavior
- 自動対応: Lambda キー無効化 + Secrets Manager に新キー生成 + 通知
8. DDoS 前兆検出
- 検出: VPC フローログで異常なポート走査パターン
- Finding: Recon:EC2/Portscan (MEDIUM)
- 対応: WAF ルール更新 + Auto Scaling 有効化
9. 複数段階攻撃の自動分析
- 検出: 偵察→侵害→データ流出を Extended Threat Detection で一括検出
- Finding: [ATTACK_SEQUENCE] Reconnaissance → CredentialAccess → Exfiltration
10. S3 データ漏洩防止
- 検出: S3 バケット外部 IP からの大量アクセス
- Finding: Impact:S3/MaliciousIPCaller.Custom (CRITICAL)
- 自動対応: バケットアクセス一時ブロック + CloudTrail 詳細分析
11. RDS ブルートフォース検出
- 検出: DB ユーザーへの大量ログイン試行(異なる IP 範囲)
- Finding: Impact:RDS/AnomalousLoginPattern (HIGH)
- 自動対応: 接続数制限・一時パスワード無効化
12. Lambda 関数の侵害検出
- 検出: Lambda が環境変数から API キー抽出→外部 IP へ送信
- Finding: Execution:Lambda/SuspiciousActivity (HIGH)
- 自動対応: Lambda 実行ロール権限削除 + 関数無効化
設定・操作の具体例(CLI/SDK/IaC)
1. GuardDuty 有効化
# 有効化
aws guardduty create-detector \
--finding-publishing-frequency FIFTEEN_MINUTES \
--enable \
--region us-east-1
# Detector ID 出力例
{
"DetectorId": "12abc34d567e8f90abcd12345678efgh"
}
2. Protection Plans 有効化
# S3 + Runtime Monitoring + EKS Protection
aws guardduty update-detector \
--detector-id 12abc34d567e8f90abcd12345678efgh \
--data-sources '{
"S3Logs": {
"Enable": true
},
"Kubernetes": {
"AuditLogs": {
"Enable": true
}
},
"MalwareProtection": {
"ScanEc2InstanceWithFindings": {
"EbsVolumes": {
"Enable": true
}
}
}
}' \
--region us-east-1
3. Findings 取得
# 全 Findings 一覧
aws guardduty list-findings \
--detector-id 12abc34d567e8f90abcd12345678efgh \
--finding-criteria '{
"Criterion": {
"severity": {
"Gte": 7
},
"archived": {
"Eq": ["false"]
}
}
}' \
--region us-east-1
# Finding 詳細
aws guardduty get-findings \
--detector-id 12abc34d567e8f90abcd12345678efgh \
--finding-ids 1234567890abcdef1234567890abcd \
--region us-east-1
4. EventBridge 統合(自動対応)
{
"Name": "GuardDutyHighFindingsAutoResponse",
"EventPattern": {
"source": ["aws.guardduty"],
"detail-type": ["GuardDuty Finding"],
"detail": {
"severity": [7, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9],
"type": ["UnauthorizedAccess*", "CryptoCurrency*", "Backdoor*"]
}
},
"Targets": [
{
"Arn": "arn:aws:lambda:us-east-1:123456789012:function:GuardDutyAutoResponse",
"RoleArn": "arn:aws:iam::123456789012:role/EventBridgeGuardDutyRole"
}
]
}
5. Lambda 自動対応関数
import boto3
import json
ec2 = boto3.client('ec2')
iam = boto3.client('iam')
sns = boto3.client('sns')
def lambda_handler(event, context):
finding = event['detail']
finding_type = finding['type']
severity = finding['severity']
if 'UnauthorizedAccess' in finding_type and severity >= 7:
# IAM キー無効化
arn = finding['resource']['accessKeyDetails']['userArn']
access_key_id = finding['resource']['accessKeyDetails']['accessKeyId']
# キー無効化
iam.update_access_key(
AccessKeyId=access_key_id,
Status='Inactive'
)
# SNS 通知
sns.publish(
TopicArn='arn:aws:sns:us-east-1:123456789012:GuardDutyAlerts',
Subject='GuardDuty: Unauthorized Access Detected',
Message=json.dumps(finding, indent=2)
)
if 'CryptoCurrency' in finding_type:
# EC2 セキュリティグループを制限
instance_id = finding['resource']['instanceDetails']['instanceId']
sg_id = finding['resource']['instanceDetails']['securityGroups'][0]['groupId']
ec2.revoke_security_group_egress(
GroupId=sg_id,
IpPermissions=[
{
'IpProtocol': '-1',
'FromPort': -1,
'ToPort': -1,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
}
]
)
return {'statusCode': 200}
6. Terraform IaC
resource "aws_guardduty_detector" "main" {
enable = true
finding_publishing_frequency = "FIFTEEN_MINUTES"
datasources {
s3_logs {
enable = true
}
kubernetes {
audit_logs {
enable = true
}
}
malware_protection {
scan_ec2_instance_with_findings {
ebs_volumes = true
}
}
}
}
resource "aws_guardduty_organization_admin_account" "admin" {
depends_on = [aws_organizations_organization.org]
account_id = aws_organizations_account.admin.id
admin_account_id = "123456789012"
}
resource "aws_cloudwatch_event_rule" "guardduty_findings" {
name = "guardduty-high-findings"
event_pattern = jsonencode({
source = ["aws.guardduty"]
detail-type = ["GuardDuty Finding"]
detail = {
severity = [7, 8]
}
})
}
resource "aws_cloudwatch_event_target" "lambda" {
rule = aws_cloudwatch_event_rule.guardduty_findings.name
arn = aws_lambda_function.auto_response.arn
role_arn = aws_iam_role.eventbridge_role.arn
}
Organizations 統合・マルチアカウント管理
アーキテクチャ
【AWS Organizations 管理アカウント】
├── GuardDuty を委任管理者アカウントに指定
│ (DelegatedAdministrator)
│
【委任管理者アカウント】
├── 全メンバーアカウント GuardDuty 統制
├── 新規アカウント自動有効化
├── 全 Findings 集約ダッシュボード
└── 一元的な抑制ルール・ポリシー管理
【メンバーアカウント 1-N】
└── GuardDuty 自動有効化
Findings は委任管理者に集約
セットアップ手順
# ステップ 1:Organizations で GuardDuty 委任管理者指定(管理アカウント)
aws organizations register-delegated-administrator \
--account-id 111111111111 \ # 委任管理者アカウント ID
--service-principal guardduty.amazonaws.com
# ステップ 2:委任管理者で全メンバーアカウント統制開始
aws guardduty create-organization-admin-account \
--admin-account-id 111111111111
# ステップ 3:委任管理者がメンバーアカウント自動登録
aws guardduty enable-organization-admin-account \
--admin-account-id 111111111111
# ステップ 4:新規アカウント自動有効化設定
aws guardduty update-organization-configuration \
--detector-id <DETECTOR_ID> \
--auto-enable true
EventBridge・Lambda との自動対応
Real-time Event Flow
GuardDuty Finding (CRITICAL)
↓ (秒単位)
EventBridge Rule トリガー
↓
Lambda Function
├─ IAM キー無効化
├─ EC2 隔離
├─ S3 バケット読み取り専用化
└─ SNS 通知
↓
セキュリティチーム通知
↓
インシデント対応開始
実装例:クリプトマイニング即時隔離
import boto3
ec2 = boto3.client('ec2')
iam = boto3.client('iam')
sns = boto3.client('sns')
def isolate_cryptomining_instance(event, context):
finding = event['detail']
if 'CryptoCurrency' not in finding['type']:
return
instance_id = finding['resource']['instanceDetails']['instanceId']
instance_region = finding['region']
ec2_client = boto3.client('ec2', region_name=instance_region)
# 隔離用セキュリティグループ作成
isolation_sg = ec2_client.create_security_group(
GroupName=f'isolation-sg-{instance_id}',
Description='Isolation SG for compromised instance'
)
# インスタンスを隔離 SG に変更
ec2_client.modify_instance_attribute(
InstanceId=instance_id,
Groups=[isolation_sg['GroupId']]
)
# SNS 通知
sns.publish(
TopicArn='arn:aws:sns:region:account:GuardDutyAlerts',
Subject=f'CRITICAL: Cryptomining detected - Instance {instance_id} isolated',
Message=f'''
Instance {instance_id} in {instance_region} has been isolated due to cryptomining activity.
Finding Type: {finding['type']}
Severity: {finding['severity']}
Time: {finding['updatedAt']}
Action Taken:
- Applied isolation security group
- Network access restricted to internal only
- Manual investigation required
Please investigate immediately.
'''
)
Security Hub との連携
統合メリット
GuardDuty + Inspector + Macie + Access Analyzer
↓
Security Hub(CSPM)
├── 標準化された Finding フォーマット
├── 優先度スコアリング
├── ダッシュボード集約
└── SIEM 連携(Splunk/Datadog)
CloudFormation 統合設定
AWSTemplateFormatVersion: '2010-09-09'
Description: 'GuardDuty + Security Hub Integration'
Resources:
GuardDutyDetector:
Type: AWS::GuardDuty::Detector
Properties:
Enable: true
FindingPublishingFrequency: FIFTEEN_MINUTES
SecurityHub:
Type: AWS::SecurityHub::Hub
GuardDutyIntegration:
Type: AWS::Events::Rule
Properties:
EventPattern:
source:
- aws.guardduty
detail-type:
- GuardDuty Finding
State: ENABLED
Targets:
- Arn: !Sub 'arn:aws:securityhub:${AWS::Region}:${AWS::AccountId}:hub/default'
RoleArn: !GetAtt EventBridgeRole.Arn
Findings 分類・フィルタリング
フィルタ条件の組み合わせ
# HIGH 以上で未解決の C2 通信 Finding
aws guardduty list-findings \
--detector-id <DETECTOR_ID> \
--finding-criteria '{
"Criterion": {
"severity": {
"Gte": 7.0
},
"archived": {
"Eq": ["false"]
},
"type": {
"Eq": ["Backdoor:*"]
},
"updatedAt": {
"Gte": 1609459200000
}
}
}'
Findings ステータス管理
未読(Unread) → 調査中 → 解決済み(Archived)
└─ False Positive マーク
脅威カテゴリと検出例
完全リスト
| カテゴリ | Finding Type | 重要度 | 検出内容 |
|---|---|---|---|
| Backdoor | Backdoor:EC2/C&CActivity.B |
8.0+ | C2 サーバー通信 |
| CryptoCurrency | CryptoCurrency:EC2/BitcoinTool.B |
8.0+ | クリプトマイニング |
| UnauthorizedAccess | UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B |
6.5+ | 異常なコンソールログイン |
| CredentialAccess | CredentialAccess:IAMUser/AnomalousBehavior |
6.0+ | 異常な API パターン |
| Recon | Recon:EC2/Portscan |
3.0+ | ポートスキャン |
| Stealth | Stealth:CloudTrail/CloudTrailDisabled |
7.0+ | 証跡消去(CloudTrail 無効化) |
| Impact | Impact:S3/ObjectLockBypassAttempt |
8.0+ | ランサムウェア削除 |
| Policy | Policy:IAMUser/RootCredentialUsage |
5.0+ | Root 認証情報使用 |
類似サービス比較表
| 特性 | GuardDuty | AWS Security Hub | Wiz | Lacework | Falco | Trivy |
|---|---|---|---|---|---|---|
| 脅威検出 | ML/TI ベース | 集約プラットフォーム | AI リスク | ML リスク | ルールベース | スキャナー |
| エージェント | 不要 | 不要 | 軽量エージェント | エージェント | DaemonSet | 軽量 |
| 対象リソース | EC2/Lambda/S3/RDS/EKS | 統合 | クラウド全般 | AWS/K8s | K8s 専用 | コンテナ |
| リアルタイム検出 | ◎ | ○ | ◎ | ◎ | ◎ | △ |
| マルチクラウド | AWS 専用 | AWS 専用 | ◎ | AWS/GCP | K8s/Linux | 汎用 |
| CSPM | △(連携) | ◎ | ◎ | ◎ | × | × |
| 価格 | GB/API リクエスト | CSPM 統合 | 従量課金 | 従量課金 | OOS 無料 | OOS 無料 |
推奨使い分け
【AWS のみ・クラウドセキュリティ全体】
→ Security Hub(GuardDuty + Inspector + Macie + Access Analyzer 統合)
【マルチクラウド・高度なリスク分析】
→ Wiz(AI ベースリスク優先度付け)
【Kubernetes 専門・リアルタイム監視】
→ Falco(ルールベース、オープンソース)
【コンテナイメージ脆弱性スキャン】
→ Trivy(軽量、CI/CD 統合)
ベストプラクティス
✅ 推奨設定
【初日】
✓ GuardDuty 有効化(Foundational)
✓ 30 日間無料トライアルで全 Protection Plans 試験
✓ Organizations 統制アカウント指定・新規自動有効化
【1 週間以内】
✓ EventBridge ルール作成
✓ Lambda 自動対応関数デプロイ
✓ Security Hub 統合有効化
✓ 既知不正な Finding は抑制ルール設定
【1 か月】
✓ Protection Plans 本有効化(S3/EKS/Runtime)
✓ SOAR(Security Orchestration)と連携
✓ 誤検知率測定・抑制ルール最適化
✓ インシデント対応プロセス実装
❌ アンチパターン
× GuardDuty 有効化後、Finding を無視・削除
→ 検出漏れ、未検出リスク蓄積
× 全 Finding を自動アーカイブ(false positive 対策名目)
→ 本物の脅威も見落とす
× Protection Plans を無有効化(コスト削減)
→ 検出カバレッジ低下、攻撃検出率 20-30% 低下
× EventBridge なし・Findings 手動確認のみ
→ 対応遅延、MTTD/MTTR 増加
× Organizations 統制なし、各アカウント個別管理
→ ガバナンス喪失、新規アカウント設定漏れ
トラブルシューティング表
| 症状 | 原因 | 解決策 |
|---|---|---|
| Findings が生成されない | Detector 無効化・データソース未有効化 | aws guardduty get-detector で状態確認 |
| Finding 重複が多い | 複数 Detector 有効化 | 1 アカウント 1 Detector 原則確認 |
| 誤検知が多い | ML ベースライン不足(新規環境) | 2-4 週間待機・抑制ルール設定 |
| EventBridge トリガーされない | Event Pattern が一致しない | CloudWatch Logs で Event 確認 |
| Organizations 統制失敗 | Delegated Admin 権限不足 | IAM ロール権限確認 |
| 高コスト | Protection Plans 全有効化 | 不要な Plans を無効化 |
| RDS Protection Finding なし | RDS ログイン logging 無効化 | RDS Parameter Group で log_statement = all 設定 |
2025-2026 最新動向
1. Extended Threat Detection for EC2/ECS(12 月リリース)
従来 EKS のみだった多段階攻撃検出が EC2・ECS に拡大:
- EC2 Runtime Monitoring + CloudTrail + VPC Logs 相関
- ECS Fargate コンテナプロセス + VPC Logs 相関
- 攻撃シーケンス自動検出・統一 Finding
2. Runtime Monitoring EKS 自動デプロイ
AWS Managed Add-on として ワンクリック有効化:
aws eks create-addon \
--cluster-name my-cluster \
--addon-name amazon-guardduty-agent
3. Malware Protection for AWS Backup(新機能)
バックアップの「復旧前スキャン」で ランサムウェア確認:
バックアップからの復旧要求
↓
GuardDuty 自動スキャン
↓
マルウェア確認 → OK なら復旧許可
↓ NG なら警告・中止提案
4. MITRE ATT&CK 自動マッピング強化
Finding に 自動的に MITRE タクティック・テクニック を付与:
{
"Type": "Backdoor:EC2/C&CActivity",
"MitreMapping": [
{
"Tactic": "Command and Control",
"TacticId": "TA0011",
"Technique": "Application Layer Protocol",
"TechniqueId": "T1071"
}
]
}
5. RDS Protection データベース拡張
Aurora・RDS だけでなく DocumentDB・ElastiCache にも対応予定。
6. AI ベース異常スコアリング
従来「HIGH/MEDIUM/LOW」だけでなく、リスク度数値 0-100 で細粒度評価。
学習リソース・参考文献
公式ドキュメント
- AWS GuardDuty User Guide
- GuardDuty API Reference
- GuardDuty Finding Types
- GuardDuty Protected Resources
- AWS Security Best Practices
- AWS Security Hub Documentation
- Amazon EventBridge Documentation
- AWS Organizations Documentation
オープンソース・ベンダー資料
- MITRE ATT&CK Framework - 脅威タクティック・テクニック標準
- Falco - Open Source Runtime Security - Runtime Monitoring 比較対象
- Trivy - Vulnerability Scanner - コンテナスキャン
- OWASP Top 10 - Web 脅威標準
- CISA Cybersecurity Advisories - 脅威インテリジェンス
AWS ブログ・ホワイトペーパー
- AWS Security Blog - GuardDuty
- Navigating GuardDuty protection plans
- GuardDuty Runtime Monitoring for EKS
- Automated Threat Response with GuardDuty
実装例・導入ロードマップ
Week 1-2:基盤構築
Day 1: GuardDuty 有効化(Foundational)
└─ Detector 作成
└─ CloudTrail・VPC フローログ確認
Day 3: Organizations 統制
└─ 委任管理者アカウント指定
└─ 全メンバーアカウント自動有効化
Day 5: EventBridge 統合
└─ HIGH/CRITICAL Finding トリガー設定
└─ Lambda 関数デプロイ
Day 7: Security Hub 連携
└─ Hub 有効化
└─ GuardDuty 統合確認
Week 3-4:保護強化
Day 15: Protection Plans 本有効化
├─ S3 Protection
├─ EKS Protection(Kubernetes 環境)
└─ Runtime Monitoring
Day 21: 自動対応ロジック追加
├─ IAM キー無効化
├─ EC2 隔離
└─ SNS 通知
Day 28: 運用・監視
├─ 誤検知分析
├─ 抑制ルール最適化
└─ インシデント対応テスト
実装チェックリスト
【初期セットアップ】
☐ GuardDuty Detector 作成
☐ CloudTrail 有効化確認
☐ VPC Flow Logs 有効化
☐ DNS Logs 有効化
☐ Findings Publishing Frequency 設定(5/15/30 分)
【Organizations】
☐ 委任管理者アカウント指定
☐ メンバーアカウント自動有効化
☐ 新規アカウント自動登録
【Protection Plans】
☐ S3 Protection 有効化
☐ EKS Protection 有効化(K8s 環境)
☐ Runtime Monitoring 有効化
☐ Malware Protection EC2 有効化
☐ RDS Protection 有効化
【自動対応】
☐ EventBridge ルール作成
☐ Lambda 関数デプロイ
☐ IAM ロール・ポリシー設定
☐ SNS トピック作成・サブスクリプション
【監視・運用】
☐ Security Hub 統合
☐ CloudWatch ダッシュボード作成
☐ Alert スレッショルド設定
☐ インシデント対応プロセス文書化
【最適化】
☐ 誤検知分析(最初 2-4 週間)
☐ 抑制ルール実装
☐ ML ベースライン調整
☐ コスト監視
コスト・プライシング
料金体系
【Foundational(CloudTrail + VPC Logs)】
CloudTrail Events: $0.50/GB(分析対象)
VPC/DNS Logs: $0.50/GB/月
【Protection Plans(追加)】
S3 Protection: $0.50/リクエスト百万件
EKS Protection: $0.30/vCPU-時間
Runtime Monitoring: $0.40/vCPU-時間
Malware Protection EC2: $0.05/GB(EBS スキャン)
Malware Protection S3: $0.05/GB(スキャン)
RDS Protection: $0.30/クラスター時間
Lambda Protection: $0.50/リクエスト百万件
月額概算例
【小規模環境】(10 EC2・20 Lambda・2 EKS)
Foundational: 50GB CloudTrail × $0.50 = $25/月
Runtime Monitoring: 4 vCPU × 730時間 × $0.40 = $1,168/月
S3: $0 - $50/月
────────────────
合計: $1,200-1,250/月
【中規模環境】(50 EC2・100 Lambda・5 EKS)
同様に $3,000-5,000/月
30 日間無料トライアル後の継続判断を推奨。
まとめ
GuardDuty は AWS 環境の 24/7 セキュリティ番犬 です。エージェント不要で有効化可能、機械学習で継続的に脅威検出し、EventBridge・Lambda 連携で自動対応を実現します。Organizations 統制で複数アカウントを一元管理でき、Security Hub 統合で全社セキュリティ体制を構築できます。
核心ポイント
- 即日有効化: 1 クリックで CloudTrail・VPC ログ分析開始
- 多段階攻撃検出: Extended Threat Detection で単発では検出されない攻撃を発見
- 自動対応: EventBridge + Lambda で秒単位での隔離・キー無効化
- スケーラビリティ: 数十から数百アカウント・数千リソースを一元管理
- MITRE マッピング: 検出結果の脅威フレームワーク自動対応付け
GuardDuty を導入することで、従来は数週間かかっていた脅威検出・対応が数秒で実現されます。
最終更新:2026-04-26
バージョン:v2.0