/ 가이드 / 앱 API키 노출

앱에 API키가 노출됐을 때 위험과 조치

API키가 새면 요금 폭탄과 데이터 유출로 번질 수 있습니다. 어디서 새는지와 지금 해야 할 조치를 정리했습니다.

앱몬스터 · 작성 2026-09-21

핵심 답변

노출된 키는 즉시 폐기·재발급이 원칙입니다. 앱 파일은 뜯어볼 수 있으므로(디컴파일) 앱 안에 박아 둔 키는 이미 공개된 것으로 봐야 합니다. 키에 사용 제한을 걸고, 민감한 호출은 서버(백엔드)를 거치게 바꾸세요. 방치하면 요금 폭탄·데이터 유출로 이어집니다.

API키가 노출되면 생기는 일

키는 곧 '남의 계정으로 서비스를 쓰는 열쇠'입니다. 노출되면 세 가지가 벌어집니다.

  • 요금 폭탄 — 남이 내 키로 유료 API를 호출해 청구가 폭증
  • 데이터 유출·변조 — 권한이 넓은 키면 DB를 읽거나 지울 수 있음
  • 서비스 악용 — 문자·메일 발송 키가 새면 스팸 발송에 이용

어디서 새는가

경로설명
앱 디컴파일배포된 앱 파일을 뜯으면 안에 박힌 문자열(키)이 그대로 보임
깃(GitHub) 커밋설정 파일·키를 실수로 올려 공개 저장소에 남음
프론트 하드코딩웹·앱 화면 코드에 키를 직접 적어 브라우저에서 노출

특히 "앱 안에 넣었으니 안전하다"는 오해가 큽니다. 앱은 사용자 기기에 설치되는 순간 분석 대상이 됩니다.

지금 당장 해야 할 5가지

  1. 노출된 키 폐기 — 해당 키를 즉시 비활성화
  2. 새 키 재발급 — 새 키로 교체하고 앱·서버에 반영
  3. 사용 제한 걸기 — 허용 앱·도메인·IP, 호출 가능한 API 범위 제한
  4. 사용량·청구 확인 — 비정상 급증이 있었는지 점검
  5. 깃 기록 정리 — 공개 저장소에 올렸다면 이력에서 제거(단순 삭제로는 부족)

키 종류별 대처

  • Firebase — 클라이언트 키는 식별용이라 노출 자체보다 보안 규칙이 핵심. 규칙이 열려 있으면 위험
  • 구글맵 — 앱 패키지·도메인 제한, 사용 API 제한을 반드시 설정
  • 결제·문자·메일 — 절대 앱에 넣지 말고 서버에서만 사용
  • 서버 관리자 키 — 앱·프론트에 두면 안 됨. 유출 시 최고 위험

다시 안 새게 하는 법

원칙은 하나입니다. 민감한 키는 앱이 아니라 서버에 둔다. 앱은 우리 서버에 요청하고, 실제 외부 API 호출은 서버가 대신하는 백엔드 프록시 구조로 바꾸면 키가 앱에 실리지 않습니다. 키는 코드가 아니라 환경변수·비밀 관리 도구로 관리하고, 깃에는 올리지 않습니다.

이미 악용됐는지 확인하기

콘솔의 사용량·청구 그래프에서 평소와 다른 급증, 낯선 지역에서의 호출, 예상치 못한 API 사용을 확인합니다. 이상이 보이면 키 폐기와 함께 결제 상한·예산 알림을 걸어 추가 피해를 막으세요.

자주 묻는 질문

앱에 키를 아예 안 넣을 수 있나요?

민감한 키는 넣지 않는 게 맞습니다. 앱은 우리 서버에 요청하고 서버가 외부 API를 대신 호출하게 하면(백엔드 프록시) 키가 앱에 실리지 않습니다.

Firebase API키는 노출돼도 괜찮다던데요?

Firebase 클라이언트 키는 프로젝트 식별용이라 그 자체로는 치명적이지 않습니다. 다만 보안 규칙이 열려 있으면 데이터가 그대로 노출되므로, 규칙 점검이 진짜 핵심입니다.

요금이 청구돼 버렸으면 어떻게 하나요?

우선 키를 폐기하고 결제 상한·예산 알림을 겁니다. 비정상 사용이 명확하면 제공사에 상황을 알리고 조정을 문의할 수 있습니다. 재발 방지 조치를 함께 남겨 두세요.

깃에 올린 키, 파일만 지우면 되나요?

아니요. 커밋 이력에 남아 있어 단순 삭제로는 부족합니다. 이력에서 제거하는 조치를 하고, 무엇보다 그 키는 이미 노출된 것으로 보고 재발급하는 게 안전합니다.

키 노출·보안, 무료로 점검해 드립니다

앱·서버 구성을 알려주시면 키가 새는 지점과 보안 규칙 위험을 먼저 진단해 드립니다.

무료 점검 문의하기   무료 점검 문의 → appmonster.co.kr

문의: appmonster.kr@gmail.com

함께 보기: Firebase 보안 규칙 점검 · 개인정보 안전하게 저장 · 보안 규칙 실수 TOP 5