NPM 생태계, 또다시 공급망 공격에 노출
314개 NPM 패키지가 공격에 노출되어 개발자 생태계에 심각한 위협을 가함
패키지 매니저(Package Manager)의 근본적인 보안 취약성에 대한 비판이 제기됨
사전/사후 설치 스크립트(Pre/Post Install Scripts)의 위험성을 지적하며 폐지를 주장하는 의견도 존재함
Dependabot 비활성화 및 NPM 패키지 고정(Freeze)을 통해 공급망 공격을 방어하자는 의견도 제기됨
NPM 생태계의 취약성
댓글에서는 NPM 생태계에서 공급망 공격이 빈번하게 발생하는 근본적인 원인에 대해 지적한다. 특히, 패키지 매니저(Package Manager)의 구조적 취약성으로 인해 유사한 공격이 반복된다는 비판이 제기된다. 이러한 취약성은 개발자들이 신뢰할 수 없는 패키지(Untrusted Packages)를 무의식적으로 설치하게 만들고, 이는 곧바로 시스템 보안을 위협하는 결과를 초래한다.
사전/사후 설치 스크립트(Pre/Post Install Scripts)의 위험성
일부 개발자들은 사전/사후 설치 스크립트(Pre/Post Install Scripts)의 무분별한 사용을 문제점으로 지적하며, 해당 기능의 폐지를 주장한다. 기술적으로 보면, 이러한 스크립트는 패키지 설치 과정에서 임의의 코드를 실행할 수 있어, 악성 코드 삽입의 주요 통로로 악용될 수 있다. 보안 강화(Security Hardening)를 위해, NPM은 해당 기능에 대한 엄격한 제어를 강화해야 한다는 목소리가 높다.
의존성 관리(Dependency Management)의 어려움
커뮤니티에서는 의존성 관리(Dependency Management)의 어려움을 토로하며, Dependabot과 같은 자동 업데이트 도구의 위험성을 경고한다. 특히, 프론트엔드 패키지(Frontend Packages)의 경우, 보안 패치보다 공급망 공격의 위험이 더 크다는 인식이 팽배하다. 따라서, BOM(Bill of Materials)을 활용하여 패키지 버전을 고정하고, 불필요한 업데이트를 최소화하는 전략이 제시된다.
Zed의 보안 모델(Security Model) 문제
Zed와 같은 일부 개발 도구의 보안 모델(Security Model)은 모든 기능을 허용하거나, 모두 차단하는 방식으로 설계되어 있어, 개발자들에게 불편함을 초래한다. 기술적으로 보면, LSP(Language Server Protocol) 기능을 사용하기 위해, 모든 NPM 패키지 설치를 허용해야 하는 상황이 발생할 수 있다. 이는 잠재적인 보안 위험을 감수해야 하는 트레이드오프(Trade-offs)를 강요하며, 개발자들의 불만을 야기한다.