메인 콘텐츠로 건너뛰기
미니 Shai-Hulud 공급망 공격 블로그 게시물의 대표 이미지
새로운 문제

미니 샤이-훌루드 공급망 공격: 이 캠페인이 방어자들의 신뢰할 수 있는 소프트웨어에 대한 사고방식을 바꾸는 이유

미니 샤이-훌루드 공급망 공격은 npm과 PyPI 전반에 걸쳐 TanStack, Mistral AI, Guardrails AI의 패키지를 포함한 170 개 이상의 패키지를 침해했으며, 합법적인 CI/CD 게시 워크플로를 탈취하여 여전히 겉보기에 유효한 출처 신호를 포함한 악성 버전을 배포했습니다.

미니 Shai-Hulud 공급망 공격은 단지 또 다른 악성 패키지 사고가 아닙니다. 이 캠페인은 신뢰할 수 있는 게시 워크플로, 산지 서명 파이프라인 및 개발자 환경을 포함한 합법적인 릴리스 인프라를 남용했습니다. 이러한 기술은 코드가 대부분의 표준 검증 및 무결성 검사를 통과하므로 악성 활동을 정상으로 보이게 하는 데 특히 성공합니다.

TanStack 사후에 따르면, 침해된 TanStack 패키지는 프로젝트 자체의 GitHub Actions 신뢰할 수 있는 출판 파이프라인에서 생성된 유효한 산지 증명을 가지고 있었습니다. 산지 증명이 유효한 경우에도 산지 증명만으로는 충분하지 않았습니다. 공격자 TeamPCP에 기인한 이 캠페인은 도난당한 게시 자격 증명을 사용하여 추가 패키지에 캠페인을 전파했습니다.

보안팀이 수년 간 구현해 온 많은 통제는 의도가 아닌 진위성을 검증하도록 설계되었습니다. 이 캠페인에서는 제공 중인 소프트웨어가 손상되는 동안 인증 확인이 계속 통과됩니다.

미니 Shai-Hulud 공급망 공격에서 발생한 일

보안 커뮤니티 전반에 걸쳐 공개적으로 보고된 바와 같이, 이 캠페인은 npm 및 PyPI 전반에 걸쳐 170 개 이상의 패키지에 영향을 미쳤으며 대규모 다운스트림 도달 범위를 가진 에코시스템에 영향을 미쳤습니다. 이 공격은 프런트엔드 프레임워크, AI SDK, 엔터프라이즈 자동화 툴링 및 검색 인프라와 연결된 패키지를 포함하여 널리 사용되는 개발자 툴링 및 라이브러리를 표적으로 삼았습니다.

높은 수준에서 캠페인은 다음과 같이 작동했습니다.

  • 공격자는 구축 프로세스 자체를 침해하여 신뢰할 수 있는 게시 경로를 납치했습니다.
  • 악성 패키지 버전은 합법적인 워크플로우를 통해 게시되었으며 유효한 출처 증명서를 소지했습니다.
  • 이 패키지를 설치하면 개발자 시스템 및 CI/CD 러너의 자격 증명이 도용됩니다.
  • 그런 다음 이 악성코드는 도난당한 자격 증명을 사용하여 더 많은 중독된 패키지를 게시했습니다.
  • 정리 시도를 견디고 자격 증명 도난을 계속하기 위해 지속성 메커니즘이 추가되었습니다.

이것이 캠페인을 웜처럼 만들었습니다. 새롭게 침해된 각 환경은 다음 파장의 배포 지점이 될 수 있습니다.

이 공격이 다른 이유

패키지 신뢰뿐만 아니라 신뢰할 수 있는 릴리스 프로세스를 남용했다

공격자는 명백한 오타나 가짜 패키지를 단순히 게시하는 대신 합법적인 릴리스 파이프라인을 납치했습니다. 악성 릴리스는 유효한 출처 신호를 유지했으며, 이는 진위성 검사만으로는 충분하지 않다는 점을 강조합니다.

유일한 또는 기본 컨트롤이 패키지가 예상 파이프라인에서 왔는지 확인하는 경우 충분하지 않습니다. 파이프라인은 공격 벡터였으며, Mini Shai-Hulud는 인공물의 콘텐츠가 의도적인지 아닌 인공물을 구축한 파이프라인을 확인하고 확인하는 일반적인 검사에서 합법적으로 보일 것입니다.

