본문으로 건너뛰기
피드

Bitwarden CLI npm 패키지에 악성코드 — Checkmarx 공급망 공격 확산 중

security 약 10분
vote
0
댓글
북마크

Socket 보안팀이 Bitwarden CLI npm 패키지(@bitwarden/cli2026.4.0)가 악성코드에 감염된 채로 배포된 사실을 발견했다. Bitwarden의 CI/CD에 쓰이던 GitHub Action이 뚫려 공식 빌드 라인에 bw1.js 페이로드가 심어졌고, GitHub·AWS·Azure·GCP 자격증명부터 Claude/MCP 설정까지 광범위하게 탈취한다. 최근 번지고 있는 Checkmarx 공급망 캠페인의 일부로 확인됐다.

  • 1

    감염 패키지는 @bitwarden/cli2026.4.0, 악성코드는 bw1.js에 포함

  • 2

    Bitwarden CI/CD의 GitHub Action이 뚫린 게 침투 경로로 추정

  • 3

    GitHub 토큰·AWS·Azure·GCP 자격증명, SSH 키, npm 설정, Claude/MCP 설정까지 탈취

  • 4

    훔친 데이터는 피해자 GitHub 계정에 듄(Dune) 테마 이름의 공개 레포를 만들어 유출

  • 5

    러시아 로케일 킬 스위치 존재 — 'ru'로 시작하면 조용히 종료

  • 6

    Shai-Hulud, Butlerian Jihad 같은 이데올로기 브랜딩이 악성코드 자체에 박혀 있음

  • 7

    Chrome 확장·MCP 서버·공식 배포판은 영향 없음, npm CLI 패키지만 감염

⚠️주의

> Bitwarden CLI npm 패키지(@bitwarden/cli2026.4.0)에 악성코드가 심어져서 배포됨. 쓰고 있었다면 지금 당장 CI/CD 시크릿, GitHub 토큰, 클라우드 자격증명 싹 다 로테이션해야 함.

  • Socket 보안팀이 Bitwarden CLI npm 패키지가 털린 걸 발견 — 요즘 번지고 있는 Checkmarx 공급망 공격 캠페인의 일부
    • 피해 대상인 Bitwarden은 1천만 명 넘는 사용자 + 5만 개 넘는 기업 고객을 가진 오픈소스 패스워드 매니저. 엔터프라이즈 채택률 기준 Top 3 안에 듦
    • 문제의 패키지는 @bitwarden/cli2026.4.0, 악성코드는 패키지 안의 bw1.js 파일에 박혀 있었음
  • 침투 경로는 Bitwarden의 CI/CD 파이프라인에서 쓰던 GitHub Action이 털린 것으로 추정 — 다른 피해 레포들과 동일한 패턴
    • 지금 단계에선 CLI npm 패키지만 영향받음. Chrome 확장, MCP 서버, 공식 배포판은 아직 안전

악성 페이로드(bw1.js)가 하는 짓

  • 어제 분석된 Checkmarx mcpAddon.js핵심 인프라를 공유함 — 같은 공격자 생태계로 보임
    • C2 엔드포인트 동일 (audit.checkmarx[.]cx/v1/telemetry, __decodeScrambled 함수에 시드 0x3039로 난독화)
    • 유출 경로도 동일 — GitHub API 커밋 기반 + npm 레지스트리 토큰 탈취/재배포
  • 자격증명 수집 범위가 살벌함
    • GitHub Actions의 Runner.Worker 메모리를 스크래핑해서 GitHub 토큰 탈취
    • AWS 자격증명 (~/.aws/ 파일, 환경변수), Azure 토큰 (azd), GCP 자격증명 (gcloud config config-helper)
    • npm 설정(.npmrc), SSH 키, 환경변수, Claude/MCP 설정 파일까지 가져감
  • 훔친 데이터 유출 방식이 기발함 — 피해자 GitHub 계정에 공개 레포를 만들어서 암호화된 결과를 커밋
    • 레포 이름은 {단어}-{단어}-{3자리숫자} 포맷, 단어는 전부 듄(Dune) 소설 용어 (atreides, fremen, harkonnen, melange, sandworm 등)
    • 커밋 메시지에 LongLiveTheResistanceAgainstMachines 마커와 함께 토큰을 박아서 유출
  • 공급망 확산도 자동화됨 — 훔친 npm 토큰으로 쓰기 가능한 패키지를 찾아서 preinstall 훅을 심은 버전을 재배포
    • GitHub Actions 워크플로우도 주입해서 레포 시크릿을 캡처
  • Bun v1.3.13 인터프리터를 GitHub 릴리스에서 받아와 런타임으로 씀
  • 러시아 로케일 킬 스위치 — 시스템 로케일이 ru로 시작하면 조용히 종료. Intl.DateTimeFormat().resolvedOptions().localeLC_ALL, LC_MESSAGES, LANGUAGE, LANG 환경변수를 체크함

