RSS DEV 社区

使 Maven 构建具备安全感知能力:无需 CI/CD 漂移即可实现应用安全检测

Follow
作者将“安全构建漂移”(security build drift)定义为 Maven 项目中安全配置不一致的问题,其表现类似于自动化但缺乏统一性。为此,作者创建了"secure-maven-extension",旨在将安全工作流集成到 Maven 生命周期中,而非依赖分散的流水线脚本。该核心扩展通过 `.mvn/extensions.xml` 加载,在 afterProjectsRead 阶段注入安全约定,从而为 JaCoCo、SonarQube、Dependency-Check 和 CycloneDX 等工具实现一致的配置。该扩展支持多种配置来源,优先保证一致性而非强制单一风格,并确保相同的安全行为在本地和 CI/CD 环境中一致应用。它自动化了覆盖率配置和 SonarQube 元数据设置等任务,避免了构建过程缺乏安全意识以及流水线仅围绕构建调用扫描器的情况。对于多模块项目,该扩展处理 SBOM 生成和依赖分析,使其与应用结构对齐。这种方法简化了 CI/CD 流水线,使其主要作为执行层,而 Maven 构建本身则强制执行安全实践。预提交钩子和 Gitleaks 等工具用于在提交前捕获泄露。这种分层模型优先在构建过程中实施安全,从而提升了应用安全实践的可靠性和一致性。
favicon
dev.to
Making Maven Builds Security-Aware: AppSec Checks Without CI/CD Drift