Hugh_휴 님의 블로그
뉴스41. 유출된 샤이훌루드 악성코드, npm 정보탈취 공격으로 재등장 본문

기사 요약:
최근 유출된 샤이훌루드 악성코드가 npm 생태계를 겨냥한 새로운 정보탈취 및 디도스(DDoS) 공급망 공격에 악용되었다. 옥스시큐리티가 발견한 악성 패키지 4종은 유명 패키지의 이름을 모방(타이포스쿼팅)하여 개발자의 자격증명, 클라우드 키, 가상화폐 지갑 등을 탈취했으며, 일부는 디도스 공격 기능까지 포함했다.
1. 유출된 샤이훌루드 악성코드가 npm 생태계를 타깃으로 한 정보탈취 공격에 사용된 것이 확인되었다.
2. 옥스시큐리티가 개발자를 속이기 위해 유명 라이브러리 명칭을 오기입한 형태(axios-util, axois-utils 등)를 포함한 악성 패키지 4종을 발견해 신고했다.
3. 해당 패키지들은 샤이훌루드 원본 코드와 거의 같고 난독화가 되어 있지 않아, 기존 공격 그룹(TeamPCP)이 아닌 공개된 코드를 그대로 쓴 모방 공격자로 추정된다.
4. 개발자 정보탈취 및 깃허브 공개 저장소 자동 업로드 기능 외에도, 일부 패키지(axois-utils)에는 감염된 시스템을 디도스 공격에 동원하는 기능까지 결합되었다.
추가 설명:
공격자는 ‘axios’를 잘못 입력한 것처럼 보이는 이름을 사용해 개발자를 속이고 있다.
⇒ 개발자가 라이브러리를 설치할 때 흔히 저지르는 ‘오타(Typo)’를 노려 낚시를 유도하는 공격 방식을 뜻한다. 보안 분야에서는 이를 타이포스쿼팅(Typosquatting).
개발자가 터미널 창에 npm install axiod나 npm install axois처럼 오타가 난 가짜 패키지 이름을 입력하고 엔터를 누르는 순간, 곧바로 악성코드가 다운로드되고 실행될 수 있다.
+이게 가능한 이유
1. 입력하는 순간 바로 실행되는 원리: preinstall 스크립트
단순히 소스코드가 컴퓨터에 저장만 되는 게 아니라, 왜 명령어를 입력하자마자 악성코드가 실행될까?
npm 패키지 설정 파일(package.json)에는 preinstall이나 postinstall이라는 옵션이 있다. 이는 정상적인 패키지들이 "이 라이브러리를 설치하기 전에 컴퓨터에 필요한 환경을 자동으로 먼저 세팅해라"라고 쓸 때 사용하는 기능이다.
공격자들은 이 기능을 악용한다.
- 공격자가 미리 npm 오픈소스에 axios를 잘못 입력하면 나올 수 있는 것들로 된 이름의 파일을 만들어둔다.(악성 스크립트가 들어있는)
- 개발자가 npm install axiod를 입력한다.
- npm 저장소는 "어? axiod라는 이름의 패키지가 있네?" 하고 다운로드한다.
- 다운로드가 끝나자마자 패키지 내부의 preinstall 명령어가 개발자의 허락 없이 숨겨진 악성 스크립트(샤이훌루드 등)를 자동으로 실행해 버린다.
- 그 결과, 눈 깜짝할 사이에 PC에 있는 비밀키나 계정 정보가 해커의 명령제어(C2) 서버로 전송된다.
2. 공격자가 노리는 심리: 타이포스쿼팅 (Typosquatting)
해커들은 무작위로 이름을 짓지 않는다. 키보드 자판의 위치나 사람들이 흔히 하는 실수를 철저히 계산해서 등록한다.
- 인접한 자판 노리기: 키보드에서 s 바로 옆에 d가 있기 때문에, axios를 치려다 axiod를 입력하는 실수를 노린다.
- 순서 뒤바꾸기: 타이핑을 빠르게 하다 보면 io를 oi로 쳐서 axois가 되기도 한다.
- 그럴듯한 접미사 붙이기: 기사에 나온 axois-utils나 axios-util처럼, 정상 패키지 뒤에 ~util, ~helper, ~tempalte(오타 포함) 등을 붙여서 "정식 확장판인가?" 하고 착각하게 만든다.
개인 의견:
이번 기사의 핵심은 공격자가 타이포스쿼팅을 통해 미리 파일을 선점했다는 것이라고 본다. 그렇다면 왜 개발자들은 본인들의 오타를 보고 파일을 다운할 때까지 이상한 점을 못느꼈을까이다. 이번 공격에 대한 피해를 방지하기 위해서는 오픈소스 환경에서 파일을 다운로드 하기 전에 기존에 다운 받기로 한 파일인지 확인하는 것이 필요해 보인다.
<용어 정리>
샤이훌루드 (Shai-Hulud) 개발자 환경을 겨냥해 자격증명, 클라우드 키, 비밀값 등을 훔치도록 설계된 정보탈취형 악성코드다.
npm Node.js 환경에서 자바스크립트 개발자들이 라이브러리와 도구를 공유하고 다운로드할 수 있는 대표적인 오픈소스 패키지 저장소다.
타이포스쿼팅 (Typosquatting) 사용자가 철자를 실수로 잘못 입력하는 점을 노려, 유명한 정상 패키지명과 유사한 이름을 등록해 사용자를 속이는 공격 기법이다. (예: 정상적인 axios 대신 axois나 axios-util 같은 이름을 사용함)
디도스 (DDoS) 수많은 감염된 시스템을 동원해 특정 서버나 네트워크에 과도한 트래픽을 집중시켜 정상적인 서비스를 마비시키는 분산 서비스 거부 공격이다.
공급망 공격 (Supply Chain Attack) 소프트웨어 개발, 배포, 업데이트 등 공급망의 취약한 연결고리를 변조하여 이를 이용하는 하위 사용자들을 한꺼번에 감염시키는 공격 기법이다. 본 기사에서는 오픈소스 저장소인 npm이 공급망의 타깃이 되었다.
CI/CD 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment)의 약자로, 개발자가 작성한 코드를 자동으로 빌드, 테스트하고 서버에 배포하는 소프트웨어 파이프라인 시스템이다.
CI/CD 비밀값
소프트웨어를 자동으로 빌드하고 배포하는 과정(CI/CD 파이프라인)에서 서버나 데이터베이스, 클라우드 서비스에 안전하게 접근하기 위해 사용하는 일종의 '마스터 키(Master Key)'나 '자동 로그인 자격증명'을 의미
자격증명 (Credential) 비밀번호, API 키, 인증 토큰, SSH 키 등 특정 시스템, 인프라, 또는 클라우드 서비스에 접근할 수 있는 권한을 증명하는 보안 정보들을 통칭한다.
타이포스쿼팅(Typosquatting) 사용자가 키보드로 타이핑할 때 발생하는 오타(Typo)를 노려, 정상적인 이름과 아주 유사한 이름을 선점(Squatting, 무단 점유)해 두고 기다리는 공격 기법 자체를 통틀어 부르는 말이다.
뉴스 링크: https://www.dailysecu.com/news/articleView.html?idxno=206787&page=2&total=149197
'뉴스 클리핑' 카테고리의 다른 글
| 뉴스42. 美 CISA 협력업체 직원, 정부 핵심 클라우드 키 깃허브에 공개 노출 (0) | 2026.05.20 |
|---|---|
| 뉴스 40. 20만 개 워드프레스 사이트 노린 인증 우회 취약점…관리자 계정 탈취 위험 (1) | 2026.05.19 |
| 뉴스39. 폭스콘 북미 공장 사이버공격 확인…랜섬웨어 조직 “8TB 데이터 탈취” 주장 (0) | 2026.05.14 |
| 뉴스38. 해킹보다 무서운 내부자 보복, 쿠팡은 퇴사자 서명키 악용...미국은 해고 통보 중 정부 데이터베이스 삭제 (0) | 2026.05.13 |
| 뉴스37. [긴급] 체크막스 젠킨스 플러그인 해킹… 공급망 공격 또 터졌다 (0) | 2026.05.12 |