SOC Prime Bias: 위험 수준: 치명적

22 Jan 2026 16:09 UTC

BigSquatRat npm 패키지 캠페인 분석

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon 팔로우
BigSquatRat npm 패키지 캠페인 분석
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

이 보고서는 Node.js 원격 접근 트로이 목마를 설치하는 악성 npm 패키지 bigmathix를 프로파일링합니다. 이 패키지는 난독화된 다단계 코드를 사용하여 공격자가 제어하는 GitHub 콘텐츠와 aurevian.cloud에서 후속 페이로드를 가져옵니다. 탐지는 동적 복호화 키와 실행을 제어하는 초기화 인수로 인해 방해되며, 이는 JavaScript 개발자를 대상으로 한 공급망 공격과 일치합니다.

조사

연구원들은 패키지를 디지털 해독하여 자식 프로세스를 생성하고, DNS 해상도를 수행하며, 파생된 키를 사용하여 내장된 URL을 복호화하는 체인을 재구성했습니다. 초기화 값을 무차별 대입하여 aurevian.cloud에서 2단계 페이로드를 복구했으며, RAT 논리의 최종 단계에서 추가적인 난독화를 도입했습니다. 분석가들은 유사한 타임스탬프에 게시된 관련 GitHub 저장소와 추가 npm 패키지를 연관시켜 캠페인 범위를 매핑했습니다.

완화

신뢰할 수 없는 npm 종속성을 피하고—특히 새로 게시된 다운로드 수가 적은 패키지 또는 갑작스러운 버전 변경이 있는 모듈—해시/출처 제어를 통해 무결성을 검증하세요. node.exe에 의해 생성된 의심스러운 자식 프로세스와 알 수 없는 도메인으로의 예상치 못한 출력 조회를 모니터링하십시오. aurevian.cloud에 대한 외부 필터링을 적용하고 Node.js 프로세스에 의해 생성된 Windows 런 키 또는 Linux systemd 서비스와 같은 지속성에 대해 경고를 설정하십시오.

대응

bigmathix가 식별되면 엔드포인트를 격리하고 패키지를 제거하며 생성된 Node.js 프로세스를 종료합니다. 생성된 Run 키 또는 systemd 단위를 삭제하고 관련 도메인/IP를 차단하고 DNS, 프로세스 계보, 네트워크 출력 로그를 수집합니다. 다운로드된 페이로드와 wscript.exe 실행기 또는 예약 서비스와 같은 지속성을 식별하기 위해 포렌식을 수행한 후 일치하는 아티팩트를 찾기 위해 환경을 수색합니다.

공격 흐름

시뮬레이션 실행

전제조건: 텔레메트리 및 기준선 체크가 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 유발하도록 설계된 공격자 기술의 정확한 실행을 자세히 설명합니다. 명령과 설명은 식별된 TTP를 직접 반영하고 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성해야 합니다. 추상적이거나 관련 없는 예는 오진으로 이어질 것입니다.

  • 공격 서사 및 명령:
    공격자는 Node.js 런타임이 필요한 악성 JavaScript 페이로드를 보유하고 있습니다. 표준 응용프로그램 화이트리스트를 피하기 위해, 그들은 wscript.exe—네이티브 Windows 스크립트 호스트—를 사용하여 node.exe 을 간접적으로 실행하여 탐지 규칙에 맞는 부모/자식 관계를 만듭니다. 절차는 다음과 같습니다:

    1. 악성 스크립트 (malicious.js)를 드롭하여 단순히 node.exe 페이로드로 생성합니다.
    2. Windows Script Host가 실행할 래퍼 JavaScript (launcher.js)를 생성하고; 이 래퍼는 WScript.Shell 을 사용하여 node.exe 페이로드로 생성합니다.
    3. 를 실행합니다. wscript.exe //B //Nologo launcher.js.
    4. 를 통해 래퍼를 실행하십시오. 생성된 프로세스 트리는생성된 프로세스 트리는
  • , 목표 텔레메트리를 생성합니다.
    회귀 테스트 스크립트:

    다음 PowerShell 스크립트는 Windows 테스트 호스트에서 전체 체인을 자동화합니다.
  • 정리 명령: 아티팩트를 제거하고 남아있는 프로세스를 종료하십시오.

    # 검증 후 실행되는 정리 스크립트
    $tempPath = "$env:TEMP"
    Remove-Item -Path (Join-Path $tempPath "launcher.js") -ErrorAction SilentlyContinue
    Remove-Item -Path (Join-Path $tempPath "malicious.js") -ErrorAction SilentlyContinue
    
    # 테스트에 의해 생성된 보류 node.exe 프로세스를 종료합니다
    Get-Process -Name node -ErrorAction SilentlyContinue | Stop-Process -Force