SBOM 통해 SW에 종속된 오픈소스, 앱 등 수많은 모듈의 구조 파악
‘검증도구, 공급자, 컴포넌트, 라이선스 결합상태, 보안 취약점’ 등으로 점검
[애플경제 김향자 기자] SW개발 단계의 시큐어코딩 뿐 아니라, SW 자체의 취약점에 의한 보안 문제가 빈번하게 발생하고 있는 추세다. 이에 완성품으로서 SW의 자재명세서격인 SBOM이 날로 중요해지고 있다. 특히 SBOM이 갖춰야 할 15개 표준속성과 함께, 그에 담겨진 SW의 ‘종속성 트리’의 유용성이 주목받고 있다.
애초 자체 개발 SW라고 해도, 어차피 외부에서 도입된 SW나 오픈소스를 재료로 하는 경우가 많다. 이에 해당 SW에 종속된 수많은 모듈의 변경 상황 등을 사전에 파악하고 관리하는게 중요하다.
그러나 이는 결코 쉽지 않은 일이다. 일반상품의 자재 관리(BOM)처럼 소프트웨어를 구성하는 모든 요소와 모듈, 컴파일로 된 바이너리 자료까지 섭렵해야 하기 때문이다. 이에 일종의 소프트웨어 자재 관리에 해당하는 SBOM(Software Bill of Materials)의 중요성이 한층 강조되고 있다.
한국정보통신기술협회 ‘SBOM 한국 단체 표준’
특히 2022년 한국정보통신기술협회의 ‘SBOM 한국 단체 표준’에서 제정한 SBOM의 15가지 속성은 이같은 이같은 점검과 관리를 위한 유용한 수단으로 눈길을 끈다.
오픈소스 솔루션 전문업체인 OSBC는 최근 웨비나를 통해 “기업이 자체 제작한 소프트웨어도 있겠지만 대부분의 경우 공급망을 통해 인입된 소프트웨어 들이 포함되어 있을 수 밖에 없다”면서 그 15가지 속성을 나열했다.
이에 따르면 SBOM은 SW로 인한 사이버 침해를 점검하기 위해 ▲검증도구를 비롯, ▲공급자, ▲저작권자, ▲컴포넌트 이름, ▲고유식별자, ▲컨포넌트 해쉬, ▲라이선스 이름, ▲라이선스 결합상태, ▲보안 취약점, ▲관계성, ▲릴리즈 날짜, ▲CWE, ▲CVE ID, ▲CVSS 베이스 스코어(베이스, 임팩트, Exploitability), ▲CVSS Severty 등 15가지를 갖춰야 한다.
“이러한 소프트웨어들의 리스트를 생성해 놓음으로써, 관리가 필요한 상황, 즉 취약점이 발견된 소프트웨어가 발표된 경우 등에 빠르고 적절한 조치를 할 수 있게 된다”는 것이다.
특히 많은 소프트웨어들이 오픈소스를 재료로 만들어지는 상황에서 이들 15가지 속성에 의한 점검은 더욱 중요해지고 있다. 오픈소스가 폭발적으로 늘어남에 따라 그 만큼 라이선스 관리와 보안 취약점 관리도 중요할 수 밖에 없다. 일종의 소프트웨어 자재 관리 시스템이라고 할 SBOM이 절대적으로 필요한 이유다.
OSBC도 “SBOM은 일종의 소프트웨어 자재 명세서로서, 최종 고객이 사용하는 소프트웨어나 서비스를 완성하기 위해 활용되는 모든 소프트웨어 정보를 담고 있는 명세서라고 할 수 있다”고 그 의미를 한층 분명히 하고 있다.
‘SW의 종속성 트리에 있는 모든 모듈’의 위험성도 주목
특히 ‘SW의 종속성 트리에 있는 모든 모듈’의 위험성에 주목하는 연구 결과도 있다. 윤대균 아주대 교수가 대표적이다. 그는 최근 지능정보사회진흥원에 기고한 ‘이슈 리포트’를 통해 “종속성 트리의 모듈 상태를 실시간으로 모니터할 수 있다면, 이 중 하나만 문제가 생겨도 일단 애플리케이션 사용을 중단함으로써 문제 확산을 최소화할 수 있을 것”이라고 했다.
일반 상품이라면 언제 부품이 어떻게 교체되었는지, 또 어떤 부품이 무슨 이유로 고장이 생겼는지를 어렵잖게 파악할 수 있다. 그러나 소프트웨어는 다르다. 이를 설명하기 위해 윤 교수는 매우 복잡하게 수많은 오픈소스 기반의 SW나 모듈이 얽혀 하나의 또 다른 SW를 구성하는 ‘종속성’을 그림으로 나타내고 있다. 이때 “어떤 이유에서든 어느 모듈이 새 버전으로 교체되거나, 문제가 생겨도 정확하게 알 수 없는 경우가 많다”는 것이다.
윤 교수는 “모든 소프트웨어가 끊임없이 진화하기 때문에, 일부 모듈의 변경은 수시로 발생하므로, 바로 이런 부분이 악성 해커들이 노리는 공격 포인트”라고 짚었다.
“‘솔라윈즈’나 Log4j 사건이 대표적”
그러면서 지난 수 년 간 발생한 솔라윈즈(SolarWinds)나 Log4j 사건의 예를 들었다.
그에 따르면 솔라윈즈 플랫폼과 Log4j의 취약점을 이용한 공격으로 인해 이를 사용하는 수많은 애플리케이션이 피해를 입었다. 특히 아파치 소프트웨어 재단에서 오픈소스로 제공하는 Log4j는 수백만 개의 자바 애플리케이션에 영향을 주었다. 자바로 개발된 대부분 애플리케이션이 시스템 로깅을 위해 Log4j를 사용하기 때문이다.
그렇다면 “만약 솔라윈즈나 Log4j의 취약점에 대해 이미 알고 있었다면 이로부터 파생된 보안 위협을 미리 알아챌 수 있었을까?”라는게 윤 교수의 질문이다. 답은 “그렇지 않다”는 것이다.
설사 사전에 보안 취약점이 알려져 있다고 하더라도, 사용자는 자신이 사용하는 애플리케이션에 어떤 모듈이 어떻게 적용되어 있는지 알지 못하고 있어, 제때 대응하지 못한다는 얘기다. 자재 명세서에 기재된 것을 한 눈에 들여다보고 대처하는 일반상품과는 다른 점이다. 예를 들어 수많은 모듈이 Log4j와 얽혀 있다면, Log4j가 아닌 다른 모듈을 통한 공격에는 속수무책이다.
'종속성 트리' 정확한 파악이 가장 효율적'
윤 교수는 이 대목에서 ‘종속성 트리’의 효용성을 강조한다. 즉 “종속성 트리에 있는 모든 모듈이 어떤 것인지 정확하게 파악하고 있고, 또 이들 상태를 실시간으로 모니터할 수 있다”는 것을 전제하며, “이 중 하나만 문제가 생겨도 일단 애플리케이션 사용을 중단함으로써 문제 확산을 최소화할 수 있을 것”이란 결론이다. 그래서 “SBOM이야말로 사이버 보안의 매우 중요한 방어막”이란 설명이다.
이처럼 15개 표준 속성과 함께 ‘종속성 트리’를 나타내고 보여주는 SBOM은 2021년 말 미국 정부가 처음 공식화했다. 즉, “사이버 보안을 위해 모든 SW를 도입하려면, 반드시 SBOM을 함께 수령해야 한다”는 행정명령을 발표한 것이다. 그 후 국내에서도 SBOM의 중요성은 갈수록 커지고 있다.
