Bitwarden CLI, 공급망 공격으로 인한 보안 사고 발생
Bitwarden CLI가 Checkmarx 공급망 공격의 일환으로 악성 코드에 감염됨
감염된 버전은 @bitwarden/cli@2026.4.0이며, GitHub Actions CI/CD 파이프라인이 공격에 악용됨
사용자들은 Bitwarden의 보안 사고에 대한 불안감과 1Password로의 전환을 고려함
Bitwarden 측의 미흡한 대응과 커뮤니티와의 소통 부재에 대한 비판이 제기됨
공급망 공격의 기술적 분석
공격자는 bw1.js 파일에 악성 코드를 삽입하여 Bitwarden CLI를 공격했다. 해당 페이로드는 Checkmarx mcpAddon.js와 유사한 구조를 가지며, C2 엔드포인트(C2 Endpoint)를 통해 데이터를 탈취한다. 특히, GitHub API를 통한 데이터 유출(Data Exfiltration), npm 레지스트리를 이용한 토큰 탈취 및 재배포, 그리고 다양한 자격 증명 수집을 시도했다. 또한, 러시아 로케일(Russian Locale)을 감지하여 실행을 중단하는 킬 스위치(Kill Switch)를 포함하고 있다.
GitHub Actions CI/CD 파이프라인 취약점
이번 공격은 Bitwarden의 CI/CD 파이프라인(CI/CD Pipeline) 내 GitHub Actions의 취약점을 악용한 것이다. 공격자는 GitHub Actions의 권한을 탈취하여 악성 코드를 삽입하고, 이를 통해 GitHub 토큰(GitHub Token), npm 토큰, 클라우드 자격 증명 등 민감한 정보를 탈취했다. 이러한 공격은 GitHub Actions의 보안 설정 강화와 토큰 범위 제한(Token Scope)을 통해 예방할 수 있다.
커뮤니티의 반응과 보안 솔루션
커뮤니티에서는 Bitwarden의 보안 사고에 대한 우려와 함께 1Password와 같은 대안 서비스(Alternative Service)로의 전환을 고려하는 반응이 나타났다. 또한, Bitwarden 측의 미흡한 대응과 커뮤니티와의 소통 부재(Lack of Communication)에 대한 비판이 제기되었다. 자가 호스팅(Self-hosting) 솔루션인 Passbolt에 대한 언급도 있었으며, 이는 보안 사고 발생 시 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 피해를 최소화할 수 있는 방법으로 제시되었다.
악성 코드의 특징 및 IOC(Indicators of Compromise)
악성 코드(Malware)는 GitHub Actions Runner.Worker의 메모리 스크래핑을 통해 GitHub 토큰을 탈취하고, 다양한 환경 변수 및 설정 파일을 수집한다. 특히, /tmp/tmp.987654321.lock 파일과 ~/.bashrc, ~/.zshrc 파일 수정을 통해 지속적인 실행을 시도한다. 공격에 사용된 네트워크 지표(Network Indicators)와 파일 시스템 지표(File System Indicators)는 침해 지표(IOC)로 활용되어, 잠재적 피해 시스템을 식별하는 데 사용될 수 있다.