A Roblox cheat and one AI tool brought down Vercel's platform
개요
Context.ai 직원의 Roblox 치트 다운로드와 해당 치트에 포함된 Lumma Stealer 멀웨어가 Vercel 플랫폼 전체를 다운시키는 사건이 발생했습니다.
주요 내용
- 공격 시작: 2026년 2월, Context.ai 직원이 Roblox 치트를 다운로드했으며, 이 치트에 포함된 Lumma Stealer가 해당 직원의 세션 쿠키, 자격 증명 등 정보를 탈취했습니다.
- Vercel 시스템 침투: 공격자는 Context.ai의 침해된 인프라를 이용해 Vercel 직원의 Google Workspace 계정에 접근했습니다. 해당 Vercel 직원은 Context.ai의 "AI Office Suite"에 기업 계정으로 가입하며 넓은 OAuth 권한을 부여했습니다.
- 데이터 유출 확인: 4월 19일, Vercel은 민감하지 않은 환경 변수(environment variables)가 접근 및 반출되었음을 확인했습니다. 공격자는 ShinyHunters라는 이름으로 데이터를 2백만 달러에 판매하겠다고 제안했으나, 실제 ShinyHunters 그룹은 관련 없다고 주장했습니다.
- 환경 변수 보안 문제: Vercel의 모든 환경 변수는 저장 시 암호화되지만, "민감(sensitive)" 체크박스 설정에 따라 복호화 방식이 달라집니다. 민감하지 않은 변수는 대시보드 백엔드에서 복호화되어 UI에서 볼 수 있고 편집 및 복사가 가능합니다. 민감한 변수는 빌드 시에만 복호화되며, 한 번 설정하면 값을 다시 볼 수 없습니다.
- 기본 설정의 취약점: 공격자는 Vercel 내부 시스템에 접근하여 민감하지 않은 환경 변수를 복호화할 수 있었습니다. 대부분의 개발자가 별도의 설정을 하지 않아 민감하지 않은 상태로 환경 변수를 사용하고 있었기에, 민감한 변수는 안전했을 가능성이 높습니다. Vercel은 이 사건 이후 기본 설정을 민감한 변수로 변경했습니다.
- AI 도구의 공격 표면 확대: AI 생산성 도구들은 기능 수행을 위해 문서, 이메일, 코드, 워크스페이스 등 광범위한 접근 권한을 요구합니다. Context.ai와 같은 AI 도구에 부여된 OAuth 권한은 공격 표면을 확대시키는 요인이 되었습니다.
- 개발자의 보안 인식 부족: 많은 개발자가 AI 도구의 온보딩 과정에서 요구하는 광범위한 OAuth 권한을 제대로 읽지 않고 동의하며, 이는 보안 사고의 원인이 될 수 있습니다.
- 사고 후폭풍: Vercel의 고객 자격 증명 일부가 손상되었으며, 공격자는 데이터를 판매하고 있습니다. 특히 Vercel 환경 변수를 통해 월렛 인프라가 운영되던 암호화폐 개발자들에게 큰 영향을 미쳤습니다.
- 신뢰 비용 및 보안 감사: 이번 사건으로 인해 Vercel 사용자들은 모든 환경 변수를 검토하고 자격 증명을 변경해야 하는 번거로움을 겪고 있습니다. 일부 프로젝트는 환경 변수 교체에 6시간 이상 소요되었습니다.
- 반복되는 보안 패턴: 과거에도 유사한 보안 사고가 발생했으며, 대부분 일시적인 키 교체 후 편리성을 이유로 보안 관리가 소홀해지는 패턴이 반복되었습니다.
- 12배 감사(12x audit) 제안: 저자는 AI 도구를 승인할 때 이전보다 12배의 시간을 들여 요청 권한을 꼼꼼히 검토하는 "12배 감사"를 제안합니다.
시사점
이번 사건은 정교한 공격이 아닌, 편리성을 중심으로 설계된 AI 도구와 개발자의 보안 인식 부족이 결합되어 대규모 플랫폼 장애를 초래할 수 있음을 보여주며, AI 도구 사용 시 권한 설정을 신중하게 관리해야 할 필요성을 강조합니다.
원문을 불러오는 중...
댓글
GitHub Discussions