조 바이든 미국 대통령이 지난 2021년 발표한 ‘사이버 보안 행정명령’도 소프트웨어 공급망 보안에 초점을 맞추고 있다. 이 행정명령의 ‘소프트웨어 공급망 보안 강화(Enhancing Software Supply Chain Security)’ 섹션은 베스트 프랙티스와 가이드라인에 관한 정부, 학계, 업계의 의견을 요구했다. 현재 美 NIST는 해당 정보를 공개한 상태다.
‘OSSSMP’는 이러한 이니셔티브의 모멘텀이 헛되지 않도록 지원한다. 여기서는 보안 리더를 위해 OSSSMP의 핵심 내용을 정리했다.
OSSSMP의 목표
이 계획에는 3가지 목표가 있다.
1. OSS 개발 보안
2. 취약점 발견 및 교정 개선
3. 생태계 패치 대응 시간 단축
각 목표에는 목표 달성을 위한 전략적 조치를 설명하는 스트림이 있다. 또 이 계획은 OSS 구성 요소로 구성된 소프트웨어 스택이 약 70~90%를 차지할 만큼 OSS가 널리 사용하고 있다는 점을 강조한다. 아울러 탄력적인 소프트웨어 공급망 생태계를 달성하기 위한 전략적 투자의 필요성도 언급한다.
OSSS 개발 보안
이 목표는 소스의 안전하지 않은 코드 문제를 둔화시키는 데 중점을 둔다. (이에 따라) 보안 전문 지식을 민주화해야 하고, 개발자는 소프트웨어 개발 라이프사이클(SDLC) 초기부터 안전한 코드를 작성하기 위한 전문 지식과 권한을 갖춰야 한다. 이 목표를 달성하기 위해 해당 계획에서는 3가지 조치를 설명한다.
• 상위 1만 개 OSS 구성 요소의 객관적인 지표 기반 위험 평가 대시보드 생성: 이는 가장 많이 사용되는 OSS 구성 요소의 보안과 관련해 업계 전반의 가시성을 지원한다. 따라서 보편적으로 사용되는 OSS 구성 요소에 대한 보안 업계의 인식이 높아질 수 있다. 또 소프트웨어 벤더에 SBOM/SaaSBOM 및 내부 개발을 질문하여 자체 제품에 구성 요소를 사용하는 벤더뿐만 아니라 소프트웨어 자산 인벤토리를 구성하기 시작한 다운스트림 소비자에게도 정보를 제공한다.
• 소프트웨어 릴리즈의 디지털 서명 도입 가속화: 이를 통해 소프트웨어를 개발하고 소비하는 사람들은 사용하고 있는 OSS 구성 요소에 일정 수준의 검증을 확보하게 된다. 해당 계획의 부록을 살펴보면 (예를 들어) 시그스토어(Sigstore) 서비스를 확인할 수 있다. 이는 공급망 수준에서 SLSA(Supply Chain Levels for Software Artifacts)와 워크로드 ID/증명을 강조하며, 체인가드(Chainguard) 및 테스티파이섹(TestifySec) 등이 이 분야에서 눈에 띄는 기업이다.
마지막으로 취약점을 완전히 제거할 수 있는 다른 방법이 있다. 한 가지는 비-메모리 안전 언어를 대체하는 것이다. 이를테면 C와 C++에서 고(Go) 및 러스트(Rust) 등의 대안으로 이동할 수 있다.
취약점 발견 및 교정 개선
버그 현상금 등은 상용 및 정부용 소프트웨어(COTS/GOTS)에서의 취약점 발견과 교정에 도움이 됐지만 OSS 생태계에서는 그렇지 않다. OSS 유지관리자는 대부분 무보수 자원봉사자다. 이 계획은 중요한 OSS 구성 요소와 프로젝트의 취약점 발견 및 교정을 개선하기 위한 투자를 강조한다.
초기 스트림에는 ‘오픈SSF 오픈소스 보안 사고 대응팀(Open-Source Security Incident Response Team)’을 만드는 것이 포함됐다. 이 팀은 특히 OSS 프로젝트에 인력이 부족하거나 신속하게 해결할 수 있는 장비가 없을 때 위에서 식별된 문제를 완화하고 (발견된 취약점을 해결하여) OSS 프로젝트를 지원하기 위해 구성되고 자금을 지원받는다. 그렇다고 해서 취약점이 사라지진 않겠지만 (이를) 신속하게 해결하고 패치/업데이트가 다운스트림 소비자에게 빠르게 제공될 수 있다.
많은 OSS 유지관리자가 프로젝트와 관련된 취약점을 제거하기 위한 보안 도구와 지침이 부족하다. 이 계획의 스트림 6은 보안 도구 벤더와 CSP 등이 유지관리자에게 취약점을 줄이는 데 필요한 인프라 및 도구뿐만 아니라 보안 전문 지식도 제공할 수 있도록 지원하여 이를 해결한다.
이 목표의 또 다른 스트림에는 1년에 한 번 최대 200개의 필수 OSS 구성 요소에서 서드파티 코드를 검토하는 일이 수반된다. 이를 통해 프로젝트에 직접 관련되지 않은 보안 코드 전문 지식을 제공하여 구성 요소를 검토하고 교정해야 할 취약점을 식별할 수 있다. 마지막은 업계에서 가장 중요한 OSS 구성 요소를 판단하는 역량을 개선하는 데 중점을 둔 스트림이다. 여기에는 조직 간 개선된 데이터 공유, 연구와 관련된 협업 등이 포함된다.
생태계 패치 대응 시간 단축
이 목표는 구성 요소의 소스에서 취약점을 찾아 교정하는 것뿐만 아니라 관련된 다운스트림 업데이트를 소프트웨어 공급망 전체에 배포하고 구현하는 것이다. 다운스트림 소비자가 업데이트를 하지 않는다면 취약한 구성 요소로 인한 문제를 예방할 수 없다. 이는 전통적인 패치 관리와 관련하여 업계에서 여전히 어려움을 겪고 있는 문제다.
이 목표와 관련된 스트림에는 SBOM 도입, 교육, 도구 개선 등이 있다. SBOM을 광범위하게 도입하고 운영하지 않으면 기업이 환경에서 사용 중인 구성 요소를 파악하고 적절하게 대응할 수 없기 때문에 이는 매우 중요하다. 여기에는 최신 소프트웨어 개발 도구 통합, 교육 및 인식 개선, SBOM 생산 및 소비 정상화 등이 포함된다.
마지막 스트림은 가장 중요한 OSS 구축 시스템, 패키지 관리자, 배포 시스템을 강화하는 것이다. 소프트웨어 아티팩트 배포 계층에서 보안을 강화하면 생태계 전반의 위험을 낮출 수 있다. 또 앞서 언급한 NIST SSDF의 핵심 기능인 소프트웨어 구성 요소의 구성 및 출처 신뢰도 개선된다.
다음 단계
OSSSMP는 사람, 프로세스, 기술에 걸쳐 소프트웨어 공급망 보안과 관련된 측면을 강조하며, 이 가운데서 가장 중요한 것은 첫 번째(사람)다. 이 계획의 자세한 내용은 위에서 설명한 각 스트림과 관련된 부록 및 프로젝트 비용을 참고하라.
일각에서는 이 계획을 비판할 수도 있지만 (이는) 적절한 방향으로 내딛는 중요한 걸음이다. 속담에서 말한 것처럼 오늘의 좋은 계획이 내일의 완벽한 계획보다 낫다. 오늘날 악의적인 행위자가 점점 더 파편화되고, 취약한 소프트웨어 공급망을 악용하려고 하기 때문에 내일까지 기다릴 수 없다. ciokr@idg.co.kr