탈취된 AI API 키, 해킹 스캔 비용 결제에 악용… OpenAI·Anthropic·Gemini 키 보호 방법

Bitsight는 도난당한 OpenAI, Anthropic, Google 키로 자율 침투 테스트 스캔을 실행하면서 피해자가 비용을 부담하게 하는 범죄 도구 MONST3R-AI를 발견했습니다. 키가 유출되는 방식, 남용을 식별하는 방법, 그리고 오늘날 각 제공업체가 제공하는 통제 조치.

Medy Evrard

28 October 2026

탈취된 AI API 키, 해킹 스캔 비용 결제에 악용… OpenAI·Anthropic·Gemini 키 보호 방법

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

탈취된 AI API 키가 이제 다른 사람의 해킹 비용을 대신 지불해 주고 있습니다. 2026년 10월, Bitsight의 위협 인텔리전스 팀은 범죄 포럼에서 판매되는 도구인 MONST3R-AI를 설명했습니다. 이 도구는 탈취한 OpenAI, Anthropic, Google 키로 자율 침투 테스트 스캔을 실행합니다. 구매자가 키를 가져오면 에이전트가 스캔을 수행하고, 청구서는 키 소유자에게 날아갑니다. 이 가이드에서는 키가 어떻게 유출되는지, 악용을 어떻게 발견하는지, 그리고 각 제공업체가 현재 제공하는 통제 수단을 다룹니다.

OpenAI, Anthropic 또는 Gemini 키를 보호하려면 키를 하나의 프로젝트나 워크스페이스로 범위를 제한하고, 월별 하드 지출 한도를 설정하고, 호출 가능한 위치를 제한하고, 만료를 설정하거나 키를 교체하고, 클라이언트 코드와 저장소에 키를 두지 않으며, 푸시 보호가 포함된 시크릿 스캐닝을 켜야 합니다. 키가 유출되면 대체 키를 생성해 배포한 다음, 이전 키를 비활성화하고 사용량을 감사하세요.

LLMjacking이란 무엇인가?

LLMjacking은 탈취한 대규모 언어 모델 자격 증명, 보통 API 키를 악용해 키 소유자가 비용을 지불하는 추론을 실행하는 행위입니다. 공격자들은 그 접근 권한을 재판매하거나, 자신들의 워크로드에 소진하거나, 이제는 Bitsight에 따르면 자율 공격 에이전트를 구동하는 데 사용합니다. 피해자는 그 활동을 자신의 계정에 청구되는 사용량으로만 보게 됩니다.

Bitsight가 MONST3R-AI에 대해 발견한 것

아래 사실들은 2026년 10월 17일에 게시된 Help Net Security와 AI Weekly의 Bitsight 연구 보도에서 가져온 것입니다. 이 글을 작성한 시점에 Bitsight가 해당 도구에 대해 직접 작성한 문서는 공개되지 않았습니다.

MONST3R-AI billing flow: a stolen key pays for the scan

유출된 키는 더 이상 예상치 못한 청구서에 그치지 않습니다. 그것은 다른 사람의 공격 캠페인에 자금을 대줄 수 있으며, 모든 요청은 여러분의 정상적인 트래픽처럼 보입니다.

AI API 키가 유출되는 방식

탈취된 키 대부분은 결코 "해킹당한" 적이 없습니다. 실수로 공개된 것입니다. 흔한 경로는 다음과 같습니다.

유출 경로 어떻게 발생하는가 해결책
공개 저장소 코드, .env 또는 노트북에 키를 커밋 푸시 보호가 포함된 시크릿 스캐닝
클라이언트 측 코드 웹 번들 또는 모바일 앱에 키를 포함해 배포 백엔드에서만 모델 호출
CI 로그 빌드 단계에서 환경 변수나 디버그 출력을 그대로 표시 시크릿 마스킹, 해당 부분 주변에서 절대 set -x 사용 금지
컨테이너 이미지 .env가 이미지 레이어에 복사됨 .dockerignore, 런타임에 주입
에이전트 및 MCP 설정 MCP 서버 설정이나 에이전트 설정 파일에 키를 붙여넣은 뒤 동기화하거나 공유 리터럴 키가 아닌 환경 변수 참조
채팅 및 티켓 Slack, 이슈 또는 지원 티켓에 키를 붙여넣음 시크릿 저장소를 벗어난 모든 키는 교체

