본문 바로가기
Rev's/스크랩

구글, 오픈소스 보안 취약성 데이터베이스 ‘OSV’ 출시

by RevFactory 2021. 2. 10.

지난 2월 5일 구글에서 오픈소스 보안 취약성 데이터베이스 OSV를 공개했습니다.

기존에 CVE 와 Sonatype OSS Index 등을 통해서 취약성 데이터베이스를 확인할 수 있었는데요. 이번에 구글도 보안 취약성 데이터베이스를 공개하면서 오픈소스의 취약성을 보다 정확하고 신속하게 수행할 수 있게 될 것으로 보입니다.

 

구글은 현재 OSS-Fuzz 서비스에서 발견한 (C, C++) 데이터 세트를 제공하기 시작했으며, 점차 그 영역을 확대할 계획이라고 밝혔습니다.

* OSS-Fuzz는 소프트웨어의 프로그래밍 오류를 발견하는 퍼즈 테스트 프로젝트로 2021년 1월 현재 375 개의 오픈 소스 프로젝트 에서 25,000 개가 넘는 버그를 발견 했습니다.

 

오픈소스 사용자의 경우, CVE와 같은 취약성 데이터베이스를 활용하고 있었으나, 취약성 정보를 패키지에 버전에 매핑하기 어려운 경우가 많이 있었습니다. 이는 취약성 표준 (ex. CPE/Common Platform Enumeration) 의 버전관리 체계가 오픈소스 버전 관리 체계와 잘 맞지 않기 때문이었습니다. 따라서 실제 다운스트림 유저들은 기존에 보고된 취약성이 있더라도 누락이 되는 문제가 있습니다.

 

또한 오픈소스 관리자가 오픈소스 취약점을 보완한 뒤 다운스트림 유저를 위해 모든 분기에 커밋을 적용하는데 많은 시간이 걸립니다. 대부분의 오픈소스 프로젝트는 리소스가 부족한 상황이라 이 역시 문제점을 안고 있습니다. 결국 사용자는 오픈소스 보안 수정사항을 바로 통합하기가 어렵습니다.

 

OSV의 목표

1. 관리자가 취약점을 보완하는데 필요한 작업을 줄입니다.

2. 쿼리하기 쉬운 데이터베이스에 정확한 취약성 메타데이터를 제공하여 다운 스트림 소비자에 대한 취약성 쿼리 결과를 정확하게 제공합니다.

 

OSV 자동화

OSV는 영향을 받는 버전 및 커밋 목록을 정확하게 확인하여 오픈소스 패키지 유지 관리자의 보안 취약성 보고 프로세스를 단순화 하는 것을 목표로 합니다. 이를 위해서는 버그를 리포팅하고 수정하는 커밋을 모두 제공해야합니다. 해당 정보를 사용할 수없는 경우 OSV는 복제 테스트 케이스와 애플리케이션 빌드를 생성하는 단계를 제공해야합니다. 그런 다음 Bisection)* )을 수행 하여 자동화 된 방식으로 이러한 커밋을 찾습니다. OSV는 나머지 분석을 처리하여 영향을받는 커밋 범위 (체리 선택에 대한 설명) 및 버전 / 태그를 파악합니다.

* Bisection 은 특정 동작 변경을 초래 하는 변경 세트 를 식별하기 위해 소프트웨어 개발 에 사용되는 방법

 

 

OSV는 취약성을 쿼리하는 API를 제공하여 오픈 소스 패키지 소비자를위한 심사 워크 플로를 자동화합니다. 패키지 소비자를 위한 일반적인 OSV Workflow는 위의 그림과 같습니다.

 

1. 패키지 소비자는 패키지 버전 또는 커밋 해시를 입력으로 사용하여 OSV에 쿼리를 보냅니다.

curl -X POST -d \ '{ "commit" : "6879efc2c1596d11a6a6ad296f80063b558d5e0f" }'\ 'https://api.osv.dev/v1/query?key=$API_KEY'

 

curl -X POST -d \ '{ "version" : "1.0.0" , "package" : { "name" : "pkg" , "ecosystem" : "pypi" }'\ ' https://api.osv.dev/v1/query?key=$API_KEY '

 

2. OSV는 특정 버전에 영향을 미치는 일련의 취약점을 조회하고 패키지에 영향을 미치는 취약점 목록을 반환합니다. 취약성 메타 데이터는 기계가 읽을 수있는 JSON 형식으로 반환 됩니다.

 

3. 패키지 소비자는이 정보를 사용하여 보안 수정 (정확한 수정 메타 데이터 기반)을 선택하거나 최신 버전으로 업데이트합니다.

 

OSV Link

- OSV UI & Demo : https://osv.dev

- OSV API (v1.0) : https://osv.dev/docs

- OSV GitHub : https://github.com/google/osv

 

관련 링크

- https://github.com/google/osv

- https://security.googleblog.com/2021/02/launching-osv-better-vulnerability.html

- https://www.dailysecu.com/news/articleView.html?idxno=120553