La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Productividad · 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

Documentación 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 guardadas