Google의 Gemini API 키 가이드는 클라이언트 측 규칙을 명확히 밝힙니다. 웹이나 모바일 앱에 컴파일된 키는 사용자가 추출할 수 있으므로, 실제 호출을 수행하는 백엔드 프록시를 운영해야 합니다. API 키 저장에 관한 저희 가이드는 저장 측면을 더 깊이 다룹니다.

에이전트 설정은 각별한 주의가 필요합니다. MCP와 에이전트 설정 파일은 결국 닷파일 저장소, 화면 공유, 버그 리포트에 남게 됩니다.

키가 악용되고 있는지 알아내는 방법

"범죄자가 이것을 사용하고 있습니다"라고 알려주는 경보는 없습니다. 사용량과 청구 데이터에서 다음을 주시하세요.

  1. 배포 없이 급증하는 지출. 평탄하던 일일 비용이 하룻밤 사이 두 배가 되는 것이 가장 명확한 신호입니다.
  2. 사용하지 않는 모델. 여러분의 제품이 결코 호출하지 않는 모델 계열의 사용량.
  3. 업무 외 시간 트래픽. 주간 앱에서 사용되는 키가 여러분의 시간대 기준 새벽 3시에 꾸준히 요청을 보내는 경우.
  4. 여러분이 유발하지 않은 속도 제한 오류. 다른 누군가가 여러분의 분당 할당량을 소비하고 있는 것입니다.
  5. 사용량 페이지에 있는 알 수 없는 키나 프로젝트. Google AI Studio의 Usage 페이지는 이름이 지정된 키와 일치시킬 수 없는 요청을 "(unknown keys)" 아래에 묶습니다.

키를 충분히 세분화해서 하나의 급증이 하나의 키를 가리키도록 하세요.

OpenAI API 키를 보호하는 방법

2026년 10월 28일 기준 OpenAI 개발자 문서와 대조해 확인했습니다.

저희 OpenAI API 키 가이드를 참고하세요.

Anthropic API 키를 보호하는 방법

2026년 10월 28일 기준 Claude Platform 문서와 대조해 확인했습니다.

저희 Anthropic API 키 가이드를 참고하세요.

Google Gemini API 키를 보호하는 방법

2026년 10월 28일 기준 Google의 Gemini API 키 문서와 청구 문서와 대조해 확인했습니다.

Key controls compared: OpenAI, Anthropic, Gemini

모든 제공업체를 위한 잠금 체크리스트

소유한 각 키마다 한 번씩 실행하세요.

  1. 목록화. 모든 키, 이를 사용하는 앱, 저장 위치를 나열합니다.
  2. 분리. 앱 및 환경당 하나의 프로젝트 또는 워크스페이스를 두어 급증이 출처를 밝히도록 합니다.
  3. 상한 설정. 월별 하드 한도와 그보다 이른 알림을 설정합니다.
  4. 제한. 송신 경로가 고정된 곳마다 IP 허용 목록 또는 애플리케이션 제한을 적용합니다.
  5. 만료 또는 교체. 제공업체가 지원하면 짧은 만료를, 지원하지 않으면 교체 일정을 둡니다.
  6. 스캔. GitHub의 시크릿 스캐닝 패턴에는 OpenAI, Anthropic, Google Gemini API 키가 포함되어 있으며, OpenAI 키는 푸시 보호를 지원합니다. 유출된 API 키 확인에 관한 저희 글은 로컬에서 실행할 수 있는 스캐너를 다룹니다.
  7. 단기 자격 증명을 선호. Anthropic과 OpenAI 모두 프로덕션용 워크로드 아이덴티티 페더레이션을 문서화하고 있습니다.

정책 측면은 API 키 관리 모범 사례를 참고하세요.

유출 후 첫 한 시간에 해야 할 일

속도가 근본 원인보다 중요합니다. 순서대로:

