mackeh/FortressCI

GitHub: mackeh/FortressCI

FortressCI 是一个默认安全的 DevSecOps 平台蓝图,集成了多款开源安全工具并提供 AI 智能分析和自动化修复能力,帮助团队在软件开发生命周期中实现安全左移。

Stars: 0 | Forks: 0

# FortressCI:DevSecOps 平台 FortressCI 是一个默认安全的 DevSecOps 平台蓝图,旨在实现“Shift Left”安全、自动化管道和基础设施保护。它集成了顶尖的开源安全工具,确保您的代码和基础设施从第一天起就是安全的。 ## 功能特性 ### 阶段 1:Shift Left(本地开发) 在代码提交前拦截问题。 - **秘密检测**:[TruffleHog](https://github.com/trufflesecurity/trufflehog) 扫描硬编码的凭据。 - **代码质量**:用于检测尾随空格和文件完整性的标准钩子。 - **IaC 扫描**:[Checkov](https://www.checkov.io/) 在本地运行,以捕获 Terraform/CloudFormation/Bicep 问题。 ### 阶段 2:自动化管道 (CI/CD) 在每次推送和拉取请求时跨 **6 个 CI 平台** 进行自动检查。 - **秘密扫描**:对 git 历史记录进行 TruffleHog 深度扫描。 - **SAST**:[Semgrep](https://semgrep.dev/) 扫描源代码中的漏洞(OWASP Top 10)。 - **SCA**:[Snyk](https://snyk.io/) 检查依赖项是否存在已知 CVE。 - **IaC 扫描**:Checkov 扫描 Terraform、CloudFormation、Kubernetes 和 Bicep 清单。 - **容器安全**:[Trivy](https://github.com/aquasecurity/trivy) 扫描 Docker 镜像中的操作系统和库漏洞。 - **DAST**:[OWASP ZAP](https://www.zaproxy.org/) 基线扫描,用于检测运行时攻击面。 - **签名**:[Cosign](https://github.com/sigstore/cosign) 对容器镜像进行签名。 - **SBOM**:[Syft](https://github.com/anchore/syft) 生成 SPDX/CycloneDX 物料清单。 - **来源证明**:通过 slsa-github-generator 获得的 [SLSA](https://slsa.dev/) Level 3 构建来源证明。 ### 阶段 3:平台与智能 - **AI 分类**:通过 LLM 自动分析发现并确定优先级。 - **DevSecOps 采用路线图**:包含成熟度和可行性评分的 30/60/90 天优先计划。 - **自动修复**:自我修复管道,可开启 PR 以修复漏洞。 - **跨仓库分析器**:跨多个仓库分析共享依赖项和漏洞热点。 - **安全仪表板**:安全态势和趋势的实时可视化。 - **MCP Server**:AI 助手查询安全数据的原生集成。 - **豁免治理**:过期/即将过期的豁免检测,以及带有策略执行的可审计例外。 - **差异感知扫描**:基于更改的文件类型跳过无关扫描器的 PR 范围扫描。 ## 快速开始 ### 选项 1:设置向导(推荐) ``` git clone https://github.com/mackeh/FortressCI.git cd FortressCI # 运行交互式向导 — 检测您的项目类型和 CI 平台 ./scripts/fortressci-init.sh ``` 向导会生成: - 适用于您平台的 CI/CD 工作流文件 - `.pre-commit-config.yaml`(本地钩子) - `.security/` 配置(策略、豁免、合规映射、falco 规则) - `.fortressci.yml`(严重性阈值和扫描器配置) 验证您的设置: ``` ./scripts/fortressci-doctor.sh --workspace . ``` ### 选项 2:Docker 本地扫描 在单个容器中本地运行所有安全扫描: ``` # 构建一体化扫描器镜像 docker build -t fortressci/scan . # 扫描您的项目(结果输出到 ./results/) docker run --rm \ -v $(pwd):/workspace \ -v $(pwd)/results:/results \ fortressci/scan /workspace ``` 这将运行全套工具,包括 AI 分类、SBOM 生成、阈值把关和采用路线图。 扫描器镜像与主仓库扫描流程分开维护: - `.github/workflows/devsecops.yml` 是面向应用的参考管道。 - `.github/workflows/scanner-image.yml` 构建并检查 FortressCI 扫描器镜像本身。 - 扫描器镜像的 Trivy 发现目前仅作为报告,当上游工具供应商尚未发布修复的二进制文件时,会在 `.security/scanner-image-waivers.md` 中进行跟踪。 ## Azure DevOps 集成 FortressCI 在 `templates/azure/azure-pipelines.yml` 中提供了 Azure DevOps 管道模板。 ``` # 在您的仓库中生成 Azure pipeline + FortressCI 配置 ./scripts/fortressci-init.sh --ci azure ``` Azure 管道: - 在 CI 中构建 `fortressci/scan`。 - 运行带有策略门的完整 FortressCI 扫描。 - 在扫描前验证所需的秘密(`SNYK_TOKEN`)。 - 将 `results/` 发布为构建产物,包括 `adoption-roadmap.json`、`adoption-roadmap.md` 以及 IaC SARIF 输出(如 `bicep.sarif`)。 对于 FortressCI 仓库本身,扫描器镜像维护由专门的 `Scanner Image Maintenance` 工作流处理,因此根镜像 CVE 不会污染主仓库的代码扫描流程。 ## 质量与测试 在开启 PR 之前运行本地质量检查: ``` pre-commit run --all-files bash -n scripts/*.sh python3 -m compileall scripts ``` 运行脚本测试套件: ``` python3 -m pip install -U pytest pytest -q tests/python bats tests/bash ``` CI 现在运行: - `quality-lint`:actionlint + shellcheck + yamllint - `script-tests`:pytest + bats ## 安全评分 FortressCI 根据发现和实践计算实时的安全等级(A+ 到 F)。 ``` # 生成您的安全徽章 ./scripts/generate-badge.py ``` ![FortressCI Badge](https://img.shields.io/badge/FortressCI-A%2B%20(95)-brightgreen) ## 策略即代码 在 `.security/policy.yml` 中定义组织安全策略。策略在扫描期间执行,并可以阻断您的管道。 ``` # 运行策略执行 ./scripts/fortressci-policy-check.sh .security/policy.yml results/ ``` ## 设置健康检查 使用 `fortressci doctor` 在 CI 中执行策略门之前验证本地就绪情况。 ``` # 本地健康检查(文件、hooks、工具、secrets) ./scripts/fortressci-doctor.sh --workspace . # 可选:包含 GitHub branch protection 探测 ./scripts/fortressci-doctor.sh --workspace . --check-remote ``` 使用 `--strict` 将警告视为失败: ``` ./scripts/fortressci-doctor.sh --workspace . --strict ``` ## 合规性报告 将技术发现映射到监管框架(SOC2、NIST、OWASP)。 ``` # 生成合规报告 python3 scripts/generate-compliance-report.py results/ .security/compliance-mappings.yml ``` ## 自动修复 FortressCI 可以自动应用修复程序以解决依赖项和 IaC 漏洞。 ``` # 尝试自动修复 ./scripts/auto-fix.sh ``` ## AI 驱动的分类 使用 LLM 解释复杂的漏洞并确定修复优先级。 ``` # 运行 AI triage(需要 ANTHROPIC_API_KEY) python3 scripts/ai-triage.py --results-dir results/ --config .fortressci.yml ``` ## DevSecOps 采用路线图 生成具有成熟度和可行性评分的实用、优先级明确的采用计划。 ``` python3 scripts/generate-adoption-roadmap.py --results-dir results/ --workspace . --config .fortressci.yml ``` 输出: - `results/adoption-roadmap.json`(带有评分和优先级的机器可读路线图) - `results/adoption-roadmap.md`(人类可读的 30/60/90 计划) ## 跨仓库依赖风险分析 使用来自多个仓库的 SBOM 和 SCA 输出来查找可能产生系统性风险的共享依赖热点。 ``` # 分析 ./org-results 下所有包含 sbom-source.cdx.json 的子目录 # 如果存在同级的 sca.json 文件,已知的有漏洞依赖也会被关联。 python3 scripts/cross-repo-analyzer.py --dir ./org-results --top 25 ``` 输出:`./org-results/cross-repo-analysis.json` ## 仓库结构 ``` . ├── .github/ │ ├── workflows/devsecops.yml # Primary GitHub Actions pipeline │ └── scripts/post_summary.js # PR comment posting script ├── .security/ │ ├── policy.yml # Policy-as-code definitions │ ├── waivers.yml # Security finding exceptions │ ├── compliance-mappings.yml # Framework mapping definitions │ └── falco-rules.yaml # Runtime security rules ├── dashboard/ # Security Operations Dashboard ├── playground/ # Interactive Browser Playground ├── examples/ # Vulnerable sample apps (Node/Python/TF) ├── integrations/ │ └── mcp-server/ # Model Context Protocol server ├── scripts/ │ ├── fortressci-init.sh # Setup wizard CLI │ ├── fortressci-doctor.sh # Health checks for local/CI readiness │ ├── run-all.sh # Docker scan orchestrator │ ├── changed-files.sh # PR diff-aware file detection │ ├── ai-triage.py # AI findings analysis │ ├── auto-fix.sh # Automated remediation │ ├── cross-repo-analyzer.py # Shared dependency risk analysis │ ├── generate-badge.py # Security scoring & badges │ ├── generate-adoption-roadmap.py # DevSecOps roadmap + feasibility scoring │ ├── generate-sbom.sh # SBOM generator │ ├── fortressci-policy-check.sh # Policy enforcement (incl. waiver governance) │ ├── generate-report.py # HTML report generator │ └── check-pinning.sh # Supply chain pinning checker ├── tests/ │ ├── python/ # Pytest suite for Python scripts │ └── bash/ # Bats suite for shell scripts ├── templates/ # CI/CD and config templates ├── .fortressci.yml # Global project configuration └── Dockerfile # All-in-one scanner image ``` ## CI/CD 秘密 | Secret | 必需 | 用途 | |--------|----------|---------| | `SNYK_TOKEN` | 用于 SCA 扫描 | [获取 token](https://app.snyk.io/account) | | `ANTHROPIC_API_KEY` | 用于 AI 分类 | [获取 key](https://console.anthropic.com/) | | `COSIGN_KEY` | 用于镜像签名 | 使用 `./scripts/generate_keys.sh` 生成 | | `INFRACOST_API_KEY` | 用于成本估算 | [获取 token](https://www.infracost.io/) | ## 贡献 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 和我们的 [行为准则](CODE_OF_CONDUCT.md)。
标签:AI安全分析, Chrome Headless, CI/CD安全, CISA项目, Cosign, DAST, DevSecOps, ECS, IaC扫描, Kubernetes安全, Llama, OWASP ZAP, SAST, SBOM, Semgrep, Shift Left, SLSA, Snyk, StruQ, Syft, Terraform, TruffleHog, Web截图, WordPress安全扫描, 上游代理, 云安全监控, 学术论文, 安全漏洞利用, 容器安全, 应用安全, 恶意软件分析, 数据可视化, 文档安全, 活动识别, 盲注攻击, 硬件无关, 自动修复, 自动化合规, 请求拦截, 软件供应链安全, 远程方法调用, 逆向工具, 镜像扫描, 静态分析