피드로 돌아가기
Dev.toSecurity
원문 읽기
MCP 서버의 Prompt Injection 취약점 제거를 위한 Least Privilege 설계 전략
I Build MCP Servers. Here's the Security Hole Nobody Talks About.
AI 요약
Context
Model Context Protocol(MCP) 도입으로 AI Agent의 외부 툴 접근성이 확장되었으나, 툴 출력값이 모델의 Context로 직접 주입되는 구조적 한계 존재. 외부 데이터에 포함된 악의적 명령어가 모델의 시스템 프롬프트를 무력화하는 Prompt Injection 공격 경로가 형성됨.
Technical Solution
- Least Privilege 원칙 적용을 통한 Token Scope 최소화로 공격 발생 시 Blast Radius 제한
- Trust Boundary 설정을 통해 외부 Read 전용 툴과 내부 Write 전용 툴을 동일 세션 내에서 분리 운영
- API Key 등의 민감 정보를 모델 Context에서 완전히 배제하고 서버 내부 .env에서 직접 로드하는 아키텍처 설계
- Write-access가 필요한 비가역적 액션에 대해 Human-in-the-loop 기반의 최종 승인 프로세스 강제
- 커뮤니티 제공 MCP 서버의 소스 코드 리뷰를 통한 Supply Chain Attack 및 임의 코드 실행 리스크 제거
실천 포인트
- [ ] 각 MCP Server에 할당된 API Token의 권한이 최소 단위로 쪼개져 있는가? - [ ] 외부 데이터(Issue, Web, Email)를 읽는 툴과 시스템 수정 툴이 동일한 세션에서 동시 활성화되어 있는가? - [ ] 모델이 API Key나 Secret을 텍스트 형태로 인지할 수 있는 구조인가? - [ ] `npx` 등을 통해 설치한 제3자 MCP 서버의 소스 코드를 검증했는가? - [ ] 외부 노출 및 삭제 작업 전 사용자 승인 단계가 설계되어 있는가?