MCP, 쓸수록 편하고 쓸수록 위험한 이유

MCP, 쓸수록 편하고 쓸수록 위험한 이유

62%의 취약점 통계가 경고하는 것—편의성이 보안 감각을 마비시킬 때 에이전트는 가장 위험한 공격 벡터가 된다

MCP 보안 Model Context Protocol A2A 프로토콜 프롬프트 인젝션 AI 에이전트 취약점 MCPSense 에이전트 협업 공급망 공격
광고

Cursor에서 MCP 서버 하나 붙이고 나면, 그 전으로 돌아가기가 힘들다. 파일을 직접 읽고, GitHub PR을 요약하고, DB 쿼리를 대화 안에서 날린다. 마찰이 사라지는 경험이다. 그런데 바로 그 '마찰 없음'이 문제의 씨앗이다.

최근 한 개발자가 공개 GitHub 저장소에서 수집한 35개의 MCP 서버와 클라이언트 설정을 직접 스캐너로 분석한 결과를 공개했다. 수치는 명확하다. 62%에서 취약점이 발견됐고, Critical 6건, High 299건, 총 486건이었다. 단순한 샘플 편향으로 넘기기 어려운 규모다.

가장 많이 발견된 취약점은 Path Traversal(262건)이었다. 파일 경로를 그대로 받아서 처리하는 MCP 서버에 ../../../../etc/passwd 같은 경로를 던지면 그냥 읽힌다. 웹 앱에서 이미 20년 전에 해결했어야 할 문제가 MCP 서버에서 반복되고 있다. 더 심각한 건, 이 요청을 보내는 게 사람이 아니라 프롬프트 인젝션으로 조작된 AI 에이전트라는 점이다. 에이전트는 의도가 없다. 지시에 따를 뿐이다.

두 번째 위험은 Cursor 설정 파일 자체가 백도어가 될 수 있다는 것이다. 스캔한 설정 중 6개에서 Critical 취약점이 나왔는데, bash -c에 명령어를 체이닝한 형태로 서버 진입점을 구성한 설정이 공개 저장소에 올라와 있었다. IDE가 설정을 로드하는 순간 RCE가 발동한다. CVE-2025-6514, CVE-2026-30615(Windsurf), CVE-2025-54136(Cursor) 모두 같은 취약점 클래스다. 설정 파일을 fork해서 그대로 쓰는 개발자라면 지금 당장 확인이 필요하다.

세 번째는 공급망 리스크다. 대부분의 MCP 설정은 npx -y @some-package/mcp-server처럼 버전 핀 없이 패키지를 실행한다. -y 플래그는 확인 프롬프트를 건너뛴다. 패키지가 오염되면 해당 서버를 사용하는 모든 환경에 자동으로 전파된다. 의존성 버전을 고정하는 건 선택이 아니라 기본값이어야 한다.

이 보고서가 특별히 강조하는 건 MCP의 위협 모델이 기존 웹 보안과 다르다는 점이다. 웹에서는 사람이 공격자다. MCP에서는 에이전트 자체가 조작의 대상이 된다. 에이전트가 처리하는 모든 데이터—이메일, 이슈, PR 코멘트, 파일 내용—가 잠재적인 프롬프트 인젝션 벡터다. 에이전트에게 도구를 쥐어주는 순간, 그 도구의 입력값은 전부 적대적 입력으로 취급해야 한다.

한편, 이 생태계는 멈추지 않고 더 빠르게 확장되고 있다. Google이 주도해 발표한 A2A(Agent2Agent) 프로토콜은 MCP와 전혀 다른 레이어를 다룬다. MCP가 에이전트에게 도구를 주는 프로토콜이라면, A2A는 에이전트끼리 협업하게 만드는 프로토콜이다. 하나의 에이전트가 요구사항 분석, 코드 작성, 테스트 생성, 코드 리뷰, 배포를 동시에 잘 하길 기대하는 건 한 사람에게 모든 포지션을 맡기는 것과 같다. A2A는 이 문제를 에이전트 분업과 위임으로 푼다.

A2A의 핵심 개념 중 하나는 Agent Card다. /.well-known/agent-card.json이라는 표준 엔드포인트에 에이전트의 정체성, 기능, 스킬, 인증 방식을 선언한다. 코딩 에이전트가 코드 리뷰 에이전트를 디스커버리하고, 지원 라우터가 빌링 에이전트를 찾아 작업을 위임하는 구조다. 매번 커스텀 글루 코드를 짜는 대신, 선언된 계약 위에서 에이전트들이 상호작용한다. 프롬프트 엔지니어링이 아니라 소프트웨어 엔지니어링에 가까운 접근이다.

그런데 여기서 시사점이 하나 더 생긴다. MCP의 보안 문제가 아직 해결되지 않은 상태에서 A2A로 에이전트 간 연결이 확장되면, 취약점의 전파 반경도 함께 넓어진다. 한 에이전트가 프롬프트 인젝션에 노출되면, A2A로 연결된 다른 에이전트까지 오염될 수 있다. 편의성이 증가하는 속도만큼 공격 표면도 넓어지는 구조다.

실제로 MCP를 일상적으로 쓰는 개발자라면 당장 점검할 것들이 있다. MCPSense는 이 문제를 해결하려고 만들어진 오픈소스 스캐너다. mcpsense scan ~/.cursor/mcp.json 한 줄로 현재 Cursor 설정의 취약점을 점검할 수 있다. Tool Poisoning, ASCII 스머글링, SSRF, Path Traversal 등 27가지 체크가 포함된다. CI/CD 파이프라인에 GitHub Action으로 붙여두면 설정 변경마다 자동 검사가 가능하다.

MCP 생태계는 지금 가장 빠른 성장 구간에 있다. 1만 개가 넘는 서버, Claude·Cursor·VS Code Copilot·Gemini의 공식 지원, 그리고 A2A로의 확장. 편의성은 이미 증명됐다. 남은 숙제는 이 편의성을 누리면서도 신뢰할 수 있는 구조를 설계하는 것이다. 버전 핀 고정, 경로 유효성 검사, 설정 파일의 자격증명 분리, 그리고 에이전트 입력 전체를 적대적 입력으로 다루는 습관—이것들이 생산성 도구로서의 MCP를 지속 가능하게 만드는 기반이다.

출처

더 많은 AI 트렌드를 Seedora 앱에서 확인하세요