TL; DR — 자체 복제 npm "웜"이라고 불리는 샤이후루드 인기 패키지를 감염시키고 개발자/CI 기밀 정보를 훔친 후, 해당 기밀 정보를 이용하여 더 많은 악성 버전을 게시하여 피해자를 새로운 확산 지점으로 만들었습니다. 이러한 사실이 공개된 지 몇 시간 만에 Scribe는 고객의 SBOM과 빌드 증명에 대한 포트폴리오 전반의 검사를 실행하여 파이프라인이 지원 손상된 버전을 모두 제거합니다. 또한 늦게 도착하는 변형을 차단하는 정책 가드레일도 마련되어 있습니다.
어떻게 된 거예요
15월 17일부터 XNUMX일까지 연구원들은 대규모 공급망 손상이 발생했다고 보고했습니다. npm 생태계. 이 캠페인은 합법적인 패키지의 새로운 릴리스를 무기화하고 다음과 같은 다단계 페이로드를 투하했습니다.
- 유출된 비밀 (npm/GitHub 토큰, 클라우드 인증 정보, API 키) 때로는 인기 있는 비밀 스캔 도구를 호출하여
- 자가 번식 영향을 받는 유지 관리자로부터 새로운 악성 버전을 푸시하기 위해 도난당한 게시 권한을 남용합니다.
- 많은 경우에, 도난된 데이터 공개 GitHub(예: 이름이 지정된 리포)에 “샤이-훌루드” 그리고 "샤이-훌루드 마이그레이션")을 했고 심지어 일부 개인 저장소를 공개하기도 했습니다.
초기 계산 범위는 다음과 같습니다. 150~200개 이상의 패키지 그리고 수백 개의 악성 버전, 여러 유지 관리자(잘 알려진 공급업체 네임스페이스에 속한 일부 패키지 포함)가 영향을 받았습니다. 특히, 이 웨이브는 다음에서 사용하는 생태계에 영향을 미쳤습니다. 모난 개발자(예: ngx 부트스트랩, ng2-파일-업로드) 그리고 인기 있는 @ctrl/tinycolor 도서관.
이 공격이 다른 이유:
- 그 벌레 같은: 개발자 또는 CI가 감염된 버전을 가져오면 페이로드는 자격 증명을 수집하려고 시도합니다. 감염된 패키지를 더 많이 게시합니다, 인간의 지속적인 지시 없이 눈덩이처럼 커지는 폭발 반경.
- 목표는 단순히 코드 실행이 아닙니다. 지속적인 게시자 손상 그리고 생태계 수준의 확산따라서 "지정 시점" 정리는 충분하지 않습니다.
가능한 결과
- 자격증 노출 및 측면 이동. 유출된 토큰을 사용하면 패키지가 제거된 후에도 백도어 게시, 저장소 변조 및 CI/CD 지속성이 가능할 수 있습니다.
- 침묵의 의존성 중독. 인기 패키지는 자주 업데이트됩니다. npm 설치 또는 CI 빌드는 대규모로 악성 설치 후 스크립트를 가져올 수 있습니다.
- 개인 IP의 공개 유출. 일부 피해자들은 개인 저장소 강제 공개 전파 과정에서 법적 위험과 평판 위험이 확대됩니다.
Scribe가 고객의 즉각적인 대응을 도운 방법
첫 번째 신뢰할 수 있는 보고서가 나온 후 몇 시간 내에 Scribe는 이중 검증 및 봉쇄 플레이북 고객 환경 전반에서:
- SBOM 및 종속성 그래프 스윕
- 저장소, 이미지 및 함수 전반에 걸쳐 지속적으로 생성된 SBOM 및 잠금 파일을 쿼리했습니다. 참조된 악성 패키지 이름/버전을 찾습니다. Shai-Hulud 공개와 관련된 (예: @ctrl/tinycolor 변형; 영향을 받는 Angular 패키지).
- 결과: 관리 포트폴리오의 경우, 플래그가 지정된 버전을 사용하는 활성 파이프라인이나 아티팩트가 없습니다.고객들에게는 같은 날 밤 증거와 함께 통보되었습니다.
- 정책-코드 가드레일 및 게이팅
- 일시적으로 고정 중요 패키지, 서명되지 않은 업데이트 또는 검증되지 않은 업데이트 차단 및 적용 성문 탐지 사항이 IoC(이름/버전, 게시 창, 연구팀의 지표)와 일치할 때 알림을 보냅니다.
- 에이전트 워크플로를 사용하는 팀의 경우 자동 수정 클린 버전 범프를 제안하고 출처 증명을 첨부하여 한 번의 클릭으로 검토할 수 있는 PR을 생성했습니다.
이것이 효과가 있었던 이유
- 지속적인 증거는 정기적인 감사보다 중요합니다. Scribe는 SBOM, 스캐너 출력 및 빌드를 지속적으로 수집하기 때문에 증명, 우리는 "라고 대답할 수 있습니다.우리는 노출되었나요?” 최선의 추측이 아닌, 포트폴리오 전체에 대한 즉각적인 사실을 바탕으로 합니다.
- 가드레일은 확산을 막는다. 개발자가 실행하더라도 npm 업데이트 지역적으로, 서기관의 사전 제작 게이트 오염된 아티팩트가 통합, 스테이징 또는 프로덕션으로 옮겨가는 것을 방지할 수 있습니다.
- 에이전트의 응답으로 MTTR이 종료됩니다. 당사의 수정 담당자는 PR(고정, 되돌리기 또는 업그레이드)을 작성하고, 필요한 경우 CI 비밀을 순환하며, 보관 체계를 문서화하여 혼란스러운 상황을 체크리스트로 전환합니다.
오늘 노출을 평가하고 있다면
- 먼저 재고를 확인하세요. 인시던트 창에 게시된 영향을 받은 패키지 이름/버전을 확인하려면 SBOM/잠금 파일 및 아티팩트 매니페스트를 검색하세요. (여러 공급업체에서 실행 중인 집계 및 IoC가 있습니다.)
- 모든 기계 또는 러너에서 발행된 토큰을 회전합니다. 감염된 패키지를 실행했습니다. 측면 이동을 가정하고 신뢰할 수 있는 개발자를 통해 다시 빌드합니다.
- GitHub 감사 로그 검토 이름이 지정된 저장소에 대해 “샤이-훌루드” 또는 "샤이-훌루드 이주", 삭제된 지점, 강제적인 공개 이주 등이 있습니다.
- 파이프라인을 강화하세요: 서명/출처 검증을 시행하고, 중요한 라이브러리를 고정하고, 정책 실패(예: 서명되지 않았거나 알 수 없는 게시자, 비정상적인 설치 후 스크립트)를 차단합니다.
더 큰 그림
Shai-Hulud는 공급망 위협이 향하는 방향을 미리 보여줍니다. 자격 증명을 훔치고 자체적으로 전파되는 맬웨어 개발자 생태계 자체를 무기화하는 것입니다. 그 답은 영웅적인 사고 대응이 아닙니다. 지속적인 확신—서명된 증거, 검증 가능한 출처, 코드로서의 정책, 개발자 속도로 실행되는 자동화된 에이전트적 수정.
노출 검증이나 일어서기 도움이 필요하면 가드레일 및 게이팅 이러한 종류의 공격을 차단할 수 있는 방법을 찾으셨다면, 귀사의 파이프라인과 SBOM을 사용하여 귀사 팀에 맞춤형 평가를 실시해 드리겠습니다.
자세한 내용은 여기를 클릭해주세요.
이 콘텐츠는 소프트웨어 공급망 전반에 걸쳐 코드 아티팩트와 코드 개발 및 전달 프로세스에 최첨단 보안을 제공하는 선도적인 엔드투엔드 소프트웨어 공급망 보안 솔루션 제공업체인 Scribe Security에서 제공합니다. 자세히 알아보기.