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를 입력 계층에서 포괄적으로 잡지 않는다는 한계와 정규식 탐지의 의미적 범위가 명시되어 있다.
섹션별 상세
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.0Proxy와 Admin Portal 컨테이너 이미지를 빌드한 뒤 지정한 컨테이너 레지스트리에 업로드한다.
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 registriesHelm 차트에 LLM 백엔드 주소와 두 이미지의 저장소·태그를 지정해 Kubernetes 환경에 Gateway를 설치한다.
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 요청을 프록시에 전달한다.
tenant_id: example-corp
tools:
allowed:
- web_search
- code_interpreter
blocked:
- file_system
- shell_exec
guardrails:
max_tokens: 4096
block_on_injection: true테넌트별로 호출 가능한 도구와 차단할 도구를 지정하고 토큰 상한과 Injection 차단 동작을 설정한다.
용어 해설
- 실패 시 차단(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 Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.