dotsagent.io
ภาษา:ไทย

การวางยาพิษเครื่องมือ MCP: ซ่อนคำสั่งไว้ในคำอธิบายเครื่องมือ

Invariant Labs แสดงให้เห็นว่า MCP server สามารถซ่อนคำสั่งไว้ในคำอธิบายเครื่องมือที่โมเดลอ่าน พร้อมอธิบายรูปแบบการโจมตี tool shadowing และ rug pull

เกิดอะไรขึ้น

เมื่อ 1 April 2025 Invariant Labs เผยแพร่ประกาศด้านความปลอดภัยเกี่ยวกับการวางยาพิษเครื่องมือใน Model Context Protocol MCP server ที่เป็นอันตรายจะใส่คำสั่งไว้ในคำอธิบายของเครื่องมือ ผู้ใช้แทบไม่เห็นข้อความดังกล่าว แต่โมเดลจะอ่านเป็นส่วนหนึ่งของบริบทและอาจทำตามคำสั่งนั้น

ประกาศเดียวกันยังอธิบายการโจมตีที่เกี่ยวข้องอีกสองรูปแบบ ในการโจมตีแบบ tool shadowing คำอธิบายจาก server หนึ่งจะเปลี่ยนวิธีที่ agent ใช้เครื่องมือจาก server อื่นที่เชื่อถือได้ ส่วนการโจมตีแบบ rug pull คือ server เปลี่ยนคำอธิบายเครื่องมือหลังจากผู้ใช้อนุมัติไปแล้ว

เหตุใดจึงโจมตีสำเร็จ

Client จะโหลดคำอธิบายเครื่องมือจากทุก server ที่เชื่อมต่อไว้ลงในบริบทเดียวกัน และโมเดลไม่สามารถแยกเอกสารจากผู้ให้บริการออกจากคำสั่งของผู้โจมตีได้ หาก client อนุมัติ server เพียงครั้งเดียวและไม่ตรวจสอบอีก การเปลี่ยนแปลงภายหลังจะไม่ถูกสังเกตเห็น

สิ่งที่ควรทำ

  • อ่านคำอธิบายเครื่องมือของ MCP server ให้ครบก่อนเชื่อมต่อ ไม่ใช่ดูเพียงชื่อเครื่องมือ
  • กำหนดเวอร์ชันของ server ให้ตายตัวและทำ hash ของคำอธิบายเครื่องมือ เมื่อ hash เปลี่ยน ให้ถามยืนยันอีกครั้งหรือแจ้งเตือน
  • เชื่อมต่อเฉพาะ server ที่จำเป็นต่องาน เพื่อไม่ให้ข้อความจาก server หนึ่งชี้นำการใช้เครื่องมือของอีก server
  • กำหนดให้ต้องอนุมัติก่อนเรียกใช้เครื่องมือที่ส่งข้อมูลหรือแก้ไขไฟล์

ตรวจสอบ skill, plugin และ MCP serverกำหนดให้อนุมัติก่อนการกระทำที่มีผลสำคัญ

ทำตามรายการตรวจสอบความปลอดภัย →

แหล่งที่มา

  1. invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks