Shai-Hulud: 무슨 일이 일어났는지, 왜 중요한지, 그리고 Scribe가 고객을 어떻게 보호했는지

모든 게시물

TL; DR — 자체 복제 npm "웜"이라고 불리는 샤이후루드 인기 패키지를 감염시키고 개발자/CI 기밀 정보를 훔친 후, 해당 기밀 정보를 이용하여 더 많은 악성 버전을 게시하여 피해자를 새로운 확산 지점으로 만들었습니다. 이러한 사실이 공개된 지 몇 시간 만에 Scribe는 고객의 SBOM과 빌드 증명에 대한 포트폴리오 전반의 검사를 실행하여 파이프라인이 지원 손상된 버전을 모두 제거합니다. 또한 늦게 도착하는 변형을 차단하는 정책 가드레일도 마련되어 있습니다.

어떻게 된 거예요

15월 17일부터 XNUMX일까지 연구원들은 대규모 공급망 손상이 발생했다고 보고했습니다. npm 생태계. 이 캠페인은 합법적인 패키지의 새로운 릴리스를 무기화하고 다음과 같은 다단계 페이로드를 투하했습니다.

  1. 유출된 비밀 (npm/GitHub 토큰, 클라우드 인증 정보, API 키) 때로는 인기 있는 비밀 스캔 도구를 호출하여

  2. 자가 번식 영향을 받는 유지 관리자로부터 새로운 악성 버전을 푸시하기 위해 도난당한 게시 권한을 남용합니다.

  3. 많은 경우에, 도난된 데이터 공개 GitHub(예: 이름이 지정된 리포)에 “샤이-훌루드” 그리고 "샤이-훌루드 마이그레이션")을 했고 심지어 일부 개인 저장소를 공개하기도 했습니다.

초기 계산 범위는 다음과 같습니다. 150~200개 이상의 패키지 그리고 수백 개의 악성 버전, 여러 유지 관리자(잘 알려진 공급업체 네임스페이스에 속한 일부 패키지 포함)가 영향을 받았습니다. 특히, 이 웨이브는 다음에서 사용하는 생태계에 영향을 미쳤습니다. 모난 개발자(예: ngx 부트스트랩, ng2-파일-업로드) 그리고 인기 있는 @ctrl/tinycolor 도서관.

이 공격이 다른 이유:

  • 벌레 같은: 개발자 또는 CI가 감염된 버전을 가져오면 페이로드는 자격 증명을 수집하려고 시도합니다. 감염된 패키지를 더 많이 게시합니다, 인간의 지속적인 지시 없이 눈덩이처럼 커지는 폭발 반경.

  • 목표는 단순히 코드 실행이 아닙니다. 지속적인 게시자 손상 그리고 생태계 수준의 확산따라서 "지정 시점" 정리는 충분하지 않습니다.

가능한 결과

  • 자격증 노출 및 측면 이동. 유출된 토큰을 사용하면 패키지가 제거된 후에도 백도어 게시, 저장소 변조 및 CI/CD 지속성이 가능할 수 있습니다.

  • 침묵의 의존성 중독. 인기 패키지는 자주 업데이트됩니다. npm 설치 또는 CI 빌드는 대규모로 악성 설치 후 스크립트를 가져올 수 있습니다.

  • 개인 IP의 공개 유출. 일부 피해자들은 개인 저장소 강제 공개 전파 과정에서 법적 위험과 평판 위험이 확대됩니다.

Scribe가 고객의 즉각적인 대응을 도운 방법

