Roblox 핵이 어떻게 Vercel을 거의 무너뜨릴 뻔했는가

BBetter Stack
Computing/SoftwareBusiness NewsVideo & Computer GamesInternet Technology

Transcript

00:00:00한 사람이 로블록스 핵을 설치하다가 Vercel이 해킹당하게 만들었고, 잠재적으로
00:00:04귀하의 모든 프로젝트 환경 변수가 노출될 위기에 처했으며, 해커들은 탈취한
00:00:09데이터에 대해 200만 달러를 요구하고 있습니다.
00:00:10네, 정말 미친 듯이 무서운 이야기네요. 바로 시작해보죠.
00:00:17이것은 Vercel 측의 해킹 발표문으로, 그들이 보안 사고를 식별했으며
00:00:21일부 Vercel 내부 시스템에 대한 무단 액세스가 포함되었다는 내용입니다.
00:00:25이 시스템들은 귀하의 민감하지 않은 환경 변수에 접근할 수 있었는데, 참고로
00:00:29대부분의 환경 변수는 기본적으로 그렇습니다. 또한 엄청난 양의 내부 기업 데이터도 있었죠.
00:00:33이것은 또한 공격자가 해당 데이터를 판매하는 모습입니다. 수백만 명을 감염시킬 수 있는
00:00:37악성 NPM 패키지를 배포할 수 있다고 주장하고 있죠.
00:00:38하지만 공격자들은 어떻게 이 정보를 알아냈을까요?
00:00:40그걸 알기 위해서는 한 Vercel 직원의 이야기를 따라가 봐야 합니다.
00:00:44그 직원은 업무에 도움을 받으려 했고, AI에 일을 떠넘길 수 있는 옵션을
00:00:47찾아보다가 Context.ai라는 제품을 발견하게 됩니다. 특히
00:00:52AI 오피스 스위트라는 레거시 제품이었는데, 이것은 프레젠테이션, 문서,
00:00:57스프레드시트를 만들고 사용자를 대신해 이메일을 작성해 주는 도구였습니다.
00:01:00Vercel 직원은 이를 사용해 보기로 결정하고, 자신의 Vercel 구글
00:01:04워크스페이스 계정으로 가입한 뒤 모든 권한을 허용하여 구글 드라이브와
00:01:09지메일에 대한 전체 액세스 권한을 부여합니다.
00:01:10이제 여러분은 회사 계정을 사용해서 모든 권한을 허용한다는 게 좀
00:01:13무모했다고 생각할 수도 있습니다.
00:01:14네, 확실히 좀 그랬죠.
00:01:16하지만 Context.ai는 합법적인 회사입니다.
00:01:19이때가 그의 구글 계정이 탈취된 시점은 아닙니다.
00:01:21그걸 알아내려면 더 깊이 파고들어야 합니다.
00:01:23Context.ai의 권한이 높은 직원을 찾아가야 하죠.
00:01:27이 직원은 Context.ai를 구축하느라 바쁘고, 빠르게 변하는 AI 세계를 따라잡으려 노력하며,
00:01:32잠시 쉬면서 로블록스를 좀 즐기고 싶어 합니다.
00:01:35문제는 그가 하던 게임을 잘하지 못했는지, 지름길을 택하고 싶어서
00:01:39로블록스 핵, 특히 자동 파밍 스크립트를 찾기 시작했다는 겁니다.
00:01:44그리고 결국 하나를 찾아서 다운로드했죠. 전부 회사 노트북에서 말입니다.
00:01:49이런 일이 벌어졌다는 게 정말 믿기지가 않네요. 너무 멍청한 짓입니다.
00:01:53더 뻔하게도 그가 다운로드한 로블록스 핵에는 정보 탈취기가 들어 있었습니다.
00:01:57LumaStealer라고 알려진 녀석이죠.
00:01:592022년에 처음 발견된 아주 유명한 정보 탈취기입니다.
00:02:03일단 기기에 침투하면 실시간 세션 쿠키와 기업 자격 증명을 긁어갑니다.
00:02:07우리 Context.ai 직원의 경우, 노트북 로그를 보면 그의 구글 워크스페이스 자격 증명,
00:02:11그리고 수파베이스(Supabase), 데이터독(Datadog), AuthKit 같은 서비스의 키와 로그인 정보까지
00:02:15접근 권한을 획득했다는 사실을 알 수 있습니다.
00:02:16그가 브라우저에서 로그인했던 모든 정보가 탈취당한 것이죠.
00:02:19공격자들은 이 자격 증명을 이용해 Context.ai의 내부 AWS 환경에 접속했고,
00:02:25그 안을 둘러보다가 대박을 터뜨렸습니다.
00:02:27그들은 레거시 AI 오피스 스위트 사용자의 OAuth 토큰이 포함된 데이터베이스를 찾아내 탈취했습니다.
00:02:32그 안에 뭐가 있었을까요?
00:02:33바로 우리 Vercel 직원의 토큰이 그대로 놓여 있었던 겁니다.
00:02:36이 토큰으로 공격자들은 이제 Context.ai에서 Vercel로 피벗하여,
00:02:37비밀번호도 필요 없고 다중 인증 프롬프트조차 트리거하지 않은 채
00:02:41Vercel 직원의 구글 워크스페이스 계정을 장악할 수 있게 되었습니다.
00:02:46이 계정을 통해 공격자들은 리니어(Linear)와 같은 Vercel의 내부 시스템,
00:02:48그리고 Vercel 사용자 프로젝트의 민감하지 않은 환경 변수에 접근할 수 있는
00:02:51백엔드에도 접근할 수 있었습니다.
00:02:55이전에 Vercel에서 환경 변수를 설정해 본 적이 없다면, 수동으로 체크박스를
00:02:56확인해서 변수를 민감하게 표시했어야 합니다.
00:03:00만약 그렇게 했다면, 강력하게 암호화되어 내부 시스템에서 마스킹되었을 텐데,
00:03:02기본 설정은 민감하지 않음이었고, 이것들은 평문으로 복호화되어 내부적으로 접근이 가능했습니다.
00:03:06이 모든 일이 4월 19일로 이어지는데, Shiny Hunters라는 이름의 공격자들이
00:03:10브리치 포럼에 탈취한 데이터에 대해 200만 달러를 요구하는 글을 올렸습니다.
00:03:15그들은 소스 코드, NPM 토큰, GitHub 토큰, 직원 기록을 가지고 있다고 주장하며,
00:03:19접근 권한이 있다는 증거로 내부 Vercel 엔터프라이즈 대시보드 스크린샷까지 게시했죠.
00:03:23흥미로운 점은, 실제 Shiny Hunter 그룹의 멤버들은 이번 사건과 아무 관련이 없다고 부인했다는 것입니다.
00:03:27즉, 브랜드 가치를 이용해 한몫 챙기려는 제휴자나 사칭범일 수도 있지만,
00:03:31그건 어쨌든 간에 이 모든 사건이 빌어먹을 로블록스 핵에서 시작되었다는 사실입니다.
00:03:36Vercel은 해킹 사실을 인지하자마자 사고 대응에 착수했고,
00:03:40Next.js나 Turbo Pack 같은 핵심 오픈소스 프로젝트들은 완전히 안전하다는 것을 확인했습니다.
00:03:43또한 이제 모든 새로운 환경 변수는 기본적으로 민감하게 설정되도록 변경했죠.
00:03:48자, 여기까지가 해킹에 대한 개요입니다. 하지만 저처럼 Vercel 사용자라면,
00:03:52앞으로 할 일이 꽤 많으실 겁니다.
00:03:55Vercel에 가지고 있던 민감하지 않은 환경 변수가 모두
00:03:56침해당했다고 가정해야 하며, 소스에서 해당 키들을 적극적으로 교체해야 합니다.
00:04:00그냥 프로젝트를 삭제하고 Vercel을 떠난다고 해결될 문제가 아니니까요.
00:04:03또한, 직원이 Context.ai를 사용했을까 봐 걱정되는 회사라면,
00:04:06구글 워크스페이스에 들어가서 승인된 OAuth 앱을 감사해 보세요. 특히 침해된
00:04:10Context.ai 앱 ID를 찾아보시고, 제가 대응 방법에 대한 정보 탈취기 블로그 게시물 링크를 남겨두겠습니다.
00:04:14결국 이 이야기의 교훈은, 권한이 지나치게 부여된 AI 도구 하나와
00:04:19로블록스에서 치트 좀 써보려는 무작위 직원 하나가,
00:04:20웹에서 가장 큰 인프라 플랫폼 중 하나를 해킹당하게 만들 수 있다는 것입니다.
00:04:24회사 노트북에 게임 핵을 다운로드하지 마세요. 아니, 솔직히 말씀드리면
00:04:28신뢰할 수 없는 건 무엇이든 다운로드하지 마시기 바랍니다.
00:04:29이번 일에 대해 어떻게 생각하시는지 아래 댓글로 알려주시고, 보시는 김에
00:04:33구독도 부탁드립니다. 그럼 항상 그렇듯, 다음 영상에서 뵙겠습니다.
00:04:34[음악]
00:04:37구독도 부탁드립니다. 그럼 항상 그렇듯, 다음 영상에서 뵙겠습니다.
00:04:40[음악]

