본문으로 건너뛰기

AI 에이전트를 위한 fail-closed 보안 프록시

Bulwark Gateway가 LLM 요청과 에이전트 도구 호출을 내부 프록시에서 검증한다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Bulwark Gateway는 사용자와 OpenAI, Ollama, vLLM, Azure 등 LLM 백엔드 사이에서 인증, Prompt Injection 탐지, IOC 검사, 에이전트별 Tool Policy, 출력의 Secret·PII 삭제를 수행하는 self-hosted 보안 프록시이다. 요청 처리는 LLM을 호출하지 않는 정규식·Pydantic·캐시 기반 hot path에서 이뤄지며, 400개가 넘는 입력 패턴과 약 150개 출력 패턴을 사용하고 클러스터 내부 p95 추가 지연을 40ms 미만으로 제시한다. Streaming tool call도 실행 전에 버퍼링해 검증하고, Redis·Prometheus·Grafana와 Kubernetes·Helm 배포 구성을 함께 제공한다. 다만 WAF나 모델 호스팅 플랫폼은 아니며 자유 형식 채팅의 SQLi·XSS를 입력 계층에서 포괄적으로 잡지 않는다는 한계와 정규식 탐지의 의미적 범위가 명시되어 있다.

섹션별 상세

01
Bulwark Gateway는 사용자와 OpenAI, Ollama, vLLM, Azure 같은 LLM 백엔드 사이에 배치되는 self-hosted 보안 프록시로, 애플리케이션 코드를 수정하지 않고 모든 요청을 통과시킨다. 요청은 JWT/API key 인증, Prompt Injection·Jailbreak·인코딩 우회 탐지, 악성 URL·IP·도메인 IOC 검사, 테넌트·에이전트별 Tool Policy, 출력의 Secret·PII 삭제 순서로 처리된다. 어느 계층에서든 위협을 감지하면 즉시 차단하는 fail-closed 방식이므로 사용자와 에이전트가 잠재적으로 공격적인 환경에서도 백엔드에 도달하는 입력과 도구 호출을 통제할 수 있다.
02
입력과 출력의 보안 검사는 LLM을 호출하지 않는 정규식, Pydantic, 캐시 기반 hot path에서 수행된다. 입력 측에는 400개가 넘는 탐지 패턴이 있고 출력 측에는 약 150개 패턴이 있으며, ES·ZH·AR을 포함한 다국어 인코딩 우회와 간접 Injection을 검사한다. 이 경로의 추가 지연은 클러스터 내부 p95 40ms 미만으로 제시되지만, 정규식 기반 탐지는 빠르고 감사하기 쉬운 대신 모든 의미적 예외를 포괄하지 않으므로 선택적 ML scanner가 보완 계층으로 배치된다.
03
Tool Policy는 테넌트와 에이전트 식별자를 기준으로 각 백엔드와 도구 사용 범위를 연결한다. 예시 YAML은 web_search와 code_interpreter를 허용하고 file_system과 shell_exec를 차단하며, max_tokens를 4096으로 제한하고 block_on_injection을 true로 설정한다. Streaming tool call도 클라이언트에 전달하기 전에 버퍼링해 검증하므로, 에이전트가 셸이나 파일 시스템에 접근하는 요청을 실행 단계에서 차단할 수 있다.
bash
docker build -t <REGISTRY>/bulwark-gateway-proxy:1.0.0 -f Dockerfile .
docker build -t <REGISTRY>/bulwark-gateway-admin:1.0.0 -f docker/Dockerfile.admin .
docker push <REGISTRY>/bulwark-gateway-proxy:1.0.0
docker push <REGISTRY>/bulwark-gateway-admin:1.0.0

Proxy와 Admin Portal 컨테이너 이미지를 빌드한 뒤 지정한 컨테이너 레지스트리에 업로드한다.

bash
helm install bulwark ./helm/bulwark-gateway \
--namespace bulwark-gateway --create-namespace \
--set backend.ip=<YOUR_LLM_BACKEND_IP> \
--set proxy.image.repository=<REGISTRY>/bulwark-gateway-proxy \
--set admin.image.repository=<REGISTRY>/bulwark-gateway-admin \
--set proxy.image.tag=1.0.0 \
--set admin.image.tag=1.0.0 \
--set 'imagePullSecrets[0].name=bulwark-registry' # omit for public registries

Helm 차트에 LLM 백엔드 주소와 두 이미지의 저장소·태그를 지정해 Kubernetes 환경에 Gateway를 설치한다.

bash
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-key" \
-H "X-Tenant-ID: default" \
-H "X-Agent-ID: support-bot" \
-d '{"model": "gpt-4", "messages": [{"role": "user", "content": "Hello"}]}'

Bearer 토큰과 테넌트·에이전트 식별자를 포함해 OpenAI 호환 Chat Completions 요청을 프록시에 전달한다.

04
서비스는 Proxy 포트 8080, Admin Portal 포트 8090, Redis 포트 6379, Prometheus 포트 9090, Grafana 포트 3000으로 분리된다. Redis는 요청 제한·상태·세션을 관리하고 Prometheus와 Grafana는 지표와 대시보드를 담당하며, Admin Portal은 정책 CRUD, Guardrail 패턴 관리, IOC 피드, SIEM 전송, 알림 채널, 감사 로그, 에이전트 상태를 관리한다. Kubernetes용 Helm·Kustomize 매니페스트와 NetworkPolicy, HPA, PDB, Pod Security 설정이 포함되어 운영 클러스터와 Docker Compose 개발 환경을 함께 지원한다.
yaml
tenant_id: example-corp
tools:
allowed:
- web_search
- code_interpreter
blocked:
- file_system
- shell_exec
guardrails:
max_tokens: 4096
block_on_injection: true

