Skip to content

Latest commit

 

History

History
154 lines (124 loc) · 27.3 KB

File metadata and controls

154 lines (124 loc) · 27.3 KB

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย MCP 2025

คู่มือฉบับสมบูรณ์นี้นำเสนอแนวทางปฏิบัติที่สำคัญสำหรับการรักษาความปลอดภัยระบบ Model Context Protocol (MCP) โดยอ้างอิงจาก MCP Specification 2025-06-18 และมาตรฐานอุตสาหกรรมในปัจจุบัน แนวทางเหล่านี้ครอบคลุมทั้งความกังวลด้านความปลอดภัยแบบดั้งเดิมและภัยคุกคามเฉพาะทาง AI ที่เกี่ยวข้องกับการใช้งาน MCP

ข้อกำหนดด้านความปลอดภัยที่สำคัญ

การควบคุมความปลอดภัยที่จำเป็น (ข้อกำหนด MUST)

  1. การตรวจสอบโทเค็น: เซิร์ฟเวอร์ MCP ต้องไม่ ยอมรับโทเค็นใด ๆ ที่ไม่ได้ออกให้โดยเฉพาะสำหรับเซิร์ฟเวอร์ MCP นั้น
  2. การตรวจสอบสิทธิ์: เซิร์ฟเวอร์ MCP ที่ใช้การตรวจสอบสิทธิ์ ต้อง ตรวจสอบคำขอขาเข้าทั้งหมด และ ต้องไม่ ใช้เซสชันสำหรับการยืนยันตัวตน
  3. ความยินยอมของผู้ใช้: MCP proxy servers ที่ใช้ client ID แบบคงที่ ต้อง ได้รับความยินยอมจากผู้ใช้อย่างชัดเจนสำหรับ client ที่ลงทะเบียนแบบไดนามิกแต่ละราย
  4. Session ID ที่ปลอดภัย: เซิร์ฟเวอร์ MCP ต้อง ใช้ Session ID ที่ปลอดภัยทางการเข้ารหัสและไม่สามารถคาดเดาได้ ซึ่งสร้างขึ้นด้วยตัวสร้างตัวเลขสุ่มที่ปลอดภัย

แนวทางปฏิบัติหลักด้านความปลอดภัย

1. การตรวจสอบและการกรองข้อมูลขาเข้า

  • การตรวจสอบข้อมูลขาเข้าอย่างครอบคลุม: ตรวจสอบและกรองข้อมูลขาเข้าทั้งหมดเพื่อป้องกันการโจมตีแบบ Injection, ปัญหา Confused Deputy และช่องโหว่ Prompt Injection
  • การบังคับใช้ Schema ของพารามิเตอร์: ใช้การตรวจสอบ JSON schema อย่างเข้มงวดสำหรับพารามิเตอร์เครื่องมือและข้อมูล API ทั้งหมด
  • การกรองเนื้อหา: ใช้ Microsoft Prompt Shields และ Azure Content Safety เพื่อกรองเนื้อหาที่เป็นอันตรายในคำสั่งและการตอบกลับ
  • การกรองผลลัพธ์: ตรวจสอบและกรองผลลัพธ์ของโมเดลทั้งหมดก่อนนำเสนอให้ผู้ใช้หรือระบบปลายทาง

2. ความเป็นเลิศด้านการยืนยันตัวตนและการอนุญาต

  • ผู้ให้บริการยืนยันตัวตนภายนอก: มอบหมายการยืนยันตัวตนให้กับผู้ให้บริการที่เชื่อถือได้ (Microsoft Entra ID, OAuth 2.1 providers) แทนการพัฒนาระบบยืนยันตัวตนเอง
  • สิทธิ์แบบละเอียด: ใช้สิทธิ์ที่ละเอียดอ่อนและเฉพาะเครื่องมือ โดยยึดหลักการสิทธิ์น้อยที่สุด
  • การจัดการวงจรชีวิตโทเค็น: ใช้โทเค็นการเข้าถึงที่มีอายุสั้น พร้อมการหมุนเวียนที่ปลอดภัยและการตรวจสอบ Audience อย่างเหมาะสม
  • การยืนยันตัวตนหลายปัจจัย: บังคับใช้ MFA สำหรับการเข้าถึงระดับผู้ดูแลระบบและการดำเนินการที่สำคัญ

