처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.04.17 36

13시간 만에 7,800만 원 청구서 - 프론트에 박아둔 Firebase 키 하나가 부른 참사

Hacker News 원문 보기
13시간 만에 7,800만 원 청구서 - 프론트에 박아둔 Firebase 키 하나가 부른 참사

잠깐 잠들었는데, 깨어보니 청구서가 7,800만 원

구글 AI 개발자 포럼에 올라온 한 개발자의 비명 같은 글이에요. 평소처럼 Firebase로 간단한 웹 앱을 만들어 운영하고 있던 분인데, 불과 13시간 만에 5만 4천 유로(한화 약 7,800만 원)라는 말도 안 되는 과금이 찍혔거든요. 원인은 누군가가 브라우저 소스에 노출된 Firebase API 키를 주워다가 Gemini API를 무차별적으로 호출했기 때문이었어요. 개발자 본인은 그 사이 잠을 자고 있었고, 아침에 메일을 확인했을 땐 이미 청구서가 산더미처럼 쌓여 있었죠.

이게 남의 일 같지만, 사실 Firebase를 쓰는 개발자라면 누구나 겪을 수 있는 시나리오예요. Firebase 웹 SDK를 초기화할 때 apiKey 필드에 키를 넣잖아요? 공식 문서에도 "이 키는 비밀이 아니다"라고 적혀 있어서 많은 분들이 안심하고 프론트엔드에 그대로 노출시켜요. 문제는 이 키가 원래 Firebase Auth나 Firestore 정도만 식별하는 용도였는데, 같은 GCP 프로젝트 안에 Gemini API 같은 유료 서비스가 활성화돼 있으면 그 키로 그쪽까지 호출이 가능하다는 거죠.

왜 이런 일이 가능한 걸까

근본 원인은 GCP의 API 키 설계 철학에 있어요. 하나의 프로젝트에 붙은 API 키는 기본적으로 그 프로젝트에 켜져 있는 모든 API에 접근할 수 있는 권한을 가져요. 개발자가 명시적으로 "이 키는 Firestore만 허용"이라고 제한(API restrictions)을 걸어두지 않으면, 공격자가 그 키로 Vertex AI, Gemini, Translation 같은 비싼 AI API를 원 없이 호출할 수 있는 거죠. 게다가 Gemini 같은 LLM API는 호출당 과금이 크고, 대용량 컨텍스트를 넣으면 한 번에 수십 센트씩 빠져나가요. 악의적인 스크립트가 초당 수백 번씩 호출하면 13시간 만에 수천만 원이 찍히는 게 이상한 일이 아니에요.

더 무서운 건 GCP의 결제 알림이 실시간이 아니라는 점이에요. Budget Alert를 걸어둬도 사용량 집계에 수 시간 지연이 있어서, 알림이 도착했을 땐 이미 피해가 커진 후예요. 그리고 Budget Alert는 알림만 줄 뿐 자동으로 API를 꺼주지 않아요. 청구서를 막으려면 Cloud Function으로 예산 초과 시 결제 계정 자체를 비활성화하는 스크립트를 별도로 짜둬야 하는데, 이걸 안 해둔 개발자가 대부분이죠.

당장 해야 할 다섯 가지

만약 Firebase나 GCP 프로젝트에서 AI API를 쓰고 있다면, 오늘 퇴근 전에 이 다섯 가지는 꼭 확인해보세요. 첫째, API 키마다 "API restrictions"을 설정해서 정말 필요한 서비스에만 접근하도록 좁혀두세요. 둘째, HTTP referrer 제한을 걸어서 내 도메인에서만 키가 동작하게 하세요(완벽하진 않지만 벽은 돼요). 셋째, Gemini나 Vertex AI처럼 비싼 API는 절대 브라우저 키로 직접 호출하지 말고, 인증받은 사용자만 통과하는 백엔드(Cloud Functions, Cloud Run)를 한 단 끼워 넣으세요. 넷째, Budget에 하드 리밋(자동 차단) 로직을 걸어두세요. 다섯째, GCP 콘솔에서 사용하지 않는 API는 전부 비활성화하세요. 활성화돼 있으면 공격 표면이 되거든요.

클라우드 시대의 새로운 리스크

예전엔 서버 해킹당하면 데이터 유출이 무서웠지만, 요즘 클라우드 시대엔 과금 폭탄이 더 즉각적인 재앙이 되곤 해요. 특히 LLM API처럼 호출당 단가가 높은 서비스가 퍼지면서, 키 하나 노출이 회사 망하는 수준의 피해로 번질 수 있거든요. AWS의 Bedrock, Azure OpenAI도 구조는 비슷해서, IAM 정책을 촘촘하게 안 짜두면 똑같은 사고가 납니다. 구글은 이런 사고에 대해 보통 선의의 실수일 경우 과금을 면제해주는 편이지만, 심사에 시간이 걸리고 100% 보장되는 건 아니에요.

이번 사건이 우리에게 주는 교훈은 명확해요. "비밀이 아닌 키"라는 말을 "마음대로 써도 되는 키"로 오해하지 말자는 것. 프론트에 박히는 순간 전 세계가 그 키를 볼 수 있고, 봇은 24시간 깃허브와 웹을 스캔하고 있어요. 여러분은 AI API 키 관리, 어떻게 하고 계신가요? 혹시 비슷한 사고를 경험하거나 들은 적 있나요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.