첫 번째 신뢰할 수 있는 보고서가 나온 후 몇 시간 내에 Scribe는 이중 검증 및 봉쇄 플레이북 고객 환경 전반에서:

  1. SBOM 및 종속성 그래프 스윕

    • 저장소, 이미지 및 함수 전반에 걸쳐 지속적으로 생성된 SBOM 및 잠금 파일을 쿼리했습니다. 참조된 악성 패키지 이름/버전을 찾습니다. Shai-Hulud 공개와 관련된 (예: @ctrl/tinycolor 변형; 영향을 받는 Angular 패키지).

    • 결과: 관리 포트폴리오의 경우, 플래그가 지정된 버전을 사용하는 활성 파이프라인이나 아티팩트가 없습니다.고객들에게는 같은 날 밤 증거와 함께 통보되었습니다.

  2. 정책-코드 가드레일 및 게이팅

    • 일시적으로 고정 중요 패키지, 서명되지 않은 업데이트 또는 검증되지 않은 업데이트 차단 및 적용 성문 탐지 사항이 IoC(이름/버전, 게시 창, 연구팀의 지표)와 일치할 때 알림을 보냅니다.

    • 에이전트 워크플로를 사용하는 팀의 경우 자동 수정 클린 버전 범프를 제안하고 출처 증명을 첨부하여 한 번의 클릭으로 검토할 수 있는 PR을 생성했습니다.

이것이 효과가 있었던 이유

  • 지속적인 증거는 정기적인 감사보다 중요합니다. Scribe는 SBOM, 스캐너 출력 및 빌드를 지속적으로 수집하기 때문에 증명, 우리는 "라고 대답할 수 있습니다.우리는 노출되었나요?” 최선의 추측이 아닌, 포트폴리오 전체에 대한 즉각적인 사실을 바탕으로 합니다.

  • 가드레일은 확산을 막는다. 개발자가 실행하더라도 npm 업데이트 지역적으로, 서기관의 사전 제작 게이트 오염된 아티팩트가 통합, 스테이징 또는 프로덕션으로 옮겨가는 것을 방지할 수 있습니다.

  • 에이전트의 응답으로 MTTR이 종료됩니다. 당사의 수정 담당자는 PR(고정, 되돌리기 또는 업그레이드)을 작성하고, 필요한 경우 CI 비밀을 순환하며, 보관 체계를 문서화하여 혼란스러운 상황을 체크리스트로 전환합니다.

오늘 노출을 평가하고 있다면

  1. 먼저 재고를 확인하세요. 인시던트 창에 게시된 영향을 받은 패키지 이름/버전을 확인하려면 SBOM/잠금 파일 및 아티팩트 매니페스트를 검색하세요. (여러 공급업체에서 실행 중인 집계 및 IoC가 있습니다.)

  2. 모든 기계 또는 러너에서 발행된 토큰을 회전합니다. 감염된 패키지를 실행했습니다. 측면 이동을 가정하고 신뢰할 수 있는 개발자를 통해 다시 빌드합니다.

  3. GitHub 감사 로그 검토 이름이 지정된 저장소에 대해 “샤이-훌루드” 또는 "샤이-훌루드 이주", 삭제된 지점, 강제적인 공개 이주 등이 있습니다.

  4. 파이프라인을 강화하세요: 서명/출처 검증을 시행하고, 중요한 라이브러리를 고정하고, 정책 실패(예: 서명되지 않았거나 알 수 없는 게시자, 비정상적인 설치 후 스크립트)를 차단합니다.

더 큰 그림

Shai-Hulud는 공급망 위협이 향하는 방향을 미리 보여줍니다. 자격 증명을 훔치고 자체적으로 전파되는 맬웨어 개발자 생태계 자체를 무기화하는 것입니다. 그 답은 영웅적인 사고 대응이 아닙니다. 지속적인 확신—서명된 증거, 검증 가능한 출처, 코드로서의 정책, 개발자 속도로 실행되는 자동화된 에이전트적 수정.

노출 검증이나 일어서기 도움이 필요하면 가드레일 및 게이팅 이러한 종류의 공격을 차단할 수 있는 방법을 찾으셨다면, 귀사의 파이프라인과 SBOM을 사용하여 귀사 팀에 맞춤형 평가를 실시해 드리겠습니다.

자세한 내용은 여기를 클릭해주세요.

이 콘텐츠는 소프트웨어 공급망 전반에 걸쳐 코드 아티팩트와 코드 개발 및 전달 프로세스에 최첨단 보안을 제공하는 선도적인 엔드투엔드 소프트웨어 공급망 보안 솔루션 제공업체인 Scribe Security에서 제공합니다. 자세히 알아보기.