API키가 노출되면 생기는 일
키는 곧 ‘남의 계정으로 서비스를 쓰는 열쇠’입니다. 노출되면 보통 아래 경로로 번집니다.
어디서 새는가
| 경로 | 설명 |
|---|---|
| 앱 디컴파일 | 배포된 앱 파일을 뜯으면 안에 박힌 문자열(키)이 그대로 보임 |
| 깃(GitHub) 커밋 | 설정 파일·키를 실수로 올려 공개 저장소에 남음 |
| 프론트 하드코딩 | 웹·앱 화면 코드에 키를 직접 적어 브라우저에서 노출 |
특히 “앱 안에 넣었으니 안전하다”는 오해가 큽니다. 앱은 사용자 기기에 설치되는 순간 분석 대상이 됩니다.
지금 당장 해야 할 5가지
키 종류별 위험도
모든 키가 같지 않습니다. 노출됐을 때 피해 크기가 다릅니다.
다시 안 새게 하는 법 — 백엔드 프록시
앱에 키 박기 (위험)
- 앱 안에 외부 API 키를 포함
- 디컴파일로 키가 그대로 노출
- 키 교체하려면 앱 재배포 필요
백엔드 프록시 (권장)
- 앱은 우리 서버에만 요청
- 실제 외부 API 호출은 서버가 대신
- 키는 서버 환경변수·시크릿에만
- 키 교체 시 앱 재배포 불필요
이미 악용됐는지 확인하기
콘솔의 사용량·청구 그래프에서 평소와 다른 급증, 낯선 지역에서의 호출, 예상치 못한 API 사용을 확인합니다. 이상이 보이면 키 폐기와 함께 결제 상한·예산 알림을 걸어 추가 피해를 막으세요. 방치된 앱이라면 오래된 앱 보안 점검을 함께 보세요.
자주 묻는 질문
앱에 키를 아예 안 넣을 수 있나요?
민감한 키는 넣지 않는 게 맞습니다. 앱은 우리 서버에 요청하고 서버가 외부 API를 대신 호출하게 하면(백엔드 프록시) 키가 앱에 실리지 않습니다.
Firebase API키는 노출돼도 괜찮다던데요?
Firebase 클라이언트 키는 프로젝트 식별용이라 그 자체로는 치명적이지 않습니다. 다만 보안 규칙이 열려 있으면 데이터가 그대로 노출되므로, 규칙 점검이 진짜 핵심입니다.
요금이 청구돼 버렸으면 어떻게 하나요?
우선 키를 폐기하고 결제 상한·예산 알림을 겁니다. 비정상 사용이 명확하면 제공사에 상황을 알리고 조정을 문의할 수 있습니다. 재발 방지 조치를 함께 남겨 두세요.
깃에 올린 키, 파일만 지우면 되나요?
아니요. 커밋 이력에 남아 있어 단순 삭제로는 부족합니다. 이력에서 제거하는 조치를 하고, 무엇보다 그 키는 이미 노출된 것으로 보고 재발급하는 게 안전합니다.
무료 점검부터 시작하세요
앱·서버 구성을 알려주시면 키가 새는 지점과 보안 규칙 위험을 먼저 진단해 드립니다.
문의: appmonster.kr@gmail.com
함께 보기: Firebase 보안 규칙 점검 · 개인정보 안전하게 저장 · 보안 규칙 실수 TOP 5