3. โปรโตคอลการสื่อสารที่ปลอดภัย

  • Transport Layer Security: ใช้ HTTPS/TLS 1.3 สำหรับการสื่อสาร MCP ทั้งหมด พร้อมการตรวจสอบใบรับรองที่เหมาะสม
  • การเข้ารหัสแบบ End-to-End: ใช้ชั้นการเข้ารหัสเพิ่มเติมสำหรับข้อมูลที่มีความอ่อนไหวสูงทั้งในระหว่างการส่งและการจัดเก็บ
  • การจัดการใบรับรอง: รักษาวงจรชีวิตใบรับรองด้วยกระบวนการต่ออายุอัตโนมัติ
  • การบังคับใช้เวอร์ชันโปรโตคอล: ใช้เวอร์ชันโปรโตคอล MCP ปัจจุบัน (2025-06-18) พร้อมการเจรจาเวอร์ชันที่เหมาะสม

4. การจำกัดอัตราและการป้องกันทรัพยากรขั้นสูง

  • การจำกัดอัตราหลายชั้น: ใช้การจำกัดอัตราที่ระดับผู้ใช้ เซสชัน เครื่องมือ และทรัพยากรเพื่อป้องกันการใช้งานในทางที่ผิด
  • การจำกัดอัตราแบบปรับตัว: ใช้การจำกัดอัตราที่ขับเคลื่อนด้วย Machine Learning ซึ่งปรับตามรูปแบบการใช้งานและตัวบ่งชี้ภัยคุกคาม
  • การจัดการโควต้าทรัพยากร: กำหนดขีดจำกัดที่เหมาะสมสำหรับทรัพยากรการประมวลผล การใช้หน่วยความจำ และเวลาการดำเนินการ
  • การป้องกัน DDoS: ใช้ระบบป้องกัน DDoS และการวิเคราะห์ทราฟฟิกอย่างครอบคลุม

5. การบันทึกและการตรวจสอบอย่างครอบคลุม

  • การบันทึกการตรวจสอบแบบมีโครงสร้าง: ใช้บันทึกที่มีรายละเอียดและค้นหาได้สำหรับการดำเนินการ MCP ทั้งหมด การใช้งานเครื่องมือ และเหตุการณ์ด้านความปลอดภัย
  • การตรวจสอบความปลอดภัยแบบเรียลไทม์: ใช้ระบบ SIEM พร้อมการตรวจจับความผิดปกติที่ขับเคลื่อนด้วย AI สำหรับงาน MCP
  • การบันทึกที่สอดคล้องกับความเป็นส่วนตัว: บันทึกเหตุการณ์ด้านความปลอดภัยโดยเคารพข้อกำหนดและข้อบังคับด้านความเป็นส่วนตัวของข้อมูล
  • การผสานรวมการตอบสนองต่อเหตุการณ์: เชื่อมโยงระบบบันทึกกับเวิร์กโฟลว์การตอบสนองต่อเหตุการณ์อัตโนมัติ

6. แนวทางปฏิบัติด้านการจัดเก็บข้อมูลที่ปลอดภัยขั้นสูง

  • Hardware Security Modules: ใช้การจัดเก็บคีย์ที่รองรับ HSM (Azure Key Vault, AWS CloudHSM) สำหรับการดำเนินการเข้ารหัสที่สำคัญ
  • การจัดการคีย์เข้ารหัส: ใช้การหมุนเวียนคีย์ การแยกส่วน และการควบคุมการเข้าถึงที่เหมาะสมสำหรับคีย์เข้ารหัส
  • การจัดการความลับ: เก็บ API keys, tokens และ credentials ทั้งหมดในระบบจัดการความลับเฉพาะ
  • การจัดประเภทข้อมูล: จัดประเภทข้อมูลตามระดับความอ่อนไหวและใช้มาตรการป้องกันที่เหมาะสม

7. การจัดการโทเค็นขั้นสูง

  • การป้องกันการส่งผ่านโทเค็น: ห้ามรูปแบบการส่งผ่านโทเค็นที่ข้ามการควบคุมความปลอดภัยโดยเด็ดขาด
  • การตรวจสอบ Audience: ตรวจสอบ Audience claims ของโทเค็นเสมอให้ตรงกับตัวตนของเซิร์ฟเวอร์ MCP ที่ตั้งใจไว้
  • การอนุญาตตาม Claims: ใช้การอนุญาตแบบละเอียดอ่อนตาม Claims ของโทเค็นและคุณลักษณะของผู้ใช้
  • การผูกโทเค็น: ผูกโทเค็นกับเซสชัน ผู้ใช้ หรืออุปกรณ์เฉพาะตามความเหมาะสม

8. การจัดการเซสชันที่ปลอดภัย

  • Session ID แบบเข้ารหัส: สร้าง Session ID โดยใช้ตัวสร้างตัวเลขสุ่มที่ปลอดภัยทางการเข้ารหัส (ไม่ใช่ลำดับที่คาดเดาได้)
  • การผูกกับผู้ใช้เฉพาะ: ผูก Session ID กับข้อมูลเฉพาะผู้ใช้โดยใช้รูปแบบที่ปลอดภัย เช่น <user_id>:<session_id>
  • การควบคุมวงจรชีวิตเซสชัน: ใช้กลไกการหมดอายุ การหมุนเวียน และการยกเลิกเซสชันที่เหมาะสม
  • ส่วนหัวความปลอดภัยของเซสชัน: ใช้ HTTP security headers ที่เหมาะสมสำหรับการป้องกันเซสชัน

