AI 코딩 보안 2026.04.13 · 조회 2808

.env 파일 깃허브에 올렸을 때 즉시 대응법 (바이브코딩 필수)

AI가 .gitignore를 빠뜨려서 .env가 깃허브에 올라갔다. API 키, DB 비밀번호가 공개된 상태. 지금 당장 해야 할 5단계.

S
보안 전문 기업 SENTRIX 레드팀
해킹대회 수상 · 보안 실무 10년 · 실전 진단 경험을 바탕으로 작성합니다.
웹사이트를 운영하고 있다면
보안 헤더·인증서·공개 노출부터 무료로 점검하세요. 결과 링크는 이메일로 받습니다. 로그인 이후 권한·업무 로직은 별도 검증이 필요합니다.

다음 화면에서 이메일과 점검 권한을 확인합니다. 회원가입·카드 없이 무료 요약을 받고, 상세 리포트는 선택 구매합니다.

.env가 깃허브에 올라가면 무슨 일이 벌어지나

깃허브는 공개 저장소 전체를 실시간으로 스캔하는 봇이 돌고 있다. AWS 키, OpenAI 키, Supabase 서비스 키 같은 패턴이 감지되면 평균 30초 이내에 탈취가 시작된다.

실제 사례: 2025년 한 바이브코더가 Cursor로 프로젝트를 만들고 git push했다. .gitignore에 .env가 없었다. 3시간 후 AWS 요금 알림, GPU 인스턴스 12대가 암호화폐 채굴에 동원되고 있었다. 청구 금액 $4,800.

왜 바이브코딩에서 특히 자주 발생하나

AI 코딩 도구는 .env 파일을 잘 만들어준다. 하지만 .gitignore 업데이트를 깜빡하는 경우가 많다. 특히 이런 상황:

  • 프로젝트 중간에 새 API 키를 추가할 때, AI가 .env에 넣으라고 안내하지만 .gitignore 확인은 빠짐
  • .env.local, .env.production 같은 변형 파일, .gitignore에 .env만 등록되어 있으면 이 파일들은 그대로 올라감
  • AI가 생성한 docker-compose.yml에 환경변수가 하드코딩된 경우

즉시 대응 5단계

1단계: 노출된 키 전부 폐기 (0~5분)

가장 먼저 할 일은 깃허브에서 파일을 삭제하는 게 아니라, 노출된 키를 폐기하는 것이다.

  • AWS: IAM 콘솔 → 해당 액세스 키 비활성화 → 새 키 발급
  • OpenAI: API Keys 페이지 → 해당 키 삭제 → 새 키 생성
  • Supabase: 프로젝트 설정 → API → service_role 키 재생성
  • DB 비밀번호: 즉시 변경

키를 먼저 죽여야 한다. 깃허브에서 파일을 삭제해도 커밋 히스토리에 그대로 남아있기 때문이다.

2단계: .env 파일 히스토리에서 제거 (5~15분)

# git filter-branch로 .env 히스토리 완전 삭제
git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch .env" \
  --prune-empty --tag-name-filter cat -- --all

# 강제 푸시
git push origin --force --all

또는 BFG Repo-Cleaner를 사용하면 더 빠르다:

java -jar bfg.jar --delete-files .env
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force

3단계: .gitignore 완성 (5분)

바이브코딩 프로젝트에서 반드시 .gitignore에 들어가야 할 항목:

# 환경변수 — 모든 변형 포함
.env
.env.*
.env.local
.env.production
.env.development

# IDE/에디터
.cursor/
.vscode/
.idea/

# 의존성
node_modules/
__pycache__/
venv/

# 빌드
dist/
build/
.next/

4단계: 피해 범위 확인 (15~30분)

  • AWS: CloudTrail에서 해당 키로 실행된 API 호출 확인
  • Supabase: 대시보드 → Logs에서 비정상 쿼리 확인
  • DB: 최근 접속 로그, 데이터 변경 이력 확인
  • OpenAI: 사용량 대시보드에서 비정상 호출 확인

5단계: 재발 방지 (30분)

git-secrets를 설치하면 커밋 시점에 시크릿 패턴을 차단한다:

# 설치
brew install git-secrets  # Mac
# Windows: https://github.com/awslabs/git-secrets 에서 다운로드

# 프로젝트에 적용
git secrets --install
git secrets --register-aws

# 커밋할 때 자동으로 AWS 키 패턴 차단

내 코드에 시크릿이 노출됐는지 확인하는 법

CodeScan의 시크릿 스캐너는 배포된 웹사이트의 JavaScript에서 25개 패턴(AWS, OpenAI, Supabase, Stripe, Firebase 등)의 API 키 노출을 자동 탐지한다.

깃허브뿐 아니라 프론트엔드 번들에 실수로 포함된 키까지 잡아낸다.

내 사이트 시크릿 노출 점검하기 (무료)

내 사이트도 점검해보세요

URL 입력, 결과 링크는 메일로 받는 무료 점검. 회원가입·카드 불필요.

AI 코딩 보안 체크리스트 받기

AI 코딩 보안 체크리스트(PDF)를 무료로 받아보세요.

코드 자체가 걱정이라면 : 소스코드 보안 분석(SAST)이 ZIP 업로드만으로 취약점 위치와 수정 코드를 찾아드립니다.
이런 글을 계속 받아보려면 뉴스레터 구독 · RSS 피드