pile·
보안·vercel-blogVercel Blog·

s1ngularity: Nx 패키지를 노린 공급망 공격

2025년 8월 26일, 공격자들이 탈취한 npm 토큰으로 Nx 패키지 생태계를 침해했다. 악성 버전의 postinstall 스크립트가 LLM을 활용해 파일시스템을 스캔하고 시크릿·자격증명을 피해자의 GitHub 계정에 생성된 저장소로 유출하는 신형 공격 패턴이다. 약 4시간 만에 패키지가 제거됐으며, Vercel 빌드는 4가지 공격 성공 조건을 동시에 충족하지 않아 실질적 피해가 없었다.

핵심 포인트
  • 공격 타임라인: 2025년 8월 26일 18:32 EDT 악성 패키지 배포 → 22:44 EDT 제거 완료. 약 4시간 노출.
  • LLM 기반 시크릿 스캔: postinstall 스크립트가 LLM을 이용해 파일시스템에서 시크릿·자격증명을 지능적으로 탐색 — 단순 경로 패턴 매칭보다 진화된 탐색.
  • 유출 메커니즘: 탈취한 시크릿을 피해자의 GitHub 계정에 새로 만든 저장소로 push.
  • 공격 성공 4조건: GitHub CLI + GitHub 인증 토큰 + Claude Code·Gemini·Q CLI 중 하나 + 침해된 Nx 패키지 설치 — 모두 동시 충족 필요.
  • Vercel 빌드 보호: 4조건 모두 기본 미설치 → 피해 빌드 0건 확인.
상세 정리
  • 공격 진입점: npm 토큰 탈취(경로 미공개)로 Nx 공식 패키지를 악성 버전으로 교체 — 공급망 신뢰를 악용.
  • postinstall 활용 이유: 패키지 설치 시 자동 실행되는 npm lifecycle hook — 명시적 코드 실행 없이 악성 코드 트리거.
  • LLM 기반 스캔의 위험성: AI가 .env, ~/.ssh/id_rsa, 클라우드 credential 파일 등을 컨텍스트 이해로 식별 → 단순 파일명 패턴보다 탐지 범위 넓음.
  • GitHub 계정 악용: 탈취 자격증명을 외부 서버가 아닌 피해자 본인 GitHub 계정 저장소로 push — 방어 레이어 우회.
  • AI CLI 도구가 새 위험 벡터: Claude Code·Gemini·Q CLI가 GitHub 토큰을 저장해 공격 체인의 핵심 고리 역할.
  • Vercel 조치: 악성 패키지 npm 제거, 침해 패키지 포함 빌드 캐시 삭제, 영향 사용자 security@vercel.com으로 직접 이메일.
  • 교훈: npm 토큰 최소 권한 관리, postinstall 스크립트 감사, AI CLI 도구 토큰 보관 위치 확인, CI 빌드 환경의 불필요 credential 제거.
왜 읽나npm 공급망 공격의 진화(LLM 기반 시크릿 스캔)와 AI CLI 도구가 만드는 새 취약 지점을 이해하고 자체 빌드 보안을 점검하려는 DevSecOps·보안 엔지니어에게 유용.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·cloudflare-blogCloudflare Blog·

    오리진 서버 포스트 퀀텀 인증 지원 — ML-DSA mTLS 구현기

    Cloudflare가 오리진 서버와의 TLS 연결에 포스트 퀀텀 인증(ML-DSA)을 도입했다. 2023년 이미 포스트 퀀텀 암호화(encryption)가 배포됐지만, 인증(authentication)은 여전히 양자 공격에 취약한 상태였다. Authenticated Origin Pulls(AOP)와 Custom Origin Trust Store(COTS) 두 제품을 통해 완전한 상호 인증 TLS를 구현했으며, FIPS 204(ML-DSA) 표준을 오리진 연결에 적용한 첫 번째 마일스톤이다.

    #mtls#tls#post-quantum+2