Key Takeaway

회사 노트북에서 무분별하게 다운로드한 로블록스 게임 핵이 LumaStealer 정보 탈취기를 통해 Vercel의 내부 인증 토큰과 환경 변수들을 유출하는 보안 사고의 시작점이 되었다.

Highlights

한 Vercel 직원이 회사 노트북에 설치한 로블록스 자동 파밍 스크립트가 LumaStealer 정보 탈취기를 포함하고 있었다.

LumaStealer는 브라우저 세션 쿠키와 기업 자격 증명을 탈취하여 Vercel 내부 시스템 접근 권한을 공격자에게 제공했다.

공격자는 Context.ai라는 AI 도구의 내부 데이터베이스에서 다른 직원의 OAuth 토큰을 확보하여 Vercel 내부망으로 피벗했다.

탈취된 데이터에는 Vercel 사용자 프로젝트의 민감하지 않은 환경 변수가 포함되어 있었으며, 공격자는 이를 빌미로 200만 달러를 요구했다.

Vercel은 보안 사고 이후 모든 새로운 환경 변수를 기본적으로 민감하게 설정하도록 정책을 변경했다.

Timeline

보안 침해 사고와 공격자의 요구

  • Vercel 내부 시스템에 대한 무단 액세스가 확인되었다.
  • 공격자는 탈취한 내부 기업 데이터와 환경 변수를 근거로 200만 달러를 요구했다.
  • 해커들은 수백만 명을 감염시킬 수 있는 악성 NPM 패키지 배포 가능성을 주장했다.

