AI 앱과 에이전트의 가드레일: 무엇을 잡아내고, 비용은 얼마이며, 무엇이 더 중요한가
작성자 Sheela ·
챗봇이나 에이전트를 고객 앞에 내놓는 순간, 낯선 누구든 무엇이든 입력할 수 있고, 에이전트가 읽는 웹 페이지, 이메일, 문서마다 자체 지시를 담고 있을 수 있습니다. 가드레일은 모델 주변에 두고 이런 트래픽을 걸러내는 검사입니다. 둘 만한 가치가 있고 저렴하게 쓸 수도 있지만, 업무에 필요한 것보다 큰 권한을 받은 에이전트를 구해 줄 가드레일은 없습니다.
이 글은 사용자에게 제공하는 AI 기능과 에이전트를 다룹니다. 개발자 컴퓨터에서 돌아가는 코딩 에이전트가 걱정이라면, 그 경우의 샌드박스, 명령 가드, CI 게이트는 코딩 에이전트 보안 가이드에서 다룹니다. 아래의 모든 수치는 저희 리뷰나 리뷰가 인용한 공급업체 및 연구 자료에서 나온 것이며, 저희가 이 도구들을 직접 실행해 본 것은 아닙니다.
가드레일이 실제로 잡아내는 것
이런 제품들이 내세우는 문제의 대부분은 네 가지입니다. OWASP Top 10 for LLM Applications는 유용한 점검표이며, 가드레일이 가장 직접적으로 다루는 항목은 그중 세 가지, 즉 프롬프트 인젝션(LLM01), 민감 정보 노출(LLM02), 과도한 권한(LLM06)입니다.
- 프롬프트 인젝션. 여러분의 지시를 다른 사람의 지시로 바꾸려는 텍스트입니다. 직접형은 사용자에게서 옵니다. 간접형은 가져온 페이지, 이메일, 도구 결과 속에 숨어 있으며, 모델이 이를 업무의 일부로 읽기 때문에 에이전트에 피해를 주는 쪽은 바로 이것입니다.
- 탈옥. 모델이 안전 규칙을 버리도록 설득하려는 시도로, 여러 차례의 대화에 걸쳐 이뤄지는 경우가 많습니다.
- 안전하지 않은 출력. 유해하거나 정책에 어긋나는 답변, 그리고 가져온 문서가 뒷받침하지 않는 내용을 주장하는 답변입니다.
- 데이터 유출. 개인 정보, 비밀 값, 시스템 프롬프트가 답변에 실려 나가거나, 답변 속 링크가 가서는 안 될 곳을 가리키는 경우입니다.
네 가지를 똑같이 잘 다루는 제품은 없습니다. 인젝션 탐지기는 해로움이 아니라 지시처럼 보이는 텍스트를 표시합니다. Meta의 Llama Prompt Guard 2 모델 카드는 "ignore previous instructions"를 인용한 문서에도 반응한다고 밝힙니다. 폭력성을 점수화하는 모더레이션 모델은 공급업체 PDF에 숨은 공손한 지시를 알아채지 못합니다. 무엇이든 구매하기 전에 각 검사를 어떤 위험에 대응시킬지부터 정하세요.
가드레일의 세 가지 유형
직접 호스팅하는 안전 모델
자사 모델 옆에서 실행하는 오픈 웨이트 모델입니다. 텍스트가 자사 장비 밖으로 나가지 않고 검사당 요금도 없습니다. 대신 GPU, 업데이트, 튜닝은 모두 여러분 몫입니다.
- Llama Prompt Guard 2(4.2)는 저렴한 인젝션 필터입니다. 86M 모델은 Meta의 비공개 탈옥 데이터셋에서 오탐률 1% 조건으로 공격의 97.5%를 잡아냅니다. 공격자가 에이전트의 도구에 지시를 심어 두는 벤치마크인 AgentDojo에서는 완료된 작업 3% 감소를 대가로 공격의 81.2%를 막습니다. 한 번에 512 토큰만 읽으므로 긴 페이지는 나눠야 하며, 다운로드는 Llama 4 Community License로 제한됩니다.
- Qwen3Guard(4.3)는 다국어 모더레이션 모델로, 119개 언어와 방언을 지원하고 크기는 0.6B부터 8B까지이며 라이선스는 Apache 2.0입니다. 텍스트를 안전, 논란, 위험으로 분류하므로 어린이용 앱과 성인용 픽션 사이트가 같은 모델을 쓰면서 "controversial"의 의미만 다르게 정할 수 있습니다. Stream 변형은 답변이 작성되는 동안 토큰 단위로 검사합니다.
- Granite Guardian 4.1(4.0)은 IBM의 8B 판정 모델입니다. 유해성 외에도 답변이 가져온 텍스트에 근거하는지, 에이전트의 함수 호출이 주어진 도구와 맞는지를 확인합니다. 영어만 지원하며, IBM은 모든 메시지가 아니라 모니터링과 표본 검사용으로 이 모델을 권합니다.
- gpt-oss-safeguard(4.0)는 평이한 말로 쓴 정책을 받아 판단과 그 근거를 돌려줍니다. 그래서 신뢰 및 안전 팀이 새 학습 데이터에 라벨을 붙이지 않고도 규칙을 바꿀 수 있습니다. 분류기보다 느리고 무거우며, 20b에는 16 GB GPU가 필요하고, 화면에 보이는 추론이 지어낸 내용일 수 있다고 OpenAI는 경고합니다.
클라우드 가드레일 API
호스팅 서비스가 탐지기를 운영하고 업데이트합니다. 프롬프트와 답변을 하나씩 네트워크로 보내고 판정을 돌려받습니다. 모델을 직접 운영하지 않는 대신 새로운 데이터 처리자와 네트워크 왕복이 하나 더 생깁니다.
- Google Model Armor(4.2)는 인젝션, 유해 콘텐츠, 민감 데이터, 수상한 링크를 100만 토큰당 $0.10에 심사하며, 매달 처음 200만 토큰은 무료입니다. Google Cloud 밖의 모델과도 함께 쓸 수 있습니다. 각 요청을 대화 기억 없이 단독으로 판정하고, Base64는 디코딩하지 않습니다.
- Azure AI Content Safety(4.1)는 텍스트와 이미지의 유해성을 점수화하며, Prompt Shields가 사용자 프롬프트와 문서 모두에서 주입된 명령을 찾습니다. 표준 등급은 최대 1,000자의 텍스트 레코드 1,000건당 $0.375입니다. Microsoft는 입력을 저장하지도 학습에 쓰지도 않는다고 밝힙니다. Prompt Shields는 주로 영어로 학습되었습니다.
- Lakera Guard(4.0)는 현재 Check Point가 판매하며, 도구 호출을 포함한 OpenAI 형식의 대화 전체를 받아 가장 최근의 주고받기를 심사합니다. 무료 등급은 월 10,000건의 요청까지이며, 그 이상은 공개된 가격이 없습니다.
가드레일 프레임워크
프레임워크는 탐지기가 아닙니다. 앱의 각 지점에서 검사를 실행하고 결과를 어떻게 처리할지 정하는 배관이며, 여기에 모델이나 API를 꽂아 씁니다.
- NVIDIA NeMo Guardrails(4.0)는 입력, 출력, 검색, 도구 실행에 각각 별도의 레일을 두며, Llama Guard, NVIDIA의 NemoGuard 모델, Presidio, 상용 탐지기를 연결할 수 있습니다. YAML과 자체 언어인 Colang으로 제대로 된 설정을 해야 하고, 0.24.0 릴리스에는 호환되지 않는 변경이 여섯 건 있었으며, NVIDIA로 가는 익명 원격 측정이 기본으로 켜져 있습니다.
- LlamaFirewall(3.8)은 Meta의 다층 설계입니다. 입력과 도구 출력에는 Prompt Guard 2, 에이전트의 추론을 읽어 탈취 징후를 찾는 AlignmentCheck, 생성된 코드를 검사하는 CodeShield로 구성됩니다. 관련 논문은 여러 층이 효과가 있다는 가장 좋은 공개 근거이지만, 패키지 자체는 2025년 5월 이후 새 릴리스가 없습니다.
- Guardrails AI(3.2)는 경계해야 할 사례입니다. 호스팅 Hub는 2026년 8월 25일에 문을 닫았고, 팀은 Harvey로 옮겼으며, 그 뒤로 병합된 것이 없고, 5월에는 악성 0.10.1이 PyPI에 올라왔습니다. 정규식, 스키마, 길이를 확인하는 오프라인 검증기는 여전히 작동하지만, 새 프로젝트에는 더 나은 선택지가 있습니다.
여러 층이 주는 효과
가장 분명한 수치는 AgentDojo에서 측정한 Meta의 LlamaFirewall 논문에 있습니다. 가드레일이 없을 때 공격의 17.6%가 성공했습니다. Prompt Guard 2만으로 이 비율이 7.5%로 줄었습니다. 에이전트가 여전히 사용자가 요청한 일을 하고 있는지 큰 모델에 묻는 AlignmentCheck는 2.89%까지 낮췄습니다. 둘을 함께 쓰자 1.75%에 이르렀고, 그사이 에이전트가 완료한 작업 비율은 47.7%에서 42.7%로 떨어졌습니다.
여기서 두 가지 교훈이 나옵니다. 빠른 필터와 느린 추론 검사는 놓치는 공격이 서로 달라서 효과가 쌓입니다. 그리고 보호에는 돈뿐 아니라 유용성의 대가도 따릅니다. 저희 계산으로는 예전에 성공하던 작업 열 건 중 약 한 건이 더는 성공하지 못했습니다.
요청 경로의 지연 시간과 비용
답변 앞에 두는 검사마다 시간이 늘어나며, 에이전트는 한 턴에 여러 번 검사할 수 있습니다. 사용자 메시지, 가져온 각 문서, 각 도구 결과, 최종 답변입니다. 검사 횟수는 대화가 아니라 턴 단위로 세세요.
| 검사 | 공개된 지연 시간 | 비용 |
|---|---|---|
| Prompt Guard 2, 22M | A100에서 512 토큰당 19.3 ms | 자체 GPU |
| Prompt Guard 2, 86M | A100에서 512 토큰당 92.4 ms | 자체 GPU |
| CodeShield 1차 검사 | 약 60 ms | 자체 CPU 또는 GPU |
| AlignmentCheck | 논문의 추적 기록에서 단계당 약 860~1,490 ms | 감사하는 단계마다 대형 모델 호출 1회 |
| Lakera Guard | 50 ms 미만(공급업체 주장) | 월 10,000건 요청까지 무료, 이후 견적 |
| Google Model Armor | 저희 자료에는 나와 있지 않음 | 100만 토큰당 $0.10 |
| Azure AI Content Safety | 저희 자료에는 나와 있지 않음 | 텍스트 레코드 1,000건당 $0.375 |
이 가격이라면 짧은 채팅 메시지 100만 건을 심사하는 데 Model Armor로는 몇 달러, Azure로는 $375가 듭니다. Model Armor에서 월 10억 토큰은 약 $100이며, Security Command Center Enterprise 또는 Premium 구독에 포함된 30억 토큰 안이라면 무료입니다. Lakera는 심사한 항목 하나하나를 요청 1건으로 세기 때문에, 프롬프트와 문서 2건, 답변을 검사하는 에이전트는 턴마다 4건을 쓰고 2,500턴이면 무료 등급을 소진합니다.
직접 호스팅하면 청구서가 하드웨어로 옮겨 갑니다. 오픈 모델에는 요금이 없지만 GPU 비용은 누군가 냅니다. NeMo Guardrails 마이크로서비스를 포함하는 NVIDIA AI Enterprise의 정가는 GPU당 연 $4,500입니다.
지연을 줄이는 습관이 세 가지 있습니다. 저렴한 분류기를 모든 것에 돌리고, 위험한 단계만 느린 판정 모델로 보내세요. OpenAI도 gpt-oss-safeguard에 대해 빠른 분류기를 먼저 쓰고 트래픽 일부만 추론 모델로 보내는 같은 방식을 설명합니다. 서로 독립적인 검사는 병렬로 실행하세요. NeMo의 IORails 엔진이 NemoGuard 검사에서 하는 일이 바로 이것입니다. 그리고 스트리밍 답변은 텍스트가 도착하는 대로 검사하세요. Qwen3Guard의 Stream 변형은 토큰마다 점수를 매기고, Lakera는 최소 10 토큰 단위로 보내라고 요구합니다.
오탐이 진짜 튜닝 작업이다
모든 탐지기는 놓친 공격과 차단된 고객 사이에서 균형을 잡으며, 공급업체의 정확도 수치는 자체 테스트 세트에서 나온 것입니다. Lakera는 모든 탐지기를 가장 엄격한 L4로 출고하며 기본 정책을 "intentionally strict"라고 설명합니다. Meta는 Prompt Guard 2의 정확도가 여러분 앱의 평소 트래픽이 어떤 모습인지에 달려 있다고 하며, 자체 데이터로 미세 조정할 것을 권합니다.
무엇이든 차단하기 전에, 실제 무해한 요청 수백 건과 알려진 공격 한 세트를 가드레일에 통과시키고, 임곗값마다 차단율과 놓친 비율을 기록하세요. 그런 다음 기록 전용 모드(Lakera에서는 Detect 모드)로 운영을 시작하고, 1~2주 동안 무엇이 표시되는지 읽어 보세요. 차단될 때 사용자에게 무엇을 보여 줄지도 미리 정하세요. 사람에게 연락할 방법을 함께 안내하는 분명한 거절이 조용한 실패보다 낫습니다. Qwen3Guard의 논란 라벨은 허용과 차단 사이에 세 번째 선택지, 즉 검토 대기열로 보내는 길을 열어 줍니다.
레드팀 테스트와 공급망 스캔의 자리
가드레일은 실제 트래픽에 작동합니다. 레드팀 테스트는 사용자보다 먼저 앱을 공격해 가드레일이 제대로 작동하는지 알려 주고, 공급망 스캔은 앱이 신뢰하는 코드와 도구를 점검합니다. 셋 다 필요하지만 쓰는 시점이 다릅니다.
- 모델을 고를 때. CyberSecEval(3.9)은 아무것도 붙지 않은 모델이 취약한 코드를 쓰거나 주입된 텍스트를 따르는 빈도를 측정합니다. 프롬프트, 도구, 검색은 보지 않으므로 모델 카드 옆에 둘 도구이지, 앱 테스트를 대신할 수는 없습니다.
- 출시 전과 변경할 때마다. garak(4.3)은 공개된 공격 라이브러리를 엔드포인트에 퍼붓습니다. 시스템 프롬프트와 필터가 결과를 바꾸므로, 가드레일을 앞에 둔 배포된 앱을 대상으로 삼으세요. promptfoo(4.5)는 레드팀 테스트를 CI에서 실행되는 YAML 파일에 담습니다. DeepTeam(3.9)은 권한 우회나 오염된 도구 설명 같은 에이전트 고유의 위험을 다룹니다.
- 끈질긴 공격자. PyRIT(4.2)은 공격자 모델이 조금씩 수위를 높이는 Crescendo 같은 다중 턴 공격을 실행합니다. 요청을 한 번에 하나씩 판정하는 필터가 구조적으로 놓치는 것이 바로 이런 경우입니다.
레드팀이 찾아낸 것은 가드레일 임곗값에, 그리고 더 자주는 도구 권한에 반영해야 합니다.
가드레일 자체도 공급망의 일부입니다. Guardrails AI의 악성 0.10.1이 한 예이며, 2026년 3월에는 공격자들이 탈취한 메인테이너 자격 증명으로 오염된 LiteLLM 릴리스 두 개를 PyPI에 게시하기도 했습니다. 가드레일 라이브러리, 게이트웨이, SDK는 정확한 버전과 해시로 고정하고, 나머지 코드와 함께 스캔하세요. 풀 리퀘스트의 필수 검사로는 Semgrep(4.3)을, 의존성과 컨테이너에는 Snyk(4.0)을 쓸 수 있으며, Snyk 무료 요금제는 Snyk Code 테스트가 월 100회까지입니다. 에이전트가 불러오는 MCP 서버와 스킬에 대해서는 Snyk Agent Scan(3.8)이 도구 설명에 숨은 지시를 찾는데, 이를 위해 해당 설명을 Snyk로 보냅니다.

