‘막을 방법이 없다’, 이런 일이 정기적으로 일어나는 유일한 패키지 매니저가 말하다

3 hours ago 2
  • npm 레지스트리 공급망 공격으로 수백만 기업 앱과 수십억 사용자 기록이 노출됐지만, 생태계는 이를 피할 수 없는 일처럼 받아들임
  • Senior Frontend Engineer Mark Vance는 문자열 대문자 변환에도 검증 안 된 패키지의 40단계 중첩 의존성에 기대는 현실을 꼬집음
  • 오래 방치된 유틸리티 패키지 탈취로 전 세계 프로덕션 빌드에 crypto-miner가 주입되는 상황이 자연재해처럼 다뤄짐
  • Node.js 생태계는 악성 원격 코드 실행을 예측 불가능한 비극처럼 받아들이고, DevOps 팀은 AWS 키 교체에 매달림
  • Go, Rust, 네이티브 Web API 생태계는 강한 표준 라이브러리와 암호학적 검증으로 서드파티 의존을 줄이는 대비점이 됨

npm 공급망 공격 풍자

  • npm 레지스트리의 공급망 공격으로 수백만 개 기업 애플리케이션이 침해되고 수십억 사용자 기록이 노출됐지만, JavaScript 생태계 개발자들은 이를 “완전히 피할 수 없었다”는 식으로 받아들임
  • Senior Frontend Engineer Mark Vance는 단일 문자열을 대문자로 만들기 위해 검증되지 않은 패키지의 40단계 중첩 의존성 트리에 기대는 현실을 현대 웹 앱 개발의 대가로 봄
  • 오래 방치된 유틸리티 패키지가 탈취돼 전 세계 프로덕션 빌드에 crypto-miner가 주입되는 상황은 자연재해처럼 취급됨
  • Node.js 생태계는 악성 원격 코드 실행을 예측 불가능한 비극처럼 받아들이고, AWS 키를 교체하느라 바쁜 DevOps 팀에 “생각과 기도”를 보냄

다른 생태계와 npm의 대비

  • Go, Rust, 네이티브 Web API 생태계는 강한 표준 라이브러리로 서드파티 코드 의존을 크게 줄이고, 핵심 도구 체인에 엄격한 암호학적 검증을 포함함
  • 해당 생태계에서는 “대학 중퇴자의 주말 프로젝트”가 글로벌 물류 인프라를 망가뜨리는 일이 오늘 0건이었다는 식으로 대비됨
  • npm 대변인은 악의적 행위자가 존재하는 세상에서는 이를 받아들여야 하며, 막을 수 있는 레지스트리 정책이나 빌드 샌드박스 가드레일은 없다고 못박음
  • npm 레지스트리는 로컬 머신에서 임의의 설치 스크립트를 기본 실행하는 오픈소스 레지스트리로 그려져, 대변인의 말과 구조적 위험이 맞물림
  • 마지막에는 피해자에게 위로를 전하면서도 “내일 아침 다음 필연적 침해” 전까지 회복력을 유지해야 한다는 식으로 마무리됨
Read Entire Article