1. 개요
- TeamPCP 그룹의 Checkmarx/KICS 공급망 공격 일환으로 NPM용 Bitwarden CLI 패키지에서 공급망 공격이 발생
- 공격 인프라를 공유하며, GitHub/NPM 인증토큰, SSH 정보, 클라우드 자격증명, 클라우드/MCP 설정 파일 등을 탈취
※Checkmarx : SAST(Static Application Security Testing, 정적 애플리케이션 보안 테스트) 솔루션
※Bitwarden : 오픈 소스 비밀번호 관리 서비스
2. Checkmarx 공급망 공격
- Docker는 내부 모니터링을 통해 KICS 태그와 관련된 의심스러운 활동 감지, 이후 Checkmarx/KICS에 악성 이미지가 푸시됨을 확인 [1]
> 조사 결과, v2.1.20 및 alpine을 포함한 기존 태그를 덮어쓰고, 새로운 v2.1.21 태그를 추가한 것으로 확인
> 번들로 제공된 KICS 바이너리에는 데이터 수집 및 유출 기능을 가진 악성코드가 포함
- 공격자는 Checkmarx/ast-vscode-extension 저장소에 과거 날짜(2022년)로 위장된 커밋(68ed490b)을 삽입
> 해당 커밋에 포함된 10MB 크기의 mcpAddon.js 파일은 2단계 악성 페이로드를 포함
> 확장 실행 시 하드코딩된 GitHub URL에서 파일을 다운로드 후 로컬 경로에 저장한 다음 Bun 런타임을 통해 즉시 실행
> 공식 GitHub 저장소를 통한 원격 파일 로드 방식은 경고 신호를 발생시키지 않으므로, 코드 검증 및 보안 탐지를 우회
2.1 mcpAddon.js
- 식별자 난독화, 문자열 디코딩, gzip+base64 인코딩을 결합한 다층 구조로 난독화되어 있음
- 피해자의 셸(PowerShell 또는 Bash)을 사용해 GitHub 인증토큰, 클라우드 자격 증명, SSH 정보, 클라우드/MCP 구성 파일 등을 탈취
실행 명령
C:\\WINDOWS\\system32\\cmd.exe /d /s /c "gh auth token"
C:\\WINDOWS\\system32\\cmd.exe /d /s /c "gcloud config config-helper --format json"
C:\\WINDOWS\\system32\\cmd.exe /d /s /c "az account get-access-token --output json --resource <https://management.azure.com>"
C:\\WINDOWS\\system32\\cmd.exe /d /s /c "azd auth token --output json --no-prompt --scope <https://management.azure.com/.default>" 등
- 탈취한 데이터는 audit.checkmarx[.]cx/v1/telemetry 또는 피해자 계정에 공개 저장소를 통해 유출
> 탈취한 NPM 자격 증명을 통해 사용자가 권한을 가진 모든 NPM 패키지를 순회하며 악성 페이로드를 추가 및 재배포
2.2 대응방안
- 영향을 받은 Checkmarx 아티팩트를 사용중인 경우 자격 증명 노출 및 CI/CD 침해 사고로 간주
① 즉각적 조치
- 감염된 확장 프로그램, Actions 및 컨테이너 이미지 즉시 제거
- GitHub, NPM, 클라우드, SSH, CI/CD 자격 증명 전면 교체
- 침해지표 차단 및 접근 여부 점
② 플랫폼 별 감사
- GitHub
> 무단 저장소 생성 점검
> .github/workflows/ 내 의심스러운 파일, 비정상적인 워크플로우 실행 및 아티팩트 다운로드 기록 점검
- NPM
> 무단 게시, 버전 변경 점검
> 새로 추가된 설치 후크(Install hooks) 존재 여부 감사
- Cloud
> 비정상적인 비밀 정보 접근, 토큰 사용 및 새로 발급된 자격 증명 여부 등 액세스 로그 점검
③ 엔드포인트 및 러너(Runner)
- 알려진 유출 인프라로의 아웃반운드 연결 점검
- 평소 사용하지 않는 곳에서 Bun 실행 및 자격 증명 저장소에 대한 접근 확인
- gh, gcloud, ac, acd 등 CLI 도구의 예기치 않은 사용 모니터링
④ 장기적 대응
- 엄격한 토큰 Scope 제한, 단기 자격 증명 사용 등 권한 최소화
- GitHub Actions 권한 강화, 패키지 생성 및 게시 권한 최소화
- 불필요 아티팩트 접근 차단, 신규 저장소 생성 또는 워크플로우 변경 감지 모니터링 체계 구축
3. NPM용 Bitwarden CLI 패키지 공급망 공격
- Bitwarden CLI NPM 패키지가 Checkmarx 공급망 공격의 일환으로 손상되어 @bitwarden/cli2026.4.0 버전이 영향 [2][3]
> Bitwarden 메타데이터는 그대로 유지하며, preinstall 스크립트와 bw 바이너리 진입점만 악성 로더(bw_setup.js)로 교체
3.1 동작 방식
- Bun 런타임 다운로드 후 난독화된 bw1.js 실행해 개발자 워크스테이션과 CI 환경을 대상으로 자격 증명 탈취
| 파일 시스템 수집기 | - SSH 키(~/.ssh/) - Git 자격증명(.git-credentials) - npm 토큰(~/.npmrc) -.env - AWS 자격증명(~/.aws/credentials) - GCP 크리덴셜(~/.config/gcloud/credentials.db) - AI 도구 및 MCP 설정 파일 (~/.claude.json, ~/.claude/mcp.json, ~/.kiro/settings/mcp.json) |
| 쉘/환경 수집기 | gh auth token 명령 실행, process.env 스캔을 통한 GitHub/NPM 토큰 패턴 매칭 |
| GitHub Actions 수집기 | 탈취한 토큰의 유효성을 api.github.com/user에서 검증한 후 권한이 있는 저장소 목록 등을 나열 |
- 탈취한 데이터는 audit.checkmarx[.]cx/v1/telemetry 또는 피해자 계정에 공개 저장소를 통해 유출
3.2 대응방안
- 악성 Bitwarden CLI NPM 패키지를 설치한 조직은 자격 증명 노출 및 CI/CD 침해 사고로 간주
① 즉각적 조치
- 개발자 시스템 및 빌드 환경에서 패키지 즉시 제거
- 해당 환경에 노출됐을 수 있는 모든 자격 증명 교체 (GitHub 토큰, npm 토큰, 클라우드 자격 증명, SSH 키 및 CI/CD 비밀 키 등)
- 침해지표 차단 및 접근 여부 점검
② 플랫폼 별 감사
- GitHub
> .github/workflows/ 내 의심스러운 파일, 비정상적인 워크플로우 실행 및 아티팩트 다운로드 기록 점검
> 무단 저장소 생성 점검 (Dune 테마 이름 패턴 {word}-{word}-{3digits} 를 따르는 공개 저장소를 확인)
| atreides | cogitor | fedaykin | fremen | futar | gesserit |
| ghola | harkonnen | heighliner | kanly | kralizec | lasgun |
| laza | melange | mentat | navigator | ornithopter | phibian |
| powindah | prana | prescient | sandworm | sardaukar | sayyadina |
| sietch | siridar | slig | stillsuit | thumper | tleilaxu |
- GitHub Actions
> 임시 브랜치에서 workflow 생성 여부 확인
> format-results.txt 같은 artifact 생성 또는 다운로드 되었는지 점검
- NPM
> 무단 게시, 버전 변경 점검
> 새로 추가된 설치 후크(Install hooks) 존재 여부 감사
- Cloud
> 비정상적인 비밀 정보 접근, 토큰 사용 및 새로 발급된 자격 증명 여부 등 액세스 로그 점검
③ 엔드포인트 및 러너(Runner)
- 알려진 유출 인프라로의 아웃반운드 연결 점검
- 평소 사용하지 않는 곳에서 Bun 실행 및 자격 증명 저장소에 대한 접근 확인
- gh, gcloud, ac, acd 등 CLI 도구의 예기치 않은 사용 모니터링
- /tmp/tmp.987654321.lock 존재 여부와 ~/.bashrc, ~/.zshrc 수정 여부 확인
④ 장기적 대응
- 엄격한 토큰 Scope 제한, 단기 자격 증명 사용 등 권한 최소화
- GitHub Actions 권한 강화, 패키지 생성 및 게시 권한 최소화
- 불필요 아티팩트 접근 차단, 신규 저장소 생성 또는 워크플로우 변경 감지 모니터링 체계 구축
4. 참고
[1] https://socket.dev/blog/checkmarx-supply-chain-compromise
[2] https://research.jfrog.com/post/bitwarden-cli-hijack/
[3] https://socket.dev/blog/bitwarden-cli-compromised
[4] https://news.hada.io/topic?id=28837
[5] https://news.hada.io/topic?id=28819
[6] https://www.boannews.com/media/view.asp?idx=143332&page=1&kind=1
[7] https://www.dailysecu.com/news/articleView.html?idxno=206446
'취약점 > Supply-Chain Attack' 카테고리의 다른 글
| Axios 공급망 공격 (0) | 2026.04.01 |
|---|---|
| LiteLLM 1.82.7 및 1.82.8 PyPI 패키지 공급망 공격 (0) | 2026.03.28 |
| Trivy 공급망 공격 (CVE-2026-33634) (0) | 2026.03.25 |
| Notepad++ 공급망 공격 (0) | 2026.02.11 |
| IDE Extensions 기법 (2) | 2025.06.29 |
