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:** 无论哪种服务,所有发现结果都会以一致且可直接用于报告的结构返回。

## 📂 项目结构
```
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, 无后门, 逆向工具