cyclonedx

1 개의 포스트

gitlab

SBOM 기반 종속성 스캔으로 공급망 위험 줄이기 (새 탭에서 열림)

오늘날 소프트웨어 공급망에서는 직접 선언한 패키지만 확인하는 기존 방식으로는 취약점의 유입 경로와 실제 위험 범위를 파악하기 어렵다. GitLab 19.0의 SBOM 기반 의존성 스캐닝은 직접·간접 의존성을 모두 목록화하고, 취약 패키지가 어떤 경로로 포함됐는지와 애플리케이션에서 실제 사용되는지를 분석한다. 이를 통해 개발자는 병합 전에 문제를 수정하고, 보안팀은 실제 노출 가능성이 높은 취약점부터 대응할 수 있다. ## SBOM 기반 의존성 스캐닝의 동작 방식 - 프로젝트의 서드파티 라이브러리와 패키지를 분석해 CycloneDX 형식의 SBOM을 생성한다. - 생성된 구성 요소를 GitLab Advisory Database와 대조해 알려진 취약점을 탐지한다. - 결과는 다음 위치에 표시된다. - 취약점을 유발한 변경 사항이 포함된 머지 리퀘스트 - 취약점 대시보드 - 보안 보고서 - SBOM과 의존성 스캐닝 보고서는 기계 판독이 가능해 컴플라이언스 보고나 다른 공급망 보안 도구와 연계할 수 있다. ## 전이 의존성의 유입 경로 추적 - 직접 추가한 패키지뿐 아니라 여러 단계로 중첩된 전이 의존성까지 분석한다. - 예를 들어 `library-a → library-b → library-c` 구조에서 `library-c`에 취약점이 있으면, 해당 패키지가 어떤 의존성 체인을 통해 들어왔는지 보여준다. - 취약점이 발견된 패키지를 직접 수정할지, 상위 의존성을 업데이트할지 등 적절한 개입 지점을 판단할 수 있다. ## 실제 코드 사용 여부에 따른 우선순위 지정 - 매니페스트나 빌드 파일에 존재한다고 해서 모든 의존성이 애플리케이션에서 실행되는 것은 아니다. - Java, JavaScript/TypeScript, Python 프로젝트에서는 코드가 취약 패키지를 직접 `import` 또는 `require`하는지 확인한다. - 취약점별로 도달 가능성(reachability) 상태를 표시해 다음을 구분한다. - 애플리케이션 코드가 실제로 사용하는 취약 의존성 - 전이적으로 포함됐지만 코드에서 참조되지 않는 의존성 - 개발팀은 실제 노출 가능성이 높은 취약점에 우선 대응하고, 사용되지 않는 패키지의 문제는 상대적으로 낮은 우선순위로 관리할 수 있다. ## 지속적인 취약점 탐지 - 모든 머지 리퀘스트와 파이프라인 실행 시 의존성을 검사한다. - 새로운 보안 권고가 발표될 때도 분석기를 실행할 수 있다. - 개발이 중단된 프로젝트라도 운영 중이라면 새로운 취약점이 발생할 수 있으므로 지속적인 스캔이 중요하다. ## 지원되는 생태계와 파일 형식 - 이번 릴리스는 24개 이상의 패키지 생태계를 지원하며, 향후 지원 범위가 확대될 예정이다. - 패키지 관리자의 빌드 도구를 재현하기보다 lockfile과 의존성 그래프를 직접 분석하므로 새로운 언어와 파일 형식 지원을 추가하기 쉽다. - 지원되는 lockfile이나 의존성 그래프가 없으면 다음과 같은 매니페스트 파일을 분석한다. - `pom.xml` - `requirements.txt` - Gradle 빌드 파일 - 매니페스트 기반 분석은 직접 의존성만 확인하고 전이 의존성은 파악하지 못할 수 있어, 전체적인 분석 정확도와 범위는 lockfile 기반 방식보다 낮다. - 따라서 가능한 경우 lockfile을 사용하는 것이 권장된다. ## 중앙 집중식 보안 정책 적용 - 프로젝트마다 `.gitlab-ci.yml`을 직접 수정하면 설정 누락, 구성 불일치, 감사 과정의 사각지대가 발생할 수 있다. - GitLab 19.0에서는 보안 구성 프로필을 사용해 의존성 스캐닝을 한 번 설정하고 여러 프로젝트에 적용할 수 있다. - 스캔 실행 정책과 파이프라인 실행 정책을 이용하면 그룹 또는 인스턴스 수준에서 보안 기준을 강제할 수 있다. - 수백 개의 프로젝트에도 각 저장소의 CI 설정을 개별적으로 수정하지 않고 동일한 의존성 검사 정책을 적용할 수 있다. ## 도입 대상과 마이그레이션 - SBOM 기반 의존성 스캐닝은 GitLab Ultimate 고객에게 제공된다. - GitLab.com에서 사용할 수 있으며, GitLab Dedicated와 self-managed 환경에는 표준 릴리스 일정에 따라 제공된다. - 기존 Gemnasium 분석기에서 이전할 때는 전환 기간 동안 두 분석기를 동시에 실행해 결과를 비교할 수 있다. - 신규 도입 팀은 GitLab의 설정 튜토리얼과 기술 문서를 통해 지원 언어, 구성 방식, 고급 옵션을 확인할 수 있다. 실무적으로는 먼저 lockfile을 저장소에 포함하고, SBOM 스캔을 머지 리퀘스트와 정기 파이프라인에 연결하는 것이 좋다. 이후 도달 가능성 정보를 기준으로 실제 코드가 사용하는 취약점부터 우선 처리하고, 조직 전체에는 그룹 또는 인스턴스 수준의 실행 정책으로 스캔을 강제하는 방식이 효과적이다.