jscrambler npm 계정 탈취 및 IronWorm 악성코드 유포 주의보

최근 jscrambler npm 계정이 탈취당하면서 IronWorm 정보탈취 악성코드가 담긴 패키지가 유포되는 공급망 공격이 발생했다. 공격자는 악성 버전을 다수 게시해 개발자의 npm 인증 정보를 빼냈으며, 이를 활용해 인기 패키지로까지 감염을 확산하는 자가전파 메커니즘을 사용했다.

사건 개요 및 타임라인

2026년 7월 11일, jscrambler npm 패키지 계정 탈취로 인해 악성 코드가 포함된 버전이 무단 게시되었다. 공격자는 런던 시간 기준 같은 날 16:12:40(미국 동부 시간 11:12:40)에 해당 패키지를 유포했다.

npm 보고서에 따르면 영향을 받은 버전의 총 다운로드는 1,479회다. 현재 해당 버전은 npm에서 모두 삭제되었다. 주간 다운로드 약 15,800건을 기록하는 jscrambler 패키지의 특성상, 공급망 공격 대상이 되었을 때 파급력이 상당했던 셈이다.

악성 버전별 실행 방식 변화 및 우회 전략

이번 공격의 핵심은 보안 옵션으로 알려진 npm install --ignore-scripts를 무력화하려 드롭퍼 위치를 변경했다는 점이다.

  1. 초기 버전: 설치 과정의 preinstall 훅 등을 이용해 악성코드를 심었다.
  2. 고도화 버전 (8.18.0, 8.20.0): 드롭퍼 코드가 패키지 메인 코드와 CLI 내부로 이동했다. 패키지를 import하거나 실행하는 것만으로도 악성코드가 작동해, 스크립트 무시 옵션만으로는 방어가 불가능해졌다.

IronWorm 악성코드 기술적 특징

이번 공격에 사용된 임플란트는 IronWorm의 진화된 변종이다. 기존 아키텍처를 유지하되 플랫폼 범위와 지속성 메커니즘, 타겟 목록을 대폭 늘렸다.

8.14.0, 8.16.0, 8.17.0, 8.18.0, 8.20.0 버전에는 package/dist/intro.js 파일이 포함되어 있다. 이 번들이 악성 네이티브 페이로드 로더를 담은 핵심 역할을 맡는다.

C2 서버 및 네트워크 지표

감염된 시스템은 외부 명령 및 제어(C2) 서버와 통신을 시도한다. 보안 담당자는 다음 IP와 네트워크 경로로의 아웃바운드 연결을 즉시 차단해야 한다.

  • C2 IP 주소: 37.27.122.124, 57.128.246.79
  • 기타 경로: Tor onion-routing 노드를 통한 연결

자가전파 메커니즘 상세

IronWorm 악성코드는 로컬 시스템에 npm CLI 도구가 없어도 독립적으로 작동하는 고도의 자가전파 기능을 갖췄다. 과정은 다음 단계로 진행된다.

  1. 인증 정보 수집: 시스템 내 npm 인증 정보를 수집한다.
  2. 인증 유효성 검증: 수집된 인증 정보가 유효한지 확인한다.
  3. 타겟 선정: 인지도가 높은 인기 패키지를 타겟으로 삼아 영향력을 극대화한다.
  4. 감염 및 다운로드: 타겟 패키지를 다운로드해 악성 코드를 삽입(Infect)한다.
  5. 레지스트리 게시: 변조된 패키지를 npm 레지스트리에 게시해 2차 피해를 발생시킨다.

영향받은 패키지 및 안전 버전 목록

메인 패키지뿐 아니라 관련 플러그인과 도구도 영향받았다. 설치된 버전을 확인하고 즉시 안전 버전으로 업데이트해야 한다.

패키지 명 악성/취약 버전 안전 버전 (Safe Version)
jscrambler 8.14.0, 8.16.0, 8.17.0, 8.18.0, 8.20.0 8.22
jscrambler-webpack-plugin 8.6.2 8.6.3
gulp-jscrambler 8.6.2 8.6.3
grunt-jscrambler 8.5.2 8.5.3
jscrambler-metro-plugin 9.0.2 9.0.3

대응 체크리스트 및 권장 조치

CI/CD 파이프라인 관리자와 개발자는 다음 지침에 따라 즉각적인 보안 조치를 취해야 한다.

  1. 버전 전수 조사 및 업데이트

    • package-lock.json 또는 yarn.lock 파일에서 위 표에 명시된 악성 버전 포함 여부를 확인한다.
    • jscrambler 패키지는 8.22 버전으로, 관련 플러그인은 각각 8.6.3, 8.5.3, 9.0.3 버전으로 즉시 업데이트한다.
  2. 네트워크 트래픽 분석 및 차단

    • 방화벽 및 IDS/IPS 설정에서 37.27.122.12457.128.246.79 IP 연결 기록을 조사한다.
    • 해당 IP 및 Tor 노드로의 모든 아웃바운드 통신을 차단한다.
  3. 인증 정보 재설정 및 로테이션

    • IronWorm이 npm 인증 정보를 수집해 다른 패키지에 접근하는 특성이 있으므로, 해당 패키지를 사용한 모든 환경의 npm API 토큰과 계정 비밀번호를 즉시 변경해야 한다.
  4. CI/CD 파이프라인 무결성 검사

    • 빌드 서버 내 package/dist/intro.js 파일 생성 또는 실행 흔적이 있는지 확인한다.
    • --ignore-scripts 옵션만으로는 방어가 불가능하므로, 의존성 잠금 파일(Lock file) 무결성 검증 프로세스를 강화해야 한다.

댓글 남기기