개발자가 매일 쓰는 NPM 패키지가 공격 경로가 됐다 — Bitwarden CLI 공급망 사고

4월 셋째 주, 보안 커뮤니티에서 조용히 퍼진 얘기가 있다. Bitwarden의 CLI NPM 패키지가 공격자에 의해 변조됐다는 것. GitHub Actions 파이프라인이 탈취돼 악성 버전이 배포됐고, 개발자들이 설치한 패키지가 자격증명과 시크릿을 외부로 빼내는 코드를 포함하고 있었다.

Bitwarden은 개발팀에서 비밀번호와 API 키를 관리하는 데 흔하게 쓰인다. 그 도구 자체가 공격 경로가 된 셈이다.


어떤 일이 있었나

2026년 4월, 공격자들은 Bitwarden CLI의 GitHub Actions 워크플로우를 탈취해 악성 버전(bitwarden-cli 2026.4.0)을 NPM 레지스트리에 배포했다. 이 버전을 설치한 개발자의 환경에서 자격증명과 환경변수에 저장된 시크릿이 외부로 전송됐다.

패키지 이름은 완전히 동일하다. 버전 번호만 다르다. npm install @bitwarden/cli를 실행했을 때 최신 버전으로 이 악성 버전이 설치된다.

Checkmarx의 연구팀이 이를 탐지해 공개했고, 이번 주 CISA와 주요 보안 기관이 개발 파이프라인 공급망 위협으로 분류했다.

참조: SecurityWeek, "Supply Chain Attacks Escalate: Bitwarden CLI Compromised via GitHub Actions" (2026-04-22)


공급망 공격이 왜 이렇게 효과적인가

직접 침투보다 공급망을 노리는 이유는 간단하다. 하나의 패키지에 의존하는 수천 개의 프로젝트를 한 번에 감염시킬 수 있어서다.

2020년 SolarWinds 사고부터 2021년 Log4Shell, 2024년 XZ Utils 백도어까지 패턴은 반복됐다. 공격자는 개발자들이 신뢰하는 도구나 라이브러리를 변조해서 배포한다. 사용자는 아무것도 이상하다고 느끼지 못한 채 악성 코드를 실행한다.

이번 Bitwarden 사고가 더 치명적인 이유는 타깃이 자격증명 관리 도구라는 점이다. CI/CD 파이프라인에서 Bitwarden CLI를 쓰는 팀이라면 AWS 키, 데이터베이스 비밀번호, API 토큰 등이 노출됐을 가능성이 있다.

보안 실무 10년 동안 공급망 공격만큼 탐지가 늦는 공격 벡터는 없다. 침입이 발생하고 수개월이 지나서야 알게 되는 경우가 태반이다.


내 파이프라인이 영향받았는지 확인하는 방법

1. 설치된 Bitwarden CLI 버전 즉시 확인

bw --version
npm list @bitwarden/cli

악성 버전은 2026.4.0이다. 해당 버전이 설치돼 있다면 즉시 삭제하고 공식 채널을 통해 재설치한다.

2. CI/CD 로그에서 이상 네트워크 통신 확인

악성 버전이 실행된 시점의 CI/CD 로그를 뒤진다. 알 수 없는 외부 도메인으로의 HTTP 요청이나 환경변수 접근 패턴이 있는지 확인한다.

3. 노출 가능성이 있는 자격증명 즉시 로테이션

Bitwarden CLI를 CI/CD에서 사용하는 시점이 언제든, 그 기간 내 환경변수에 있던 모든 시크릿을 교체한다. 비밀번호, API 키, 토큰 전부.


공급망 공격 예방을 위한 실무 체크리스트

패키지 의존성 관리

  • 모든 프로덕션 의존성에 버전을 고정(lock file)하고 자동 업데이트 무분별 적용 금지
  • npm audit 또는 SCA 도구를 CI/CD 파이프라인에 필수 단계로 포함
  • 패키지 설치 전 공식 GitHub 저장소의 최근 릴리즈와 NPM 패키지 버전 일치 여부 수동 확인 (주요 도구 한정)

GitHub Actions / CI/CD 보안

  • 워크플로우 파일을 외부 기여자가 변경할 수 없도록 브랜치 보호 규칙 적용
  • GITHUB_TOKEN 및 Actions Secret 권한을 최소 권한 원칙으로 관리
  • Actions에서 사용하는 외부 액션을 커밋 해시로 고정 (uses: actions/checkout@v4 대신 uses: actions/checkout@<commit-sha>)

자격증명 관리

  • CI/CD에서 시크릿을 환경변수로만 다루지 않고 전용 Secrets Manager 사용 검토
  • 모든 시크릿에 유효기간 설정 및 정기 로테이션 운영
  • 시크릿 노출 탐지 도구(GitLeaks, TruffleHog 등) 파이프라인 통합

한국 기업 환경에서 더 취약한 이유

국내 개발팀의 현실을 보면, 보안 전담 인력이 없는 중소 IT 기업이 CI/CD 파이프라인을 운영하는 경우가 많다. 패키지 버전 고정조차 안 된 프로젝트가 여전히 적지 않다.

ISMS-P 인증 기업도 개발 파이프라인 보안은 심사 항목 중 가장 관리가 느슨한 영역 중 하나다. 인증서 있다고 공급망 공격에서 안전한 게 아니다.

공급망 보안은 개발 프로세스 안에 보안 통제를 내재화하는 DevSecOps 관점이 필요하다. 지금 당장 전부 다 할 수는 없더라도, 패키지 버전 고정과 시크릿 로테이션 두 가지는 오늘 바로 할 수 있다.


자가 점검

지금 우리 팀에 해당하는 항목이 있는지 확인한다.

  • package-lock.json 또는 yarn.lock을 커밋하지 않고 있다
  • CI/CD 파이프라인에서 npm audit을 실행하지 않는다
  • 외부 Actions를 버전 태그가 아닌 커밋 해시로 고정하지 않았다
  • 환경변수에 저장된 시크릿을 6개월 이상 교체하지 않았다
  • 어떤 패키지가 CI 환경에서 실행되는지 전체 목록을 파악하지 못한다

이 중 하나라도 해당하면 공급망 공격 노출 리스크가 있다.


웹서비스 보안, 점검부터 시작하면 된다

개발 파이프라인부터 배포된 서비스까지 전체 공격 표면을 한 번에 점검하기는 어렵다. 그래도 지금 운영 중인 웹서비스의 보안 상태는 지금 바로 확인할 수 있다.

보안 전문 기업 SENTRIX가 운영하는 CodeScan은 노출된 시크릿·보안 헤더·민감 파일 노출 같은 웹서비스의 외부 노출 위험을 30초 안에 무료로 점검한다. AI 코딩 도구로 빠르게 개발한 서비스일수록, 배포 전 한 번은 확인이 필요하다.

30초 무료 웹 보안 점검 → codescan.kr


출처: SecurityWeek "Supply Chain Attacks Escalate: Bitwarden CLI Compromised via GitHub Actions" (2026-04-22), Checkmarx Security Research Blog (2026-04-21)

웹서비스 공급망 취약점 무료 점검

URL 하나로 주요 보안 항목을 자동 진단. 등급 + 수정 가이드까지 자동 생성.