performing-aws-account-enumeration-with-scout-suite について
ScoutSuiteでAWSアカウントを監査し、リソースを列挙して、ローカルの対話型レポートで設定リスクを確認するセキュリティスキルです。スキャンから修正確認までの手順を扱います。
主な機能
- 01AWS設定の監査
- 02サービス・リージョン別スキャン
- 03ロールを使った別アカウントのスキャン
- 04ローカル対話型HTMLレポートの生成
- 05リスクレベルとルールによる確認
活用シーン
- 01AWSリソースと設定の棚卸し
- 02IAM、S3、EC2のリスク評価
- 03修正後のセキュリティ状態の検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-aws-account-enumeration-with-scout-suiteインストール後、Claude Code で/performing-aws-account-enumeration-with-scout-suiteを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
ScoutSuite を使用した AWS アカウントの列挙
概要
ScoutSuite は、NCC Group が開発したオープンソースのマルチクラウドセキュリティ監査ツールです。AWS 環境のセキュリティ態勢を包括的に評価できます。AWS API に問い合わせて、すべてのサービスの設定データを収集し、結果をローカルに保存して、リスクの高い領域を示すインタラクティブな HTML レポートを生成します。ScoutSuite はエージェントレスで、クラウドリソースの設定、アクセス方法、監視方法を分析します。
使用するタイミング
- ScoutSuite を使用して AWS アカウントの列挙を行うセキュリティ評価を実施するとき
- 関連するセキュリティイベントへのインシデント対応手順に従うとき
- 定期的なセキュリティテストや監査活動を実施するとき
- 実地テストを通じてセキュリティ制御を検証するとき
前提条件
- Python 3.6+ がインストールされていること
- AWS CLI が適切な IAM 認証情報で設定されていること
- 対象の AWS サービス全体に対する読み取り専用の IAM 権限(SecurityAudit マネージドポリシーを推奨)
- ScoutSuite のインストールに使用する pip パッケージマネージャー
- AWS API エンドポイントへのネットワークアクセス
インストールとセットアップ
ScoutSuite のインストール
pip install scoutsuite
インストールの確認
scout --version
AWS 認証情報の設定
aws configure
# Or use environment variables:
export AWS_ACCESS_KEY_ID=<your-key>
export AWS_SECRET_ACCESS_KEY=<your-secret>
export AWS_DEFAULT_REGION=us-east-1
必要な IAM ポリシー
ScoutSuite の実行に使用する IAM ユーザーまたはロールに、AWS マネージドポリシー SecurityAudit と ViewOnlyAccess をアタッチしてください。包括的なスキャンには、カスタムポリシーが必要な場合があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:Describe*",
"acm:List*",
"cloudformation:Describe*",
"cloudformation:Get*",
"cloudformation:List*",
"cloudtrail:Describe*",
"cloudtrail:Get*",
"cloudtrail:List*",
"cloudwatch:Describe*",
"cloudwatch:Get*",
"cloudwatch:List*",
"config:Describe*",
"config:Get*",
"config:List*",
"dynamodb:Describe*",
"dynamodb:List*",
"ec2:Describe*",
"ec2:Get*",
"elasticloadbalancing:Describe*",
"iam:Generate*",
"iam:Get*",
"iam:List*",
"iam:Simulate*",
"kms:Describe*",
"kms:Get*",
"kms:List*",
"lambda:Get*",
"lambda:List*",
"logs:Describe*",
"logs:Get*",
"rds:Describe*",
"rds:List*",
"redshift:Describe*",
"route53:Get*",
"route53:List*",
"s3:Get*",
"s3:List*",
"ses:Get*",
"ses:List*",
"sns:Get*",
"sns:List*",
"sqs:Get*",
"sqs:List*",
"ssm:Describe*",
"ssm:Get*",
"ssm:List*"
],
"Resource": "*"
}
]
}
ScoutSuite の実行
AWS 全体のスキャン
scout aws
特定のサービスのみをスキャン
scout aws --services s3 iam ec2 rds
特定のリージョンをスキャン
scout aws --regions us-east-1 us-west-2 eu-west-1
クロスアカウントスキャンでロールを引き受ける
scout aws --profile target-account-profile
スキャンから特定のサービスを除外
scout aws --skip iam ec2
出力ディレクトリの指定
scout aws --report-dir /tmp/scoutsuite-reports/
レポートの分析
ScoutSuite は、ローカルに保存されるインタラクティブな HTML レポートを生成します。レポートには次の内容が含まれます。
- ダッシュボード:重大度(危険、警告、良好)別の検出結果の概要
- サービスレベルの検出結果:AWS サービス(IAM、S3、EC2、RDS など)別にグループ化された検出結果
- ルールベースのチェック:各検出結果はセキュリティのベストプラクティスルールに対応しています
- リソースインベントリ:列挙されたリソースの完全な一覧
レポートで確認すべき主な領域
| サービス | 重要なチェック項目 |
|---|---|
| IAM | ルートアカウントの MFA、パスワードポリシー、未使用の認証情報、過剰な権限を持つポリシー |
| S3 | パブリックバケット、暗号化されていないバケット、バージョニングの無効化、ロギングの無効化 |
| EC2 | 0.0.0.0/0 を許可するセキュリティグループ、暗号化されていない EBS ボリューム、パブリック IP |
| RDS | パブリックアクセスの可否、暗号化されていないデータベース、バックアップの保持期間 |
| CloudTrail | ロギングの無効化、ログファイルの検証、マルチリージョンの無効化 |
| Lambda | パブリックアクセス、環境変数内のシークレット、VPC の設定 |
検出結果の解釈
重大度レベル
- 危険(赤):直ちに修正が必要な重大なセキュリティ問題(例:パブリックな書き込みアクセスが可能な S3 バケット)
- 警告(オレンジ):対処が必要な中程度のリスクに関する検出結果(例:未使用の IAM アクセスキー)
- 良好(緑):適切に設定されているセキュリティのベストプラクティス
よくある高リスクの検出結果
- MFA が設定されていない IAM ルートアカウント:AWS ルートアカウントで多要素認証が有効になっていません
- S3 バケットポリシーがパブリックアクセスを許可している:Principal が「*」に設定されたバケットポリシー
- セキュリティグループが制限のない SSH を許可している:ポート 22 で 0.0.0.0/0 からのインバウンドルールを許可
- すべてのリージョンで CloudTrail が有効になっていない:監査ログの欠落により、監視されない API アクティビティが発生する可能性があります
- RDS インスタンスがパブリックにアクセス可能:インターネットからデータベースエンドポイントに到達できます
修正ワークフロー
- ScoutSuite のスキャンを実行してベースラインを確立します
- 検出結果をエクスポートし、重大度に応じて優先順位を付けます
- 危険および警告の検出結果について、修正チケットを作成します
- 修正を実施します(セキュリティグループの更新、暗号化の有効化、アクセスの制限)
- ScoutSuite を再実行して、修正を検証します
- 定期的なスキャンを予定します(毎週、またはインフラストラクチャの変更後)
CI/CD との統合
# Run ScoutSuite in CI/CD pipeline and fail on danger findings
scout aws --services s3 iam ec2 --no-browser --report-dir ./scout-report/
# Parse results programmatically
python -c "
import json
with open('./scout-report/scoutsuite-results/scoutsuite_results.json') as f:
results = json.load(f)
for service in results.get('services', {}):
findings = results['services'][service].get('findings', {})
for finding_id, finding in findings.items():
if finding.get('flagged_items', 0) > 0 and finding.get('level') == 'danger':
print(f'CRITICAL: {finding_id} - {finding.get(\"description\", \"\")}')
"
マルチクラウド機能
ScoutSuite は、同じフレームワークを使用して複数のクラウドプロバイダーに対応しています。
# Azure
scout azure --cli
# GCP
scout gcp --user-account
# AWS with specific profile
scout aws --profile production
参考資料
- ScoutSuite GitHub リポジトリ:https://github.com/nccgroup/ScoutSuite
- AWS セキュリティ監査チェックリスト
- CIS AWS Foundations Benchmark
- AWS Well-Architected Security Pillar
コメント
Markdown 対応