octodemo/demo-java-war-ghas

GitHub: octodemo/demo-java-war-ghas

一个刻意包含已知漏洞依赖的 Java Maven WAR 应用程序,用于演示 Syft SBOM 生成与 GitHub Advanced Security 的漏洞发现和代码扫描能力。

Stars: 0 | Forks: 0

# Java WAR 示例 — GHAS 与 Syft SBOM 演示 一个最小化的 Maven WAR 应用程序,包含刻意**过时的依赖项**,用于演示: - **Syft** 从 WAR 文件生成 SBOM - **GitHub Advanced Security (GHAS)** — Dependabot 告警、CodeQL 代码扫描 - 企业级 Java 应用的依赖项漏洞发现 ## 包含的易受攻击依赖项 | 库 | 版本 | CVE | 严重程度 | 常见名称 | |---------|---------|-----|----------|-------------| | `log4j-core` | 2.14.1 | CVE-2021-44228 | 严重 | Log4Shell | | `log4j-core` | 2.14.1 | CVE-2021-45046 | 严重 | Log4Shell 变种 | | `spring-webmvc` | 5.3.17 | CVE-2022-22965 | 严重 | Spring4Shell | | `commons-text` | 1.9 | CVE-2022-42889 | 严重 | Text4Shell | | `jackson-databind` | 2.13.0 | CVE-2022-42003 | 高危 | — | | `snakeyaml` | 1.29 | CVE-2022-25857 | 高危 | — | ## 前置条件 - Java 11+ - Maven 3.8+ - [Syft](https://github.com/anchore/syft)(在 macOS 上使用 `brew install syft`) ## 构建 ``` mvn package -DskipTests # 输出:target/demo-java-war.war ``` ## Syft SBOM 生成 ### 表格视图(快速扫描) ``` syft scan target/demo-java-war.war -o table ``` ### CycloneDX JSON ``` syft scan target/demo-java-war.war -o cyclonedx-json=sbom.cdx.json ``` ### SPDX JSON ``` syft scan target/demo-java-war.war -o spdx-json=sbom.spdx.json ``` ### 通过管道传递给 Grype 进行漏洞匹配 ``` syft scan target/demo-java-war.war -o cyclonedx-json | grype ``` ## GitHub Actions 每次推送到 `main` 分支时,工作流会: | 工作流 | 功能描述 | |----------|--------------| | `build-and-sbom.yml` | 构建 WAR、运行 Syft、将 CycloneDX + SPDX SBOM 作为制品上传 | | `codeql.yml` | 运行 CodeQL Java 分析,将结果上传至 GitHub Security 标签页 | SBOM 制品可以从 **Actions** 标签页 → 最新运行记录 → **Artifacts** 中下载。 ## 演示的 GHAS 功能 ### Dependabot 告警 导航至 **Security → Dependabot alerts** 以查看在 `pom.xml` 中检测到的所有 CVE。 ### CodeQL 代码扫描 导航至 **Security → Code scanning alerts** 以查看来自 CodeQL Java 分析的任何结果。 ### Secret 扫描 公共仓库默认启用此功能 — 任何意外提交的凭据都将显示在 **Security → Secret scanning alerts** 下。
标签:DevSecOps, JS文件枚举, Maven, SBOM, 上游代理, 依赖安全审计, 域名枚举, 漏洞靶场, 漏洞验证, 硬件无关, 示例项目, 防御检测