Rust 생태계, 공급망 보안은 개발자 책임? 커뮤니티의 엇갈린 시선
crates.io의 공급망 공격 취약성을 지적하며, 오픈소스 의존성 관리의 어려움을 제기함
타이포 스쿼팅(typo-squatting), 빌드 스크립트(build scripts), VCS 코드 불일치 등 다양한 공격 벡터(Attack Vector)를 분석함
crates.io 운영 주체의 한계와 개발자들의 책임 분담을 강조하며, 코드 감사(Code Auditing)의 중요성을 역설함
오픈소스 라이선스(Open Source License)의 한계와 기업의 오픈소스 채택에 대한 회의적인 시각도 존재함
공급망 공격의 주요 원인 분석
게시물에서는 타이포 스쿼팅(typo-squatting), 즉, 유사한 이름의 악성 라이브러리 사용을 공급망 공격의 주요 원인으로 지목한다. 또한, 빌드 스크립트(build scripts)의 무분별한 접근 권한과 VCS(Version Control System) 코드 불일치 문제도 지적하며, 이러한 취약점을 악용한 공격 가능성을 경고한다. 특히, rust-analyzer가 프로젝트 디렉토리를 열 때마다 cargo check를 실행하여 0-클릭 RCE(Remote Code Execution)가 발생할 수 있다는 점을 강조한다.
crates.io의 한계와 책임 소재
게시물은 crates.io가 오픈소스 생태계의 특성상 모든 보안 문제를 해결하기 어렵다고 주장한다. crates.io는 자발적인 기여에 의존하며, 제한된 자원으로 인해 중앙 집중식 보안 시스템을 구축하기 어렵다. 따라서, 공급망 보안(Supply-chain Security)에 대한 책임은 궁극적으로 crate 사용자에게 있으며, 코드 감사(Code Auditing)와 같은 자체적인 노력이 필요하다고 강조한다. 또한, 오픈소스 라이선스의 한계를 언급하며, 기업의 오픈소스 채택에 대한 신중한 접근을 권고한다.
Rust 생태계의 보안 강화 노력
게시물은 Rust Foundation의 보안 강화를 위한 노력을 언급하며, 타이포 스쿼팅(typo-squatting) 탐지, 동적 빌드 스크립트 분석, 실시간 코드 스캔 등의 도구 개발을 예시로 제시한다. 또한, on-call 엔지니어(On-call Engineers) 채용 및 인프라 투자를 통해 보안 역량을 강화하고 있다고 설명한다. 하지만, 이러한 노력에도 불구하고, crates.io의 규모와 자원 제약으로 인해 완벽한 보안을 보장하기는 어렵다는 점을 강조한다.
커뮤니티의 다양한 의견
댓글에서는 패키지 서명(Package Signing) 부재에 대한 아쉬움을 표하며, CI(Continuous Integration) 환경의 취약성을 지적한다. 또한, 샌드박싱(Sandboxing)의 한계와 의존성 축소의 필요성을 강조하며, AI 기반 코드 생성 기술을 활용한 새로운 방식의 의존성 관리를 제안한다. 일부 개발자는 오픈소스의 책임 부재에 대한 비판적인 시각을 드러내며, 기업의 오픈소스 채택에 대한 우려를 표명한다.