"S" ใน MCP หมายถึงความปลอดภัย
(elenacross7.medium.com)- MCP เป็นโปรโตคอลมาตรฐานที่เชื่อม LLM เข้ากับเครื่องมือ แต่โดยพื้นฐานแล้วยังไม่ได้ฝังความปลอดภัยมาให้
- มีช่องโหว่ด้านความปลอดภัยหลายแบบ เช่น การแทรกคำสั่ง, การวางยาพิษเครื่องมือ, การบิดแก้คำจำกัดความ
- MCP ไม่มีฟังก์ชันยืนยันตัวตน, การเข้ารหัส, หรือการตรวจสอบความถูกต้องสมบูรณ์ จึงเป็นโครงสร้างที่ยากจะไว้วางใจ
- ในตอนนี้ การใช้เครื่องมืออย่าง ScanMCP เพื่อให้มองเห็นภาพรวมและควบคุมได้ น่าจะเป็นแนวทางรับมือที่ดีที่สุด
MCP คืออะไร และทำไมจึงสำคัญ
- MCP ย่อมาจาก Model Context Protocol เป็นมาตรฐานใหม่ของวิธีที่ LLM อย่าง Claude, GPT และ Cursor ใช้เชื่อมรวมกับเครื่องมือและข้อมูล
- มันมอบวิธีการเชื่อมต่อแบบมาตรฐานจนถูกเรียกว่าเป็น "USB-C สำหรับ AI agent"
- ผ่าน MCP, AI agent สามารถทำสิ่งต่อไปนี้ได้
- เชื่อมต่อกับเครื่องมือผ่าน API ที่เป็นมาตรฐาน
- รักษาสถานะของเซสชัน
- รันคำสั่ง (ซึ่งอาจถูกรันได้อย่างอิสระมากเกินไป)
- แชร์คอนเท็กซ์ข้ามเวิร์กโฟลว์
- แต่โดยพื้นฐานแล้ว ยังไม่ได้ฝังความปลอดภัยมาให้
- จึงมีความเสี่ยงที่จะเปิด side channel ให้เข้าถึงระบบได้โดยที่ผู้ใช้ไม่รู้ตัว
ช่องโหว่ด้านความปลอดภัยหลัก ๆ ที่เกิดขึ้นใน MCP
-
ช่องโหว่จากการแทรกคำสั่ง (งานวิจัยของ Equixly)
- ณ ปี 2025 ก็ยังเกิด การรันโค้ดระยะไกล (RCE) ผ่านการแทรกคำสั่ง อยู่
- จากการตรวจสอบของ Equixly พบว่ากว่า 43% ของการติดตั้งใช้งาน MCP server ทั้งหมดใช้การเรียก shell ที่ไม่ปลอดภัย
- ผู้โจมตีสามารถใส่คำสั่ง shell ลงในค่าที่ป้อนให้เครื่องมือ แล้วใช้ agent ที่เชื่อถือได้เป็นตัวรันโค้ดจากระยะไกล
-
การวางยาพิษเครื่องมือ (Tool Poisoning, Invariant Labs)
- เป็นวิธีที่ผู้โจมตี ซ่อนคำสั่งอันตรายไว้ในคำอธิบายของเครื่องมือ
- ผู้ใช้มองไม่เห็น แต่ AI จะรับรู้และทำตามคำสั่งนั้นตรงตามนั้น
- เครื่องมือที่ดูเหมือนแค่คำนวณทางคณิตศาสตร์ธรรมดา อาจจริง ๆ แล้วอ่าน SSH key หรือไฟล์ตั้งค่าที่อ่อนไหวจากระบบผู้ใช้ได้
-
การนิยามเครื่องมือใหม่แบบเงียบ ๆ (Rug Pull)
- เครื่องมือสามารถเปลี่ยนคำนิยามของตัวเองได้หลังการติดตั้ง
- เครื่องมือที่ดูปกติใน Day 1 อาจกลายเป็นเครื่องมือขโมย API key ของผู้โจมตีใน Day 7
- นี่คือรูปแบบใหม่ของ ปัญหาความปลอดภัยในห่วงโซ่อุปทาน ที่เกิดขึ้นภายใน LLM
-
การทำให้เครื่องมือจากเซิร์ฟเวอร์อื่นถูกกลบเงา
- เมื่อ MCP server หลายตัวเชื่อมต่อกับ agent เดียวกัน เซิร์ฟเวอร์อันตรายอาจ ดักหรือ override การเรียกใช้จากเซิร์ฟเวอร์ที่เชื่อถือได้
- ผลลัพธ์คืออาจเกิดปัญหาต่อไปนี้
- ส่งอีเมลไปยังผู้โจมตี ทั้งที่ทำเหมือนส่งให้ผู้ใช้
- ฝังตรรกะที่ซ่อนอยู่เข้าไปในเครื่องมือ
- ทำข้อมูลรั่วไหลในรูปแบบเข้ารหัส
ทำไม MCP จึงยังไม่ปลอดภัย
- MCP ให้ความสำคัญกับสิ่งต่อไปนี้
- ✅ การเชื่อมต่อรวมระบบที่ง่าย
- ✅ อินเทอร์เฟซที่เป็นหนึ่งเดียว
- แต่ยังขาดสิ่งต่อไปนี้
- ❌ ไม่มีมาตรฐานการยืนยันตัวตน
- ❌ ไม่มีการเข้ารหัสคอนเท็กซ์
- ❌ ไม่สามารถตรวจสอบความถูกต้องสมบูรณ์ของเครื่องมือได้
- ผู้ใช้ไม่สามารถรู้ได้ว่า agent ใช้คำอธิบายใดจริง ๆ ในการเลือกใช้เครื่องมือ
แนวทางรับมือด้านความปลอดภัยที่นักพัฒนาและผู้ดูแลแพลตฟอร์มทำได้
-
นักพัฒนา
- ต้องตรวจสอบค่าป้อนเข้า
- ตรึงเวอร์ชัน (pinning) ของ MCP server และเครื่องมือ
- ลบข้อมูลอ่อนไหวออกจากคำอธิบายของเครื่องมือ
-
ผู้ดูแลแพลตฟอร์ม
- แสดง metadata ของเครื่องมือทั้งหมดให้ผู้ใช้เห็น
- ใช้ integrity hash เมื่อมีการอัปเดตเซิร์ฟเวอร์
- บังคับใช้ความปลอดภัยของเซสชัน
-
ผู้ใช้
- ห้ามเชื่อมต่อกับ MCP server ที่ไม่น่าเชื่อถือ
- เฝ้าดู session log เหมือนกับที่เฝ้าระวังระบบ production
- ติดตามการอัปเดตเครื่องมือที่น่าสงสัย
ข้อเสนอแนวคิดของ ScanMCP.com
- ScanMCP ถูกเสนอให้เป็นสแกนเนอร์และแดชบอร์ดที่ทำสิ่งต่อไปนี้
- ตรวจสอบเครื่องมือ MCP ที่เชื่อมต่ออยู่
- ตรวจจับความเสี่ยงอย่าง RCE, การวางยาพิษเครื่องมือ, การรั่วไหลของเซสชัน
- เปรียบเทียบและแสดงภาพข้อมูลที่ผู้ใช้เห็น vs. ข้อมูลที่ agent รับรู้
- อาจมีประโยชน์ต่อผู้ใช้กลุ่มต่อไปนี้
- ทีมความปลอดภัยของแพลตฟอร์ม agent
- สตาร์ตอัปด้านโครงสร้างพื้นฐาน AI
- นักพัฒนาอิสระที่ต้องการสร้างเครื่องมือบนฐานความเชื่อถือ
ความคิดส่งท้าย
MCP เป็นโปรโตคอลที่ทรงพลัง แต่กำลังถูกนำไปใช้เร็วเกินไปทั้งที่ความพร้อมด้านความปลอดภัยระดับ API ยังไม่สุกงอม
จนกว่าจะมีแนวทาง Secure-by-default เครื่องมืออย่าง ScanMCP.com คือวิธีที่ดีที่สุดในการสร้างการมองเห็นและการควบคุม
- สรุป: "S" ใน MCP ไม่ได้หมายถึง Security แต่ มันควรจะเป็นเช่นนั้น
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
บทความนี้เน้นย้ำและอ้างอิงสถานการณ์การโจมตีที่อธิบายไว้ในบันทึกด้านความปลอดภัยที่ Invariant Labs เผยแพร่เมื่อไม่กี่วันก่อน (tool poisoning, shadowing, MCP rug pull) ฉันเป็นผู้เขียนโพสต์บล็อกดังกล่าว
การโจมตีเหล่านี้ส่วนใหญ่เป็นอีกตัวอย่างหนึ่งของการอยู่ผิดด้านของ airlock พวกมันไม่ได้ข้ามขอบเขตสิทธิ์ และเป็นเพียงการทำสิ่งที่ทำได้อยู่แล้วด้วยวิธีที่แปลกออกไป
โจทย์คือการออกแบบสิ่งที่ดีกว่านี้ โดย:
บทความดี แต่สงสัยว่าทั้งหมดนี้ถูกสร้างโดย AI หรือเปล่า
O หมายถึง Observability สัปดาห์นี้ฉันจมลึกกับการสำรวจและเขียน MCP server อยู่
ใช่ ฉันก็คิดเหมือนกัน แม้ว่าตอนเผยแพร่บันทึกนั้นฉันจะไม่ได้ลงลึกมากนัก
ต่อให้ซอฟต์แวร์ที่ใช้อยู่ไม่ได้เป็นอันตรายและถูก implement อย่างปลอดภัย แล้วจะตรวจสอบได้อย่างไรว่ามันถูกใช้งานในแบบที่เราต้องการ?
มากกว่า 43% ของ MCP server implementation ที่ Equixly ทดสอบมีการเรียก shell ที่ไม่ปลอดภัย
สงสัยว่า MCP คืออะไร ฉันพยายามอ่านเอกสารหลายครั้งแล้ว แต่ก็ยังไม่เข้าใจว่ามันแก้ปัญหาอะไร โดยเฉพาะอะไรที่พิเศษเกี่ยวกับ AI agent จนใช้กับ deterministic agent ที่มีมาหลายสิบปีไม่ได้
ฉันเคยคิดว่าจุดประสงค์ทั้งหมดของ MCP คือให้ Anthropic แอบฟัง prompt กับ output แล้วเพิ่มข้อมูลฝึกให้ได้มากที่สุด นี่เป็นครั้งแรกที่ฉันรู้ว่ามันเป็น middleware สำหรับโมเดล AI ทั้งหมด