피드로 돌아가기
Dev.toSecurity
원문 읽기
Runtime Canonical Path 검증을 통한 MCP Filesystem 권한 탈취 원천 차단
MCP Filesystem Path Boundary Checklist
AI 요약
Context
단순한 Read-only 설정이나 Schema 검증만으로는 Symlink, Path Traversal 등을 통한 Host State 및 Secret 노출 위험을 방어하기 어려운 한계 존재. 모델이 제공하는 Path를 단순 문자열이 아닌 Authorization Input으로 처리하여 Runtime 수준의 엄격한 경계 검증이 필요함.
Technical Solution
- Path Normalization 및 Canonicalization 과정을 통한 Symlink 및 Relative Segment 해결 후 Allowed Root 접두사 비교 구조 설계
- Read, Write, Execute 등 Operation Class별 권한을 분리하여 특정 경로의 Read 권한이 Write 권한으로 전이되지 않도록 격리
- Allowed Path와 대응되는 Denied Sibling Path를 쌍으로 구성하여 Parent Traversal 및 Hidden Config 접근 차단 여부를 검증하는 Fixture 기반 테스트 도입
- 단순 에러 반환이 아닌 Requested Path, Canonical Path, Rule ID가 포함된 Typed Denial Receipt를 생성하여 감사 가능한 추적성 확보
- 파일 크기 제한, 확장자 Allowlist, Secret Redaction 규칙을 적용하여 Context 내 과도한 데이터 유입 및 민감 정보 유출 방지
실천 포인트
1. 모델 입력 Path를 Canonical Path로 변환 후 Root Prefix 일치 여부 확인
2. ../, ..%2f 등 Traversal 패턴에 대한 Deny Receipt 생성 여부 테스트
3. .env, .aws/credentials 등 Secret-bearing paths에 대한 기본 차단 및 Redaction 적용
4. Operation Class별(Read vs Write vs Execute) 최소 권한 원칙 적용