SeifMoussa/cloud-infrastructure-hardening-lab

GitHub: SeifMoussa/cloud-infrastructure-hardening-lab

一个纯离线的防御性云基础设施配置审查工具,用于扫描合成IaC文件以检测错误配置、评估风险并生成带有修复建议的报告。

Stars: 0 | Forks: 0

# 云基础设施加固实验室 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/67feb308c0042657.svg)](https://github.com/SeifMoussa/cloud-infrastructure-hardening-lab/actions/workflows/ci.yml) [![CodeQL](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ca0e6a23de042703.svg)](https://github.com/SeifMoussa/cloud-infrastructure-hardening-lab/actions/workflows/codeql.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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, 上游代理, 关系图谱, 基线检查, 恶意代码分类, 无后门, 逆向工具