추론 도용(inference theft)은 공격자가 유료 AI API 호출을 가로채 재판매하는 방식의 공격입니다. 공격이 어떤 원리로 이루어지는지, 요청 제한이나 인증 장벽이 왜 충분한 방어책이 되지 못하는지, 그리고 Vercel BotID가 모든 요청 단계에서 이를 어떻게 차단하는지 알아봅니다.
HTTP 요청 자체는 저렴합니다. Vercel의 경우 백만 건당 약 2달러, 즉 한 번 호출에 1센트도 채 되지 않습니다. 하지만 최신 프런티어 모델의 에이전트에 프롬프트 하나를 보내면 비용이 2달러에 달할 수 있습니다. AI 추론이 일반 요청보다 백만 배나 비싼 셈이고, 바로 그렇기에 추론 도용은 공격자 입장에서 마진이 가장 높은 사업 중 하나입니다. 실제로 저희 API에서도 이런 유형의 공격을 직접 경험했습니다.
AI 엔드포인트가 인터넷에 노출되어 있다면 악용 위험이 상당히 높으며, 청구 금액이 수만 달러 이상으로 쉽게 불어날 수 있습니다.
이러한 엔드포인트를 보호하려면 세션이나 회원가입 단계가 아닌, 모든 AI 요청마다 검증이 이루어져야 합니다. 요청 제한이나 인증 장벽만으로는 충분하지 않습니다. 세션 단위로 한 번만 실행되는 검사는 수천 건의 도용된 호출에 걸쳐 우회 비용이 분산되어 버리기 때문입니다.
Vercel에서는 모든 AI 요청을 BotID 딥 분석으로 차단하고 있으며, 여러분도 몇 줄의 코드만으로 자신의 엔드포인트에 동일하게 적용할 수 있습니다.
추론 도용이란 타인이 비용을 지불하는 AI 추론을 무단으로 사용하는 행위로, 직접 소비하거나 제3자에게 재판매하는 방식으로 이루어집니다. 서비스 운영자는 AI 호출마다 비용을 지불하지만, 공격자는 추론 비용 없이 토큰을 할인된 가격에 되팝니다. 단순한 요청 제한 남용을 넘어, 탈취한 자원을 실제 시장에서 재판매하는 수준의 공격입니다.
LLM 프롬프트에 대한 실질적인 제어권을 호출자에게 부여하는 인터넷 연결 엔드포인트라면 모두 공격 대상이 됩니다. 엔드포인트가 범용적일수록 도용된 호출 한 건당 이익이 커집니다.
AI SDK Playground와 같은 AI 플레이그라운드는 가장 위험한 형태입니다. 호출자가 프롬프트, 모델, 파라미터까지 최대한의 제어권을 갖기 때문입니다. 도용된 호출은 어떤 표준 클라이언트에도 그대로 연결됩니다.
고객 지원 봇이나 문서 어시스턴트는 시스템 프롬프트가 서버 측에서 고정되어 있어 상대적으로 노출도가 낮습니다. 하지만 공격자들은 이미 적은 비용으로 모델을 시스템 프롬프트 밖으로 유도하는 방법을 익혔고, 이를 통해 재판매가 충분히 수익성 있게 이루어지고 있습니다.
재판매 가치는 도용된 호출을 공급자 호환 클라이언트에 얼마나 쉽게 연결할 수 있느냐에 따라 결정됩니다.
IP 기반 요청 제한과 인증 장벽은 호출당 경제적 이득이 훨씬 낮은 공격을 막기 위해 설계된 것으로, IP와 계정을 우회하는 데 드는 비용이 이득을 초과했던 환경을 전제로 합니다.
추론 도용의 수익성이 워낙 높기 때문에, 공격자들은 수천 개의 주거용 프록시 IP를 확보하고 방어를 무력화하는 데 필요한 규모만큼 일회용 계정을 만들어냅니다. 요청 제한은 대규모 IP 풀에 분산되어 효력을 잃고, 실제 계정은 인증을 그대로 통과합니다.
정교한 공격자들은 OpenAI 또는 Anthropic 호환 어댑터로 커스텀 AI 엔드포인트를 감싸고, 주거용 프록시를 통해 요청을 분산시킵니다.
어댑터는 공격의 핵심 요소입니다. 한 번의 개발 비용으로 피해자의 독자적인 API를 OpenAI 또는 Anthropic 호환 형식으로 노출시켜, 도용된 추론을 어떤 표준 코딩 에이전트나 SDK에도 바로 연결할 수 있게 만듭니다. 추론 비용이 없는 상태에서 정가의 5~10%에만 재판매해도 충분한 마진을 남길 수 있습니다.
최근 사례로는 Chipotlai Max가 있습니다. 이 포크된 코딩 에이전트는 Chipotle의 고객 지원 챗봇을 OpenAI 호환 엔드포인트로 바꾸는 프록시를 내장하고 있습니다. 이 프로젝트는 동일한 추론 도용 방식을 Home Depot, Lowe's, Target, Starbucks에도 적용하는 데 공개적으로 협력자를 구하고 있습니다.
어댑터는 공격자의 하위 사용자들에게 세션 경계 역할도 합니다. 이들은 여러분의 엔드포인트가 아닌 어댑터에 인증합니다. 호출이 여러분의 API에 도달할 때는 이미 방어하려던 경계를 통과한 상태입니다. 검증은 어댑터가 프록시하는 호출 자체에서 실행되어야 하며, 그 뒤에 있는 세션 단계에서 실행해서는 의미가 없습니다.
2026년 4월 12일, Vercel 문서 AI 채팅 엔드포인트의 트래픽이 Anthropic의 Claude Haiku 4.5 모델 기준으로 평소의 약 10배까지 급증했습니다. 최고조에 달했을 때 분당 1,300건의 요청이 유입되었으며, 이를 추론 비용으로 환산하면 하루 1만 달러가 넘는 속도였습니다.
공격은 실제 클라이언트 IP를 숨기는 주거용 프록시를 통해 유입되었습니다. 이틀간 수십만 건의 봇 요청이 쏟아졌지만, 표준 IP별 요청 제한은 제대로 작동할 수 없었습니다.
추론 도용으로부터 AI 엔드포인트를 보호하려면 모든 요청을 검증해야 합니다. Vercel에서는 딥 분석 기능을 갖춘 BotID를 사용하여, AI 요청이 처리되기 전 라우트 핸들러 내부에서 호출합니다.
검증이 요청마다가 아닌 세션 시작 시에만 실행되었다면, 공격자는 우회 비용을 한 번만 치르고 수십만 건의 도용된 호출을 가져갔을 것입니다. 세션 단위로 실행되는 검사는 공격자의 우회 비용을 이후의 모든 추론 호출에 분산시킵니다. 요청별 검증은 그 비율을 1:1로 낮추고, 아무리 추론 가격이 높더라도 모든 호출마다 검사를 뚫는 것은 비용 대비 이득이 없게 만듭니다.
바로 여기서 비용 비대칭이 방어자에게 유리하게 작용합니다. 추론은 공격자가 훔치는 자원 중 호출당 비용이 가장 비싸지만, 검증은 호출당 보호 비용 중 가장 저렴한 축에 속합니다.
전통적인 이미지 CAPTCHA는 이제 현대적인 공격자에게 통하지 않습니다. 추론을 훔칠 만한 가치가 있게 만든 바로 그 AI 모델들이 CAPTCHA를 손쉽게 통과하기 때문입니다.
Vercel에서는 AI 엔드포인트에 Vercel BotID를 배포하여 모든 요청을 차단합니다. BotID는 Kasada가 제공하는 딥 분석 기능을 갖춘 보이지 않는 CAPTCHA로, 클라이언트 측 머신러닝을 활용해 사용자에게 별도의 도전 과제를 표시하지 않고도 사람과 봇을 구별합니다. 덕분에 세션 시작 시뿐만 아니라 모든 요청에 적용할 수 있습니다.
BotID 딥 분석은 트래픽 급증 초반 몇 분 만에 1만 건 이상의 봇 요청을 감지하고 차단했습니다. 24시간 이내에 엔드포인트의 요청량은 정상 수준으로 안정되었습니다.
서버 측에서는 checkBotId()이 라우트 핸들러 내부에서 실행되어 현재 처리 중인 요청에 대한 분류 결과를 반환합니다.
해당 라우트는 클라이언트 측에서도 선언되어야 합니다. 그렇지 않으면 BotID가 요청에 챌린지 헤더를 첨부하지 않아 checkBotId()가 실패합니다.
next.config.ts 래퍼 및 전체 설정 방법은 BotID 문서를 참고하세요.
추론은 앞으로도 일반 요청보다 몇 차원이나 비쌀 것이며, 재판매 수익성도 유지될 것입니다. 공격자들 역시 계속해서 수법을 발전시킬 것입니다.
AI 엔드포인트를 보호하려면:
어떤 AI 엔드포인트가 외부에 노출되어 있는지 점검하세요
공격 가능성에 따라 우선순위를 정하세요. 호출자의 프롬프트 제어권이 클수록 더 쉬운 공격 대상입니다
모든 엔드포인트에서 모든 요청을 차단하세요