9. การควบคุมความปลอดภัยเฉพาะ AI

  • การป้องกัน Prompt Injection: ใช้ Microsoft Prompt Shields พร้อมเทคนิค spotlighting, delimiters และ datamarking
  • การป้องกันการปนเปื้อนเครื่องมือ: ตรวจสอบ metadata ของเครื่องมือ เฝ้าระวังการเปลี่ยนแปลงแบบไดนามิก และตรวจสอบความสมบูรณ์ของเครื่องมือ
  • การตรวจสอบผลลัพธ์ของโมเดล: สแกนผลลัพธ์ของโมเดลเพื่อหาการรั่วไหลของข้อมูล เนื้อหาที่เป็นอันตราย หรือการละเมิดนโยบายความปลอดภัย
  • การป้องกัน Context Window: ใช้การควบคุมเพื่อป้องกันการปนเปื้อนและการโจมตี Context Window

10. ความปลอดภัยในการใช้งานเครื่องมือ

  • การแยกการใช้งาน: รันการใช้งานเครื่องมือในสภาพแวดล้อมที่แยกออกจากกันและมีข้อจำกัดด้านทรัพยากร
  • การแยกสิทธิ์: ใช้งานเครื่องมือด้วยสิทธิ์ที่จำเป็นน้อยที่สุดและบัญชีบริการแยกต่างหาก
  • การแยกเครือข่าย: ใช้การแบ่งส่วนเครือข่ายสำหรับสภาพแวดล้อมการใช้งานเครื่องมือ
  • การตรวจสอบการใช้งาน: เฝ้าระวังการใช้งานเครื่องมือเพื่อหาพฤติกรรมผิดปกติ การใช้ทรัพยากร และการละเมิดความปลอดภัย

11. การตรวจสอบความปลอดภัยอย่างต่อเนื่อง

  • การทดสอบความปลอดภัยอัตโนมัติ: ผสานการทดสอบความปลอดภัยเข้ากับ CI/CD pipelines ด้วยเครื่องมือ เช่น GitHub Advanced Security
  • การจัดการช่องโหว่: สแกนการพึ่งพาทั้งหมดอย่างสม่ำเสมอ รวมถึงโมเดล AI และบริการภายนอก
  • การทดสอบการเจาะระบบ: ดำเนินการประเมินความปลอดภัยเป็นประจำโดยมุ่งเป้าไปที่การใช้งาน MCP โดยเฉพาะ
  • การตรวจสอบโค้ดด้านความปลอดภัย: ใช้การตรวจสอบโค้ดด้านความปลอดภัยเป็นข้อบังคับสำหรับการเปลี่ยนแปลงโค้ดที่เกี่ยวข้องกับ MCP

12. ความปลอดภัยของห่วงโซ่อุปทานสำหรับ AI

  • การตรวจสอบส่วนประกอบ: ตรวจสอบแหล่งที่มา ความสมบูรณ์ และความปลอดภัยของส่วนประกอบ AI ทั้งหมด (โมเดล, embeddings, APIs)
  • การจัดการการพึ่งพา: รักษารายการสินค้าปัจจุบันของซอฟต์แวร์และการพึ่งพา AI ทั้งหมด พร้อมการติดตามช่องโหว่
  • ที่เก็บที่เชื่อถือได้: ใช้แหล่งที่ได้รับการยืนยันและเชื่อถือได้สำหรับโมเดล AI ไลบรารี และเครื่องมือทั้งหมด
  • การตรวจสอบห่วงโซ่อุปทาน: เฝ้าระวังการประนีประนอมในผู้ให้บริการ AI และที่เก็บโมเดลอย่างต่อเนื่อง

รูปแบบความปลอดภัยขั้นสูง

สถาปัตยกรรม Zero Trust สำหรับ MCP

  • ไม่เชื่อถือใคร ตรวจสอบเสมอ: ใช้การตรวจสอบอย่างต่อเนื่องสำหรับผู้เข้าร่วม MCP ทั้งหมด
  • Micro-segmentation: แยกส่วนประกอบ MCP ด้วยการควบคุมเครือข่ายและตัวตนที่ละเอียดอ่อน
  • การเข้าถึงตามเงื่อนไข: ใช้การควบคุมการเข้าถึงตามความเสี่ยงที่ปรับตามบริบทและพฤติกรรม
  • การประเมินความเสี่ยงอย่างต่อเนื่อง: ประเมินท่าทีด้านความปลอดภัยแบบไดนามิกตามตัวบ่งชี้ภัยคุกคามในปัจจุบัน

