SeifMoussa/cloud-infrastructure-hardening-lab
GitHub: SeifMoussa/cloud-infrastructure-hardening-lab
一个纯离线的防御性云基础设施配置审查工具,用于扫描合成IaC文件以检测错误配置、评估风险并生成带有修复建议的报告。
Stars: 0 | Forks: 0
# 云基础设施加固实验室
[](https://github.com/SeifMoussa/cloud-infrastructure-hardening-lab/actions/workflows/ci.yml)
[](https://github.com/SeifMoussa/cloud-infrastructure-hardening-lab/actions/workflows/codeql.yml)
[](LICENSE)
云基础设施加固实验室(Cloud Infrastructure Hardening Lab)是一个纯防御性、纯离线的作品集项目,用于在本地工作站上审查合成的云配置文件。它专为本地学习、招聘方审查和安全的 GitHub 公开展示而设计。它不会连接到 AWS、Azure、GCP、Kubernetes 集群或任何第三方扫描服务。
CI/CodeQL 已配置,但尚未经过 GitHub 验证。工作流在本地存在,在代码仓库发布并在 GitHub 上运行之前,不应将其视为已通过。
## 项目摘要
本实验室针对合成的基础设施即代码和配置示例,模拟了一个小型的云安全审查工作流。该工具对本地文件进行盘点,验证合成安全标记,运行确定性的错误配置检查,通过评分和修复建议来丰富检测结果,并生成适合作品集展示的 Markdown 或 JSON 报告。
## 目标职位相关性
- 云安全工程师
- 安全工程师
- SOC / 蓝队分析师
- DevSecOps / 安全自动化相关职位
## 本项目展示的内容
- 为合成基础设施配置数据构建本地防御性扫描器
- 将云加固概念转化为确定性的检测逻辑
- 以严重性、评分、置信度和修复元数据的形式展示检测结果
- 生成易于招聘方阅读的 Markdown 报告和机器可读的 JSON 输出
- 通过测试和代码检查强制执行文档诚实性、样本安全性和本地质量门控
## 证据来源
- `samples/` 下的合成配置示例
- `src/cloud_hardening_lab/loaders/`、`validation.py` 和 `safety.py` 中的加载器和验证逻辑
- `src/cloud_hardening_lab/detectors/` 下的检测器
- `src/cloud_hardening_lab/scoring/` 和 `remediation/` 下的评分和修复逻辑
- `reports/examples/` 下的 Markdown 和 JSON 报告
- `tests/` 下的自动化测试
- `scripts/check-docs.py` 下的文档一致性检查
## 功能
- 跨多个示例文件夹和配置样式的本地文件清单
- 针对合成标记、虚假标识符的样本验证,以及对不安全内容的拒绝
- 针对 IAM 风格风险、公开暴露、存储加固、网络暴露和 Kubernetes 加固的检测规则
- 具有透明分数范围和评分原因的确定性评分
- 专注于加固意图而非特定云服务商实时命令的安全修复指南
- 支持 `--min-severity` 的 CLI 过滤
- 支持 `--fail-on` 的本地质量门控行为
- 生成用于公开作品集示例的 Markdown 和 JSON 报告
## 技术栈
- Python 3.12
- Pytest
- Coverage.py
- Ruff
- PyYAML
- 通过 Python 标准库 / 项目中已使用的兼容工具进行 TOML 解析
- 在本地配置的 GitHub Actions 和 CodeQL 工作流文件
## 支持的示例类型
- 类似 Terraform 的 `.tf` 原始文本
- 类似 CloudFormation 的 JSON/YAML
- Kubernetes YAML
- 通用的 JSON/YAML/TOML
## 安全边界
- 仅限防御和仅限离线
- 仅限本地合成文件
- 无实时云 API 调用
- 无实时的 AWS、Azure、GCP 或 Kubernetes API 调用
- 无真实凭据
- 无真实云账户
- 无第三方扫描
- 无攻击性用途
- 无提权说明
- 无真实云账户或生产环境
- 仅限合成配置
- 不能替代生产环境的 CSPM/CNAPP
## 检测类别
- IAM 风格的策略风险
- 公开暴露
- 存储加固
- 网络暴露
- Kubernetes 加固
## 评分与修复
每个检测结果都经过了确定性评分、严重性、置信度、评分依据以及简短的防御性修复说明的丰富。评分模型将结果保持在固定的严重性区间内,因此输出结果保持稳定,并且易于在面试或代码审查中进行解释。
## 报告生成
`report` 命令会将 Markdown 或 JSON 写入指定的本地输出路径。报告包括安全范围声明、扫描摘要、按严重性和类别划分的检测结果、详细的检测信息、修复指南以及局限性。公开安全的示例报告包含在 [`reports/examples/cloud_hardening_report.md`](reports/examples/cloud_hardening_report.md) 和 [`reports/examples/cloud_hardening_report.json`](reports/examples/cloud_hardening_report.json) 中。
这些示例报告是根据此代码仓库中合成示例集生成的真实本地输出。无需截图即可验证项目,也不应伪造截图。
## CLI 示例
```
python -m cloud_hardening_lab --help
python -m cloud_hardening_lab inventory --input samples --format json
python -m cloud_hardening_lab validate-samples --input samples
python -m cloud_hardening_lab scan --input samples --format json
python -m cloud_hardening_lab scan --input samples --format text
python -m cloud_hardening_lab scan --input samples --format json --min-severity high
python -m cloud_hardening_lab scan --input samples --format text --min-severity medium
python -m cloud_hardening_lab scan --input samples --format json --fail-on high
python -m cloud_hardening_lab report --input samples --output reports/examples/cloud_hardening_report.md --format markdown
python -m cloud_hardening_lab report --input samples --output reports/examples/cloud_hardening_report.json --format json
```
## 质量状态
- 105 个测试通过
- 97.89% 覆盖率
- 90% 覆盖率门控
- Ruff 检查通过
- 文档检查通过
## CI 和 CodeQL 状态
- 已在本地配置
- 在首次推送之前尚未经过 GitHub 验证
## 项目结构
```
cloud-infrastructure-hardening-lab/
|-- .github/
| |-- workflows/
| `-- dependabot.yml
|-- docs/
|-- reports/
| `-- examples/
|-- samples/
| |-- cloudformation/
| |-- generic/
| |-- kubernetes/
| `-- terraform/
|-- scripts/
|-- src/
| `-- cloud_hardening_lab/
| |-- detectors/
| |-- loaders/
| |-- models/
| |-- remediation/
| |-- reporting/
| `-- scoring/
|-- tests/
|-- README.md
|-- TESTING_REPORT.md
|-- PROJECT_COMPLETION_CHECKLIST.md
`-- CHANGELOG.md
```
## 已知局限性
- 检测器集合特意保持得小而透明,而不是广泛的 CSPM 覆盖。
- 类似 Terraform 的 `.tf` 文件将作为原始文本进行检查,而不是完全解析的 HCL 计划或状态。
- 该实验室不会向实时云账户进行身份验证,也无法验证运行时漂移。
- 本项目不能替代生产环境的 CSPM、CNAPP、Kubernetes 准入控制或托管的云安全监控。
- CI 和 CodeQL 已在本地配置,但在首次发布之前在 GitHub 上仍未经验证。
## 许可证
本项目基于 [MIT 许可证](LICENSE) 发布。
标签:DevSecOps, Python, 上游代理, 关系图谱, 基线检查, 恶意代码分类, 无后门, 逆向工具