최소 권한이 어떤 필터보다 중요하다
위에서 본 가장 좋은 다층 구성도, 공격이 미리 알려진 벤치마크에서 여전히 1.75%의 공격을 통과시켰습니다. 게다가 Meta는 공격자들이 분류기에 적응한다고 경고합니다. 모든 필터를 통과하는 인젝션을 전제로 계획하고, 그것이 다음에 무엇을 할 수 있는지 물어보세요. 그 답을 정하는 것은 가드레일이 아니라 에이전트에게 준 도구입니다.
- 서비스 계정이 아니라 사용자로서 행동하게 하세요. 도구 호출에 로그인한 사용자의 신원이 실려 있으면, 주입된 지시가 그 사용자가 볼 수 없는 데이터를 가져올 수 없습니다. 권한 확인은 프롬프트가 아니라 반드시 코드에서 하세요.
- 도구마다 가장 좁은 자격 증명을 주세요. 주문 관련 질문에 답하는 에이전트에게 필요한 것은 데이터베이스 전체가 아니라 고객 한 명의 주문을 읽기 전용으로 보는 권한입니다.
- 되돌릴 수 없는 작업 앞에는 사람을 두세요. 결제, 삭제, 외부 주소로 보내는 메시지는 모델이 스스로 내릴 수 없는 확인을 기다려야 합니다.
- 데이터가 갈 수 있는 곳을 제한하세요. 아무 URL이나 열 수 있는 에이전트는 아무 URL로나 데이터를 보낼 수 있습니다.
- 도구를 격리하세요. ToolHive(4.1)는 각 MCP 서버를 로컬 자격 증명이 전혀 없는 전용 컨테이너에서 실행하고, 요청마다 신원 기반 접근 정책을 적용하며, 감사 로그를 남깁니다. 리뷰는 격리가 의도적으로 부여한 접근을 서버가 악용하는 것까지 막지는 못한다고 분명히 밝힙니다. 에이전트가 코드를 실행할 때는 OpenSandbox(4.1)가 API로 일회용 샌드박스를 내주지만, gVisor, Kata, Firecracker를 설정하지 않으면 평범한 컨테이너일 뿐이고, API 키를 설정하지 않으면 인증 없이 돌아갑니다.
- 모든 도구 호출을 기록하세요. 사용자, 입력, 결과를 남겨 두면 사고를 추적할 수 있습니다.

