L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

performing-aws-account-enumeration-with-scout-suite

performing-aws-account-enumeration-with-scout-suite

使用 ScoutSuite 对 AWS 账户进行全面的安全态势评估,枚举资源、识别配置错误并生成可操作的安全报告。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: performing-aws-account-enumeration-with-scout-suite description: 使用 ScoutSuite 对 AWS 账户进行全面的安全态势评估,枚举资源、识别配置错误并生成可操作的安全报告。 domain: cybersecurity subdomain: cloud-security tags: [aws, scoutsuite, cloud-security, enumeration, misconfiguration, security-audit, cspm, nccgroup] version: "1.0" author: mahipal license: Apache-2.0

使用 ScoutSuite 执行 AWS 账户枚举

概述

ScoutSuite 是由 NCC Group 开发的开源多云安全审计工具,能够对 AWS 环境进行全面的安全态势评估。它通过查询 AWS API 收集所有服务的配置数据,将结果存储在本地,并生成交互式 HTML 报告以突出显示高风险区域。ScoutSuite 是无代理的,通过分析云资源的配置方式、访问方式和监控方式来工作。

前置条件

  • 已安装 Python 3.6+
  • 配置了适当 IAM 凭据的 AWS CLI
  • 目标 AWS 服务的只读 IAM 权限(推荐使用 SecurityAudit 托管策略)
  • 用于安装 ScoutSuite 的 pip 包管理器
  • 能够访问 AWS API 端点的网络连接

安装与设置

安装 ScoutSuite

pip install scoutsuite

验证安装

scout --version

配置 AWS 凭据

aws configure
# 或使用环境变量:
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 报告,包含以下内容:

  1. 仪表板:按严重程度(危险、警告、正常)汇总的发现概览
  2. 服务级别发现:按 AWS 服务分组(IAM、S3、EC2、RDS 等)
  3. 基于规则的检查:每个发现对应一个安全最佳实践规则
  4. 资源清单:已枚举资源的完整列表

报告中需要重点审查的关键领域

服务关键检查项
IAM根账户 MFA、密码策略、未使用的凭据、过度授权的策略
S3公开桶、未加密桶、禁用版本控制、禁用日志记录
EC2允许 0.0.0.0/0 的安全组、未加密 EBS 卷、公网 IP
RDS公开访问性、未加密数据库、备份保留
CloudTrail日志记录禁用、日志文件验证、多区域禁用
Lambda公开访问、环境变量中的密钥、VPC 配置

解读发现结果

严重程度级别

  • 危险(红色):需要立即修复的严重安全问题(如 S3 存储桶允许公开写入访问)
  • 警告(橙色):应该处理的中等风险发现(如未使用的 IAM 访问密钥)
  • 正常(绿色):已正确配置的安全最佳实践

常见高风险发现

  1. IAM 根账户未启用 MFA:AWS 根账户未启用多因素认证
  2. S3 存储桶策略允许公开访问:Principal 设置为 "*" 的桶策略
  3. 安全组允许无限制 SSH 访问:端口 22 允许 0.0.0.0/0 的入站规则
  4. CloudTrail 未在所有区域启用:审计日志缺口导致 API 活动无法被监控
  5. RDS 实例可公开访问:数据库端点可从互联网访问

修复工作流

  1. 运行 ScoutSuite 扫描建立基线
  2. 导出发现结果并按严重程度排优先级
  3. 为危险和警告级别发现创建修复工单
  4. 实施修复(更新安全组、启用加密、限制访问)
  5. 重新运行 ScoutSuite 验证修复结果
  6. 安排定期扫描(每周或在基础设施变更后)

与 CI/CD 集成

# 在 CI/CD 流水线中运行 ScoutSuite,发现危险级别时失败
scout aws --services s3 iam ec2 --no-browser --report-dir ./scout-report/

# 以编程方式解析结果
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'严重: {finding_id} - {finding.get(\"description\", \"\")}')
"

多云能力

ScoutSuite 使用相同框架支持多个云提供商:

# Azure
scout azure --cli

# GCP
scout gcp --user-account

# AWS(使用特定配置文件)
scout aws --profile production

参考资料

Skills enregistrées