프로젝트 소개

OSV-Scanner는 OSV 데이터베이스의 공식 지원 프런트엔드이자 OSV-Scalibr의 CLI 인터페이스입니다. 프로젝트의 의존성 목록을 알려진 취약점과 연결하여 개발자가 의존성 문제를 찾아 해결할 수 있도록 돕습니다. C/C++, Dart, Elixir, Go, Java, JavaScript, PHP, Python, R, Ruby, Rust를 비롯한 다양한 언어와 npm, pip, yarn, Maven, Go modules, Cargo, gem, Composer, NuGet 같은 패키지 관리자를 지원합니다. 지원되는 잠금 파일과 매니페스트를 찾기 위해 소스 디렉터리를 재귀적으로 스캔할 수 있고, 벤더링된 C/C++ 코드를 탐지하며, 취약한 함수가 실제로 사용되는지 판단해 오탐을 줄이는 호출 분석을 수행할 수 있습니다. 컨테이너 스캔은 레이어를 인식하며 Alpine, Debian, Ubuntu의 베이스 이미지와 언어 아티팩트, 그리고 Go, Java, Node, Python 의존성을 지원합니다. 라이선스 스캔은 deps.dev 데이터를 사용해 의존성 라이선스를 요약하거나 SPDX 허용 목록과 대조합니다. 오프라인 스캔은 최초 가져오기 이후 로컬에 다운로드한 OSV 데이터베이스를 대상으로 작동합니다. 실험적 기능인 가이드형 문제 해결은 의존성 깊이, 최소 심각도, 수정 전략, 투자 대비 효과를 기준으로 패키지 버전 업그레이드를 제안합니다. 현재 npm 잠금 파일과 매니페스트, Maven POM 파일을 지원하며, 헤드리스 CLI와 대화형 모드를 모두 제공합니다. OSV-Scanner는 취약점 데이터를 위해 OSV.dev API에, 의존성 해석, 컨테이너 메타데이터, 라이선스 정보, 사용 중단 확인을 위해 deps.dev API에 질의하며, 네이티브 레지스트리 해석을 사용할 때 Maven Central, npm, PyPI 같은 패키지 레지스트리에 접속할 수 있습니다. 오프라인 모드는 네트워크 요청을 비활성화합니다.