당신이 보는 것이 실행되는 것이 아니다: 공급망 보안을 위한 메모리 기반 런타임 SBOM 생성
요약
Python 애플리케이션의 런타임 상태에서 직접 SBOM을 생성하는 메모리 포렌식 프레임워크 MEM-SBOM을 제안합니다. 휘발성 메모리를 활용하여 기존 도구가 놓치는 동적 의존성을 100% 정확도로 복구하고 취약점을 식별합니다.
핵심 포인트
- 메모리 포렌식을 통한 런타임 SBOM 생성 프레임워크 MEM-SBOM 제시
- 사전 계측 없이 휘발성 메모리에서 실제 실행 중인 구성 요소 복구
- Python 인터프리터 내부 구조 및 바이트코드 분석을 통한 의존성 그래프 구축
- 기존 SBOM 도구가 탐지하지 못한 런타임 패키지 및 취약점 식별 성공
현대 소프트웨어 개발은 공개 저장소의 제3자 구성 요소에 크게 의존하며, 이는 소프트웨어 공급망 공격 표면(attack surface)을 확장시킵니다. 이러한 증가하는 위험에 대응하여, 연방 이니셔티브는 소프트웨어 구성 요소, 의존성 및 그 관계를 설명함으로써 투명성을 개선하기 위한 표준화된 메커니즘으로 소프트웨어 자재 명세서(Software Bill of Materials, SBOM)를 발전시켜 왔습니다. 그러나 메타데이터나 파일 시스템 아티팩트(artifacts)를 기반으로 구축된 SBOM은 특히 Python과 같은 동적 생태계에서 런타임(runtime)에 로드되어 실행되는 구성 요소를 포착하지 못합니다. 더욱이, 계측(instrumentation)을 통해 런타임 SBOM을 생성하려면 모니터링이 사전에 배포되어야 하며 실행 내내 시스템이 관찰 가능(observable)한 상태를 유지해야 합니다. 이러한 조건은 운영 환경 및 사고 대응(incident-response) 시나리오에서 충족하기 어렵습니다. 반면, 휘발성 메모리(Volatile memory)는 사전 계측 없이도 실행 중인 애플리케이션의 실제 런타임 상태를 복구할 수 있는 신뢰할 수 있는 소스를 제공합니다. 따라서 본 논문은 Python 애플리케이션의 런타임 상태에서 직접 SBOM을 생성하는 최초의 메모리 포렌식(memory forensics) 프레임워크인 MEM-SBOM을 제시합니다. 이 프레임워크는 인터프리터의 내부 구조에서 모듈을 복구하고, 패키지 버전을 해결하며, 바이트코드(bytecode)를 분석하여 의존성 그래프를 구축하고 취약한 함수를 식별합니다. 우리는 MEM-SBOM을 Volatility 3 플러그인 제품군으로 구현하였으며, 51개의 실제 Python 애플리케이션을 대상으로 평가를 수행했습니다. MEM-SBOM은 100%의 추출 정확도를 달성하였고, tornado 의존성의 취약한 루틴을 호출하는 유일한 애플리케이션으로 Streamlit을 식별하였으며, 기존 SBOM 도구들이 놓친 모든 런타임 패키지를 복구하여 더 정확한 의존성 그래프와 더 나은 취약점 평가를 제공했습니다. 이러한 능력은 시스템에서 실행되는 것에 대한 포렌식적으로 건전한 런타임 뷰를 제공함으로써, MEM-SBOM을 소프트웨어 공급망 보안 및 사고 대응을 위한 실질적인 토대로 만듭니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기