AI Briefing

CrabTrap: 프로덕션에서 에이전트를 보호하는 LLM-as-a-judge HTTP 프록시

·2026.04.22 09:00

CrabTrap은 프로덕션 에이전트의 HTTP/HTTPS 요청을 LLM으로 판정해 보호한다.

Brex는 OpenClaw 같은 harness를 프로덕션에서 돌리면서, 에이전트가 실제 API 키, OAuth 토큰, 서비스 계정을 써야 하지만 환각이나 prompt injection으로 파괴적인 요청을 보낼 수 있다는 문제를 안았다. 이를 해결하기 위해 CrabTrap을 만들었고, 에이전트가 보내는 모든 HTTP/HTTPS 요청을 가로채 LLM-as-a-judge로 허용 여부를 판정한다.

기존 접근은 각각 한계가 있었다.

  • MCP gateway는 MCP 트래픽에만 정책을 걸 수 있다.
  • 공급자 제공 guardrail은 특정 모델에 묶이고 커스터마이즈가 어렵다.
  • NVIDIA OpenShell 같은 방식은 샌드박스 egress 제어에 가깝다.

CrabTrap은 프레임워크, 언어, API에 독립적으로 동작하도록 전송 계층에 둔다. 에이전트 환경변수에 HTTP_PROXYHTTPS_PROXY를 설정하면 모든 outbound request가 CrabTrap을 거치며, HTTPS는 자체 CA로 인증서를 발급해 TLS interception을 수행한다. 필요하면 컨테이너의 iptables로 프록시 밖 직접 연결도 차단할 수 있다.

판정은 두 단계로 이뤄진다.

  1. Static rules가 URL의 exact, prefix, glob 매칭과 HTTP method 조건을 먼저 검사한다. deny rule이 항상 우선이며, 이 단계는 캐시된 regexp로 마이크로초 단위에 끝난다.
  2. 매칭되지 않으면 LLM judge가 요청 전체 컨텍스트와 에이전트별 자연어 policy를 받아 ALLOW 또는 DENY와 사유를 JSON으로 반환한다.

정책 작성과 검증도 자동화했다.

  • policy builder가 과거 트래픽을 분석해 대표 요청을 샘플링하고, 실제 행동을 반영한 policy 초안을 만든다.
  • eval system이 과거 audit entry를 draft policy에 재생해 변경점을 보여준다.
  • 결과는 method, URL, 원래 판정, agreement status로 나눠 볼 수 있고, 수천 건도 병렬 judge 호출로 몇 분 안에 재생된다.
  • 모든 과거 요청은 PostgreSQL에 저장되고 admin API와 웹 대시보드로 조회된다.

judge 입력은 prompt injection을 막도록 구조화했다. 요청은 method, URL, headers, body가 들어 있는 JSON으로 전달하고, 헤더는 보안 관련 항목을 우선해 총 4KB로 제한한다. body는 16KB에서 잘라 경고를 붙이며, multipart는 각 part의 요약으로 바꿔 보낸다.

운영에서 policy builder는 며칠치 실제 트래픽만으로도 사람 판단과 높은 수준으로 맞아떨어졌고, 많은 요청은 static rule로 흡수돼 한 생산 사례에서 LLM 호출이 전체의 3% 미만이었다. 프록시는 단순한 enforcement 도구가 아니라, 에이전트가 만드는 잡음과 낭비를 드러내는 discovery tool로도 쓰였다.

Brex는 CrabTrap을 오픈소스로 공개하며, 앞으로 SSO, 세분화된 RBAC, 에이전트의 권한 상승 요청 workflow, denial pattern 기반 policy 추천 기능을 더할 계획이다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.