정적 도달 가능성 분석
SBOM 의존성에서 도달 가능한 취약점을 식별하여 수정 우선순위를 지정하는 정적 도달 가능성 분석.
히스토리 GitLab 17.5에서 실험 기능으로 도입 됨. GitLab 17.11에서 실험에서 베타로 변경 됨. GitLab 18.2 및 의존성 스캐닝 분석기 v0.32.0에서 JavaScript 및 TypeScript 지원이 도입 됨. GitLab 18.5 및 의존성 스캐닝 분석기 v0.39.0에서 Java 지원이 도입 됨. GitLab 18.5에서 베타에서 제한 출시(LA)로 변경 됨. GitLab 18.8에서 Java 지원이 실험에서 베타로 변경 됨. GitLab 19.0에서 일반 공개 됨. 의존성 스캐닝은 프로젝트에서 취약한 의존성을 모두 식별합니다. 그러나 모든 취약점의 위험도가 같지는 않습니다. 정적 도달 가능성 분석은 취약한 패키지 중 애플리케이션이 실제로 가져다 쓰는, 즉 도달 가능한 패키지를 판별하여 조치 우선순위를 정하는 데 도움을 줍니다. 정적 도달 가능성 분석을 사용하면 도달 가능한 취약점에 집중하여, 이론적 위험이 아니라 실제 노출 위협을 기준으로 조치 우선순위를 정할 수 있습니다. 정적 도달 가능성 분석은 프로젝트의 소스 코드를 분석하여 SBOM의 의존성 중 어떤 것이 도달 가능한지 판별합니다. 의존성 스캐닝은 모든 구성 요소와 그 전이 의존성을 식별하는 SBOM 리포트를 생성합니다. 그런 다음 정적 도달 가능성 분석이 SBOM의 각 의존성을 확인하여 도달 가능성 값을 추가하고, 실제 사용 데이터로 리포트를 보강합니다. 보강된 이 SBOM은 GitLab에 수집되어 취약점 결과를 보완합니다. SBOM은 SBOM 파일과 소스 코드 파일이 동일한 프로젝트 디렉터리 트리에 속할 때만 보강됩니다. 중첩된 프로젝트가 여러 개 있으면 시스템은 가장 가까운(가장 깊은) 프로젝트 경로를 선택하여 보강 대상을 결정합니다. 정적 도달 가능성 분석은 Python 및 Java 패키지에 대해 SBOM의 패키지 이름을 해당 코드 임포트 경로에 매핑하는 메타데이터 에 의존합니다. 이 메타데이터는 매주 업데이트됩니다. 의견은 이슈 535498 에 남깁니다. 정적 도달 가능성 분석 켜기 # 사전 요구 사항: 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한이 있어야 합니다. 프로젝트가 지원되는 언어 및 패키지 관리자 를 사용해야 합니다. 의존성 스캐닝 분석기 0.39.0 이상 버전이어야 합니다(이전 버전도 특정 언어를 지원할 수 있습니다. 위 History 참고). 프로젝트에 SBOM을 사용한 의존성 스캐닝 이 켜져 있어야 합니다. Gemnasium 분석기는 지원되지 않습니다. 언어별 필수 요건: Python: 의존성 그래프 파일을 build Stage의 job 아티팩트로 제공해야 합니다. pip 또는 pipenv 안내를 참고합니다. 지원되는 그 밖의 Python 패키지 관리자는 의존성 스캐닝 분석기 문서 를 참고합니다. JavaScript 및 TypeScript: 리포지터리에 의존성 스캐닝 분석기가 지원하는 lockfile 이 있어야 합니다. Java: 의존성 그래프 파일을 build Stage의 job 아티팩트로