‘막을 방법이 없다’, 이런 일이 정기적으로 일어나는 유일한 패키지 매니저가 말하다
핵심 포인트 1
npm 레지스트리 공급망 공격으로 수백만 기업 앱과 수십억 사용자 기록이 노출됐지만, 생태계는 이를 피할 수 없는 일처럼 받아들임Vance는 문자열 대문자 변환에도 검증 안 된 패키지의 40단계 중첩 의존성에 기대는 현실을 꼬집음오래 방치된 유틸리티 패키지 탈취로 전 세계 프로덕션 빌드에 crypto-m
‘막을 방법이 없다’, 이런 일이 정기적으로 일어나는 유일한 패키지 매니저가 말하다 (kevinpatel.xyz)1P by GN⁺ 3일전 | ★ favorite | 댓글 1개 npm 레지스트리 공급망 공격으로 수백만 기업 앱과 수십억 사용자 기록이 노출됐지만, 생태계는 이를 피할 수 없는 일처럼 받아들임 Vance는 문자열 대문자 변환에도 검증 안 된 패키지의 40단계 중첩 의존성에 기대는 현실을 꼬집음 오래 방치된 유틸리티 패키지 탈취로 전 세계 프로덕션 빌드에 crypto-miner가 주입되는 상황이 자연재해처럼 다뤄짐 Node.js 생태계는 악성 원격 코드 실행을 예측 불가능한 비극처럼 받아들이고, DevOps 팀은 AWS 키 교체에 매달림 Go, Rust, 네이티브 Web API 생태계는 강한 표준 라이브러리와 암호학적 검증으로 서드파티 의존을 줄이는 대비점이 됨 npm 공급망 공격 풍자 npm 레지스트리의 공급망 공격으로 수백만 개 기업 애플리케이션이 침해되고 수십억 사용자 기록이 노출됐지만, JavaScript 생태계 개발자들은 이를 “완전히 피할 수 없었다”는 식으로 받아들임 Vance는 단일 문자열을 대문자로 만들기 위해 검증되지 않은 패키지의 40단계 중첩 의존성 트리에 기대는 현실을 현대 웹 앱 개발의 대가로 봄 오래 방치된 유틸리티 패키지가 탈취돼 전 세계 프로덕션 빌드에 crypto-miner가 주입되는 상황은 자연재해처럼 취급됨 Node.js 생태계는 악성 원격 코드 실행을 예
핵심 포인트 2
측 불가능한 비극처럼 받아들이고, AWS 키를 교체하느라 바쁜 DevOps 팀에 “생각과 기도”를 보냄 다른 생태계와 npm의 대비 Go, Rust, 네이티브 Web API 생태계는 강한 표준 라이브러리로 서드파티 코드 의존을 크게 줄이고, 핵심 도구 체인에 엄격한 암호학적 검증을 포함함 해당 생태계에서는 “대학 중퇴자의 주말 프로젝트”가 글로벌 물류 인프라를 망가뜨리는 일이 오늘 0건이었다는 식으로 대비됨 npm 대변인은 악의적 행위자가 존재하는 세상에서는 이를 받아들여야 하며, 막을 수 있는 레지스트리 정책이나 빌드 샌드박스 가드레일은 없다고 못박음 npm 레지스트리는 로컬 머신에서 임의의 설치 스크립트를 기본 실행하는 오픈소스 레지스트리로 그려져, 대변인의 말과 구조적 위험이 맞물림 마지막에는 피해자에게 위로를 전하면서도 “내일 아침 다음 필연적 침해” 전까지 회복력을 유지해야 한다는 식으로 마무리됨 함께 보면 좋은 글 NPM에 8만6천 회 이상 다운로드된 악성 패키지 대량 유포 GitHub Actions에는 패키지 관리자가 있지만, 최악일 수 있다 Bitwarden CLI npm 패키지 하이재킹 – 개발자 인증정보 대규모 탈취 공격 발견 우리는 정말 큰 위협을 피했음 axios@1.14.1, axios@0.30.4 버전이 해킹당했습니다. 인증 이메일 클릭후 다시 체크박스를 눌러주세요 ▲GN⁺ 3일전 [-]Hacker News 의견들 쿨다운에 대해 각자 생각은 있겠지만, axios, tanstack을 비롯한 최근 npm 공급망 공격 상당수는 쿨다운으로 피할 수 있었을 것임 Artifactory / Nexus를 쓰면 이미 쿨다운이 있을 가능성이 높고, 없어도 설정은 쉬움 npm이나 PyPI 침해는 대부분 몇 시간 안에 내려갔으므로, 쿨다운은 “릴리스된 지 N일 안 된 패키지는 무시”하자는 뜻임. 1일도 효과가 있고, 3일은 괜찮으며, 7일은 약간 과하지만 동작함 설정 방법으로는 기본 1일 쿨다운을 넣은 최신 pnpm을 쓰거나 https://pnpm.io/s
핵심 포인트 3
upply-chain-security, 한 번에 고치고 싶으면 npm, pnpm, yarn, bun, uv, dependabot에 쿨다운과 권장 설정을 넣어주는 https://depsguard.com을 쓸 수 있음. 내가 유지관리자임 또는 쿨다운에 더 집중한 https://cooldowns.dev도 있고, 로컬 설정을 돕는 스크립트도 있음. 모두 오픈소스이거나 무료임 ~/.npmrc 등을 직접 편집할 줄 알면 굳이 필요 없지만, 원클릭 해결이 필요한 주변 사람에게는 다음 공격을 피하게 해줄 가능성이 큼 단, 새 치명적 CVE를 패치해야 할 때는 쿨다운을 우회해야 하고, 각각 우회 방법이 있음. 정확한 수치는 없지만 지난 몇 주 동안은 새 제로데이 CVE보다 소프트웨어 공급망 공격에서 더 큰 위험이 온 것처럼 보임 7일이 과하다는 생각이 오히려 이상함. 특정 새 기능이 꼭 필요한 게 아니라면, 새 프로젝트를 시작할 때도 보통 몇 달 전에 나온 의존성 버전으로 충분해야 함 정기적인 의존성 업그레이드도 마찬가지임. 다만 취약점 대응처럼 즉시 올려야 하는 경우가 있는데, 그때는 개발자가 원하는 새 버전을 명시적으로 지정하게 해도 괜찮다고 봄 그러면 문제가 그냥 7일 뒤로 밀리는 것 아닌가 싶음. 이런 사고는 누군가 감염되고 알아차리면서 끝나는 것이지, 변경 사항을 감사하는 군대가 있어서 잡히는 게 아니라고 생각했음 모두가 7일 쿨다운을 걸면 그냥 더 늦게 터지는 것 아닌가? 빠뜨린 문구가 있어 보임: Disclaimer: I maintain depsguard 쿨다운이 효과적일지 확신은 없음. 누군가는 쿨다운을 우회해서 문제 있을 수 있는 릴리스를 설치하고 문제를 발견해야 함. 아무도 그러지 않으면 문제를 3/7/10/14일 늦춘 것뿐임 쓰면서 더 생각해보니, 그래도 최근 10일 안에 나온 것은 설치하지 않는 10일 쿨다운에는 동의함. 다만 이것이 유일한 완화책이라고 기대해서는 안 된다고 봄 Linux 배포판처럼 최신/안정/장기지원 식으로 별도 배포판이나 채널을 만들면
핵심 포인트 4
안 되나? Go나 Rust가 Python/npm에 비해 실제로 보장하는 것이 무엇인지 궁금함. 그냥 Python/npm이 더 맛있는 표적이라 그런 것 같기도 함 점점 모든 서드파티 패키지를 피하려고 하는 중임 패키지와 이름공간의 소유권을 어떻게 부여할지는 100% 패키지 관리자 운영 주체에 달려 있음 Maven Central은 수십 년째 존재하지만 이름공간을 훔친 사고는 매우 적음 ycombinator.com 도메인을 소유한다는 검증 없이 groupId "com.ycombinator"로 패키지를 올릴 수 없음. 그리고 한 번 올라간 패키지는 악성 코드가 들어 있어도 100% 불변임. 물론 그런 라이브러리는 취약하다고 곳곳에서 표시됨 NPM이 그렇게 오래 Maven Central 같은 안전장치를 복제하지 못했다는 게 이해되지 않음 글의 핵심 중 하나는 다른 인기 언어 대부분에는 포괄적인 표준 라이브러리가 있다는 것임. JS의 표준 라이브러리는 놀라울 정도로 작음 언어와 함께 배포되는 검증된 라이브러리 묶음이 있는 대신, 애플리케이션은 직접 만들거나 서드파티 패키지 저장소에서 가져와야 함. NIH를 피하라고 계속 가르쳐왔기 때문에 사람들은 패키지를 집어 드는 편임 그 자체가 꼭 나쁜 건 아니지만, 필요한 것보다 더 많은 코드를 끌어오는 경우가 많음. JS 생태계는 작은 모듈도 선호해서 많은 모듈이 필요하고, 모두가 그 위에 다시 쌓으면서 의존성 그래프가 거대해짐. 의도적이든 아니든 문제가 생길 표면적이 너무 큼 다른 언어는 기본 제공 기능이 많음. 버그와 보안 이슈가 없었던 건 아니지만, JS 생태계에서 보는 것에 비하면 새발의 피임. 외부 의존성 그래프가 훨씬 작고 핵심 기능은 신뢰된 제3자에서 옴 공격자는 피해자가 있는 곳으로 감. 프런트엔드는 대다수가 NPM을 쓰는 단일 문화에 가깝고, 백엔드는 그 정도가 덜함 이게 NPM의 변명이 되지는 않고, 오히려 NPM에 불리한 요소가 하나 더 늘어난 셈임 이런 공격이 프런트엔드 개발자와 백엔드 개발자의 차이를 더...
Source context
원문 링크와 함께 맥락을 비교해볼 수 있습니다.
이 글은 원문을 그대로 옮기기보다 안똔AI 관점에서 필요한 맥락을 다시 정리합니다.
자주 묻는 질문
Q. 이 기사의 핵심 내용은 무엇인가?
npm 레지스트리 공급망 공격으로 수백만 기업 앱과 수십억 사용자 기록이 노출됐지만, 생태계는 이를 피할 수 없는 일처럼 받아들임Senior Frontend Engineer Mark Vance는 문자열 대문자 변환에도 검증 안 된 패키지의 40단계 중첩 의존성에 기대는 현실을 꼬집음오래 방치된 유틸리티 패키지 탈취로 전 세계 프로덕션 빌드에 crypto-m ‘막을 방법이 없다’, 이런 일이 정기적으로 일어나는 유일한 패키지 매니저가 말하다 (kevinpatel.xyz)1P by GN⁺ 3일전 | ★ favorite | 댓글 1개
Q. 왜 이 이슈가 중요한가?
기사에 따르면 주요 이유는 해당 기술/정책이 시스템에 미치는 영향과 광범위한 채택 가능성 때문입니다.
Q. 실무적 시사점은 무엇인가?
조직은 관련 리스크를 점검하고 필요 시 정책·도구를 조정해야 합니다.
같이 읽을 글
같은 카테고리 안에서 이어서 보기 좋은 글만 추렸습니다.
아직 존재하지 않는 것들을 위한 시각화 디자인
대부분의 데이터 시각화는 과거를 다루며, 미래를 보여준다고 해도 단일 선을 앞으로 연장하는 수준에 그쳐 불확실성의 구조적 특성을 제대로 반영하지 못함예측에서 반사실적 시나리오까지, 시각화의 대상이 '데이터'가 아닌 '가능성의 공간' 으로 전환되면 다중성·불확실성·의존성이라는 세 가지 핵심 과제가 등장계층화된 불확실성, 분.
금욕적 컴퓨팅
금욕적 컴퓨팅은 결핍보다 단순함과 집중을 택하는 방식이며, 새 유행보다 원칙·목적·집중을 우선함알림·팝업·자동 업데이트처럼 주의력을 빼앗는 소프트웨어를 피하고, OpenBSD, Vim, Dillo, Ruby처럼 그냥 작동하는 도구를 선호함오래가는 지식은 프로그래밍 기초와 Unix 기초에 있으며, vi처럼 수십 년 지속된.
Google 검색의 생성형 AI 기능을 위한 웹사이트 최적화
구글에서 년 월 일에 배포한 공식 가이드라인으로, 개요 등 생성형 기능이 도입된 검색 환경에서 웹사이트 소유자가 어떻게 대처하고 성공할 수 있는지 정리한 글입니다.많은 이들이 답변 엔진 최적화나 생성형 엔진 최적화 같은 새로운 최적화 기법을 찾고 있지만, 구글은 생성형 검색의 근.