sitelink1 | https://google.github.io/osv-scanner |
---|---|
sitelink2 | https://www.securityweek.com/google-rele...-analysis/ |
sitelink3 | |
sitelink4 | |
extra_vars5 | |
extra_vars6 |
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의 강력한 소스 내용 분석 기능을 활용할 수 있습니다.
결론적으로, 두 도구 모두 프로젝트의 소스 내용, 즉 프로젝트에서 사용되는 다양한 형태의 파일 (매니페스트, 잠금 파일, 컴파일된 바이너리, 심지어 컨테이너 내부의 파일 시스템)을 분석하여 의존성을 파악하고 취약점을 스캔하는 기능을 제공합니다.