코드뿐만 아니라 ID를 통해 확산됩니다

이 캠페인은 극단적인 비밀이 급증하는 생태계 내에서 아이덴티티 중심적이고 운영되었습니다. The scale of exposed secrets in the ecosystem gave it room to run: GitGuardian reported 28,65 million new hardcoded secrets publicly exposed on GitHub in 2025.

일회성 실행에만 의존하는 대신 개발자 시스템과 CI/CD 러너 전반에서 자격 증명을 훔치는 데 중점을 두었습니다. 공격자가 이러한 ID를 갖게 되면 소프트웨어 게시 자체가 전파 메커니즘이 되었습니다. 개발자 환경을 지속성 계층으로 타게팅했습니다.

이 캠페인은 IDE 관련 디렉터리 및 AI 지원 코딩 환경을 포함하여 개발자 툴링 및 로컬 구성 경로에 지속성 후크를 설치했습니다. .claude/settings.json(모든 Claude Code 세션에서 다시 실행되는 SessionStart 후크) 및 .vscode/tasks.json(열린 폴더에서 자동 실행)의 지속성은 단순히 'npm 제거'만 실행해도 제거되지 않음을 의미합니다.

공격 체인의 작동 방식

구현은 패키지와 생태계에 따라 다르지만 캠페인은 공급망 침해, 자격 증명 도난 및 자체 전파를 광범위하게 결합했습니다.

공격 단계발생한 일중요한 이유
초기 침해신뢰할 수 있는 GitHub Actions 게시 파이프라인이 하이재킹되었습니다방어자는 “공식”이 안전하다고 가정해서는 안 됩니다
패키지 중독악성 코드가 합법적인 패키지 버전에 추가되었습니다다운스트림 사용자는 일반적인 업데이트를 통해 멀웨어를 가져옴
자격 증명 도난로컬 시스템 및 CI/CD 러너로부터 비밀을 수집함유출된 ID로 인해 공격자 액세스가 빠르게 확장됨
지속성재부팅 또는 시작 이후에도 존속되도록 후크 및 서비스가 추가되었습니다.패키지 제거보다 정리가 더 복잡해짐
전파도난당한 게시 권한은 추가 패키지를 중독하는 데 사용되었습니다.캠페인은 공격자의 직접적인 접촉 없이 확장할 수 있습니다

악성코드가 훔치려고 시도한 것

미니 Shai-Hulud 공급망 공격에 대한 보고는 광범위한 수집 범위를 나타냅니다. 목표는 단지 하나의 토큰 유형이 아니었습니다. Q3 2025년에 Sonatype은 악성 오픈 소스 패키지의 37%가 데이터 유출을 표적으로 하며 이 캠페인은 동일한 패턴을 따랐음을 발견 했습니다. 이는 측면 이동, 지속성 및 후속 침해에 유용한 모든 것을 수집하도록 설계되었습니다.

일반적인 대상은 다음과 같습니다.

  • 클라우드 공급자 자격 증명
  • 패키지 레지스트리 토큰
  • CI/CD 파이프라인 비밀
  • Git 자격 증명 및 소스 제어 토큰
  • Kubernetes 구성 파일, 서비스 계정 토큰 및 비밀 관리자에게 액세스 권한을 부여하는 자격 증명 또는 토큰
  • SSH 키
  • 로컬 개발자 구성 파일
  • AI 개발자 툴링 설정
  • 일부 변형의 암호화폐 지갑 데이터

대응 팀은 'npm 토큰을 회전하고 계속 진행'이라는 측면에서 생각해서는 안 됩니다. 민감한 환경에서 중독된 패키지가 실행되는 경우 블래스트 반경이 훨씬 더 클 수 있습니다.

영향을 받을 수 있는 지표

잠재적 노출을 조사하는 보안 팀은 종속성과 엔드포인트 동작을 모두 살펴봐야 합니다. 이것은 소프트웨어 구성 문제일 뿐만 아니라,

종속 수준 표지판

