amaruxia42/cloud_and_network_automation

GitHub: amaruxia42/cloud_and_network_automation

一款轻量级 AWS 云安全态势审计工具包,对核心 AWS 服务进行配置检查并映射到 CIS 和 NIST 安全框架,输出分级合规报告。

Stars: 0 | Forks: 0

# AWS 安全基准审计工具包 (Lite CSPM) 一款半自动化、轻量级的**云安全态势管理 (CSPM)** 工具,旨在根据行业标准基准审计核心 AWS 服务(IAM、S3、VPC、DynamoDB 和 CloudTrail)。 本项目通过根据行业最佳实践和安全框架(如 **CIS AWS Foundations** 和 **NIST 800-53**)审计 AWS 资源,展示了实用的云安全工程。它使用 **Python 3.14** 和 **Boto3** 构建。 ## 🎯 目标 - **识别配置错误:** 自动检测常见的 AWS 安全漏洞。 - **框架映射:** 将技术发现与安全框架(CIS、NIST)对齐。 - **结构化报告:** 生成格式统一、具有可操作性的 JSON 和 CSV 审计报告。 - **可扩展设计:** 展示能够审计复杂环境的模块化架构。 ## 🧱 架构 每个 AWS 服务均由专门的审计模块处理,以确保隔离性和易于维护。全局逻辑(Boto3 客户端、日志记录和合规性映射)集中在 `shared` 包中,以保持符合“DRY”(不要重复自己)原则的代码库。 - **服务隔离:** 模块相互解耦;添加新的服务审计(例如 RDS)无需对现有模块进行任何更改。 - **合规即代码:** 集中的映射逻辑将 Boto3 响应直接链接到 **CIS AWS Foundations** 和 **NIST 800-53** 控制措施。 - **并行执行:** 利用 Python 的线程功能跨多个服务同时审计大型环境。 - **统一 Schema:** 无论哪种服务,所有发现结果都会以一致且可直接用于报告的结构返回。 ![AWS 工具包架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/18/1800a19060515cfcf43606d831dad4f27d4ba38fc2059f924573834dc6926c47.png) ## 📂 项目结构 ``` network_and_cloud_automation/ ├── cloud_security_automation/ # Main Package │ ├── aws_cloudtrail_audit/ # Individual Audit Modules │ ├── aws_dynamodb_audit/ │ ├── aws_ec2_audit/ │ ├── aws_iam_audit/ │ ├── aws_vpc_audit/ │ ├── shared/ # Core Utilities │ │ ├── Results/ # Default output directory │ │ ├── audit_cli.py # Entry point (CLI Logic) │ │ ├── aws_clients.py # Thread-safe Boto3 wrappers │ │ ├── frameworks.py # CIS/NIST mapping logic │ │ ├── logger.py # Structured logging │ │ └── report.py # JSON/CSV generator │ └── tests/ # Pytest suite ├── terraform/ # IaC for Audit Verification │ ├── dynamodb/ │ ├── ec2/ │ ├── s3/ │ ├── vpc/ │ └── provider.tf # Global provider config ├── pyproject.toml # Project metadata & builds └── requirements.txt # Dependency list ``` 🚀 快速开始 📦 要求与前置条件 注意:Python、Terraform 和 AWS CLI 的安装说明不在本 README 的讨论范围内 - Python 3.13+:利用现代类型提示和性能改进。 - Terraform 1.5+:用于配置测试环境。 - AWS CLI:配置有有效的凭证和默认区域。 - 注意:出于安全考虑,强烈建议使用具有托管 ReadOnlyAccess 策略的 IAM 用户或角色。 🛠️ 安装说明 1. 克隆仓库: ``` git clone https://github.com/amaruxia42/cloud_and_network_automation.git && cd cloud_and_network_automation ``` 2. 环境设置:创建并激活虚拟环境以在本地管理依赖项: ``` # 创建环境 python3 -m venv .venv # 激活环境 source .venv/bin/activate ``` 3. 安装依赖项:以可编辑模式安装工具包。这确保 shared 和 audit 模块在您的 Python 路径中正确注册: ``` pip install -e . ``` 💻 用法 该工具包作为模块从根目录执行。这可确保所有内部路径和导入都能正确解析。 完整审计(所有服务): ``` python3 -m cloud_security_automation.shared.audit_cli ``` 定向审计(特定服务): ``` python3 -m cloud_security_automation.shared.audit_cli --services s3 iam --format json ``` 🏗️ 基础设施测试 为了确保 CSPM 审计逻辑的准确性,本项目采用双重测试策略:使用 Terraform 进行资源配置,使用 Pytest 进行功能验证。 🛠️ 配置测试资源 (Terraform) 对于需要物理资源来验证配置错误的服务(例如公开的 S3 存储桶),terraform/ 目录中提供了 Terraform 模块。 支持的服务:S3、DynamoDB、EC2 和 VPC。 1. 导航至其中一个服务目录并初始化 terraform: ``` # 导航到 target service cd terraform/s3 # 初始化工作目录 terraform init ``` 2. 部署“易受攻击的”基础设施 应用配置以在您的 AWS 账户中创建测试资源。此处使用 -auto-approve 标志以提高速度: ``` terraform apply -auto-approve ``` 3. 验证审计: 针对“易受攻击的”基础设施执行该工具包,以确认检测的准确性。 ``` python3 -m cloud_security_automation.shared.audit_cli --services S3 IAM --format json ``` 4. 审查结果 发现结果会自动保存到 Results/ 目录中,并附带唯一的时间戳。您可以通过检查生成的文件来验证检测结果: ``` # 示例输出位置 ls cloud_security_automation/shared/Results/ ``` 5. 清理(销毁) 为避免产生不必要的 AWS 成本,一旦验证完审计结果,请务必销毁测试基础设施: ``` terraform destroy ``` 🧪 功能测试 (Pytest) 主要用于 IAM 和 CloudTrail 逻辑,在这些逻辑中,API 模拟比资源配置更高效。 ``` pytest ``` 🛡️ 合规性映射与框架 支持的框架 - CIS AWS Foundations Benchmark (v3.0.0):侧重于身份管理、日志记录和网络连接最佳实践。 - NIST Special Publication 800-53:将技术配置映射到联邦安全控制措施(例如,用于账户管理的 AC-2)。 严重性分类 根据环境影响对发现结果进行优先级排序: - Critical:紧急风险(例如,禁用了 Root 账户的 MFA)。 - High:重大暴露(例如,具有公开读/写访问权限的 S3 存储桶)。 - Medium:配置漂移(例如,具有过于宽泛规则的安全组)。 - Low:最佳实践优化。 ⚠️ 免责声明 本工具仅供审计和教育目的使用。在生产环境中应用更改之前,请务必验证发现的结果。 作者 Robert Wright 云/网络安全爱好者 GitHub:@amaruxia42 许可证 在 Unlicense 下分发。有关更多信息,请参见 LICENSE.txt。
标签:AWS, Boto3, CSPM, DPI, Python, TinkerPop, 无后门, 逆向工具