First hour after an AI API key leak
  1. 대체 키를 생성합니다. 새 프로젝트나 워크스페이스에서 만드세요.
  2. 배포합니다. 필요한 앱에 배포하세요.
  3. 유출된 키를 비활성화합니다. Google의 유출 체크리스트는 다운타임을 피하기 위해 새 키가 검증된 후에만 이전 키를 비활성화하라고 말합니다. 지출이 빠르게 치솟고 있다면 먼저 비활성화하고 장애를 감수하세요.
  4. 지출 상한을 낮춥니다. 조사하는 동안 영향을 받은 프로젝트의 상한을 낮추세요.
  5. 사용량을 감사합니다. 유출 이후 기간의 모델, 시간, 키별로 살펴보세요.
  6. 유출 경로를 찾아냅니다. 위의 표를 이용해 찾고, git 기록에서 제거하세요.
  7. 제공업체에 연락합니다. 타임라인을 확보한 뒤 부정 사용에 대해 알리세요.

Apidog CLI로 코딩 에이전트가 키 처리를 테스트하게 하세요

OpenAI, Anthropic 또는 Gemini로 향하는 백엔드 프록시는 키 처리가 깨지는 지점입니다. 인증되지 않은 호출을 받아들이거나, 오류 본문에 제공업체 키를 그대로 반사하기 쉽습니다. Apidog CLI로 코딩 에이전트가 이에 대한 테스트를 작성하고 실행하게 하되, 시크릿은 테스트 정의에 남지 않게 하세요.

한 번 설정하세요.

npm install -g apidog-cli@latest
apidog login --with-token <YOUR_TOKEN>
npx -y skills add https://apidog.com   # pick your agent when prompted

그런 다음 에이전트에 프롬프트 하나를 주세요.

In Apidog project <id>, create a test case for POST /v1/ai/chat on our proxy.
Assert: no Authorization header returns 401, a bad token returns 401, a valid
token returns 200, and no response body contains "sk-" or "AIza". Read the
token from the {{PROXY_TOKEN}} environment variable, never hardcode it.
Then run it against the staging environment and summarize failures.

에이전트는 페이로드 스키마를 읽고, 검증하고, 케이스를 생성한 뒤 실행합니다.

apidog cli-schema get test-case-create
apidog test-case category --project <id>
apidog cli-schema validate test-case-create --file case.json
apidog test-case create --project <id> --file case.json
apidog run --test-case <caseId> --project <id> -e <envId> \
  --env-var "PROXY_TOKEN=$PROXY_TOKEN" -r cli,junit

--env-var는 런타임에 토큰을 전달하므로 토큰이 명세나 저장소에 남지 않습니다. 동일한 apidog run 명령을 CI에 넣을 수 있습니다. CI/CD 파이프라인에서의 Apidog CLI와 Claude Code에서의 Apidog CLI를 참고하세요.

FAQ

LLMjacking이란 무엇인가요? 탈취한 LLM 자격 증명, 보통 API 키를 사용해 소유자가 비용을 지불하는 추론을 실행하는 것입니다. 공격자들은 그 접근 권한을 재판매하거나, MONST3R-AI의 경우처럼 공격 에이전트를 구동하는 데 사용합니다.

탈취된 AI API 키가 정말 해킹 도구 비용을 대신 낼 수 있나요? 그렇습니다. Bitsight는 MONST3R-AI의 구매자들이 탈취한 OpenAI, Anthropic 또는 Google 키를 패널에 붙여넣으며, 판매자는 모델을 호스팅하지 않으므로 피해자가 비용을 낸다고 보도했습니다. 판매자가 주장한 결과는 검증되지 않았습니다.

지출 한도가 탈취된 키를 막아주나요? 하드 한도는 상한에서 지출을 멈추지만 즉시는 아닙니다. OpenAI와 Google 모두 한도가 전파되는 동안 소액의 초과가 발생한다고 언급합니다. 지출 알림만으로는 트래픽을 결코 멈추지 못합니다.

OpenAI API 키를 프런트엔드 코드에 넣어도 되나요? 안 됩니다. 브라우저나 모바일 앱에 배포되는 것은 무엇이든 추출될 수 있습니다. 백엔드에서 모델을 호출하세요.

GitHub가 유출된 AI 키를 잡아주나요? GitHub 시크릿 스캐닝은 OpenAI, Anthropic, Google Gemini API 키 패턴을 탐지합니다. 푸시 보호를 켜면 키가 포함된 커밋이 공개되기 전에 차단됩니다.

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요