다음으로 시작:

  • 영향을 받는 버전을 참조하는 잠금 파일
  • 5월 11일 부터 패키지 설치 로그
  • 사전 설치 또는 준비와 같은 예기치 않은 수명 주기 스크립트
  • 의심스러운 선택적 종속성 또는 Git 기반 패키지 참조
  • 비정상적으로 큰 타볼 또는 내장된 난독화 파일

엔드포인트 및 환경 수준 표지판

또한 다음을 찾습니다.

  • .vscode/ 또는 .claude/ 디렉터리의 예기치 않은 변경 사항
  • 무단 실행상담원 또는 사용자 수준 시스템 서비스
  • 저장소에 추가된 새 워크플로 파일
  • 패키지 설치 중 의심스러운 인프라에 대한 아웃바운드 연결
  • 유지 보수자가 인식하지 못하는 패키지 게시 이벤트
  • 도난당한 자격 증명으로 생성된 의심스러운 공개 저장소 또는 커밋

네트워크 및 행동 징후

주요 사고 보고서는 중복 유출 채널도 가리킵니다. 즉, 방어자들은 하나의 도메인을 차단하는 것이 위험을 종료한다고 가정해서는 안 됩니다. 주의 사항:

  • 호스팅 플랫폼을 코딩하기 위한 비정상적인 API 호출
  • 알려진 공격자 제어 도메인, 유출에 사용되는 공개 코드 호스팅 API, 웹후크 엔드포인트, Tor 관련 인프라 또는 IPFS 게이트웨이에 대한 트래픽이 관찰된 경우
  • 메타데이터 서비스, 로컬 저장소 또는 토큰 저장소에 대한 갑작스러운 액세스
  • 개발자 워크스테이션 및 CI 러너에서 환경 변수, 토큰 저장소, 셸 기록, 패키지 관리자 자격 증명 또는 기타 비밀이 포함된 파일을 읽는 프로세스 동작

미니 Shai-Hulud 공급망 공격에 대응하는 방법

이는 보안 및 IT 운영 조정이 모두 필요한 사고입니다. 효과적인 대응은 일반적으로 엄격한 순서를 따릅니다.

즉각적인 조치

  • 해당 패키지 버전이 설치되었는지 확인합니다.
  • 자격 증명을 취소하기 전에 영향을 받는 개발자 워크스테이션 및 CI/CD 환경을 격리합니다.
  • 토큰 취소가 스틸로 연결된 호스트에서 알려진 파괴 로직을 트리거하지 않도록 IR과 조정합니다.
  • 광범위한 변경을 하기 전에 지속성 아티팩트를 찾습니다.
  • 가능한 경우 포렌식 증거를 보존합니다.
  • 제어 중인 패키지가 예기치 않게 다시 게시되었는지 검토합니다.

시퀀싱이 중요한 이유

악성코드에는 죽은 남자의 스위치가 포함되어 있습니다. 지속성 데몬(gh-token-monitor)은 60 초마다 GitHub를 폴링합니다. 토큰 취소(HTTP 40X 응답)를 감지하면 전체 홈 디렉터리 삭제인 rm -rf ~/—를 실행합니다. 즉, 방어자는 자격 증명을 취소하기 전에 침해된 환경을 격리해야 합니다. 잘못된 순서로 수행하면 파괴적인 페이로드가 트리거됩니다. 이러한 이유로 여기서 성숙한 대응은 단순히 모든 것을 지금 취소하는 것이 아닙니다. 이는 다음과 같습니다.

  • 먼저 격리
  • 지속성 검사
  • 필요한 경우 이미지
  • 그런 다음 제어된 순서로 회전 및 복구

사고 대응 및 보안 운영 에 투자한 팀은 엔드포인트, ID 및 포렌식 워크플로 전반에서 해당 시퀀스를 더 잘 조정할 수 있습니다.

이 사고가 소프트웨어 신뢰에 대해 말하는 내용

미니 Shai-Hulud 공급망 공격은 많은 조직들이 여전히 보유하고 있는 사각 지대를 노출시킵니다. 이는 서명, 공식 또는 산지와 안전함을 의미합니다.

이는 여전히 가치 있는 신호입니다. 하지만 그 자체로는 충분하지 않습니다.

