보안 연구진이 주간 다운로드 합계 47,000회를 넘는 악성 npm 패키지 15개를 발견했습니다. 이 패키지들은 인기 라이브러리를 흉내 내 자격 증명을 훔치고 백도어를 삽입하며 환경 변수를 외부로 유출합니다.
Socket Security 연구진은 npm 레지스트리에서 악성 패키지 15개를 확인했습니다. 탐지되기 전까지 이 패키지들의 주간 다운로드 합계는 47,000회를 넘었습니다. 공격자는 타이포스쿼팅 과 의존성 혼동 기법을 사용해 개발 파이프라인에 침투했습니다.
아래에 나열된 영향받는 패키지가 package.json 및 package-lock.json 에 포함돼 있는지 확인하십시오. 일치하는 항목이 하나라도 발견되면 해당 패키지를 제거하고 모든 자격 증명을 교체해야 합니다.
| 패키지 이름 | 모방 대상 | 주간 다운로드 | 페이로드 |
|---|---|---|---|
axois | axios | 12,400 | 자격 증명 탈취 |
react-dom-utils | react-dom | 8,200 | 백도어 삽입 |
lodash-utils-2 | lodash | 6,800 | 환경 변수 유출 |
express-sessoin | express-session | 4,100 | 세션 탈취 |
dotenv-expand-cli | dotenv-expand | 3,900 | 비밀정보 탈취 |
webpack-dev-srv | webpack-dev-server | 2,800 | 리버스 셸 |
15개 중 6개 패키지만 표시했습니다. 전체 목록은 KENSAI 위협 인텔리전스 피드에서 확인할 수 있습니다.
공격자는 인기 라이브러리 이름에서 흔히 발생하는 오타를 패키지 이름으로 등록합니다. 문자 하나만 다른 axois 와 axios 만으로도 서두르는 개발자를 속일 수 있습니다.
일부 패키지는 내부용처럼 보이는 이름(예: @company-internal/auth-utils)을 사용했습니다. 공개 npm 레지스트리와 비공개 레지스트리를 적절한 스코프 설정 없이 혼용하는 조직을 노린 수법입니다.
15개 패키지 모두 npm install 과정에서 postinstall 스크립트를 통해 악성 코드를 실행합니다. 페이로드는 Base64 인코딩, 문자열 연결 및 동적 eval() 호출로 난독화돼 있습니다.
node_modules 파일 변조npm audit 를 실행하고 타이포스쿼팅 변형 패키지가 있는지 확인합니다.package-lock.json 을 항상 커밋하고 무결성 해시를 검증합니다.@your-org/ 스코프가 지정된 내부 패키지만 허용하도록 설정합니다.안전을 유지하세요. 경계를 늦추지 마세요.
🗡️ KENSAI 보안팀