MCP(Model Context Protocol) 보안, 당신의 시스템은 안전한가?

by DD
2개월 전
조회수 20

MCP(Model Context Protocol)의 급증하는 채택(Rapid Adoption)과 함께 보안 취약점이 심각한 문제로 대두됨

도구 설명 주입(Tool Description Injection), 인증 실패(Authentication Failures), 공급망 위험(Supply Chain Risks) 등 다양한 공격 벡터(Attack Vector)가 존재함

실제 공격 사례(Real-world Incidents)를 통해 MCP 보안의 중요성을 강조하며, 개발자들의 주의를 촉구함

새로운 MCP 사양(MCP v2025-06-18)에서 보안 강화 시도가 있었지만, 구현의 미흡함(Implementation Gaps)이 문제로 지적됨

도구 설명 주입(Tool Description Injection) 공격의 심각성

MCP 서버는 AI 에이전트가 도구를 이해하도록 자연어로 설명하는데, 이 설명이 공격자가 악성 지침을 숨기는 데 악용될 수 있다. 예를 들어, 악의적인 도구 설명은 AI에게 환경 변수를 유출하도록 지시할 수 있다. 도구 설명 주입(Tool Description Injection)은 사용자 입력 없이 발생하므로 탐지가 어렵다. Tenable의 연구원들은 이 공격의 심각성을 입증했으며, 이는 널리 사용되는 구현에서도 작동한다.

부실한 인증(Authentication) 구현의 문제점

새로운 MCP 사양은 OAuth 2.1을 요구하지만, 많은 MCP 서버에서 인증이 제대로 구현되지 않고 있다. 492개의 MCP 서버가 인증 없이 인터넷에 노출되었으며, OAuth 요구 사항을 권장 사항으로 취급하는 경우도 많다. 인증 실패(Authentication Failures)는 서비스 토큰의 평문 저장, 정적 OAuth 클라이언트 ID 사용, 세션 처리 취약점 등 다양한 형태로 나타난다. 이러한 취약점은 시스템 보안을 심각하게 위협한다.

공급망 및 도구 포이즈닝(Tool Poisoning) 위험

MCP 도구는 npm, PyPI 등을 통해 빠르게 패키지를 축적하지만, AI 시스템의 권한으로 실행된다는 점이 문제다. 공격자는 MCP 라이브러리 및 도구를 게시하거나 손상시킬 수 있다. 공급망 위험(Supply Chain Risks)은 mcp-remote npm 패키지에서 CVE-2025-6514와 같은 취약점으로 나타났으며, 악성 코드가 포함된 업데이트는 AI 에이전트를 즉시 손상시킬 수 있다. 이러한 공격은 전통적인 공격보다 훨씬 더 위험하다.

실제 발생한 보안 사고 사례

수백 개의 서버가 0.0.0.0에 노출되어 명령 실행 취약점을 보였고, Supabase MCP Lethal Trifecta 공격, Asana 데이터 유출, mcp-remote 명령 주입, GitHub MCP를 통한 개인 저장소 접근 등 다양한 보안 사고가 발생했다. 이러한 사고들은 MCP 보안의 중요성을 강조하며, 개발자들이 보안 모범 사례를 준수해야 함을 시사한다. 데이터 격리 아키텍처(Data Isolation Architecture)데이터 미저장 정책(Zero-Retention Policy)과 같은 보안 조치가 필요하다.

MCP Vulnerabilities Every Developer Should Know