关于 performing-aws-account-enumeration-with-scout-suite
此安全技能介绍如何使用 ScoutSuite 审计 AWS 账户、枚举资源,并通过本地交互式报告检查配置风险,面向安全审计人员。内容涵盖扫描和修复验证流程。
主要功能
- 01审计 AWS 配置
- 02按服务和区域扫描
- 03通过角色扫描其他账户
- 04生成本地交互式 HTML 报告
- 05按风险等级和规则检查
适用场景
- 01盘点 AWS 资源与配置
- 02评估 IAM、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 无需安装 Agent,通过分析云资源的配置、访问和监控方式来工作。
何时使用
- 当开展涉及使用 ScoutSuite 执行 AWS 账户枚举的安全评估时
- 当遵循相关安全事件的事件响应流程时
- 当执行定期安全测试或审计活动时
- 当通过动手测试验证安全控制措施时
前提条件
- 已安装 Python 3.6+
- 已使用适当的 IAM 凭据配置 AWS CLI
- 对目标 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 策略
将 AWS 托管策略 SecurityAudit 和 ViewOnlyAccess 附加到运行 ScoutSuite 的 IAM 用户或角色。如需进行全面扫描,可能需要自定义策略:
{
"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 访问密钥)
- 良好(绿色):已正确配置的安全最佳实践
常见高风险发现
- IAM 根账户未启用 MFA: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 安全支柱
评论
支持 Markdown