현대 소프트웨어는 더 이상 무(無)에서 유를 창조하는 작문의 영역이 아니다. 수많은 외부 모듈과 오픈소스 패키지를 엮어 완성하는 조립의 시대를 지나고 있다. 포춘 500대 기업의 90% 이상이 외부 코드로 비즈니스 인프라를 구축하고 있다는 사실은, 기술 생태계가 타인의 코드 위에 세워진 거대한 의존성의 성(城)임을 말해준다. 하지만 이 효율적인 조립 방식은 역설적으로 기업 보안의 가장 깊숙한 곳에 균열을 만들고 있다. 소프트웨어 공급망 보안(SSCS) 체계의 부재가 가져온 결과다.
공격의 타겟은 이제 특정 서버가 아닌, 모두가 신뢰하는 뿌리로 향한다. 수만 개의 기업이 공통으로 사용하는 라이브러리에 악성 코드를 주입하는 방식은 그 파급력이 상당하다. 2020년 발생한 솔라윈즈 사태나 로그포제이(Log4j) 취약점은 우리가 매일 사용하는 도구가 언제든 시스템 무력화의 통로가 될 수 있음을 증명했다. 기술의 진보를 수용하기에 앞서, 우리가 조립한 성벽의 벽돌 하나하나를 진정으로 통제하고 있는지 냉정하게 짚어봐야 할 시점이다.
보이지 않는 설계자, 의존성의 굴레
현대적인 개발 프로세스에서 개발자가 직접 작성한 코드는 전체 애플리케이션의 극히 일부분에 불과하다. 나머지는 오픈소스 패키지와 서드파티 라이브러리, 그리고 이를 배포하는 자동화된 CI/CD 파이프라인으로 채워진다. 문제는 이 공급망 구성 요소들이 워낙 방대하게 얽혀 있어, 단 한 지점만 오염되어도 연쇄적인 보안 침해로 이어진다는 점이다.

최근에는 AI 모델이 생성한 코드 내에 존재하지 않는 패키지 이름을 삽입하는 패키지 환각 공격이나, 정상 패키지와 유사한 이름을 사용하는 타이포스쿼팅 기법이 빈번하게 발생하고 있다. 이는 개발 환경의 파편화가 가져온 리스크다. 특히 빌드 시스템 자체가 침투당할 경우, 소스 코드가 무결하더라도 결과물인 바이너리에는 악성 코드가 삽입된 채 배포될 수 있다. 이는 기업이 통제할 수 있는 범위를 넘어서는 보안 거버넌스의 상실을 의미한다.
리스트의 함정, SBOM이 말해주지 않는 것들
많은 기업이 공급망 보안을 위해 소프트웨어 자재명세서(SBOM) 도입을 서두르고 있다. 소프트웨어에 어떤 재료가 들어갔는지 목록화하는 시도는 의미가 있지만, 리스트를 확보하는 것과 그 재료를 통제하는 것은 별개의 문제다.
단순히 취약한 패키지 리스트를 나열하는 것은 사후 기록물에 그칠 확률이 높다. 수천 개의 의존성 항목 중에서 실제 런타임에 실행되는 요소가 무엇인지, 어떤 경로로 권한 탈취가 가능한지 파악하지 못한 채 도구의 알람에만 의존하는 것은 행정 편의주의적 보안에 가깝다. 가공된 가시성이 주는 안도감에 속아 실제 대응력을 놓치고 있는 건 아닌지 점검해야 한다.
| 구분 | 기존 애플리케이션 보안 (AppSec) | 소프트웨어 공급망 보안 (SSCS) |
|---|---|---|
| 보호 대상 | 직접 작성한 소스 코드 및 로직 | 외부 라이브러리, 빌드 도구, 배포 파이프라인 전반 |
| 주요 위협 | SQL 인젝션, XSS 등 코드 결함 | 의존성 혼란, 악성 패키지 삽입, 빌드 환경 탈취 |
| 핵심 도구 | SAST, DAST | SCA, SBOM, 코드 서명, 증명(Attestation) |
| 신뢰 모델 | 내부 개발 환경에 대한 전제된 신뢰 | 제로 트러스트 기반의 지속적 검증 |
커널의 감시자와 암호화된 무결성
단순한 취약점 스캔을 넘어, 빌드와 런타임 시점의 동작을 실시간으로 감시하는 고도화된 기술이 대안으로 떠오르고 있다. 대표적인 것이 eBPF(extended Berkeley Packet Filter)다. 커널 레벨에서 시스템 호출을 모니터링하는 이 기술을 적용하면, 컴파일 과정에서 외부 네트워크로 데이터가 전송되거나 예상치 못한 파일 수정이 발생하는 등의 이상 징후를 즉각 포착할 수 있다.

소프트웨어 제작 과정의 무결성을 보장하기 위한 SLSA(Supply-chain Levels for Software Artifacts) 프레임워크의 도입도 검토해야 한다. 소스 코드부터 최종 아티팩트까지의 모든 단계를 암호화된 증명서로 연결하는 방식이다. 특히 빌드 환경을 호스트와 완전히 격리하는 밀폐형 빌드(Hermetic Build)를 통해 외부 요인의 개입을 원천 차단하는 표준을 확립해야 한다.
정교한 보안 체계 구축에는 개발 속도 저하나 전문 인력 확보라는 현실적인 제약이 따른다. 경영진 입장에서는 당장 눈에 보이지 않는 리스크를 방어하기 위해 리소스를 투입하는 것이 비효율적으로 보일 수 있다. 그러나 단 한 번의 사고로 무너지는 브랜드 신뢰도와 복구 비용을 고려한다면, 이는 생존을 위한 필수 투자다.
소프트웨어 공급망 보안이 단순히 도구를 구매하고 목록을 관리하는 수준에 머문다면, 비즈니스는 언제든 무너질 수 있는 사상누각 위에 세워진 것과 다름없다. 복잡한 의존성 구조 속에서 보안 주권을 타인에게 양도한 채 자동화 도구의 알람에만 의존하는 수동적 태도는 현대 보안의 맹점이다. 기술적 성취가 주는 투명성을 통제력으로 착각하는 순간, 공급망은 다시 한번 아킬레스건이 될 것이다.
결국 공급망 보안의 핵심은 도구가 아니라, 사용하는 모든 코드 조각에 대해 끝까지 책임을 지겠다는 거버넌스에 있다. 시장은 가시성을 넘어 실제적인 통제권을 제공하는 솔루션 중심으로 재편될 것이며, 기업들은 도구가 주는 안락함에서 벗어나야 한다. 진정한 보안 혁신은 화려한 대시보드가 아니라, 보이지 않는 의존성 한 줄까지 의심하고 검증하는 냉정함에서 시작된다.