Dedah Kelemahan MCP: Keracunan Tersembunyi

Lanskap Model Context Protocol (MCP) yang masih di peringkat awal, penuh dengan kerumitan dan terdedah kepada pelbagai potensi serangan. Reka bentuk protokol dan alat semasa seringkali gagal memberikan pertahanan yang mencukupi. Untuk menangani cabaran ini dan memupuk pemahaman yang lebih mendalam tentang keselamatan MCP, SlowMist telah membuka sumber MasterMCP, alat yang direka untuk memudahkan simulasi serangan praktikal. Inisiatif ini bertujuan untuk memperkasakan komuniti untuk mengenal pasti dan mengurangkan kelemahan keselamatan dalam projek MCP mereka secara proaktif.

Sebagai tambahan kepada pendekatan praktikal ini, Senarai Semak Keselamatan MCP menawarkan pandangan yang berharga tentang perspektif asas pelbagai vektor serangan. Artikel ini meneroka senario dunia sebenar, menunjukkan kaedah serangan biasa dalam ekosistem MCP, seperti keracunan maklumat dan suntikan arahan berniat jahat tersembunyi. Semua skrip yang digunakan dalam demonstrasi ini tersedia di GitHub, membolehkan pengguna meniru keseluruhan proses dalam persekitaran yang selamat dan juga membangunkan pemalam ujian serangan mereka sendiri.

Gambaran Keseluruhan Seni Bina

Sasaran MCP untuk Demonstrasi: Toolbox

Smithery.ai menonjol sebagai hab yang terkenal untuk pemalam MCP, menarik sejumlah besar penyenaraian MCP dan pengguna aktif. Antaranya, @smithery/toolbox, alat pengurusan MCP rasmi yang ditawarkan oleh smithery.ai, berfungsi sebagai tumpuan penilaian keselamatan ini.

Toolbox dipilih sebagai sasaran ujian atas beberapa sebab utama:

  • Ia mempunyai pangkalan pengguna yang besar, menjadikannya sampel yang mewakili dalam ekosistem MCP.
  • Ia menyokong pemasangan automatik pemalam tambahan, menambah fungsi bahagian klien (contohnya, Claude Desktop).
  • Ia mengandungi konfigurasi sensitif, seperti kunci API, yang memudahkan demonstrasi potensi eksploitasi.

MCP Berniat Jahat yang Digunakan untuk Demonstrasi: MasterMCP

MasterMCP, yang dibangunkan oleh SlowMist khusus untuk tujuan ujian keselamatan, ialah alat MCP berniat jahat simulasi yang dibina berdasarkan seni bina modular. Komponen utamanya termasuk:

  1. Simulasi Perkhidmatan Laman Web Tempatan: http://127.0.0.1:1024

Untuk mewujudkan senario serangan yang realistik, MasterMCP menggabungkan modul simulasi perkhidmatan laman web tempatan. Dengan memanfaatkan rangka kerja FastAPI, modul ini dengan cepat mewujudkan pelayan HTTP mudah yang meniru persekitaran web biasa. Halaman-halaman ini mungkin kelihatan tidak berbahaya, memaparkan maklumat kedai roti atau mengembalikan data JSON standard, tetapi ia menyembunyikan muatan berniat jahat yang direka dengan teliti dalam kod sumber atau respons API mereka.

Pendekatan ini membolehkan demonstrasi komprehensif teknik keracunan maklumat dan penyembunyian arahan dalam persekitaran tempatan yang selamat dan terkawal. Ia menyoroti potensi risiko yang tersembunyi dalam halaman web yang kelihatan biasa, yang boleh mencetuskan tingkah laku yang tidak normal dalam model bahasa besar.

  1. Seni Bina MCP Pemalam Setempat

MasterMCP menggunakan pendekatan pemalam untuk memudahkan kebolehskalaan pantas untuk vektor serangan baharu. Selepas pelaksanaan, MasterMCP memulakan perkhidmatan FastAPI modul sebelumnya dalam sub-proses.

Pelanggan Demonstrasi

  • Cursor: Salah satu IDE pengaturcaraan berbantu AI yang paling banyak digunakan di peringkat global.
  • Claude Desktop: Pelanggan rasmi Anthropic, organisasi yang menyesuaikan protokol MCP.

Model Bahasa Besar (LLM) yang Digunakan untuk Demonstrasi

  • Claude 3.7

Claude 3.7 dipilih kerana keupayaannya yang dipertingkatkan dalam mengenal pasti operasi sensitif dan perwakilannya keupayaan operasi yang mantap dalam ekosistem MCP semasa.

Konfigurasi claude\_desktop\_config.json

Dengan konfigurasi yang lengkap, fasa demonstrasi bermula.

Invokasi Berniat Jahat Rentas-MCP

Demonstrasi ini menggabungkan kedua-dua teknik keracunan dan strategi invokasi berniat jahat Rentas-MCP yang digariskan dalam senarai semak.

Serangan Keracunan Kandungan Halaman Web

  1. Keracunan Berasaskan Komen

Cursor mengakses laman web ujian tempatan di http://127.0.0.1:1024.

