
이것은 Vercel April 2026 compromise 사건을 위해 우리가 만든 사고 대응 플레이북입니다.
최종 업데이트: 2026년 4월 20일 오후 12:07 AEST/브리즈번 - (v2 — Vercel CEO 4월 20일 업데이트 반영)
Vercel은 2026년 4월 19일, 공격자가 내부 시스템에 무단 접근했다고 공개했습니다. 공식 발표는 다음과 같습니다:

4월 20일, Vercel CEO Guillermo Rauch는 초기 침입 경로를 확인하는 상세 업데이트를 발표했습니다: Vercel 직원이 Context.ai라는 AI 플랫폼을 사용했고, 이 플랫폼 자체가 침해되었습니다. 공격자는 그곳에서 직원의 Google Workspace 계정으로 이동하여 Vercel 환경으로 확대되었습니다. 환경 변수는 저장 시 암호화되어 있지만, 공격자는 "민감"으로 표시되지 않은 변수를 열거할 수 있었습니다. Vercel은 공격자를 고도로 정교하고 AI가 크게 가속화된 것으로 특징지었습니다. Google Mandiant가 대응에 참여하고 있습니다. Vercel은 Next.js, Turbopack 및 오픈 소스 프로젝트는 안전하다고 밝혔습니다.
다음은 해당 보안 권고에서 중요한 침해 지표 섹션입니다:

세부 사항이 거의 없습니다. 그 하나뿐인 Google IOC를 어디서 확인해야 하는지조차 알려주지 않습니다. Vercel 고객으로서 저는 이 수준의 세부 정보에 상당히 실망했습니다. 무엇을 찾아야 하는지 이해할 수 있도록 도와주세요! 침해를 당했는지 여부를 알기 위해 어디로 가야 하는지 알려주세요!
Vercel에서 워크로드를 실행 중이라면, 반증이 있을 때까지 다음을 가정하십시오:
vercel env CLI를 통해 Vercel에 푸시된 자격 증명 중 교체되지 않은 것은 지속적인 위험입니다.이 구분은 경영진 커뮤니케이션과 과잉 대응(또는 과소 대응)을 피하기 위해 중요합니다.
확인되지 않은 보고는 자체 분류를 위해 그럴듯하고 실행 가능한 것으로 취급하되, Vercel이 확인하거나 독립적인 증거를 확보할 때까지 고객 또는 규제 기관 커뮤니케이션에서 사실로 인용하지 마십시오. "열거 가능한 환경 변수"(Rauch 확인)와 "BreachForums에서 판매 중인 npm + GitHub 토큰"(공격자 주장) 사이의 격차가 공급망 위험에 가장 중요한 격차입니다. 교체 목적으로는 최악을 가정하고, 커뮤니케이션을 위해서는 확인된 버전을 고수하십시오.
최고 시급 — Vercel로부터 직접 연락을 받았거나, 다음 중 하나라도 해당되는 경우:
표준 시급 — 마케팅 사이트라도 활성 Vercel 프로젝트가 있는 모든 팀. 마케팅 사이트에는 종종 더 민감한 시스템으로 피벗할 수 있는 CMS API 키, 분석 토큰 및 양식 처리 웹훅이 포함됩니다.
그래도 수행 — 사고 이전에 프로젝트가 삭제된 경우에도 마찬가지입니다. 중요한 것은 비밀이 읽을 수 있는 형태로 Vercel에 존재했는지 여부이지, 프로젝트가 여전히 있는지 여부가 아닙니다.
4월 20일 업데이트는 Context.ai를 침해된 업스트림 공급업체로 지목합니다. 귀사 조직의 누군가가 Vercel 사고와 별개로 Context.ai를 독립적으로 사용하는 경우 — 회의 인텔리전스, 지식 관리, CRM 강화 또는 기타 워크플로우 — Vercel 사고와는 별개의 직접적인 노출 기간이 있을 수 있습니다.
다음 확인을 병렬로 수행하십시오:
context.ai 또는 관련 앱 ID를 검색합니다.환경에서 Context.ai 사용을 발견한 경우 OAuth 권한을 취소하고, Context.ai 워크플로우를 통과한 모든 자격 증명을 교체하며, Vercel이 직원 계정에서 본 것과 동일한 침해 지표에 대해 영향을 받은 사용자의 Google Workspace 계정을 모니터링합니다. 자체 사고 세부 정보를 위해 Context.ai에 직접 연락하십시오. Vercel은 다른 영향을 받은 조직을 돕기 위해 Context와 조정 중이라고 공개적으로 밝혔습니다.
두 가지 목표: 새로운 피해 방지, 증거 보존.
배포 중단. 프로덕션 브랜치에서 자동 배포를 일시 중지합니다. 공격자가 수정한 빌드가 배포되는 것을 방지하고 감사 로그가 변동하는 것을 중지하려는 것입니다.
Vercel의 GitHub App 비활성화. Vercel GitHub App이 설치되어 있는 경우입니다. GitHub에 새 코드를 푸시할 때 Vercel에 자동 배포를 하는 경우에 해당합니다. 설치된 GitHub 앱은 https://github.com/organizations/<GitHub-Organization>/settings/installations에서 찾을 수 있습니다.

GitHub App이 가진 액세스 권한 식별. 위의 구성 버튼을 클릭하고 Vercel 앱이 액세스 권한이 있는 리포지토리를 감사합니다. 이는 지금 집중해야 할 대상을 알려줍니다. GitHub → 조직 → 설정 → GitHub Apps → Vercel로 이동합니다. 다음을 검토하십시오:

repo.add_member, repo.add_topicorg.invite_member, org.add_memberintegration_installation, integration_installation.repositories_addedprotected_branch.destroy, protected_branch.updategit.ref.force_push 또는 푸시 이벤트의 강제 푸시 플래그oauth_access.create, oauth_authorization.create아직 발표를 하거나 비밀을 교체하지 마십시오. 먼저 스냅샷이 필요합니다.
Vercel 발표의 세부 정보는 상당히 부족합니다:

최선의 추측으로는 Google Workspace 관리 콘솔로 이동하여 이 googleusercontent.com 앱을 찾으라는 의미입니다. 콘솔에서 찾는 방법은 다음과 같습니다:
Workspace 관리 콘솔에서 보안 > 액세스 및 데이터 제어 > API 제어로 이동하여 액세스된 앱 및 보류 중인 앱을 찾습니다.

그런 다음 다른 목록에서 IOC로 보이는 oauth 앱을 찾습니다: 110671459871-30f1spbu0hptbs60cb4vsmv79i7bbvqj.apps.googleusercontent.com

찾으면 즉시 제거하고 사고 대응 파트너에게 문의하십시오. 이는 제 역량을 벗어납니다.
교체는 단일 최고 가치 조치입니다. 우선 순위에 따라 수행하여 중단되더라도 가장 위험한 부분이 처리되도록 하십시오.
교체해야 할 항목은 GitHub 및 Vercel 환경에 노출된 내용에 따라 다릅니다. GitHub PAT 등부터 시작하여 이 가이드를 사용하여 외부로 작업하십시오.
계층 0 — 오늘, 다른 모든 것보다 먼저 교체: