C 라이브러리, 의존성 추적은 왜 어려울까?

by DD
2개월 전
조회수 14

C 언어 기반의 curl 및 libcurl은 표준 패키지 관리 시스템에 포함되지 않아 의존성 추적 도구(Dependency Tracking Tools)에서 누락되는 경우가 많음

PURL(Package URLs)과 같은 표준이 C 라이브러리를 제대로 지원하지 못하며, SBOM 생성 시 정확한 의존성 정보를 제공하지 못하는 문제 발생

운영체제(OS)에 번들되어 배포되는 경우가 많아, 의존성 그래프(Dependency Graph)에서 누락되어 보안 취약점(Security Vulnerabilities)을 파악하기 어려움

커뮤니티에서는 apt, RPM 등 기존 패키지 관리자를 언급하며, 최신 도구들의 한계를 지적함

패키지 관리 시스템의 한계

본문에서는 curl과 libcurl이 표준 패키지 관리 시스템(Package Management System)에 포함되지 않아 의존성 추적 도구에서 누락되는 문제를 지적한다. 특히, apt, RPM과 같은 기존 패키지 관리자를 지원하지 않는 도구들의 한계를 언급하며, SBOM(Software Bill of Materials) 생성 시 정확한 의존성 정보를 제공하지 못하는 문제를 제기한다. 이는 보안 취약점(Security Vulnerabilities) 분석 및 관리의 어려움으로 이어진다. 🧐

PURL(Package URLs)의 부적합성

PURL(Package URLs)은 패키지 식별을 위한 표준이지만, curl 및 libcurl과 같은 C 라이브러리를 제대로 지원하지 못하는 것으로 나타났다. PURL 사양(Specification)은 pkg URI 스키마를 사용하지만, 이는 등록되지 않은 스키마로, 의존성 추적(Dependency Tracking)에 어려움을 야기한다. 커뮤니티에서는 PURL이 패키지와 의존성을 혼동한다는 비판도 제기되었다. 🔗

번들 의존성 문제

curl 및 libcurl은 종종 운영체제(OS)에 번들되어 배포되거나, 프로젝트 내에 직접 포함되는 경우가 많다. 이러한 번들 의존성(Bundled Dependencies)은 의존성 추적 도구에서 쉽게 감지되지 않아, SBOM 생성 시 정확한 정보를 제공하기 어렵게 만든다. 데이터 격리 아키텍처(Data Isolation Architecture)를 구축하고, GDPR 규제 준수(GDPR Compliance)를 위해 정확한 의존성 정보는 필수적이다. 🛡️

빌드 타임 의존성 문제

빌드 타임(Build-time)에 선택되는 의존성은 런타임(Runtime)에 사용되는 라이브러리와 다를 수 있으며, curl 프로젝트는 소스 코드 형태의 tarball을 제공하여 빌드 시 의존성을 명확하게 파악하기 어렵게 만든다. 멀티모달 분석(Multimodal Analysis)을 통해 다양한 환경에서의 의존성을 추적하는 것이 중요하며, AI 환각(Hallucination)을 방지하기 위해 정확한 정보를 제공해야 한다. ⚙️

Dependency Tracking is Hard

댓글 0

첫 번째 댓글을 남겨보세요!