피드로 돌아가기
Dev.toSecurity
원문 읽기
MCP Server SQL 주입 방지를 위한 분당 30회 쿼리 Rate Limit 설계
Your AI Agent Can Run DROP TABLE on Production
AI 요약
Context
PostgreSQL MCP server가 단일 query 도구를 통해 raw SQL을 실행하는 구조적 취약점 보유. read-only 설정의 부재와 Agent의 Hallucination 결합 시 Production DB의 데이터 전량 삭제 위험 존재.
Technical Solution
- Agent와 MCP Server 사이에 Intercept 계층을 배치하여 중간 프록시 구조 설계
- YAML 기반 정책 엔진을 도입하여 tools/call 요청을 실시간으로 평가하는 가드레일 구축
- query 도구에 대해 분당 30회 호출로 제한하는 Rate Limit 적용으로 파괴적 루프 차단
- 전역 호출 횟수를 분당 60회로 제한하여 향후 추가될 도구에 대한 통합 제어권 확보
- 제한 초과 시 on_deny 메시지를 반환하여 Agent에게 명확한 중단 신호를 전달하는 Circuit Breaker 메커니즘 구현
- UTC 윈도우 기반의 상태 저장 카운터를 통한 정밀한 요청 주기 제어
실천 포인트
1. DB 연결 계정에 Read-only 권한 적용 여부 검토
2. Agent 호출 경로에 Rate Limit 프록시 계층 도입
3. Hallucination 대응을 위한 Circuit Breaker 패턴 적용
4. 최신 백업 주기 및 복구 프로세스 검증