더 강력한 모델에는 이제 다음 모든 것이 포함됩니다.

  • 소프트웨어 출처 확인
  • 새로 게시된 버전의 채택 지연
  • 설치 시간 스크립트 실행 제한
  • 빌드 및 설치 중 런타임 동작 모니터링
  • CI/CD에서 비밀 노출 감소
  • 서버에 사용된 것과 동일한 엄격성을 가진 개발자 엔드포인트 보기

팀이 지금 구현해야 하는 실질적인 강화 단계

올바른 장기 대응은 공황을 주도하는 패키지 회피가 아닙니다. 레이어드 경화입니다.

빌드 및 패키지 제어

컨트롤도움이 되는 이유
최소 릴리스 기간 지연커뮤니티가 악성 버전을 사용하기 전에 감지할 시간을 생성합니다.
정확한 버전 고정 및 잠금 파일 적용놀라운 업그레이드 감소 및 변경 기간 단축
CI에서 수명주기 스크립트 제한설치 중 자동 실행 경로 제한
인터넷 연결 종속성 풀에서 신뢰할 수 있는 빌드 단계 분리패키지 검색 중 비밀의 직접 노출 감소
신뢰할 수 있는 게시의 엄격한 범위 지정지나치게 광범위한 저장소 수준의 신뢰 관계를 방지합니다.

이는 신뢰할 수 있는 워크플로가 여전히 남용될 수 있다고 가정하는 광범위한 소프트웨어 공급망 방어 전략 의 일부입니다.

ID 및 비밀 관리

  • 오래 지속되는 게시 자격 증명 감소
  • CI/CD ID의 엄격한 범위 지정
  • 별도의 빌드, 릴리스 및 배포 권한
  • 러너에 존재하는 비밀 최소화
  • 패키지 게시 액세스 및 2단계 인증 바이패스 설정을 정기적으로 감사

엔드포인트 및 개발자 환경 제어

  • IDE 구성 경로 및 시작 후크 모니터링
  • 개발자 툴링 디렉터리를 양성이 아닌 보안 관련 디렉터리로 취급
  • 클라우드 자격 증명 및 레지스트리 토큰이 저장되는 인벤토리
  • 패키지 삭제뿐만 아니라 지속성 제거 확인

효과적인 공급망 대응에 필요한 것

이것은 소프트웨어 패키지 취약성 문제일 뿐만 아니라 엔드포인트, ID 및 운영 대응 문제입니다.

요점: 조직의 개발자 또는 자동화된 빌드 시스템이 부터 영향을 받는 구성 요소를 설치한 경우 해당 환경을 침해된 것으로 5월 11일취급합니다. 전파는 도난당한 ID에 의존하기 때문에 침해된 각 환경은 배포 지점이 될 수 있습니다.

이는 유효한 업계 표준 출처 증명이 있는 악성 패키지를 생성한 자체 확산 공급망 공격의 첫 번째 문서화된 사례입니다. SLSA(소프트웨어 아티팩트)의 공급망 수준은 설계된 대로 작동했습니다. 에코시스템은 그보다 더 많이 해결되었다고 가정했습니다. Provenance는 파이프라인이 의도한 대로 작동하고 있는지 여부가 아니라 어떤 파이프라인이 아티팩트를 구축했는지 확인합니다.

공격자는 가짜 영수증을 위조하지 않았습니다. 그들은 주방에 들어가 레스토랑의 스토브를 사용하여 중독된 식사를 조리했습니다. 영수증은 기술적으로 정확했습니다.

TeamPCP(또한 DeadCatx3, PCPcat, ShellForce, CipherForce로도 추적됨)는 신뢰 체인 자체를 체계적으로 표적으로 삼았습니다.

  • 2026년 3월: 오픈 소스 보안 스캐너인 Trivy—방어자들이 사용하는 도구(Microsoft)
  • 2026년 4월: 비밀번호 관리자인 Bitwarden CLI—자격 증명 저장소
  • 2026년 5월: npm/PyPI 에코시스템 웜—더 광범위한 소프트웨어 공급망

