2026년 4월, Vercel이 공식 침해 사실을 발표했다. Context.ai 침해 → Google Workspace 계정 탈취 → Vercel 환경변수 중 sensitive 플래그가 없던 항목들이 평문으로 유출됐다. 이 데이터는 ShinyHunters를 통해 $2M에 거래됐다.
어떻게 유출됐나
Vercel 자체가 해킹된 게 아니다. 연결된 서드파티 서비스가 뚫렸고, 거기서 토큰을 가져와 Vercel에 접근했다. sensitive 플래그가 붙은 환경변수는 마스킹됐지만, 플래그가 없는 변수들은 평문으로 노출됐다. 플래그 하나 빠진 게 전부였다.
AI 코딩 도구를 쓰는 팀이라면 여기서 한 가지 더 생각해야 한다. AI 도구들은 워크스페이스 전체에 접근하거나 리포지터리를 직접 읽는 경우가 많다. .env 파일이 컨텍스트로 올라가면 그 내용은 외부 서버를 거친다. 대부분 암호화되지만, 이 파이프라인 어딘가가 뚫리면 얘기가 달라진다.
AI 코딩 팀 환경변수 보안 체크리스트 7
1. Vercel/Netlify sensitive 플래그 전수 점검
Vercel 대시보드 → 프로젝트 → Settings → Environment Variables로 이동한다. API 키, 시크릿, 토큰, 비밀번호 등 민감 정보가 들어간 모든 변수에 Sensitive 체크박스가 활성화돼 있는지 확인한다. Netlify는 동일 경로에서 "Secret" 옵션이다. 이게 빠지면 CI 로그에 평문으로 찍힐 수 있다.
2. .env 파일 git 히스토리 커밋 여부 확인
현재 .gitignore가 잘 돼 있어도 과거에 한 번이라도 커밋됐다면 히스토리에 남는다.
git log --all --oneline -- .env*
git log --all --oneline -- "*.env"
결과가 나오면 BFG Repo-Cleaner 또는 git filter-repo로 히스토리에서 완전 제거해야 한다. 파일만 삭제하는 걸로는 부족하다.
3. Google Workspace / GitHub 조직 2FA·SSO 강제 여부
이번 Vercel 사건의 진입점은 Google Workspace 계정 탈취였다. Workspace Admin 콘솔 → Security → Authentication에서 2-Step Verification을 "강제(mandatory)"로 설정했는지 확인한다. GitHub Organizations는 Settings → Authentication security → Require two-factor authentication. 이게 없으면 피싱 한 번에 조직 전체가 열린다.
4. AI 도구의 workspace·repo 접근 권한 감사
AI 코딩 도구를 GitHub에 연동할 때 조직 전체 리포에 접근 권한을 주는 경우가 많다. GitHub → Settings → Applications → Authorized OAuth Apps에서 각 AI 도구가 어떤 권한을 갖고 있는지 확인한다. 필요한 리포만 선택 접근으로 제한하고, 더 이상 쓰지 않는 앱은 즉시 revoke한다. MCP 서버를 직접 운영 중이라면 해당 서버의 파일 접근 범위도 검토가 필요하다.
5. 시크릿 로테이션 주기 점검
운영 중인 API 토큰, DB 비밀번호, 서드파티 서비스 키의 마지막 변경일을 확인한다. 기준은 단순하다: 분기 1회. 서드파티 서비스 침해 알림이 오거나 팀원이 퇴사할 때는 즉시 교체한다. AWS Secrets Manager, HashiCorp Vault 같은 시크릿 매니저를 쓴다면 rotation schedule이 활성화돼 있는지까지 확인한다.
6. API 토큰 최소 권한 원칙
토큰 하나가 유출됐을 때 피해 범위를 최소화하는 게 핵심이다. 배포 자동화에 쓰는 GitHub 토큰이 조직 전체 write 권한을 갖고 있을 이유는 없다. AWS IAM이라면 해당 Lambda 함수나 S3 버킷만 접근 가능한 역할을 분리한다. read-only로 충분한 곳에 write 권한을 주지 않는다. 토큰 생성 시 scope/permission을 명시적으로 최소화하는 습관이 중요하다.
7. 유출 감지 파이프라인 구성
사고는 예방보다 탐지가 현실적인 경우가 많다. 세 가지를 동시에 쓴다.
- GitHub Secret Scanning: 저장소 Settings → Code security → Secret scanning 활성화. 공개 리포는 자동 적용, 비공개 리포는 Advanced Security 구독 필요.
- GitGuardian: 커밋 단위로 시크릿 패턴을 검사하고 Slack/이메일로 알림. 무료 플랜으로도 개인/소규모 팀에 충분하다.
- git-secrets: 로컬 pre-commit 훅으로 커밋 전에 차단.
git secrets --install로 설치,git secrets --register-aws로 AWS 패턴 등록.
자가점검 요약
| 항목 | 확인 |
|---|---|
| Vercel/Netlify sensitive 플래그 전수 점검 | ☐ |
| .env git 히스토리 커밋 없음 확인 | ☐ |
| Google Workspace / GitHub 2FA 강제 적용 | ☐ |
| AI 도구 repo 접근 권한 감사 및 최소화 | ☐ |
| 시크릿 로테이션 분기 1회 이상 | ☐ |
| API 토큰 최소 권한(read-only/scope 제한) | ☐ |
| Secret Scanning + GitGuardian + git-secrets 구성 | ☐ |
7개 중 5개 미만이면 지금 당장 환경변수 점검이 필요한 상태다. Vercel 사건의 피해 규모는 $2M이었지만, 중소 서비스 기준으로 API 키 하나 탈취로 AWS 요금 폭탄이나 사용자 데이터 유출이 발생하는 경우는 훨씬 흔하다. 그리고 보통 발견하기까지 며칠이 걸린다.
서버 측 보안 — 헤더 설정, SSL 등급, 노출된 경로 — 도 함께 점검하고 싶다면 아래에서 바로 확인할 수 있다.