Checkmarx 건과 다른 이데올로기적 시그니처

  • 같은 툴을 쓰지만 브랜딩이 대놓고 이데올로기적이어서 분파 그룹이거나 캠페인의 태도 진화로 보임
    • Checkmarx 악성코드는 "Checkmarx Configuration Storage" 같은 위장명으로 블렌딩 시도
    • 이번 페이로드는 레포 설명에 Shai-Hulud: The Third Coming (듄의 샌드웜)을 박음
    • 디버그 문자열에 "Would be executing butlerian jihad!" (듄의 기계 반란 이벤트) 같은 메시지 탑재
  • Checkmarx 건은 @pcpcats 트위터 계정의 TeamPCP가 사후에 주장했는데, 이번엔 악성코드 자체에 선언문이 박혀 있음
  • 이번 페이로드에만 있는 추가 지표
    • 락 파일 /tmp/tmp.987654321.lock로 중복 실행 방지
    • ~/.bashrc, ~/.zshrc에 페이로드 주입해서 영속성 확보

대응 가이드

중요

> 감염 의심 시 크리덴셜 노출 + CI/CD 침해 사건으로 취급해야 함. 패키지 제거만 하고 끝내면 안 됨.

  • 당장 해야 할 일
    • 감염 패키지를 개발 머신과 빌드 환경에서 제거
    • GitHub 토큰, npm 토큰, 클라우드 자격증명, SSH 키, CI/CD 시크릿 전부 로테이션
    • 위의 듄 키워드(atreides, fremen, harkonnen, melange, sandworm 등)로 새로 만들어진 레포가 있는지 GitHub 뒤져보기
    • .github/workflows/ 밑에 수상한 워크플로우 파일, 정체불명 워크플로우 실행, 아티팩트 다운로드 체크
  • 헌팅용 IOC
    • 네트워크 — 94[.]154[.]172[.]43, https://audit.checkmarx[.]cx/v1/telemetry 아웃바운드
    • 파일 — /tmp/tmp.987654321.lock, ~/.bashrc·~/.zshrc 내 주입 흔적
    • 평소 Bun 안 쓰는 환경에서 Bun 실행, .npmrc·.git-credentials·.env·gcloud·az·azd 접근 흔적
  • 중장기적으로는 블래스트 레이디어스 축소에 집중 — 토큰 스코프 최소화, 단명 자격증명 강제, 패키지 배포 권한 제한, GitHub Actions 권한 하드닝, 비정상 레포/워크플로우 생성 모니터링

기술 맥락

이번 사건의 핵심은 "npm 패키지 하나 감염"이 아니라 "CI/CD 파이프라인 자체가 뚫리는 구조"예요. 공격자는 Bitwarden의 GitHub Action을 털어서 공식 빌드 라인에 악성코드를 끼워넣었거든요. 이게 무서운 건, 피해자가 공식 배포 채널에서 정식 버전을 받아도 이미 감염된 상태라는 점이에요. 이름만 들어도 아는 Bitwarden급 프로젝트도 이렇게 당했다는 게 포인트예요.

prompt injection이 아니라 "빌드 타임 주입"이 유행이 된 배경이 있어요. 요즘 npm 생태계에선 개별 패키지를 직접 타이포스쿼팅하는 것보다, 인기 패키지의 배포 자동화 파이프라인을 뚫는 게 훨씬 효율적이거든요. Checkmarx, Bitwarden이 연달아 당한 이유가 이거예요. 한 번 뚫리면 해당 패키지를 쓰는 모든 CI 환경으로 크리덴셜이 새어나가요. GitHub Actions의 Runner.Worker 프로세스 메모리에서 토큰을 긁어가는 기술은 이미 검증된 공격 벡터가 됐어요.

러시아 로케일 킬 스위치는 공격자 출신 추정 힌트예요. 러시아권 사이버범죄 그룹은 전통적으로 CIS 국가 내부 타깃을 피하는 관행이 있거든요. 이걸 코드에 박아두면 자국 내 법 집행을 피할 수 있어요. 반대로 이 특징이 있으면 "러시아어권 행위자"로 프로파일링되기 쉬운데, 최근엔 이걸 역이용해서 false flag로 쓰기도 해서 절대적인 단서는 아니에요.

Shai-Hulud, Butlerian Jihad 같은 듄 레퍼런스는 단순한 드립이 아니에요. 듄의 "버틀레리안 지하드"는 인류가 사고하는 기계(AI)에 반란을 일으킨 사건이에요. 악성코드가 Claude/MCP 설정 파일까지 긁어가는 걸 보면, 공격자가 AI 도구 사용 개발자를 의도적으로 타깃팅하고 있다는 시그널이에요. 이데올로기적 포지셔닝이 기술적 타깃팅과 맞물려 있다는 게 이 캠페인의 특이점이에요.

'인기 패키지 하나 직접 감염' 시대에서 'CI/CD 파이프라인 자체를 뚫어 공식 빌드 라인에 주입하는' 시대로 넘어왔다는 명백한 증거. Claude/MCP 설정 파일까지 수집 대상에 넣은 건 AI 도구 쓰는 개발자를 의도적으로 타깃팅한다는 시그널이다.

댓글

댓글

댓글을 불러오는 중...

security

보안 로그가 터져나가는데 사람은 부족하다, 에이아이 기반 시엠 전환이 급해진 이유

보안 정보 및 이벤트 관리 도구가 단순 로그 저장소에서 실시간 탐지, 행위 분석, 자동 대응을 묶는 보안 운영 플랫폼으로 바뀌고 있어. 프로스트앤설리번은 현대 시엠 시장이 2024년부터 2029년까지 연평균 13.7퍼센트 성장할 것으로 봤고, 클라우드 네이티브·서비스형 시엠 전환을 핵심 흐름으로 짚었어.

security

F5, 47일 TLS 인증서 시대에 맞춰 인증서 자동화로 멀티클라우드 보안 밀어붙인다

Encryption Consulting이 F5와의 파트너십을 통해 F5 BIG-IP 환경에 자동화된 인증서 수명 주기 관리를 제공한다고 발표했다. 업계가 47일 TLS 인증서 수명으로 이동하는 흐름에서, 수동 갱신과 배포를 줄이는 게 핵심이다. 다만 기사 자체는 기술 발표와 함께 F5의 투자 내러티브를 다루는 성격이라 실무 기술 분석은 제한적이다.

security

티빙 해킹, 개인정보 유출보다 더 큰 문제는 AWS 액세스 키 노출이었다

티빙 해킹 사고가 단순 DB 유출이 아니라 AWS 클라우드 자격증명 관리 실패로 번지는 분위기다. GitHub에 노출된 자격증명, 하드코딩된 액세스 키, 21시간 늦은 이상 징후 인지, 24시간 신고 시한 1분 전 신고까지 보안 운영 전반이 도마 위에 올랐다.

security

EU의 클라우드·AI 주권 법안, 미국 빅테크 의존을 보안 리스크로 보기 시작했다

EU 집행위원회가 클라우드·AI 개발법과 반도체법 2.0을 제안하며 미국 빅테크 의존도를 줄이겠다는 방향을 분명히 했다. 금융, 에너지, 보건 같은 민감 분야에서는 유럽산 하드웨어와 소프트웨어, 역내 통제 조건을 강하게 요구할 전망이다. 미국 클라우드법과 킬 스위치 우려가 배경에 깔려 있어, 단순 산업 보호가 아니라 디지털 주권과 공급망 보안 이슈로 봐야 한다.

security

AI가 취약점 찾는 속도, 월 900건 수준까지 튀었다

에포크 AI가 주요 글로벌 기업과 오픈소스 프로젝트의 CVE 데이터를 분석한 결과, 2026년 들어 고위험 취약점 공개 건수가 급격히 늘었다. 업계는 클로드 미토스 프리뷰 같은 자율형 보안 AI와 대규모 언어 모델 기반 취약점 탐지가 이 흐름을 가속한다고 보고 있다.