저자는 보안 구성이 Maven 프로젝트 전반에 걸쳐 일관되지 않게 되는 문제를 "보안 빌드 드리프트(security build drift)"로 정의하며, 이는 자동화와 유사하지만 통일성이 부족한 상태라고 설명합니다. 저자는 분산된 파이프라인 스크립트에 의존하는 대신 보안 워크플로우를 Maven 라이프사이클에 통합하기 위해 "secure-maven-extension"을 개발했습니다. `.mvn/extensions.xml`을 통해 로드되는 이 핵심 확장 기능은 afterProjectsRead 단계에서 보안 규칙을 주입하여 JaCoCo, SonarQube, Dependency-Check, CycloneDX와 같은 도구에 대한 일관된 구성을 가능하게 합니다. 이 확장은 단일 스타일을 강요하기보다는 일관성을 우선시하는 다양한 구성 소스를 지원하며, 로컬 및 CI/CD에서 동일한 보안 동작이 적용되도록 보장합니다. 이는 빌드가 보안을 인지하지 못하고 파이프라인이 스캐너를 주변에서 호출하는 것만 하는 것을 방지하는 커버리지 구성 및 SonarQube 메타데이터 설정과 같은 작업을 자동화합니다. 멀티 모듈 프로젝트의 경우, 이 확장은 애플리케이션의 형태에 맞춰 SBOM 생성 및 종속성 분석을 처리합니다. 이 접근 방식은 CI/CD 파이프라인을 단순화하여 주로 실행 계층으로 만들고, Maven 빌드 자체가 보안 관행을 강제하도록 합니다. 커밋 전 후크 및 Gitleaks와 같은 도구는 커밋 전에 유출을 감지하는 데 사용됩니다. 이 계층화된 모델은 빌드 프로세스 중에 보안을 우선시하여 애플리케이션 보안 관행의 신뢰성과 일관성을 향상시킵니다.
dev.to
Making Maven Builds Security-Aware: AppSec Checks Without CI/CD Drift
Create attached notes ...