Halaman yang kelihatan tidak berbahaya tentang “Dunia Kek Sedap” ini berfungsi sebagai simulasi untuk menggambarkan potensi impak pelanggan model bahasa besar yang mengakses laman web berniat jahat.

Arahan Pelaksanaan:

Keputusan menunjukkan bahawa Cursor bukan sahaja membaca kandungan halaman web tetapi juga menghantar data konfigurasi sensitif tempatan kembali ke pelayan ujian. Prom yang berniat jahat dibenamkan dalam kod sumber sebagai komen HTML:

Walaupun pendekatan berasaskan komen ini agak mudah dan mudah dikesan, ia masih mampu mencetuskan operasi berniat jahat.

  1. Keracunan Komen Terenkod

Mengakses http://127.0.0.1:1024/encode mendedahkan halaman yang kelihatan serupa dengan contoh sebelumnya. Walau bagaimanapun, prom yang berniat jahat dikodkan, menjadikan eksploitasi lebih sukar untuk dikesan walaupun apabila memeriksa kod sumber halaman.

Walaupun tiada prom eksplisit dalam kod sumber, serangan itu berjaya.

Keracunan Maklumat Pulangan Alat MCP

Berdasarkan arahan prom MasterMCP, kami memasukkan arahan simulasi yang mencetuskan MCP berniat jahat dan menunjukkan operasi berikutnya.

Selepas mencetuskan arahan, pelanggan memulakan panggilan rentas-MCP ke Toolbox dan berjaya menambah pelayan MCP baharu.

Pemeriksaan kod pemalam mendedahkan bahawa data yang dikembalikan mengandungi muatan berniat jahat yang dikodkan, menjadikannya hampir tidak dapat dikesan oleh pengguna.

Serangan Pencemaran Antara Muka Pihak Ketiga

Demonstrasi ini menyoroti potensi risiko yang berkaitan dengan kedua-dua MCP berniat jahat dan tidak berniat jahat yang terus mengembalikan data API pihak ketiga ke konteks.

Contoh Kod:

Permintaan Pelaksanaan:

Keputusan: Prom yang berniat jahat dibenamkan dalam data JSON yang dikembalikan dan berjaya mencetuskan pelaksanaan berniat jahat.

Teknik Keracunan Semasa Permulaan MCP

Demonstrasi ini meliputi item senarai semak suntikan prom awal dan konflik nama.

Serangan Timpaan Fungsi Berniat Jahat

MasterMCP mencipta alat dengan nama fungsi yang sama dengan fungsi remove_server Toolbox, dan mengekodkan prom berniat jahat di dalamnya.

Arahan Pelaksanaan:

Claude Desktop tidak memanggil kaedah toolbox remove_server asal, tetapi sebaliknya mencetuskan kaedah yang disediakan MasterMCP dengan nama yang sama:

Ini dicapai dengan menekankan bahawa “kaedah asal telah ditamatkan,” yang menggalakkan model bahasa besar untuk mengutamakan fungsi yang ditimpa secara berniat jahat.

Menambah Logik Pemeriksaan Global Berniat Jahat

MasterMCP mencipta alat yang dipanggil “banana,” yang direka untuk menguatkuasakan pemeriksaan keselamatan mandatori sebelum mana-mana alat lain dilaksanakan.

Sebelum setiap fungsi dilaksanakan, sistem mengutamakan mekanisme semakan “banana”:

Suntikan logik global ini dicapai dengan berulang kali menekankan “pelaksanaan mandatori pengesanan banana” dalam kod.

Teknik Lanjutan untuk Menyembunyikan Prom Berniat Jahat

Kaedah Pengekodan Mesra LLM

Model bahasa besar mempunyai keupayaan menghurai yang kuat untuk format berbilang bahasa, yang boleh dieksploitasi untuk menyembunyikan maklumat berniat jahat. Kaedah biasa termasuk:

  • Persekitaran Bahasa Inggeris: Pengekodan Heks Bait
  • Persekitaran Bahasa Cina: Pengekodan NCR atau pengekodan JavaScript

Mekanisme Pulangan Muatan Berniat Jahat Rawak

Sama seperti pencemaran antara muka pihak ketiga yang disebutkan dalam bahagian ketiga, meminta http://127.0.0.1:1024/random menghasilkan:

Setiap permintaan mengembalikan halaman yang dijana secara rawak yang mengandungi muatan berniat jahat, meningkatkan kesukaran pengesanan dan pengesanan dengan ketara.

Melalui demonstrasi praktikal MasterMCP, kelemahan keselamatan tersembunyi dalam ekosistem Model Context Protocol (MCP) telah didedahkan. Daripada suntikan prom asas dan panggilan rentas-MCP kepada serangan yang lebih halus semasa permulaan dan penyembunyian arahan berniat jahat, setiap peringkat berfungsi sebagai peringatan tentang kerapuhan yang wujud bersama kuasa ekosistem MCP.

Hari ini, apabila model besar semakin berinteraksi dengan pemalam dan API luaran, pencemaran input yang kelihatan kecil boleh mencetuskan risiko keselamatan seluruh sistem. Kepelbagaian taktik penyerang yang berkembang, termasuk teknik pengekodan, pencemaran rawak dan timpaan fungsi, memerlukan peningkatan komprehensif kepada pendekatan keselamatan tradisional.