ทำไม readOnlyHint ของ MCP จึงไม่พอป้องกันคำสั่งลบข้อมูล
เจาะลึกปัญหาคำใบ้ readOnlyHint และ destructiveHint ใน Model Context Protocol ที่พบว่า 69% ของเครื่องมือลบข้อมูลไม่มีการใส่ป้ายกำกับ

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- โปรโตคอล MCP ใช้คำใบ้อย่าง readOnlyHint และ destructiveHint อธิบายตัวเอง
- พบปัญหาใหญ่คือคำใบ้มักขาดหายไปหรือให้ข้อมูลที่ผิดพลาดไม่ตรงกับความเป็นจริง
- เครื่องมือใน Docker MCP Catalog กว่า 69% ที่มีฤทธิ์ทำลายล้างกลับไม่มีการใส่คำใบ้ใดๆ
- ทางออกที่ปลอดภัยกว่าคือการควบคุมนโยบายจากฝั่งเกตเวย์ที่คุณควบคุมเอง
ระบบ Model Context Protocol หรือ MCP เปิดโอกาสให้เครื่องมือต่างๆ สามารถอธิบายคุณสมบัติของตัวเองได้ผ่านคำใบ้ โดยคำสั่ง readOnlyHint: true หมายถึงการอ่านข้อมูลเท่านั้น ส่วน destructiveHint: true หมายถึงการลบหรือเขียนทับข้อมูล ซึ่งช่วยให้ไคลเอนต์สามารถตัดสินใจได้ว่าเมื่อไหร่ควรขออนุญาตมนุษย์ก่อนรันเครื่องมือ
ทว่าในการใช้งานจริงกลับพบปัญหาใหญ่สองประการที่ทำให้แนวทางนี้มีความเสี่ยงสูง ประการแรกคือคำใบ้มักจะหายไปเฉยๆ จากการตรวจสอบเครื่องมือ MCP ประมาณ 20,000 รายการสำหรับรายงานเรื่อง MCP tool annotations พบว่าใน Docker's MCP Catalog มีเครื่องมือถึง 69% ที่ทำหน้าที่ลบหรือเขียนทับข้อมูลแต่กลับไม่มีการใส่คำใบ้ใดๆ เลย
ประการที่สองคือคำใบ้อาจแสดงผลผิดพลาดได้อย่างไม่น่าเชื่อ มีเซิร์ฟเวอร์แห่งหนึ่งในแคตตาล็อกดังกล่าวที่ทำเครื่องมือลบข้อมูลถึง 15 ตัวให้กลายเป็นแบบอ่านอย่างเดียว รวมถึงคำสั่ง delete ALL integrations ด้วย เนื่องจากตัวเครื่องมือไม่เคยตั้งค่าคำใบ้ ทำให้เฟรมเวิร์กใส่ค่าเริ่มต้นเป็น readOnlyHint: true ให้ทุกตัวโดยอัตโนมัติ แม้ผู้พัฒนาจะแก้ไขภายในหนึ่งสัปดาห์ แต่แคตตาล็อกยังคงให้บริการเวอร์ชันเก่าอยู่ถึงสามเดือน
"For trust & safety and security, clients MUST consider tool annotations to be untrusted unless they come from trusted servers."
ข้อกำหนดอย่างเป็นทางการของ MCP specification
จากข้อกำหนดของ MCP จึงระบุชัดเจนว่าเพื่อความปลอดภัยและความน่าเชื่อถือ ไคลเอนต์ต้องถือว่าคำอธิบายเหล่านี้ไม่น่าเชื่อถือเว้นแต่จะมาจากเซิร์ฟเวอร์ที่ไว้วางใจได้จริง ดังนั้นการตัดสินใจว่าเอเจนต์จะทำอะไรได้บ้างจึงไม่ควรฝากไว้ที่ตัวเครื่องมือ แต่อยู่ที่ระบบควบคุมที่คุณกำหนดเอง

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ในมุมมองด้านความปลอดภัยของปัญญาประดิษฐ์ การพึ่งพาคำอธิบายตัวเอง (Self-reporting) ของเครื่องมือภายนอกเปรียบเสมือนการปล่อยให้ผู้ต้องสงสัยเซ็นรับรองความบริสุทธิ์ของตนเอง การย้ายอำนาจตัดสินใจมาไว้ที่เกตเวย์ส่วนกลาง (Gateway) พร้อมระบบกำหนดนโยบาย (Policy enforcement) จึงเป็นสถาปัตยกรรมที่จำเป็นในการป้องกันความเสียหายร้ายแรงจากการเรียกใช้เครื่องมืออัตโนมัติของ AI agents
การทดลองอย่างรวดเร็วผ่านชุดคำสั่ง DVARA MCP quickstart จะช่วยให้คุณจำลองการทำงานผ่านเกตเวย์ที่ช่วยคัดกรองทุกคำสั่ง โดยใช้คำสั่งโคลนโปรเจกต์จาก GitHub และรันผ่าน Docker เพื่อตั้งค่านโยบายห้ามใช้คำสั่ง delete_customer ไม่ให้ทำงานในเวิร์กสเปซนั้นอย่างเด็ดขาด ไม่ว่าเครื่องมือจะแอบอ้างสถานะใดก็ตาม
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น