Vercel의 내부 시스템이 해킹되어 민감하지 않은 것으로 분류된 환경 변수와 기업 데이터가 노출되었다. 공격자들은 Shiny Hunters라는 명의를 사용해 탈취한 데이터의 대가로 200만 달러를 요구했다. 해당 데이터에는 소스 코드와 다양한 토큰 정보가 포함되어 있다.

공격의 발단: 로블록스 핵과 LumaStealer

  • Context.ai 직원이 게임 내 지름길을 위해 설치한 로블록스 자동 파밍 스크립트가 유입 경로였다.
  • 해당 스크립트에 포함된 LumaStealer는 2022년에 발견된 정보 탈취기이다.
  • LumaStealer는 브라우저에 저장된 세션 쿠키, 구글 워크스페이스 자격 증명, 수파베이스 및 데이터독 키를 모두 긁어갔다.
  • 탈취된 토큰을 이용해 공격자는 Vercel 직원의 계정으로 인증 과정을 거치지 않고 피벗했다.

업무 편의를 위해 AI 도구를 사용하던 직원이 개인적으로 로블록스 게임 핵을 회사 노트북에 설치했다. 이 과정에서 악성 소프트웨어가 실시간 세션 쿠키와 각종 서비스 로그인 정보를 탈취했다. 공격자는 이를 통해 Context.ai 내부 AWS 환경에 접속했고, 그곳에서 발견한 Vercel 직원의 OAuth 토큰을 이용해 Vercel의 내부 시스템까지 침투했다.

피해 범위와 대응 방안

  • 기본 설정으로 민감하지 않게 처리된 환경 변수들이 평문으로 복호화되어 노출되었다.
  • Next.js와 같은 핵심 오픈소스 프로젝트는 안전한 것으로 확인되었다.
  • 사용자는 Vercel 프로젝트의 환경 변수를 모두 교체하고 OAuth 앱 권한을 감사해야 한다.

수동으로 민감 설정을 하지 않은 환경 변수들이 평문으로 접근 가능한 상태였다. Vercel은 이후 모든 환경 변수를 기본적으로 민감하게 처리하도록 시스템을 수정했다. 오픈소스 프로젝트는 이번 사고와 무관함이 확인되었으나, 사용자들은 잠재적 피해를 가정하고 자격 증명을 전면 교체할 것을 권고받는다.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video