Google의 OSV-Scanner와 OSV-Scalibr는 프로젝트의 소스 내용까지 스캔하는 기능을 가지고 있습니다. 좀 더 자세히 설명드리겠습니다.

OSV-Scanner:

  • 주요 기능: OSV-Scanner는 프로젝트의 의존성(dependencies)을 스캔하여 알려진 취약점을 찾아내는 도구입니다.
  • 소스 내용 스캔: OSV-Scanner는 기본적으로 프로젝트 소스 코드를 스캔합니다. 특히, scan source 명령어를 통해 소스 코드 디렉토리를 스캔하여 프로젝트의 패키지 의존성과 취약점을 분석합니다.
  • 다양한 파일 타입 지원: requirements.txt (Python), package.json (Node.js), Gemfile.lock (Ruby), go.mod (Go)와 같은 다양한 언어의 **매니페스트 및 잠금 파일 (manifests and lockfiles)**을 분석하여 사용된 라이브러리와 그 버전을 파악합니다. 이를 통해 프로젝트가 직접적으로 사용하는 의존성뿐만 아니라, 간접적으로 사용되는 **전이적 의존성(transitive dependencies)**까지 스캔할 수 있습니다.
  • 컨테이너 이미지 스캔: OSV-Scanner V2부터는 컨테이너 이미지 내부의 파일 시스템까지 스캔하여 취약점을 찾아냅니다. 이는 소스 코드가 컨테이너 이미지 내부에 포함되어 있을 경우에도 해당 내용을 분석하는 것을 포함합니다.

OSV-Scalibr:

  • 라이브러리 형태: OSV-Scalibr는 Software Composition Analysis (SCA) 라이브러리로, OSV-Scanner의 핵심 스캔 엔진 역할을 합니다. 즉, OSV-Scanner가 CLI 도구라면, OSV-Scalibr는 그 뒤에서 실제로 스캔 및 분석을 수행하는 "두뇌"라고 볼 수 있습니다.
  • 소스 코드 분석 기능: OSV-Scalibr는 파일 시스템 스캐너로서 소스 코드, 패키지, 바이너리 등 다양한 소프트웨어 인벤토리 데이터를 추출하고 알려진 취약점을 탐지합니다. osv-scalibr를 라이브러리로 사용하여 Go 프로젝트에서 Git 저장소를 스캔하는 예시도 공식 문서에 나와 있습니다.
  • 깊이 있는 분석: 단순히 lockfile만 보는 것을 넘어, 컴파일된 바이너리(Java uber jars, Go binaries, Python wheels, Node modules 등) 및 실제 파일 시스템의 내용을 분석하여 의존성 정보를 추출합니다. 이는 프로젝트가 명시적으로 의존성을 선언하지 않더라도, 실제 배포되거나 실행되는 환경에서 사용되는 모든 소프트웨어 구성 요소를 파악하는 데 도움을 줍니다.

통합:

최근 발표된 OSV-Scanner V2는 OSV-Scalibr의 기능을 OSV-Scanner에 통합하여, 소스 코드 및 컨테이너 스캔을 위한 통합된 명령줄 도구를 제공합니다.
따라서 OSV-Scanner를 사용하면 OSV-Scalibr의 강력한 소스 내용 분석 기능을 활용할 수 있습니다.

결론적으로, 두 도구 모두 프로젝트의 소스 내용, 즉 프로젝트에서 사용되는 다양한 형태의 파일 (매니페스트, 잠금 파일, 컴파일된 바이너리, 심지어 컨테이너 내부의 파일 시스템)을 분석하여 의존성을 파악하고 취약점을 스캔하는 기능을 제공합니다.

번호 제목 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의 황제낙엽 2025.04.10 21564
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의 황제낙엽 2024.02.02 20405
146 SPDX 2.3, 계속 써도 되나요? — 3.0으로 넘어갈 때를 판단하는 실무 기준 황제낙엽 2026.08.11 55
145 같은 OSS 지만 여러 버전을 등록해야 하는 경우 황제낙엽 2026.04.24 1972
144 [FOSSLight Dependency Scanner] Android Project 의 Dependency Scan 을 위한 Android SDK 설치와 설정 황제낙엽 2026.04.23 1843
143 FOSSLight Hub 의 REST API 이용 (v2) 황제낙엽 2026.03.19 2500
142 [FOSSLight/검토용] 개발그룹의 sbom-info.yaml 분석 및 피드백 절차 황제낙엽 2026.03.16 1982
141 [FOSSLight/관리용] Project Identification 진행에서 최종 SBOM SPDX 문서 추출 황제낙엽 2026.02.09 1916
140 [FOSSLight] 'Download Location' 컬럼 값에 'Different from DB' 라는 푸른색 메세지가 출력 file 황제낙엽 2026.02.06 3613
139 [FOSSLight] Project Identification 진행시의 신규 OSS 등록 처리 방법 황제낙엽 2026.02.06 3750
138 [FOSSLight Hub] License 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3579
137 [FOSSLight Hub] Open Source 정보를 직접 등록시 필요한 항목 목록 황제낙엽 2026.02.06 3352
136 [OSS] Microsoft.Web.WebView2 황제낙엽 2026.02.06 3352
135 [FOSSLight] fosslight 프로젝트의 'Pre-Review' > 'Open Source' 팝업창의 세 버튼에 대한 용도 황제낙엽 2026.02.06 3572
134 [FOSSLight/검토용] prechecker convert 결과 Hub 등록후 Identification 처리 file 황제낙엽 2026.02.05 3289
133 python venv 설치, fosslight source scanner , binary scanner 설치, 버전 확인 황제낙엽 2026.02.02 3508
132 SPDX 템플릿 다운로드 및 온라인 변환기 황제낙엽 2026.01.22 3870
131 SBOM(Software Bill of Materials) 및 소프트웨어 공급망 보안 관련 주요 정부 기관 및 단체 황제낙엽 2026.01.22 3605
130 [FOSSLight] online guide link 황제낙엽 2026.01.14 1844
129 identification 에서 출력하는 warning, error 메세지 황제낙엽 2025.12.29 1427
128 sbom-info.yaml 을 이용한 dependency scan excel 작성 file 황제낙엽 2025.12.29 3578
127 binary scan 결과물에 대해 취약점이 없는데 왜 SBOM에 넣어야 하나? 황제낙엽 2025.12.17 3484