มาตรฐานปัจจุบัน: เอกสารนี้สะท้อนถึงข้อกำหนดด้านความปลอดภัยของ MCP Specification 2025-06-18 และแนวปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ MCP Security Best Practices อย่างเป็นทางการ
Model Context Protocol (MCP) ได้พัฒนาไปอย่างมากด้วยการควบคุมความปลอดภัยที่เพิ่มขึ้น ซึ่งครอบคลุมทั้งความปลอดภัยของซอฟต์แวร์แบบดั้งเดิมและภัยคุกคามเฉพาะด้าน AI เอกสารนี้ให้การควบคุมความปลอดภัยที่ครอบคลุมสำหรับการใช้งาน MCP อย่างปลอดภัย ณ เดือนสิงหาคม 2025
ห้าม: เซิร์ฟเวอร์ MCP ต้องไม่ ยอมรับโทเค็นใด ๆ ที่ไม่ได้ออกให้โดยเฉพาะสำหรับเซิร์ฟเวอร์ MCP
ห้ามใช้: เซิร์ฟเวอร์ MCP ต้องไม่ ใช้เซสชันสำหรับการตรวจสอบสิทธิ์
จำเป็น: เซิร์ฟเวอร์ MCP ที่ใช้การอนุญาต ต้อง ตรวจสอบคำขอขาเข้าทั้งหมด
ข้อบังคับ: เซิร์ฟเวอร์พร็อกซี MCP ที่ใช้ Client ID แบบคงที่ ต้อง ได้รับความยินยอมจากผู้ใช้สำหรับ Client ที่ลงทะเบียนแบบไดนามิกแต่ละราย
มาตรฐาน MCP ปัจจุบัน (2025-06-18) อนุญาตให้เซิร์ฟเวอร์ MCP มอบหมายการตรวจสอบสิทธิ์ไปยังผู้ให้บริการข้อมูลประจำตัวภายนอก ซึ่งเป็นการปรับปรุงความปลอดภัยที่สำคัญ:
ประโยชน์ด้านความปลอดภัย:
- ลดความเสี่ยงจากการตรวจสอบสิทธิ์แบบกำหนดเอง: ลดพื้นผิวของช่องโหว่โดยหลีกเลี่ยงการใช้งานการตรวจสอบสิทธิ์แบบกำหนดเอง
- ความปลอดภัยระดับองค์กร: ใช้ประโยชน์จากผู้ให้บริการข้อมูลประจำตัวที่มีชื่อเสียง เช่น Microsoft Entra ID พร้อมคุณสมบัติความปลอดภัยขั้นสูง
- การจัดการข้อมูลประจำตัวแบบรวมศูนย์: ทำให้การจัดการวงจรชีวิตผู้ใช้ การควบคุมการเข้าถึง และการตรวจสอบการปฏิบัติตามข้อกำหนดง่ายขึ้น
- การตรวจสอบสิทธิ์หลายปัจจัย: สืบทอดความสามารถ MFA จากผู้ให้บริการข้อมูลประจำตัวระดับองค์กร
- นโยบายการเข้าถึงตามเงื่อนไข: ใช้ประโยชน์จากการควบคุมการเข้าถึงตามความเสี่ยงและการตรวจสอบสิทธิ์แบบปรับเปลี่ยนได้
ข้อกำหนดการใช้งาน:
- การตรวจสอบ Audience ของโทเค็น: ตรวจสอบว่าโทเค็นทั้งหมดออกให้โดยเฉพาะสำหรับเซิร์ฟเวอร์ MCP
- การตรวจสอบ Issuer: ตรวจสอบว่า Issuer ของโทเค็นตรงกับผู้ให้บริการข้อมูลประจำตัวที่คาดหวัง
- การตรวจสอบลายเซ็น: การตรวจสอบความสมบูรณ์ของโทเค็นด้วยวิธีการเข้ารหัส
- การบังคับใช้การหมดอายุ: บังคับใช้อายุการใช้งานของโทเค็นอย่างเข้มงวด
- การตรวจสอบ Scope: ตรวจสอบว่าโทเค็นมีสิทธิ์ที่เหมาะสมสำหรับการดำเนินการที่ร้องขอ
การควบคุมที่สำคัญ:
- การตรวจสอบการอนุญาตอย่างครอบคลุม: การตรวจสอบความปลอดภัยเป็นประจำสำหรับจุดตัดสินใจการอนุญาตทั้งหมด
- ค่าเริ่มต้นที่ปลอดภัย: ปฏิเสธการเข้าถึงเมื่อตรรกะการอนุญาตไม่สามารถตัดสินใจได้อย่างชัดเจน
- ขอบเขตของสิทธิ์: การแยกที่ชัดเจนระหว่างระดับสิทธิ์และการเข้าถึงทรัพยากร
- การบันทึกการตรวจสอบ: การบันทึกการตัดสินใจการอนุญาตทั้งหมดเพื่อการตรวจสอบความปลอดภัย
- การตรวจสอบการเข้าถึงเป็นประจำ: การตรวจสอบสิทธิ์ของผู้ใช้และการกำหนดสิทธิ์เป็นระยะ
การส่งผ่านโทเค็นถูกห้ามอย่างชัดเจน ใน MCP Authorization Specification เนื่องจากความเสี่ยงด้านความปลอดภัยที่สำคัญ:
ความเสี่ยงด้านความปลอดภัยที่ได้รับการแก้ไข:
- การหลีกเลี่ยงการควบคุม: ข้ามการควบคุมความปลอดภัยที่สำคัญ เช่น การจำกัดอัตรา การตรวจสอบคำขอ และการตรวจสอบการรับส่งข้อมูล
- การล่มสลายของความรับผิดชอบ: ทำให้การระบุ Client เป็นไปไม่ได้ ทำให้เส้นทางการตรวจสอบและการสอบสวนเหตุการณ์เสียหาย
- การขโมยข้อมูลผ่านพร็อกซี: เปิดโอกาสให้ผู้ไม่หวังดีใช้เซิร์ฟเวอร์เป็นพร็อกซีสำหรับการเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต
- การละเมิดขอบเขตความไว้วางใจ: ทำลายสมมติฐานความไว้วางใจของบริการปลายทางเกี่ยวกับแหล่งที่มาของโทเค็น
- การเคลื่อนที่ในแนวราบ: โทเค็นที่ถูกบุกรุกในหลายบริการช่วยให้การโจมตีขยายตัวได้กว้างขึ้น
การควบคุมการใช้งาน:
Token Validation Requirements:
audience_validation: MANDATORY
issuer_verification: MANDATORY
signature_check: MANDATORY
expiration_enforcement: MANDATORY
scope_validation: MANDATORY
Token Lifecycle Management:
rotation_frequency: "Short-lived tokens preferred"
secure_storage: "Azure Key Vault or equivalent"
transmission_security: "TLS 1.3 minimum"
replay_protection: "Implemented via nonce/timestamp"แนวปฏิบัติที่ดีที่สุด:
- โทเค็นอายุสั้น: ลดหน้าต่างการเปิดเผยด้วยการหมุนเวียนโทเค็นบ่อยครั้ง
- การออกโทเค็นแบบ Just-in-Time: ออกโทเค็นเฉพาะเมื่อจำเป็นสำหรับการดำเนินการเฉพาะ
- การจัดเก็บอย่างปลอดภัย: ใช้โมดูลความปลอดภัยฮาร์ดแวร์ (HSM) หรือที่เก็บคีย์ที่ปลอดภัย
- การผูกโทเค็น: ผูกโทเค็นกับ Client เซสชัน หรือการดำเนินการเฉพาะเมื่อเป็นไปได้
- การตรวจสอบและแจ้งเตือน: การตรวจจับแบบเรียลไทม์สำหรับการใช้โทเค็นในทางที่ผิดหรือรูปแบบการเข้าถึงโดยไม่ได้รับอนุญาต
ช่องทางการโจมตีที่ได้รับการแก้ไข:
- การแย่งชิงเซสชันผ่านการฉีดคำสั่ง: เหตุการณ์ที่เป็นอันตรายที่ถูกฉีดเข้าไปในสถานะเซสชันที่ใช้ร่วมกัน
- การปลอมแปลงเซสชัน: การใช้ ID เซสชันที่ถูกขโมยโดยไม่ได้รับอนุญาตเพื่อข้ามการตรวจสอบสิทธิ์
- การโจมตีการสตรีมที่สามารถกลับมาใช้งานได้: การใช้ประโยชน์จากการส่งเหตุการณ์ของเซิร์ฟเวอร์ที่กลับมาใช้งานได้เพื่อฉีดเนื้อหาที่เป็นอันตราย
การควบคุมเซสชันที่จำเป็น:
Session ID Generation:
randomness_source: "Cryptographically secure RNG"
entropy_bits: 128 # Minimum recommended
format: "Base64url encoded"
predictability: "MUST be non-deterministic"
Session Binding:
user_binding: "REQUIRED - <user_id>:<session_id>"
additional_identifiers: "Device fingerprint, IP validation"
context_binding: "Request origin, user agent validation"
Session Lifecycle:
expiration: "Configurable timeout policies"
rotation: "After privilege escalation events"
invalidation: "Immediate on security events"
cleanup: "Automated expired session removal"ความปลอดภัยในการรับส่งข้อมูล:
- การบังคับใช้ HTTPS: การสื่อสารเซสชันทั้งหมดผ่าน TLS 1.3
- คุณสมบัติคุกกี้ที่ปลอดภัย: HttpOnly, Secure, SameSite=Strict
- การตรึงใบรับรอง: สำหรับการเชื่อมต่อที่สำคัญเพื่อป้องกันการโจมตี MITM
สำหรับการใช้งานแบบ Stateful:
- สถานะเซสชันที่ใช้ร่วมกันต้องการการป้องกันเพิ่มเติมจากการโจมตีแบบฉีด
- การจัดการเซสชันแบบคิวต้องการการตรวจสอบความสมบูรณ์
- อินสแตนซ์เซิร์ฟเวอร์หลายตัวต้องการการซิงโครไนซ์สถานะเซสชันที่ปลอดภัย
สำหรับการใช้งานแบบ Stateless:
- การจัดการเซสชันแบบโทเค็น เช่น JWT
- การตรวจสอบความสมบูรณ์ของสถานะเซสชันด้วยวิธีการเข้ารหัส
- ลดพื้นผิวการโจมตี แต่ต้องการการตรวจสอบโทเค็นที่แข็งแกร่ง
การผสานรวม Microsoft Prompt Shields:
Detection Mechanisms:
- "Advanced ML-based instruction detection"
- "Contextual analysis of external content"
- "Real-time threat pattern recognition"
Protection Techniques:
- "Spotlighting trusted vs untrusted content"
- "Delimiter systems for content boundaries"
- "Data marking for content source identification"
Integration Points:
- "Azure Content Safety service"
- "Real-time content filtering"
- "Threat intelligence updates"การควบคุมการใช้งาน:
- การตรวจสอบความถูกต้องของข้อมูลนำเข้า: การตรวจสอบและกรองข้อมูลนำเข้าของผู้ใช้อย่างครอบคลุม
- การกำหนดขอบเขตเนื้อหา: การแยกที่ชัดเจนระหว่างคำสั่งของระบบและเนื้อหาของผู้ใช้
- ลำดับชั้นของคำสั่ง: กฎการจัดลำดับความสำคัญที่เหมาะสมสำหรับคำสั่งที่ขัดแย้งกัน
- การตรวจสอบผลลัพธ์: การตรวจจับผลลัพธ์ที่อาจเป็นอันตรายหรือถูกจัดการ
กรอบความปลอดภัยของเครื่องมือ:
Tool Definition Protection:
validation:
- "Schema validation against expected formats"
- "Content analysis for malicious instructions"
- "Parameter injection detection"
- "Hidden instruction identification"
integrity_verification:
- "Cryptographic hashing of tool definitions"
- "Digital signatures for tool packages"
- "Version control with change auditing"
- "Tamper detection mechanisms"
monitoring:
- "Real-time change detection"
- "Behavioral analysis of tool usage"
- "Anomaly detection for execution patterns"
- "Automated alerting for suspicious modifications"การจัดการเครื่องมือแบบไดนามิก:
- กระบวนการอนุมัติ: ความยินยอมของผู้ใช้ที่ชัดเจนสำหรับการแก้ไขเครื่องมือ
- ความสามารถในการย้อนกลับ: ความสามารถในการย้อนกลับไปยังเวอร์ชันเครื่องมือก่อนหน้า
- การตรวจสอบการเปลี่ยนแปลง: ประวัติการแก้ไขคำจำกัดความของเครื่องมืออย่างสมบูรณ์
- การประเมินความเสี่ยง: การประเมินความปลอดภัยของเครื่องมือโดยอัตโนมัติ
การควบคุมการป้องกันการโจมตี:
Client Registration:
static_client_protection:
- "Explicit user consent for dynamic registration"
- "Consent bypass prevention mechanisms"
- "Cookie-based consent validation"
- "Redirect URI strict validation"
authorization_flow:
- "PKCE implementation (OAuth 2.1)"
- "State parameter validation"
- "Authorization code binding"
- "Nonce verification for ID tokens"ข้อกำหนดการใช้งาน:
- การตรวจสอบความยินยอมของผู้ใช้: ห้ามข้ามหน้าจอความยินยอมสำหรับการลงทะเบียน Client แบบไดนามิก
- การตรวจสอบ Redirect URI: การตรวจสอบปลายทางการเปลี่ยนเส้นทางตามรายการที่อนุญาตอย่างเข้มงวด
- การป้องกัน Authorization Code: โค้ดที่มีอายุสั้นพร้อมการบังคับใช้การใช้งานครั้งเดียว
- การตรวจสอบข้อมูลประจำตัวของ Client: การตรวจสอบข้อมูลรับรองและเมตาดาตาของ Client อย่างเข้มงวด
การแยกด้วย Container:
Execution Environment:
containerization: "Docker/Podman with security profiles"
resource_limits:
cpu: "Configurable CPU quotas"
memory: "Memory usage restrictions"
disk: "Storage access limitations"
network: "Network policy enforcement"
privilege_restrictions:
user_context: "Non-root execution mandatory"
capability_dropping: "Remove unnecessary Linux capabilities"
syscall_filtering: "Seccomp profiles for syscall restriction"
filesystem: "Read-only root with minimal writable areas"การแยกกระบวนการ:
- บริบทกระบวนการแยกต่างหาก: การดำเนินการเครื่องมือแต่ละครั้งในพื้นที่กระบวนการที่แยกออกจากกัน
- การสื่อสารระหว่างกระบวนการ: กลไก IPC ที่ปลอดภัยพร้อมการตรวจสอบ
- การตรวจสอบกระบวนการ: การวิเคราะห์พฤติกรรมระหว่างการทำงานและการตรวจจับความผิดปกติ
- การบังคับใช้ทรัพยากร: ขีดจำกัดที่เข้มงวดสำหรับ CPU หน่วยความจำ และการดำเนินการ I/O
การจัดการสิทธิ์:
Access Control:
file_system:
- "Minimal required directory access"
- "Read-only access where possible"
- "Temporary file cleanup automation"
network_access:
- "Explicit allowlist for external connections"
- "DNS resolution restrictions"
- "Port access limitations"
- "SSL/TLS certificate validation"
system_resources:
- "No administrative privilege elevation"
- "Limited system call access"
- "No hardware device access"
- "Restricted environment variable access"ความปลอดภัยของส่วนประกอบอย่างครอบคลุม:
Software Dependencies:
scanning:
- "Automated vulnerability scanning (GitHub Advanced Security)"
- "License compliance verification"
- "Known vulnerability database checks"
- "Malware detection and analysis"
verification:
- "Package signature verification"
- "Checksum validation"
- "Provenance attestation"
- "Software Bill of Materials (SBOM)"
AI Components:
model_verification:
- "Model provenance validation"
- "Training data source verification"
- "Model behavior testing"
- "Adversarial robustness assessment"
service_validation:
- "Third-party API security assessment"
- "Service level agreement review"
- "Data handling compliance verification"
- "Incident response capability evaluation"การตรวจจับภัยคุกคามในห่วงโซ่อุปทาน:
- การตรวจสอบสุขภาพของการพึ่งพา: การประเมินความปลอดภัยของการพึ่งพาทั้งหมดอย่างต่อเนื่อง
- การผสานรวมข้อมูลภัยคุกคาม: การอัปเดตแบบเรียลไทม์เกี่ยวกับภัยคุกคามในห่วงโซ่อุปทานที่เกิดขึ้นใหม่
- การวิเคราะห์พฤติกรรม: การตรวจจับพฤติกรรมที่ผิดปกติในส่วนประกอบภายนอก
- การตอบสนองอัตโนมัติ: การควบคุมส่วนประกอบที่ถูกบุกรุกทันที
กลยุทธ์การบันทึกอย่างครอบคลุม:
Authentication Events:
- "All authentication attempts (success/failure)"
- "Token issuance and validation events"
- "Session creation, modification, termination"
- "Authorization decisions and policy evaluations"
Tool Execution:
- "Tool invocation details and parameters"
- "Execution duration and resource usage"
- "Output generation and content analysis"
- "Error conditions and exception handling"
Security Events:
- "Potential prompt injection attempts"
- "Tool poisoning detection events"
- "Session hijacking indicators"
- "Unusual access patterns and anomalies"การวิเคราะห์พฤติกรรม:
- การวิเคราะห์พฤติกรรมผู้ใช้ (UBA): การตรวจจับรูปแบบการเข้าถึงผู้ใช้ที่ผิดปกติ
- การวิเคราะห์พฤติกรรมของเอนทิตี (EBA): การตรวจสอบพฤติกรรมของเซิร์ฟเวอร์ MCP และเครื่องมือ
- การตรวจจับความผิดปกติด้วย Machine Learning: การระบุภัยคุกคามด้านความปลอดภัยด้วย AI
- การเชื่อมโยงข้อมูลภัยคุกคาม: การจับคู่กิจกรรมที่สังเกตได้กับรูปแบบการโจมตีที่ทราบ
การดำเนินการตอบสนองทันที:
Threat Containment:
session_management:
- "Immediate session termination"
- "Account lockout procedures"
- "Access privilege revocation"
system_isolation:
- "Network segmentation activation"
- "Service isolation protocols"
- "Communication channel restriction"
Recovery Procedures:
credential_rotation:
- "Automated token refresh"
- "API key regeneration"
- "Certificate renewal"
system_restoration:
- "Clean state restoration"
- "Configuration rollback"
- "Service restart procedures"การสนับสนุนการสอบสวน:
- การรักษาเส้นทางการตรวจสอบ: การบันทึกที่ไม่เปลี่ยนแปลงพร้อมความสมบูรณ์ของการเข้ารหัส
- การรวบรวมหลักฐาน: การรวบรวมสิ่งประดิษฐ์ด้านความปลอดภัยที่เกี่ยวข้องโดยอัตโนมัติ
- การสร้างลำดับเหตุการณ์: ลำดับเหตุการณ์โดยละเอียดที่นำไปสู่เหตุการณ์ด้านความปลอดภัย
- การประเมินผลกระทบ: การประเมินขอบเขตของการบุกรุกและการเปิดเผยข้อมูล
- หลายชั้นของความปลอดภัย: ไม่มีจุดล้มเหลวเพียงจุดเดียวในสถาปัตยกรรมความปลอดภัย
- การควบคุมที่ซ้ำซ้อน: มาตรการความปลอดภัยที่ทับซ้อนกันสำหรับฟังก์ชันที่สำคัญ
- กลไก Fail-Safe: ค่าเริ่มต้นที่ปลอดภัยเมื่อระบบพบข้อผิดพลาดหรือการโจมตี
- ไม่เชื่อถือใคร ตรวจสอบเสมอ: การตรวจสอบอย่างต่อเนื่องของเอนทิตีและคำขอทั้งหมด
- หลักการสิทธิ์ขั้นต่ำ: สิทธิ์การเข้าถึงขั้นต่ำสำหรับส่วนประกอบทั้งหมด
- การแบ่งส่วนย่อย: การควบคุมเครือข่ายและการเข้าถึงในระดับละเอียด
- การปรับตัวต่อภูมิทัศน์ภัยคุกคาม: การอัปเดตเป็นประจำเพื่อจัดการกับภัยคุกคามที่เกิดขึ้นใหม่
- ประสิทธิภาพของการควบคุมความปลอดภัย: การประเมินและปรับปรุงการควบคุมอย่างต่อเนื่อง
- การปฏิบัติตามข้อกำหนดของข้อกำหนด: การปรับให้สอดคล้องกับมาตรฐานความปลอดภัย MCP ที่พัฒนาอย่างต่อ
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญที่เป็นมนุษย์ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้