---
title: "MCP 도구 포이즈닝: 도구 설명에 숨겨진 지시 · DotsAgent"
description: "Invariant Labs는 MCP 서버가 모델이 읽는 도구 설명에 지시를 숨길 수 있음을 보이고, 도구 섀도잉과 러그 풀 변형 공격을 설명했습니다."
url: https://dotsagent.io/ko/security/incidents/2025-04-mcp-tool-poisoning
---

2025년 4월 1일

# MCP 도구 포이즈닝: 도구 설명에 숨겨진 지시

Invariant Labs는 MCP 서버가 모델이 읽는 도구 설명에 지시를 숨길 수 있음을 보이고, 도구 섀도잉과 러그 풀 변형 공격을 설명했습니다.

## 무슨 일이 있었나

2025년 4월 1일, Invariant Labs는 Model Context Protocol의 도구 포이즈닝에 관한 보안 공지를 발표했습니다. 악성 MCP 서버는 도구 설명 안에 지시를 넣습니다. 사용자는 이 텍스트를 거의 보지 못하지만, 모델은 이를 컨텍스트의 일부로 읽고 지시에 따라 동작할 수 있습니다.

같은 공지에서는 관련 공격 두 가지도 설명했습니다. 도구 섀도잉에서는 한 서버의 설명이 에이전트가 다른 신뢰할 수 있는 서버의 도구를 사용하는 방식을 바꿉니다. 러그 풀 공격에서는 사용자가 서버를 승인한 뒤 서버가 도구 설명을 변경합니다.

## 공격이 성공한 이유

클라이언트는 연결된 모든 서버의 도구 설명을 하나의 컨텍스트에 불러오므로, 모델은 공급업체 문서와 공격자의 지시를 구분할 수 없습니다. 클라이언트가 서버를 한 번만 승인하고 이후에는 확인하지 않으면, 나중에 변경된 내용이 감지되지 않습니다.

## 대응 방법

- MCP 서버에 연결하기 전에 도구 이름만 보지 말고 전체 도구 설명을 확인하세요.
- 서버 버전을 고정하고 도구 설명의 해시를 저장하세요. 해시가 바뀌면 다시 확인하도록 요청하거나 알림을 보내세요.
- 작업에 필요한 서버만 연결하세요. 그래야 한 서버의 텍스트가 다른 서버의 도구 사용을 유도하지 못합니다.
- 데이터를 전송하거나 파일을 수정하는 도구 호출은 승인 절차를 거치게 하세요.

[스킬, 플러그인, MCP 서버 검증](https://dotsagent.io/ko/security#supplyChainVetting)[중요한 작업에는 승인 요구](https://dotsagent.io/ko/security#humanApproval)

- [GitHub MCP의 악성 에이전트 흐름, 공개 이슈를 통해 비공개 저장소 유출](https://dotsagent.io/ko/security/incidents/2025-05-github-mcp-toxic-agent-flow)

[보안 체크리스트 확인하기 →](https://dotsagent.io/ko/security/checklist)

## 출처

1. [invariantlabs.ai](https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks)/blog/mcp-security-notification-tool-poisoning-attacks

AI 에이전트를 만드는 개발자를 위한 독립적인 참고 자료입니다. 여기에 언급된 어떤 업체와도 제휴 관계가 없습니다.

© 2026 DotsAgent · 정보 확인일: 2026년 10월 1일