การใช้งาน AI ที่คำนึงถึงความเป็นส่วนตัว

  • การลดข้อมูล: เปิดเผยข้อมูลที่จำเป็นขั้นต่ำสำหรับการดำเนินการ MCP แต่ละครั้ง
  • ความเป็นส่วนตัวเชิงต่าง: ใช้เทคนิคการประมวลผลข้อมูลที่คำนึงถึงความเป็นส่วนตัว
  • การเข้ารหัสแบบ Homomorphic: ใช้เทคนิคการเข้ารหัสขั้นสูงสำหรับการประมวลผลข้อมูลที่เข้ารหัส
  • Federated Learning: ใช้แนวทางการเรียนรู้แบบกระจายที่รักษาความเป็นส่วนตัวและข้อมูลในพื้นที่

การตอบสนองต่อเหตุการณ์สำหรับระบบ AI

  • ขั้นตอนเฉพาะสำหรับเหตุการณ์ AI: พัฒนาขั้นตอนการตอบสนองต่อเหตุการณ์ที่ปรับให้เหมาะกับภัยคุกคามเฉพาะ AI และ MCP
  • การตอบสนองอัตโนมัติ: ใช้การกักกันและการแก้ไขปัญหาอัตโนมัติสำหรับเหตุการณ์ความปลอดภัย AI ทั่วไป
  • ความสามารถด้านนิติวิทยาศาสตร์: รักษาความพร้อมด้านนิติวิทยาศาสตร์สำหรับการประนีประนอมระบบ AI และการละเมิดข้อมูล
  • ขั้นตอนการกู้คืน: จัดตั้งขั้นตอนสำหรับการกู้คืนจากการปนเปื้อนโมเดล AI การโจมตี Prompt Injection และการประนีประนอมบริการ

ทรัพยากรและมาตรฐานสำหรับการใช้งาน

เอกสาร MCP อย่างเป็นทางการ

  • MCP Specification 2025-06-18 - ข้อกำหนดโปรโตคอล MCP ปัจจุบัน
  • MCP Security Best Practices - แนวทางปฏิบัติด้านความปลอดภัยอย่างเป็นทางการ
  • MCP Authorization Specification - รูปแบบการยืนยันตัวตนและการอนุญาต
  • MCP Transport Security - ข้อกำหนดด้านความปลอดภัยของเลเยอร์การขนส่ง

โซลูชันความปลอดภัยของ Microsoft

  • Microsoft Prompt Shields - การป้องกัน Prompt Injection ขั้นสูง
  • Azure Content Safety - การกรองเนื้อหา AI อย่างครอบคลุม
  • Microsoft Entra ID - การจัดการตัวตนและการเข้าถึงระดับองค์กร
  • Azure Key Vault - การจัดการความลับและข้อมูลประจำตัวอย่างปลอดภัย
  • GitHub Advanced Security - การสแกนความปลอดภัยของซัพพลายเชนและโค้ด

มาตรฐานและกรอบงานด้านความปลอดภัย

  • OAuth 2.1 Security Best Practices - แนวทางปฏิบัติด้านความปลอดภัย OAuth ปัจจุบัน
  • OWASP Top 10 - ความเสี่ยงด้านความปลอดภัยของเว็บแอปพลิเคชัน
  • OWASP Top 10 for LLMs - ความเสี่ยงด้านความปลอดภัยเฉพาะ AI
  • NIST AI Risk Management Framework - การจัดการความเสี่ยง AI อย่างครอบคลุม
  • ISO 27001:2022 - ระบบการจัดการความปลอดภัยของข้อมูล

คู่มือและบทแนะนำการใช้งาน

ทรัพยากรด้านความปลอดภัยขั้นสูง

  • [Microsoft Security Development Lifecycle](https://www.microsoft.com
  • การพัฒนาเครื่องมือ: พัฒนาและแบ่งปันเครื่องมือและไลบรารีด้านความปลอดภัยสำหรับระบบนิเวศ MCP

เอกสารนี้สะท้อนถึงแนวปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ MCP ณ วันที่ 18 สิงหาคม 2025 โดยอ้างอิงจาก MCP Specification 2025-06-18 แนวปฏิบัติด้านความปลอดภัยควรได้รับการตรวจสอบและปรับปรุงอย่างสม่ำเสมอ เนื่องจากโปรโตคอลและภูมิทัศน์ของภัยคุกคามมีการเปลี่ยนแปลงอยู่เสมอ

ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญที่เป็นมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้