테넌트별로 호출 가능한 도구와 차단할 도구를 지정하고 토큰 상한과 Injection 차단 동작을 설정한다.

05
기존 LLM 보안 SDK가 애플리케이션 코드에 라이브러리를 삽입하거나 hosted SaaS로 프롬프트를 전송하는 방식과 달리, Bulwark Gateway는 네트워크 내부의 drop-in proxy로 동작한다. 프롬프트가 외부 공급업체로 나가지 않고, 에이전트별 RBAC와 13개 SIEM 플랫폼 전송을 기본 기능으로 포함한다. 다만 프로젝트 스스로 WAF나 모델 호스팅 플랫폼이 아니라고 밝히며, 자유 형식 채팅 입력의 전형적인 SQLi·XSS는 입력 계층에서 안정적으로 잡지 않고 실제 DB·파일 시스템에 도달하는 Tool argument 계층에서 적용한다고 범위를 제한한다.
06
배포는 Python 3.11+, Docker 24+, Redis 7+를 전제로 하며 Production Kubernetes에는 Helm 차트를 권장한다. 운영자는 두 컨테이너 이미지를 빌드·푸시하고 백엔드 IP와 이미지 저장소를 Helm 값으로 지정한 뒤 kubectl과 helm test로 상태를 확인한다. 저장소에는 pytest 기반 테스트 1290개 이상과 FastAPI, YAML 정책, 시크릿 파일 주입, Vault·AWS SM·Azure KV·GCP SM·CyberArk·SealedSecrets 연동 구성이 포함되어 있어 self-hosted 보안 관문을 직접 운영하려는 팀의 출발점으로 활용할 수 있다.

용어 해설

실패 시 차단(Fail-closed)
보안 검사나 정책 판단에 실패했을 때 요청을 허용하지 않고 차단하는 운영 방식이다. Bulwark Gateway는 인증, 입력 Guardrail, IOC 검사, Tool Policy, 출력 필터 가운데 어느 한 계층에서 위협을 감지하거나 오류가 발생하면 LLM 백엔드로 요청을 전달하지 않는 구조를 기본값으로 삼는다. 우회 가능성보다 보수적인 차단을 우선해 사용자와 에이전트가 잠재적으로 공격적인 환경에서 동작할 때 통제력을 확보한다.
침해 지표(IOC)
악성 활동과 연결된 URL, IP 주소, 도메인처럼 위협을 식별하는 관측값이다. Bulwark Gateway는 URLhaus, ThreatFox, AlienVault OTX, AbuseIPDB 등의 위협 인텔리전스 피드에서 얻은 항목을 IOC 데이터베이스에 반영하고 요청을 검사한다. 이를 통해 Prompt Injection 탐지와 별도로 네트워크·인프라 수준의 알려진 악성 지표를 차단한다.
도구 정책(Tool Policy)
LLM 에이전트가 호출할 수 있는 도구를 테넌트와 에이전트 단위로 제한하는 접근 제어 규칙이다. 정책 YAML에 허용 도구와 차단 도구를 나누어 기록하고 Gateway가 요청 흐름에서 RBAC를 적용한다. 예시 정책은 web_search와 code_interpreter를 허용하고 file_system과 shell_exec를 차단해 에이전트가 파일 시스템이나 셸에 임의로 접근하지 못하게 한다.
보안 정보 및 이벤트 관리(SIEM)
보안 이벤트와 감사 로그를 수집·분석하는 운영 체계다. Bulwark Gateway는 차단 이벤트와 관리 변경 이력을 백그라운드 배치 exporter와 비동기 이벤트 큐로 처리한 뒤 Wazuh, Splunk, Elastic, QRadar, Datadog 등 13개 플랫폼으로 내보낸다. 프록시의 보안 경로를 막지 않으면서 중앙 보안 관제와 감사 추적을 연결하는 역할을 한다.

기술

  • OpenAI
  • Ollama
  • vLLM
  • Azure
  • Redis
  • Prometheus
  • Grafana
  • Kubernetes
  • Helm
  • Kustomize
  • Docker Compose
  • FastAPI
  • Pydantic
  • Python
  • JWT
  • RBAC
  • MISP
  • OpenCTI
  • VirusTotal
  • Shodan
  • Vault
  • AWS SM
  • Azure KV
  • GCP SM
  • CyberArk
  • SealedSecrets

활용 사례

  • 여러 테넌트와 AI 에이전트가 공유하는 LLM 백엔드 앞단의 요청·도구 호출 통제
  • RAG, LLM, Agent 백엔드를 하나의 보안 프록시 뒤에서 라우팅
  • 에이전트의 shell_exec·file_system 같은 고위험 도구 차단
  • 프롬프트와 응답에서 Secret·PII를 삭제하는 내부 AI 서비스
  • 보안 이벤트와 관리자 변경 이력을 Wazuh·Splunk·Elastic 등 SIEM으로 전송
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 21.수집 2026. 08. 21.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.