이 그룹은 서비스형 랜섬웨어 작업(Unit 42)인 Vect와의 파트너십을 발표했습니다. 속성 표시기에는 러시아-로컬 킬 스위치(Microsoft)가 포함됩니다. 한 명의 운영자 또는 여러 계열사가 관련되어 있는지에 관계없이 이 패턴은 공급망 공격 툴링이 랜섬웨어 제휴 네트워크 내에서 성숙하고 있음을 시사합니다.

공급망 공격은 종종 격리된 자격 증명 도난 이벤트가 아닌 랜섬웨어를 포함한 더 중요한 공격의 전조입니다. 메모장++ 과 다운로드 채널과 같은 신뢰할 수 있는 소프트웨어 브랜드를 남용하는 최근 캠페인은 소프트웨어 배포 경로가 여전히 높은 가치의 표적임을 강조합니다.

방어자의 경우, 이는 세 단계와 일정으로 나뉩니다.

1. 우선순위 지정을 위한 즉각적인 작업(시간)

  • 이후 설치된 해당 패키지 버전에 대한 잠금 파일 및 CI 로그 확인 5월 11일
  • 노출이 확인되면 토큰을 취소하기 전에 환경을 격리합니다.
  • com.user.gh-token-monitor.plist 및 gh-token-monitor.service와 같은 알려진 샘플 지속성 이름을 확인하고 기능적으로 동등한 무단 LaunchAgents, 사용자 서비스, cron 작업, 셸 시작 수정 및 IDE/툴링 시작 후크도 찾습니다.
  • 주입된 지속성 페이로드에 대한 .claude/ 및 .vscode/ 디렉터리 확인
  • npm 토큰뿐만 아니라 노출된 환경에서 액세스할 수 있는 모든 자격 증명 회전

2. 단기 작업(일)

  • 프런트엔드, 엔터프라이즈 자동화, 검색 및 AI 툴링에 연결된 패키지를 포함하여 영향을 받는 패키지 및 버전에 대한 감사 종속성 적하목록, 잠금 파일, CI 로그, 캐시, 러너 이미지 및 생성된 SBOM
  • CI/CD 러너가 손상된 npm 패키지를 실행하는 동안 PyPI 게시 자격 증명을 사용할 수 있는 경우 해당 자격 증명도 회전합니다.
  • 신뢰할 수 없는 코드 체크아웃, 범위 GITHUB_TOKEN 쓰기, 노출된 비밀 또는 신뢰 경계 전반에 걸친 캐시 재사용과 함께 pull_request_target 을 사용하는 GitHub 작업 워크플로를 검토합니다. 이러한 조합은 워크플로 손상을 가능하게 할 수 있기 때문입니다.

3. 전략적 조치(이번 주 및 그 이후)

  • 최소 출시 기간 지연: 3일 지연도 이 캠페인에 대한 방어적 완충책을 제공했을 것이며, 이는 빠르게 이동하는 공급망 공격을 완화하는 CISA의 지침에 부합합니다. pnpm에서 최소 릴리스 기간을 통해 구현하거나 기본적으로 지원하지 않는 패키지 관리자를 위해 프록시 레지스트리/아티팩트 정책 엔진을 통해 적용합니다.
  • 정확한 버전에 대한 종속성을 핀으로 고정하고 기록된 무결성 해시를 포함하여 잠금 파일을 적용합니다.
  • CI 환경에 대해 .npmrc 에서 무시 스크립트=true 설정
  • 공급망 공격을 광범위한 기업 침해의 전구체로 취급

보안팀이 지금 물어야 하는 질문

개발자 또는 CI 환경이 이후에 영향을 받는 버전을 설치했습니까 5월 11일?

답변이 예인 경우, 달리 입증될 때까지 타협을 가정합니다.

실행 시점에 이러한 환경에는 어떤 비밀이 존재했습니까?

먼저 클라우드, 패키지 게시, 소스 제어 및 배포 ID에 중점을 둡니다.

통제하에 있는 저장소 또는 패키지가 예기치 않게 수정 또는 다시 게시되었습니까?

이 캠페인은 자체 전파 중이었습니다. 환경이 피해자이자 배포 지점일 수 있습니다. 그렇다면 귀하의 게시 자격 증명이 다른 사람을 침해하는 데 사용되었을 수 있습니다.

