CrabTrap은 AI 에이전트와 외부 API 사이에 위치하는 HTTP/HTTPS 포워드 프록시로, 모든 아웃바운드 요청을 가로채 정적 규칙과 LLM 기반 보안 정책 판단기로 허용 또는 차단한다. Slack, Gmail, GitHub 같은 서비스를 호출하는 에이전트에 가드레일을 추가하고, 모든 결정을 PostgreSQL에 감사 로그로 저장한다. Brex가 오픈소스로 공개했다.
요청 처리 흐름
에이전트 요청
│
▼
[TLS 터미네이션] — 커스텀 CA로 HTTPS 복호화
│
▼
[정적 규칙 매칭] — prefix/exact/glob URL 패턴
│ 매칭 없음
▼
[LLM 판단기] — 에이전트별 자연어 정책 평가
│
├─ 허용 → 원본 API 포워드
└─ 차단 → 403 + 거부 이유
│
▼
[PostgreSQL 감사 로그]2계층 평가 구조
정적 규칙을 우선 적용해 LLM 호출 비용을 최소화한다:
- 정적 규칙: URL 패턴(prefix, exact, glob) + HTTP 메서드 필터로 즉각 결정. Deny 규칙이 Allow보다 항상 우선
- LLM 판단기: 규칙 미매칭 시 에이전트별 자연어 보안 정책을 기준으로 판단. 회로 차단기(5회 연속 실패 시 트립)로 LLM 장애 대응
보안 기능
| 기능 | 내용 |
|---|---|
| HTTPS 인터셉션 | 커스텀 CA 기반 투명 MITM |
| SSRF 차단 | RFC 1918, 루프백, 링크로컬 등 사설 네트워크 자동 차단 |
| DNS 리바인딩 방지 | SSRF 방어 강화 |
| 프롬프트 인젝션 방어 | 요청 페이로드 JSON 인코딩 후 LLM 전달 |
| IP별 속도 제한 | 토큰 버킷 (기본 50 req/s, 버스트 100) |
| 감사 로그 | 모든 요청·결정·응답 PostgreSQL 기록 |
빠른 시작
# CrabTrap + PostgreSQL 기동
docker compose up -d
# CA 인증서 추출
docker compose cp crabtrap:/app/certs/ca.crt ./ca.crt
# 관리자 토큰 생성
admin_token=$(docker compose exec -it crabtrap ./gateway create-admin-user test-admin \
| tail -n1 | cut -d" " -f2)
# 프록시 테스트
curl -x http://${token}:@localhost:8080 \
--cacert ca.crt https://httpbin.org/get에이전트에서 사용 시 HTTP_PROXY와 HTTPS_PROXY를 CrabTrap으로 설정한다.
관리 기능
- 정책 빌더: 관측된 트래픽을 분석해 자동으로 보안 정책 초안 생성
- 평가 시스템: 과거 감사 로그로 정책 정확도 측정
- 웹 UI: 감사 추적, 정책 편집, 평가 결과, 에이전트 관리
CrabTrap이 하지 않는 것
- 인바운드 요청 검사 (포워드 프록시만 해당)
- 민감 데이터(Authorization 헤더 등) 리댁션
- 휴먼인더루프 승인
- API 응답 필터링
- WebSocket 프레임 검사
활용 케이스
- 프로덕션 환경의 AI 에이전트 외부 API 접근 통제
- 규정 준수(컴플라이언스) 요구사항이 있는 기업 환경
- 에이전트 보안 정책 테스트·검증
라이선스
MIT (Brex 오픈소스)
관련 문서
- agent-governance — AI 에이전트 정책·비용·도구 통제 프레임워크
- aiops — LLM 시스템 운영 계층
- browser-run — 에이전트를 위한 클라우드 브라우저 인프라