버셀, 내부 시스템을 오가며 고객 데이터 탈취당한 보안 사고
클라우드 플랫폼 버셀(Vercel)은 1일(현지시간) 보안 공지문을 통해 내부 시스템을 오가며 고객 인증정보와 민감 데이터를 탈취당한 보안 사고를 공개했다. 공격은 버셀 자체에서 시작된 것이 아니라 외부에서 시작된 연쇄 침해로, 클라우드 애플리케이션 간 연동과 과도한 권한 설정이 원인으로 지적됐다.
로블록스 치트 프로그램으로 시작된 공격 루트
보안 연구기관 허드슨락(Hudson Rock)에 따르면 이번 공격의 시발점은 지난 2월 Context.ai의 한 직원이 로블록스 게임 해킹 관련 검색을 하다 'Lumma Stealer' 악성코드에 감염되면서부터였다. 로블록스 관련 검색은 정보 탈취 악성코드 배포의 대표적인 경로로 알려져 있다.
감염된 Context.ai 직원의 PC는 악성코드에 의해 제3자 서비스에 접근할 수 있는 권한을 획득했고, 이 과정에서 버셀 직원의 구글 워크스페이스 계정 OAuth 토큰까지 탈취됐다. 버셀은 Context.ai의 고객사가 아니지만, 해당 직원이 Context.ai의 AI 오피스 스위트를 사용하며 전면 접근 권한을 부여했기 때문이다.
공격자는 어떻게 버셀 시스템에 접근했을까?
공격자는 탈취한 OAuth 토큰을 이용해 버셀 직원의 구글 워크스페이스 계정을 장악했고, 이 계정을 통해 일부 버셀 환경과 환경 변수에 접근할 수 있었다고 버셀은 밝혔다. 특히 민감하게 표시되지 않은 환경 변수들이 공격 대상이 됐다.
버셀 CEO 기예르모 라우흐(Guillermo Rauch)는 “공격 그룹은 매우 정교했으며, AI의 도움을 받았을 가능성이 크다”며 “놀라운 속도와 버셀 시스템에 대한 깊은 이해를 바탕으로 공격이 진행됐다”고 설명했다. 그는 고객 데이터는 암호화돼 있지만, 공격자는 변수 열거 기법(enumeration)을 통해 추가 접근 권한을 확보했다고 밝혔다.
ShinyHunters의 주장과 실제 정체는 불분명
공격 그룹을 자처하는 'ShinyHunters'는 텔레그램에 게시물을 올려 탈취한 데이터(접근 키, 소스 코드, 데이터베이스 등)를 판매하겠다고 주장했지만, 구글 threat intelligence 수석 분석가 오스틴 라슨(Austin Larsen)은 “이는 정체를 과장하려는 시도일 가능성이 크다”며 “실제 위협 주체는 불분명하더라도 노출 위험은 현실”이라고 지적했다.
버셀은 Context.ai의 구글 워크스페이스 OAuth 앱이 “수백 명의 사용자와 여러 조직에 영향을 미친 광범위한 침해의 대상이었다”고 밝혔다. 또한 침해 지표(IoC)를 공개하고 고객들에게 활동 로그 검토와 비밀 변수 회전을 권고했다.
Context.ai와 버셀, 공동 조사 진행 중
Context.ai와 버셀은 각각 크라우드스트라이크(CrowdStrike)와 만디언트(Mandiant)의 지원을 받아 공동 조사를 진행 중이며, 현재까지는 공격의 전모가 명확히 밝혀지지 않았다. 버셀은 영향받은 고객 수를 제한적으로 공개했으며, 해당 고객들에게는 즉시 인증정보 회전을 권고했다고 밝혔다.
“공격자는 클라우드 시스템의 연동성과 과도한 권한 설정을 악용해 신속하고 정교한 공격을 수행했다. AI의 활용 가능성도 배제할 수 없는 상황이다.”
보안 전문가들의 경고와 시사점
- 클라우드 연동의 위험성: 과도한 권한과 연동된 SaaS 서비스 간 보안 취약점이 연쇄적 침해로 이어질 수 있음을 보여줌.
- OAuth 토큰 관리 강화: 제3자 앱에 부여된 OAuth 토큰이 주요 공격 경로가 될 수 있어, 정기적인 감사와 권한 회전이 필요.
- AI 기반 공격 증가: 공격자의 정교함과 속도가 AI 도구를 활용했을 가능성을 시사하며, 보안 시스템도 AI 기반 대응이 필수적.