
지난 13일(현지 시간) 구글(Google)은 개발 프로젝트에 사용된 오픈 소스 소프트웨어(SW)나 프로그램의 취약점을 스캔할 수 있는 도구인 ‘OSV-스캐너(OSV-Scanner)’를 새롭게 출시했다.
일반적으로 개발자는 프로그램을 개발할 때 빠르게 작업하기 위해 이미 많이 사용된 도구나 오픈 소스로 공개된 라이브러리 코드를 사용한다.
다른 사람들이 많이 사용한 코드를 이용하면 코드 내 결함 발생 가능성도 낮다. 결함이 존재했다면 작성한 개발자에게 피드백이 전달돼 수정까지 마쳤을 가능성이 높기 때문이다.
무엇보다 코드를 처음부터 작성하지 않고 효율적으로 작업하기 위해 오픈 소스 프로그램을 많이 활용한다. 하지만 만약 오픈 소스 프로그램이나 코드에 결함이 존재하는데 그 어떤 피드백도 되지 않은 상황이라면 코드의 보안이 위험할 수 있다. 그 상태에서 개발자가 결함 있는 코드를 가져다 쓰면 코드가 포함된 프로그램에도 당연히 결함이 그대로 존재한다. 코드 일부에서는 영향력이 적은 결함이어도 코드 전체로는 큰 피해를 초래할 수 있다. 실제로 오픈 소스 코드의 보안은 특정 프로그램을 개발할 때 개발자와 보안 담당자가 많은 노력을 기울이는 작업이다.
만약 대형 프로그램을 만드는 거대한 프로젝트에서 프로그램 내 결함이 존재한다면, 개발자는 각 빌드에 작성된 코드 내용을 하나하나 살펴봐야 한다. 발생할 수 있는 보안 문제를 추적하고 프로그램 전체 혹은 일정 코드에 부분적으로 미칠 수 있는 영향을 평가해야 한다.
여간 어려운 작업이 아니다. 결함이 한두 개에 그치는 것이 아니라 여러 개 존재한다면 작업 양이 더욱더 많아지고, 문제 발생 시 추적하기 어려워진다. 게다가 어떤 피해가 발생할지, 얼마큼의 피해가 발생할지 등 다방면으로 영향을 평가해야 하기 때문에 매우 복잡하다. 구글 역시 앞서 말한 점을 필요성으로서 인식했고, 마침내 OSV-스캐너 출시까지 이르게 됐다.
OSV-스캐너는 구글이 지난해 2월에 공개한 오픈 소스 코드용 취약점 데이터베이스(DB)인 ‘OSV.dev’에서 데이터를 가져와 오픈 소스 코드에 영향을 미치는 알려진 보안 취약점에 관한 정보를 제공한다. 설치된 개발 패키지의 취약점 분류를 위해 OSV.dev 정보를 사용하는 중이다. 프로젝트에 포함된 오픈 소스 코드들을 자동으로 일치시키고 보안 측면에서 업데이트가 필요할 때 개발자에게 안내한다. 구글의 소프트웨어 엔지니어 렉스 팬(Rex Pan)은 OSV-스캐너가 개발 프로젝트의 코드 종속성 목록과 해당 코드에 영향을 미치는 취약점을 연결하도록 설계됐다고 말했다. 렉스 팬은 OSV-스캐너가 개발자의 코드 패키지 목록과 취약점 데이터베이스 정보 사이 격차를 좁히도록 신뢰할 수 있는 고품질 취약점 정보를 생성한다고 덧붙였다. 참고로 OSV-스캐너는 구글이 제작했기 때문에 구글이 만든 프로그래밍 언어 ‘고(Go)’로 개발됐다.

현재 OSV.dev 데이터베이스 서비스는 세계 최대 오픈 소스 취약점 데이터베이스로, 리눅스 커널(Linux Kernel), 안드로이드(Android), 데비안(Debian), 알파인(Alpine), PyPI, npm, OSS-퍼즈(OSS-Fuzz), 메이븐(Maven) 등 16개를 지원하는 중이다. 지난해 총 1만 5000 건의 보안 취약점을 저장하고 있었던 데이터베이스가 2022년에만 2만 3000 건의 취약점 정보를 집계했다. △리눅스(27.4%) △데비안(23.2%) △PyPI(9.5%) △알파인(7.9%) △npm(7.1%) 순으로 취약점 지분율 상위 5위를 차지했다.
구글은 OSV-스캐너 다음 단계가 C/C++ 취약점 지원을 개선해 매우 복잡한 소프트웨어를 지원하고, 검색을 쉽게 하는 것이라고 말했다. 또한 향후 OSV-스캐너는 식별된 보안 취약점을 해결하는 기능도 탑재시킬 예정이다.

OSV-스캐너는 현재 모든 사용자가 제한 없이 무료로 사용 가능하다. 깃허브(Github) 또는 OSV.dev 웹 사이트를 통해 프로그램을 자유롭게 다운로드할 수 있다.
한편 지난 8일, 구글은 자사 공식 블로그를 통해 조직에서 무결성에 관한 정책을 개선하고 잠재적인 보안 위협으로부터 패키지를 보호하기 위해 공통 SLSA 프레임워크를 개발하고 배포할 것을 요구했다. SLSA는 Supply-chain Levels for Software Artifacts의 약자로, 소프트웨어 공급망 전체에서 무결성을 보호하는 것을 의미한다. 또한 몇 년 동안 발생한 솔라윈즈(SolarWinds) 사고 같은 위험을 방지하기 위해 공급망을 전체적으로 관리할 것을 요구했다. 솔라윈즈 사고는 공격자가 IT SW 제작 기업인 솔라윈즈의 공급망을 공격해 오리온(Orion)이라는 제품의 업데이트 서버를 탈취해 정식 배포되는 업데이트 버전에 악성코드를 삽입했던 사건이다.
테크플러스 에디터 박효정
tech-plus@naver.com