cdxgen

    cdxgen은 OWASP(Open Web Application Security Project)가 관리하는 오픈소스 SBOM 생성 도구입니다. 소스 코드, 빌드 결과물, 컨테이너 이미지를 분석하여 CycloneDX 형식의 SBOM을 자동으로 생성합니다.

    주요 특징

    • 광범위한 언어·생태계 지원: Java(Maven/Gradle), Node.js, Python, Go, Rust, PHP, Ruby, .NET 등 20개 이상
    • 다양한 스캔 대상: 소스 코드 디렉토리, 컨테이너 이미지, GitHub 저장소
    • CycloneDX 표준 출력: CycloneDX 1.4/1.5/1.6 JSON 및 XML 형식 지원
    • REPL 모드: 대화형 인터페이스로 SBOM 탐색 및 조회 가능
    • CI/CD 통합: GitHub Actions, GitLab CI 등 주요 파이프라인과 쉽게 연동

    설치 방법

    Node.js 18 이상이 설치된 환경에서 아래 명령으로 설치합니다.

    npm install -g @cyclonedx/cdxgen
    

    또는 Docker 이미지를 사용할 수 있습니다.

    docker pull ghcr.io/cyclonedx/cdxgen
    

    기본 사용법

    (1) 소스 코드 디렉토리 스캔

    # 현재 디렉토리 스캔 후 CycloneDX JSON SBOM 생성
    cdxgen -o sbom.json .
    
    # 언어 명시 스캔 (자동 감지 실패 시)
    cdxgen -t java -o sbom.json /path/to/project
    

    (2) 컨테이너 이미지 스캔

    cdxgen -t docker -o sbom.json ubuntu:22.04
    

    (3) GitHub 저장소 스캔

    cdxgen -t github -o sbom.json https://github.com/org/repo
    

    (4) REPL 모드로 SBOM 탐색

    cdxgen --repl -o sbom.json .
    

    CI/CD 연동 예시

    # GitHub Actions 예시
    - name: Generate SBOM with cdxgen
      run: |
        npm install -g @cyclonedx/cdxgen
        cdxgen -o sbom.json .
    - name: Upload SBOM
      uses: actions/upload-artifact@v4
      with:
        name: sbom
        path: sbom.json
    

    참고 자료