“시장에서는 SBOM(소프트웨어 자재명세서)이나 SCA(소프트웨어 컴로넌트 분석), 또는 오픈소스 관리를 공급망 보안인 것처럼 얘기할 때가 많은데, 저는 생각이 좀 다릅니다. 오픈소스든, 직접 개발한 것이든 하나의 애플리케이션이 만들어지는 모든 과정을 다 커버할 수 있어야 진정한 공급망 보안이 됩니다.”
국내 애플리케이션 보안 기업 스패로우의 장일수 대표는 최근 보안업계의 이슈로 떠오른 공급망 보안에 대해 이같이 정의했다. 현재는 오픈소스만 관리만을 공급망 보안이라고 여기는 경우가 많은데, 자체 개발하는 코드까지 보안을 담보할 수 있어야 진정한 공급망 보안이라는 주장이다.
현대의 소프트웨어 개발은 개발자가 모든 코드를 직접 작성하는 것이 아니라 시중에 존재하는 오픈소스나 컴포넌트를 조합하면서 자신만의 코드를 더하는 방식으로 이뤄진다. 혹시 조직 내 누군가 가져다 사용한 오픈소스에 취약점이 있다면, 애플리케이션 전체가 해커의 놀이터가 될 수도 있다.
지난 2021년 벌어진 Log4j 2사태가 대표적 사례다. 당시 자바 애플리케이션 로깅에 주로 사용된던 Log4j 2에 심각한 보안 취약점이 있음이 뒤늦게 발견됐다. 전세계 모든 자바 애플리케이션이 위험에 빠져있었던 것이다.
이처럼 오픈소스의 취약점 문제가 대두되자, 소프트웨어 개발 과정에 사용되는 오픈소스를 관리해야 한다는 생각이 확산됐다. 어느 오픈소스가 어디에 사용됐는지 알아야 취약점이 발견될 경우 대처를 할 수 있기 때문이다. Log4j 2 사태 당시 Log4j 2 사용 현황을 파악하지도 못했던 조직이 적지 않았다. 오픈소스 현황 파악이 곧 공급망 보안인 것처럼 인식됐던 배경이다.
장 대표는 오픈소스 관리가 공급망 보안인 것처럼 여겨지는 배경도 있다고 설명했다. 그는 “조직이 직접 짜서 납품 받은 코드의 경우 정해진 규약이 없지만, 오픈소스의 경우 공개 저장소(레파지토리)에 올리려면 정해진 규약에 따라야 한다”면서 “(정해진 규격이 있기 때문에) 오픈소스는 DB화가 쉽고, 때문에 오픈소스 관리 제품을 만들기가 좀 수월하다”고 말했다. 소프트웨어 사용자 입장에서가 아니라 공급자 입장에서 공급망 보안 시장이 형성됐다는 지적이다.
장 대표는 “하지만 100% 오픈소스로만 개발되는 애플리케이션은 없다”면서 “내가 작성한 코드에도 취약점이 있을 수 있기 때문에 오픈소스와 자체 작성 코드 모두 취약점이 없는지 파악해야 한다”고 강조했다.
이 때문에 장 대표는 SCA와 시큐어 코딩이 동시에 이뤄져야 한다고 말했다. SCA는 어떤 오픈소스가 사용됐는지, 사용된 오픈소스에 취약점은 없는지 파악하는 도구다. 시큐어 코딩은 스스로 작성하는 코드에 취약점이 없도록 하는 프로세스다.
장 대표는 “내가 짠 코드는 시큐어 코딩 도구를 통해 취약점을 다 제거하고, 오픈소스는 SCA 도구를 통해 취약점 분석을 해서 애플리케이션 전체에 문제가 없음을 확인해야 한다”고 강조했다.
장 대표는 이와 함께 테스팅 과정의 중요성도 역설했다. 코드에 취약점이 없어도 애플리케이션이 실제 동작하면서 발생하는 오류를 악용하는 해커들도 있기 때문이다. 그는 “소프트웨어 개발 전 과정의 취약점을 검토하는 것이 공급망 보안의 기본”이라고 강조했다.
장 대표는 스패로우가 소프트웨어 공급망 보안을 위한 모든 제품 라인업을 갖추고 있다고 설명했다.
우선 오픈소스 관리를 위한 툴로 ‘스패로우 SCA’가 있다. 장 대표에 따르면, 스패로우 SCA는 소스코드든 바이너리든, 오픈소스의 일부든 전체든, 상관없이 분석을 한다. 예를 들어 오픈소스의 소스코드 일부분을 복사해서 붙여도 ‘스니펫 분석’을 통해 오픈소스에서 나온 코드라는 것을 알려준다. 어떤 오픈소스가 사용됐는지, 오픈소스의 상호 의존도가 어떻게 구성돼 있는지 확인할 수 있다. 이를 기반으로 SBOM을 작성할 수도 있고, 작성된 SBOM을 분석할 수도 있다.
시큐어 코딩을 위해서는 ‘스패로우 SAST’라는 제품이 있다. 이 제품은 소스코드 상의 보안약점을 정확하고 빠르게 검출하는 정적 분석 도구다. 테스트 영역에서는 스패로우 TSO라는 제품을 공급한다. 소스코드 변경 정보를 활용해 회귀 테스트에 필수적인 테스트 케이스를 선정하는 도구다.
장 대표는 “SCA만 해도 글로벌 제품들을 보면 소스코드만 분석을 잘하는 데도 있고 바이너리만 분석하는 데도 있다”면서 “소프트웨어 개발 과정부터 테스트 단계까지 모든 취약점을 제고해야 공급망 보안이지, 오픈소스 목록만 갖다 주는 것은 공급망 보안이 아니다”고 강조했다.
그는 “앞으로 정부를 비롯해 기업이나 기관이 소프트웨어 공급을 받을 때 SBOM을 요구하는 조직이 늘어날 것”이라면서 “그럴 때 단순히 사용한 오픈소스 목록만 제출하지 않고 오픈소스뿐만 아니라 직접 짠 코드까지 안전하다는 것을 증명해야 한다”고 말했다.
글. 바이라인네트워크
<심재석 기자>shimsky@byline.network