피드로 돌아가기
The RegisterSecurity
원문 읽기
3초 만에 20개 npm 패키지를 오염시킨 자동화 Supply Chain Attack
Miasma campaign poisons 20-plus npm packages, hunts for developer secrets
AI 요약
Context
신뢰 기반의 npm 패키지 생태계와 메인테이너 계정 권한 체계의 취약점을 악용한 공격 사례임. CI Runner와 개발자 워크스테이션의 Secret 관리 허점을 통해 권한을 탈취하고 전파하는 Worm 구조를 가짐.
Technical Solution
- Maintainer 계정 탈취 후 3초 이내에 20개 이상의 패키지에 악성 업데이트를 배포한 fully automated operation 수행
- 전통적인 C&C 서버 통신 대신 탈취한 계정으로 생성한 GitHub Repository에 데이터를 커밋하는 은닉 경로 설계
- Node.js 기반 보안 솔루션의 탐지를 회피하기 위해 Bun JavaScript Runtime을 별도로 다운로드하여 실행하는 Payload 전략 채택
- npm installation hooks 방식에서 벗어나 설치 프로세스 내 다른 지점에 페이로드를 숨기는 진화된 은닉 기법 적용
- 탈취한 권한을 이용해 관리 패키지를 재배포함으로써 npm 2FA를 우회하는 self-propagating 메커니즘 구축
- CI Runner 메모리를 스캐닝하여 AWS, Azure, GCP 등 클라우드 자격 증명과 Kubernetes secrets를 추출하는 메모리 덤프 로직 구현
실천 포인트
1. Dependency Lockfile 검증 및 내부 패키지 Mirror 사용으로 외부 오염 차단
2. CI Runner의 메모리 내 Secret 노출 방지를 위한 단기 유효 토큰(Short-lived Token) 도입
3. Bun 등 비표준 런타임의 예기치 않은 실행을 차단하는 엔드포인트 보안 정책 설정
4. 패키지 업데이트 전 신뢰할 수 있는 버전 범위(Version Pinning) 설정 및 무결성 검사 수행
5. 자격 증명 유출 의심 시, 신규 Secret 생성 전 기존 노출 환경의 완전한 격리 및 세척 우선 수행