작은 팀을 위한 출발점
다섯 명이 클라우드 하나에서 고객 지원 챗봇이나 작은 에이전트를 출시하는 상황을 떠올려 보세요. 직함에 보안이 들어간 사람은 없습니다.
- 권한이 먼저입니다. 모든 도구를 나열하고, 각각에 가장 좁은 자격 증명을 주고, 보내기, 결제, 삭제를 하는 모든 작업 앞에 확인 단계를 넣으세요. 오후 한나절이면 끝나고, 아래의 어떤 제품보다 효과가 큽니다.
- 호스팅 심사 하나를 사용자 입력, 가져온 문서, 답변에 적용하세요. Google Cloud를 쓰거나 특정 클라우드가 없다면 Model Armor, 이미 Azure에서 운영한다면 Azure AI Content Safety입니다. 시제품이라면 Lakera 무료 등급으로 충분합니다. 이미 GPU를 운영한다면 도구 출력에 Prompt Guard 2 22M을 거는 비용은 거의 들지 않고, Qwen3Guard 0.6B는 서비스 비용이 가장 낮은 다국어 모더레이션 모델입니다.
- 2주 동안은 기록만 하고, 그다음 자체 트래픽으로 확인한 임곗값으로 차단을 켜세요.
- CI에 레드팀 파일을 두세요. 프롬프트나 모델을 바꿀 때마다 실행되는 promptfoo 설정과, 모델 교체 후 범위를 좁힌 garak 스캔입니다.
- 의존성 고정과 풀 리퀘스트 필수 검사로서의 Semgrep.
여기 나온 소프트웨어는 무료이거나 거의 무료입니다. 비용은 요청별 심사와 레드팀 실행이 소비하는 모델 토큰에서 나옵니다.
규제 산업 기업을 위한 출발점
은행, 보험사, 의료 기관은 같은 위험에 더해 감사인, 데이터 보관 위치 규정, 그리고 새 데이터 처리자마다 거치는 공급업체 심사를 안고 있습니다.
- 신원에 묶인 도구. 에이전트는 사용자의 신원으로 행동합니다. MCP 서버는 ToolHive 뒤에서 실행해 요청별 정책, 격리, 감사 로그를 확보하고, 생성된 코드는 보안 런타임과 API 키를 설정한 OpenSandbox에서 실행합니다.
- 단일 통제 지점. 입력, 검색, 도구 실행, 출력에 레일을 둔 NeMo Guardrails를 버전을 고정해 쓰고,
DO_NOT_TRACK=1로 원격 측정을 끄며,require_iorails=True를 지정하세요. 그러면 빠른 엔진이 실행할 수 없는 설정은 예전 엔진으로 조용히 돌아가는 대신 눈에 띄게 실패합니다. - 데이터 규정을 지키는 탐지기. 모든 입력과 도구 결과에는 직접 호스팅한 Prompt Guard 2를, 다국어 모더레이션에는 Qwen3Guard를, 영어로 충분하고 Apache 2.0 아래에서 근거성과 함수 호출 검사가 필요하다면 Granite Guardian을 쓰세요. 클라우드 API가 허용된다면 이미 승인된 것을 고르세요. Azure는 대부분의 검사를 선택한 리전 안에서 처리하고 고객 관리 키를 지원하며, Google은 Model Armor가 로깅을 켜지 않는 한 검사 후 내용을 폐기한다고 밝힙니다. Lakera는 Enterprise에서 네트워크와 분리된 자체 호스팅을 제공합니다. 근거성 탐지를 비롯한 Azure의 여러 미리 보기 기능이 2027년 4월 30일에 종료된다는 점도 기억하세요.
- 느린 판정 모델은 효과가 있는 곳에만. 서면 근거가 필요한 정책 결정과 이의 제기에는 gpt-oss-safeguard를, 에이전트의 고위험 단계에는 이미 계약한 대형 모델로 AlignmentCheck 방식의 감사를 적용하세요.
- 테스트 증거. 모델 선정 단계의 CyberSecEval, 감사인에게 무엇을 테스트했는지 보여 줄 DeepTeam의 OWASP 프리셋, 그리고 다중 턴 공격에는 전담 레드팀 담당자가 다루는 PyRIT입니다. 모델, 프롬프트, 가드레일, 도구를 바꿀 때마다 다시 실행하고 기록을 보관하세요.
- 공급망과 소유권. 해시 고정, CI의 Semgrep과 Snyk, 그리고 개인정보 보호 책임자가 도구 설명을 Snyk로 보내는 것을 승인한 뒤 새 MCP 서버에 Snyk Agent Scan을 적용하세요. 이 시장은 주인이 빨리 바뀝니다. Lakera는 이제 Check Point, promptfoo는 OpenAI 소유이고, Guardrails AI의 호스팅 서비스는 사라졌습니다. 모든 가드레일을 자체 인터페이스 뒤에 두어 교체할 수 있게 하세요.
주의할 점: 대부분의 가드레일은 텍스트를 한 조각씩만 보며, 공격자들도 이를 압니다. Model Armor는 대화를 기억하지 못하고, Base64를 디코딩하지 않으며, 너무 큰 입력은 표시하지 않고 건너뜁니다. Prompt Guard 2는 512 토큰을 읽으므로 여러 조각에 나눠 담은 공격은 빠져나갈 수 있습니다. Azure의 Prompt Shields는 프롬프트 10,000자, 그리고 최대 다섯 개 문서를 합쳐 10,000자에서 멈춥니다. 영어가 아닌 언어에서는 대부분 성능이 떨어집니다. 필터는 완벽한지가 아니라 비용과 틀리는 빈도로 평가하세요.
결론: 가드레일은 입구의 경비원이고, 권한은 각 방의 자물쇠입니다. 경비원은 말썽꾼 대부분을, 가끔은 단골손님까지 돌려보내지만, 그래도 들어온 사람이 얼마나 피해를 줄 수 있는지는 자물쇠가 정합니다. 자물쇠부터 달고, 고객의 언어를 할 줄 아는 가장 저렴한 경비원을 두고, 비싼 판정 모델은 정말 중요한 문에만 보내세요.