TanStack 라이브러리는 React 및 JavaScript 생태계에서 매우 널리 사용됩니다. 일부 패키지는 주간 수백만 건 이상의 다운로드를 기록하기 때문에, 악성 업데이트가 배포되면 개발 환경과 빌드 시스템으로 빠르게 확산될 수 있는 구조였습니다.
이 사건은 단일 프로젝트 문제에 그치지 않았습니다. 조사 결과 전체 캠페인의 규모는 다음과 같았습니다.
이번 공격의 핵심은 개발자 계정이 아니라 자동화된 배포 시스템이었습니다.
TanStack의 사후 분석에 따르면 공격자는 GitHub Actions 워크플로의 여러 취약점을 연쇄적으로 이용했습니다.
pull_request_target 워크플로 패턴 악용이 취약점들을 연결하면 공격자가 제어하는 코드가 릴리스 파이프라인 내부에서 실행될 수 있습니다. 이후 해당 환경에서 패키지 게시 권한이 있는 자격 증명을 확보해 악성 패키지를 npm에 게시했습니다.
중요한 점은 이 패키지들이 정상적인 배포 파이프라인을 통해 게시되었다는 사실입니다. 즉, 악성 패키지라도 정상 서명과 빌드 provenance를 가질 수 있어 보안 검증을 통과하기 쉬웠습니다.
패키지에 포함된 코드는 단순한 악성 코드가 아니라 자기 확산형 공급망 웜에 가까운 형태였습니다.
사용자가 해당 의존성을 설치하면 다음과 같은 방식으로 실행되었습니다.
이후 악성 코드는 다음 행동을 시도했습니다.
특히 패키지 매니저는 설치 과정에서 스크립트를 실행하는 경우가 많기 때문에 단순히 의존성을 설치하는 것만으로도 악성 코드가 실행될 수 있는 구조였습니다.
Mini Shai‑Hulud는 주로 개발 및 클라우드 인프라 접근 권한을 노렸습니다. 공격자가 이를 확보하면 추가 공급망 공격이나 인프라 침투가 가능해지기 때문입니다.
보안 보고서에 따르면 악성 코드는 다음과 같은 비밀 정보를 찾도록 설계돼 있었습니다.
TanStack 라이브러리가 많은 개발 환경에서 사용되기 때문에 일부 기술 기업 서비스에도 영향이 있을 수 있다는 우려가 제기됐습니다.
이 발표는 해당 라이브러리를 사용하는 서비스에서 고객 데이터가 노출됐을 가능성에 대한 추측을 진정시키기 위한 것이었습니다.
Mini Shai‑Hulud 공격은 최근 공급망 공격의 변화를 보여주는 사례였습니다.
이러한 특징 때문에 Mini Shai‑Hulud 사건은 2026년 가장 중요한 오픈소스 공급망 보안 사고 중 하나로 평가됩니다.
이번 사건 이후 보안 전문가들은 몇 가지 중요한 대응 전략을 강조했습니다.
의존성 설치는 곧 코드 실행이다
패키지 설치 과정에서 스크립트가 실행될 수 있으므로 항상 신뢰 여부를 검증해야 합니다.
CI/CD 워크플로 보안 강화
GitHub Actions 설정을 점검하고 토큰 권한을 최소화하며 pull_request_target 같은 위험한 패턴 사용을 재검토해야 합니다.
의존성 버전 감사
2026년 5월 사건 기간에 설치된 패키지 버전을 확인하고 악성 버전이 포함되지 않았는지 검사해야 합니다.
빌드 및 배포 로그 모니터링
비정상적인 패키지 게시, 의존성 설치, 네트워크 활동은 공급망 침해 신호일 수 있습니다.
오늘날 소프트웨어는 자동화된 빌드 시스템과 수많은 외부 의존성 위에 구축됩니다.
Mini Shai‑Hulud 사건은 이러한 자동화 구조가 공격자에게도 강력한 확산 도구가 될 수 있음을 보여줬습니다.
특히 CI/CD 파이프라인, 개발자 환경, 의존성 관리 시스템은 이제 단순한 개발 편의 도구가 아니라 핵심 보안 경계로 간주되고 있습니다.
그리고 이번 사건은 오픈소스 생태계에 한 가지 중요한 사실을 다시 상기시켰습니다.
신뢰는 빠른 개발을 가능하게 하지만, 동시에 공급망 공격의 가장 강력한 공격면이 될 수도 있습니다.
Comments
0 comments