检测 Azure 存储账户错误配置
概述
Azure 存储账户因公开访问配置错误、长期 SAS 令牌、缺失加密和过时 TLS 版本而成为攻击者的常见目标。本 skill 使用 azure-mgmt-storage Python SDK 配合 StorageManagementClient,枚举订阅中的所有存储账户,检查其安全属性,列出 blob 容器的公开访问设置,并生成一份风险评分审计报告,识别关键错误配置。
前置条件
- Python 3.9+ 及
azure-mgmt-storage、azure-identity - 在目标订阅上具有读取者角色的 Azure 服务主体
- 环境变量:AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET、AZURE_SUBSCRIPTION_ID
关键检测领域
- 公开 blob 访问 — 存储账户上启用了
allow_blob_public_access,或单个容器设置为 Blob/Container 访问级别 - HTTPS 强制执行 —
enable_https_traffic_only被禁用,允许未加密的 HTTP 流量 - 最低 TLS 版本 — 账户接受 TLS 1.0 或 TLS 1.1 而不是最低 TLS 1.2
- 静态加密 — 未启用存储服务加密或缺少客户管理的密钥
- 网络规则 — 默认操作设置为允许而不是拒绝,将存储暴露给所有网络
- SAS 令牌风险 — 具有过于宽泛权限或过长生命周期的账户级 SAS
输出格式
包含每个账户发现、严重性评级(严重/高/中/低)以及符合 CIS Azure Benchmark 控制项的修复建议的 JSON 报告。