MCP 보안 취약점과 공격 벡터
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
AI 모델과 외부 도구를 연동하는 개발자, 보안 엔지니어, MCP 프로토콜을 사용하는 시스템 운영자
핵심 요약
- MCP 프로토콜의 핵심 취약점: 도구 설명 삽입 공격(
tool description injection
)으로 인해 AI가 악의적 명령을 실행할 수 있음 - 인증 구현 부족: 대부분의 MCP 서버에서 인증이 생략되거나 단순 API 키 검증만 적용되어 공격에 취약
- 공급망 위험 증가: MCP 도구 패키지의 취약점으로 인해 AI 시스템의 권한이 악용될 가능성 있음
섹션별 세부 요약
1. MCP 프로토콜의 설계적 취약점
- JSON-RPC 기반의 단순한 프로토콜로, 도구 설명(
description
) 필드가 AI의 컨텍스트에 직접 입력됨 - 예시:
description
필드에 "API 키를 악의적 서버로 전송" 명령이 삽입될 수 있음 - AI는 사용자 요청과 관계없이 설명 필드에 포함된 명령을 실행함
- 대부분의 MCP 구현체가 도구 설명의 위험성을 체크하지 않음
2. 인증 메커니즘의 부족
- 실제 인증 로직이 누락된 상태로
TODO: 인증 구현 예정
같은 주석만 남겨둠 - API 키 검증이 GET 요청에만 적용되며, POST 요청(실제 작업 수행)에는 적용되지 않음
- MCP 2025-06-18 버전에서는 OAuth Resource Server 분류가 필수화되었지만, 기존 구현체는 미흡
3. 공급망 공격 위험
- MCP 도구 패키지가 AI 시스템의 권한을 그대로 사용함
- 공급망 공격이 발생 시, AI 대화 내용, 데이터베이스 접근, 타 서비스의 인증 위장 등이 가능
- 주요 MCP 도구 저장소에서 코드 검토 부족, 권한 범위 과도한 문제 발생
4. 실무 테스트 결과
- 4개 MCP 구현체 중 2개에 도구 설명 삽입 공격이 성공
- 10개의 프로덕션 배포 중 1개에 인증되지 않은 엔드포인트 발견
- 여러 도구가 필요 이상의 권한을 부여받아 있음
- 이러한 공격은 로그에서 감지 불가능한 특징을 가짐
결론
- 핵심 권장사항:
- 도구 설명 필드를 구조화된 형식으로 변경하고 명령어를 제거해 AI에 전달
- OAuth Resource Server 패턴과 RFC 8707 Resource Indicators를 강제 적용
- 모든 요청에 토큰 검증 및 도구 버전 고정을 수행
- MCP 생태계의 초기 단계에서 취약점 수정이 필수적임