엔드포인트에서 지속성 제거를 확인할 수 있습니까?


노드 모듈을 삭제하거나 잠금 파일을 되돌리지 마십시오.

Tanium을 통해 공급망 위험을 실행 가능한 대응으로 전환

Tanium Guardian 및 Mini Shai-Hulud 공급망 침해 대시보드 는 보안 및 IT 운영 팀에게 개발자 공격 표면 전반에 걸쳐 엔드포인트 상태에 대한 공유된 실시간 보기를 제공합니다.

  • 가능한 경우 SBOM 데이터를 사용하여 영향을 받는 npm 및 PyPI 패키지가 실행 중인 엔드포인트 식별 지원
  • Claude Code와 같은 Node.js, Python 및 AI 툴링이 설치된 Scope 노출 표면 처리 시스템
  • 실시간 엔드포인트 원격 측정에 대해 실행되는 사전 구축된 질문을 사용하여 지속성 표시기 찾기—시작상담원, 사용자 수준 서비스 및 IDE 또는 툴링 시작 후크
  • 패키지 레지스트리뿐만 아니라 CI/CD 러너 구성 및 자격 증명 노출 표면 전반에서 정리 상태 확인

Tanium 에이전트가 이미 배포된 조직은 추가 에이전트 배포 없이 기존 Guardian 콘텐츠를 사용할 수 있습니다.

Tanium Gaurdian Mini Shai-Hulud 공급망 침해 대시보드의 제품 이미지
Tanium Gaurdian Mini Shai-Hulud 공급망 침해 대시보드의 제품 이미지

레지스트리 또는 저장소 검토 시 응답을 중지해서는 안 됩니다. 개발자 엔드포인트 및 CI/CD 러너는 공격 경로의 일부입니다. Tanium은 보안 및 IT 운영 부서가 정적 빌드 아티팩트 또는 지연된 수동 검사에 의존하지 않고 동일한 현재 상태 보기에서 노출을 확인하고, 지속성 제거를 확인하고, 복구를 조정할 수 있도록 합니다.

미니 Shai-Hulud 공급망 공격에 대한 FAQ


Mini Shai-Hulud와 같은 공급망 공격은 표준 사고 대응 플레이북을 훨씬 뛰어넘는 질문을 제기합니다.

다음은 보안팀이 이 캠페인에 대해 묻는 몇 가지 일반적인 질문과 앞으로 소프트웨어 신뢰에 어떤 의미가 있는지 설명합니다.

유효한 패키지 출처를 여전히 신뢰할 수 있습니까?

여전히 유용할 수 있지만 완전한 안전 신호로 취급해서는 안 됩니다. Provenance는 뭔가의 출처를 알려줍니다. 파이프라인이 남용되지 않았음을 입증하지 못합니다.

팀은 도난당한 토큰을 즉시 취소해야 합니까?

맹목적이 아닙니다. 파괴적 취소 논리가 있는 사고의 경우 대응 조치가 추가 피해를 유발하지 않도록 격리 및 조사가 먼저 이루어져야 합니다.

대부분의 팀이 여전히 누락하고 있는 가장 실용적인 예방 통제는 무엇입니까?

새로 게시된 패키지 버전을 사용하기 전의 대기 기간은 특히 빠르게 이동하는 공급망 이벤트에 대해 가장 간단하고 효과적인 제어 중 하나입니다.

이 캠페인이 개발자보다 중요한 이유는 무엇입니까?

개발자 워크스테이션과 CI/CD 러너는 종종 클라우드 자격 증명, 배포 권한 및 패키지 게시 ID를 보유하기 때문입니다. 침해는 신속하게 더 광범위한 기업 사고가 될 수 있습니다.

Tanium은 패키지 노출, 엔드포인트 상태, 지속성 검증 및 대응 검증을 연결하여 기존 공급망 보안 노력 및 제어를 보완하도록 설계되어 보안 및 IT 운영이 동일한 실시간 그림에서 작동할 수 있습니다.
지금 데모를 예약 하여 Tanium이 엔드포인트 및 ID 전반에서 공급망 대응을 조정하는 방법을 알아보십시오.