Penyuntikan dan Manipulasi Tersembunyi dalam Sistem MCP: Demonstrasi Praktis
MCP (Model Context Protocol) sistem ini saat ini berada dalam tahap perkembangan awal, lingkungan keseluruhan cukup kacau, berbagai cara serangan potensial bermunculan, dan desain protokol serta alat yang ada sulit untuk melakukan pertahanan yang efektif. Untuk membantu komunitas lebih baik memahami dan meningkatkan keamanan MCP, Slow Mist secara khusus mengopen-source alat MasterMCP, berharap melalui latihan serangan praktis, dapat membantu menemukan potensi celah keamanan dalam desain produk, sehingga secara bertahap memperkuat proyek MCP.
Artikel ini akan memandu Anda dalam demonstrasi praktis mengenai metode serangan umum dalam sistem MCP, seperti pencemaran informasi, penyembunyian instruksi jahat, dan kasus nyata lainnya. Semua skrip demonstrasi juga akan dibuka sumbernya, sehingga Anda dapat mereproduksi seluruh proses di lingkungan yang aman, bahkan mengembangkan plugin pengujian serangan Anda sendiri berdasarkan skrip-skrip ini.
Tinjauan Arsitektur Keseluruhan
Target Serangan MCP: Toolbox
smithery.ai adalah salah satu situs plugin MCP yang paling populer saat ini, mengumpulkan banyak daftar MCP dan pengguna aktif. Di antaranya, @smithery/toolbox adalah alat manajemen MCP resmi yang diluncurkan oleh smithery.ai.
Pilih Toolbox sebagai target pengujian, terutama berdasarkan poin-poin berikut:
Basis pengguna yang besar, memiliki representativitas
Mendukung pemasangan otomatis plugin lain, melengkapi beberapa fungsi klien ( seperti Claude Desktop )
Termasuk konfigurasi sensitif ( seperti API Key ), memudahkan untuk melakukan demonstrasi
Demo penggunaan MCP jahat: MasterMCP
MasterMCP adalah alat simulasi MCP jahat yang dirancang khusus oleh Slow Fog untuk pengujian keamanan, menggunakan desain arsitektur plug-in, dan mencakup modul kunci berikut:
Simulasi layanan situs web lokal:
Untuk lebih realistis dalam mereproduksi skenario serangan, MasterMCP dilengkapi dengan modul simulasi layanan situs web lokal. Modul ini dengan cepat membangun server HTTP sederhana menggunakan kerangka kerja FastAPI, mensimulasikan lingkungan halaman web yang umum. Halaman-halaman ini tampak normal di permukaan, seperti menampilkan informasi toko kue atau mengembalikan data JSON standar, tetapi sebenarnya menyimpan muatan berbahaya yang dirancang dengan cermat dalam kode sumber halaman atau respons antarmuka.
Arsitektur MCP yang Dapat Dipasang Secara Lokal
MasterMCP menggunakan metode plug-in untuk memperluas, memudahkan penambahan metode serangan baru dengan cepat di kemudian hari. Setelah dijalankan, MasterMCP akan menjalankan layanan FastAPI dari modul sebelumnya di proses anak. ( Di sini sudah ada potensi risiko keamanan - plugin lokal dapat memulai proses anak yang tidak diharapkan oleh MCP ).
Klien Demo
Cursor: Salah satu IDE pemrograman yang didukung AI paling populer di dunia saat ini
Claude Desktop:Anthropic(MCP protocol kustom) klien resmi
model besar yang digunakan untuk demonstrasi
Claude 3.7
Pilih versi Claude 3.7, karena telah ada perbaikan dalam pengenalan operasi sensitif, sekaligus mewakili kemampuan operasi yang cukup kuat dalam ekosistem MCP saat ini.
Invokasi Jahat Cross-MCP
Demonstrasi ini mencakup dua konten: pemotongan dan pemanggilan jahat Cross-MCP.
serangan pencemaran konten web
Poisoning Tipe Komentar
Cursor mengakses situs web pengujian lokal.
Ini adalah halaman "Delicious Cake World" yang tampaknya tidak berbahaya, melalui eksperimen ini, kami mensimulasikan dampak yang ditimbulkan oleh klien model besar yang mengakses situs web berbahaya.
Eksekusi perintah:
Ambil konten dari
Hasil menunjukkan bahwa Cursor tidak hanya membaca konten halaman web, tetapi juga mengirimkan data konfigurasi sensitif lokal kembali ke server pengujian. Dalam kode sumber, kata-kata yang berbahaya disisipkan dalam bentuk komentar HTML.
Meskipun cara penjelasannya cukup langsung dan mudah dikenali, namun sudah dapat memicu tindakan jahat.
Penyuntikan komentar berbasis kode
Kunjungi halaman /encode, ini adalah halaman web yang terlihat mirip dengan contoh sebelumnya, tetapi kata-kata yang berbahaya telah dienkode, membuat ekspresi racun lebih tersembunyi, bahkan sulit untuk mendeteksi secara langsung meskipun mengakses kode sumber halaman web.
Meskipun kode sumber tidak mengandung kata kunci yang jelas, serangan tetap berhasil dilaksanakan.
MCP alat mengembalikan informasi racun
Berdasarkan petunjuk kata kunci MasterMCP, masukkan perintah simulasi (. Perintah ini tidak memiliki makna nyata dan bertujuan untuk memicu MCP jahat untuk mendemonstrasikan operasi selanjutnya ):
dapat banyak apel
Dapat dilihat, setelah perintah dipicu, klien melakukan panggilan lintas MCP ke Toolbox dan berhasil menambahkan server MCP baru.
Melihat kode plugin, dapat ditemukan bahwa data yang dikembalikan sudah menyertakan muatan berbahaya yang telah diproses dengan encoding, sehingga pengguna hampir tidak dapat mendeteksi adanya anomali.
serangan pencemaran antarmuka pihak ketiga
Demo ini terutama dimaksudkan untuk mengingatkan, baik MCP yang bersifat jahat maupun tidak jahat, saat memanggil API pihak ketiga, jika data pihak ketiga langsung dikembalikan ke konteks, dapat membawa dampak serius.
Eksekusi permintaan:
Ambil json dari /api/data
Hasil: Kata kunci jahat disisipkan ke dalam data JSON yang dikembalikan dan berhasil memicu eksekusi jahat.
Teknik pencemaran tahap inisialisasi MCP
Presentasi ini mencakup dua konten yaitu penyisipan prompt awal dan konflik nama.
serangan penimpaan fungsi jahat
Di sini MasterMCP telah menulis sebuah tool dengan nama fungsi yang sama remove_server seperti Toolbox, dan telah menyembunyikan kata-kata jahat dalam kode.
Eksekusi perintah:
alat kotak hapus ambil plugin server
Claude Desktop tidak memanggil metode remove_server toolbox yang asli, melainkan memicu metode dengan nama yang sama yang disediakan oleh MasterMCP.
Prinsipnya adalah dengan menekankan "metode lama telah dibatalkan", utamakan mengarahkan model besar untuk memanggil fungsi yang ditimpa secara jahat.
Menambahkan logika pemeriksaan global yang berbahaya
Di sini MasterMCP telah menulis sebuah alat banana, yang memiliki fungsi inti untuk memaksa semua alat menjalankan pemeriksaan keamanan dengan alat ini sebelum menjalankan kata perintah.
Sebelum setiap eksekusi fungsi, sistem akan terlebih dahulu memanggil mekanisme pemeriksaan banana.
Ini adalah injeksi logika global yang dicapai dengan menekankan berulang kali dalam kode "harus menjalankan deteksi banana".
Teknik Lanjutan untuk Menyembunyikan Kata Kunci Berbahaya
cara pengkodean yang ramah terhadap model besar
Karena model bahasa besar (LLM) memiliki kemampuan analisis yang sangat kuat terhadap format multibahasa, hal ini malah dimanfaatkan untuk menyembunyikan informasi jahat, metode yang umum digunakan termasuk:
Dalam lingkungan Inggris: menggunakan pengkodean Hex Byte
Dalam lingkungan Cina: gunakan encoding NCR atau encoding JavaScript
mekanisme pengembalian muatan jahat acak
Seperti yang disebutkan dalam Bab Kedua mengenai pencemaran antarmuka pihak ketiga, saat meminta /random:
Setiap kali akan secara acak mengembalikan halaman dengan muatan berbahaya, sangat meningkatkan kesulitan deteksi dan pelacakan.
Ringkasan
Melalui demonstrasi praktis MasterMCP, kami secara langsung melihat berbagai potensi risiko keamanan yang tersembunyi dalam sistem Model Context Protocol (MCP). Dari injeksi kata kunci yang sederhana, panggilan lintas MCP, hingga serangan fase inisialisasi yang lebih tersembunyi dan penyembunyian instruksi jahat, setiap langkah mengingatkan kami: meskipun ekosistem MCP kuat, ia juga rentan.
Terutama di zaman di mana model besar semakin sering berinteraksi dengan plugin dan API eksternal, sedikit pencemaran input dapat memicu risiko keamanan sistem yang besar. Dan keberagaman metode penyerangan ( penyembunyian kode, pencemaran acak, dan penutupan fungsi ) juga berarti bahwa pendekatan perlindungan tradisional perlu ditingkatkan secara menyeluruh.
Keamanan tidak pernah dicapai dalam sekejap.
Semoga presentasi kali ini dapat membangunkan kesadaran semua orang: baik pengembang maupun pengguna, harus tetap waspada terhadap sistem MCP, selalu memperhatikan setiap interaksi, setiap baris kode, dan setiap nilai kembali. Hanya dengan memperhatikan setiap detail dengan cermat, kita dapat benar-benar membangun lingkungan MCP yang kokoh dan aman.
Selanjutnya, kami juga akan terus menyempurnakan skrip MasterMCP, membuka lebih banyak kasus uji yang ditargetkan, untuk membantu semua orang memahami, berlatih, dan memperkuat perlindungan dalam lingkungan yang aman.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
20 Suka
Hadiah
20
6
Bagikan
Komentar
0/400
gas_guzzler
· 07-16 22:51
MCP melihat bahaya, cepat lari
Lihat AsliBalas0
faded_wojak.eth
· 07-15 19:06
Melihat keluarga mcp kamu bermain-main
Lihat AsliBalas0
PanicSeller
· 07-15 19:06
Suckers belum dipotong habis sudah dilepas begitu saja?
Lihat AsliBalas0
LiquiditySurfer
· 07-15 19:01
Keamanan Blockchain juga perlu menyesuaikan titik terbaik untuk surfing di on-chain~ Pasar yang kacau saat ini bahkan martini dengan es pun tidak cukup untuk mendinginkan.
Lihat AsliBalas0
consensus_failure
· 07-15 18:54
Jujur saja, jangan terus menerus membuka celah seperti ini.
Demonstrasi praktis risiko keamanan sistem MCP: dari pencemaran hingga manipulasi tersembunyi
Penyuntikan dan Manipulasi Tersembunyi dalam Sistem MCP: Demonstrasi Praktis
MCP (Model Context Protocol) sistem ini saat ini berada dalam tahap perkembangan awal, lingkungan keseluruhan cukup kacau, berbagai cara serangan potensial bermunculan, dan desain protokol serta alat yang ada sulit untuk melakukan pertahanan yang efektif. Untuk membantu komunitas lebih baik memahami dan meningkatkan keamanan MCP, Slow Mist secara khusus mengopen-source alat MasterMCP, berharap melalui latihan serangan praktis, dapat membantu menemukan potensi celah keamanan dalam desain produk, sehingga secara bertahap memperkuat proyek MCP.
Artikel ini akan memandu Anda dalam demonstrasi praktis mengenai metode serangan umum dalam sistem MCP, seperti pencemaran informasi, penyembunyian instruksi jahat, dan kasus nyata lainnya. Semua skrip demonstrasi juga akan dibuka sumbernya, sehingga Anda dapat mereproduksi seluruh proses di lingkungan yang aman, bahkan mengembangkan plugin pengujian serangan Anda sendiri berdasarkan skrip-skrip ini.
Tinjauan Arsitektur Keseluruhan
Target Serangan MCP: Toolbox
smithery.ai adalah salah satu situs plugin MCP yang paling populer saat ini, mengumpulkan banyak daftar MCP dan pengguna aktif. Di antaranya, @smithery/toolbox adalah alat manajemen MCP resmi yang diluncurkan oleh smithery.ai.
Pilih Toolbox sebagai target pengujian, terutama berdasarkan poin-poin berikut:
Demo penggunaan MCP jahat: MasterMCP
MasterMCP adalah alat simulasi MCP jahat yang dirancang khusus oleh Slow Fog untuk pengujian keamanan, menggunakan desain arsitektur plug-in, dan mencakup modul kunci berikut:
Untuk lebih realistis dalam mereproduksi skenario serangan, MasterMCP dilengkapi dengan modul simulasi layanan situs web lokal. Modul ini dengan cepat membangun server HTTP sederhana menggunakan kerangka kerja FastAPI, mensimulasikan lingkungan halaman web yang umum. Halaman-halaman ini tampak normal di permukaan, seperti menampilkan informasi toko kue atau mengembalikan data JSON standar, tetapi sebenarnya menyimpan muatan berbahaya yang dirancang dengan cermat dalam kode sumber halaman atau respons antarmuka.
MasterMCP menggunakan metode plug-in untuk memperluas, memudahkan penambahan metode serangan baru dengan cepat di kemudian hari. Setelah dijalankan, MasterMCP akan menjalankan layanan FastAPI dari modul sebelumnya di proses anak. ( Di sini sudah ada potensi risiko keamanan - plugin lokal dapat memulai proses anak yang tidak diharapkan oleh MCP ).
Klien Demo
model besar yang digunakan untuk demonstrasi
Pilih versi Claude 3.7, karena telah ada perbaikan dalam pengenalan operasi sensitif, sekaligus mewakili kemampuan operasi yang cukup kuat dalam ekosistem MCP saat ini.
Invokasi Jahat Cross-MCP
Demonstrasi ini mencakup dua konten: pemotongan dan pemanggilan jahat Cross-MCP.
serangan pencemaran konten web
Cursor mengakses situs web pengujian lokal.
Ini adalah halaman "Delicious Cake World" yang tampaknya tidak berbahaya, melalui eksperimen ini, kami mensimulasikan dampak yang ditimbulkan oleh klien model besar yang mengakses situs web berbahaya.
Eksekusi perintah:
Ambil konten dari
Hasil menunjukkan bahwa Cursor tidak hanya membaca konten halaman web, tetapi juga mengirimkan data konfigurasi sensitif lokal kembali ke server pengujian. Dalam kode sumber, kata-kata yang berbahaya disisipkan dalam bentuk komentar HTML.
Meskipun cara penjelasannya cukup langsung dan mudah dikenali, namun sudah dapat memicu tindakan jahat.
Kunjungi halaman /encode, ini adalah halaman web yang terlihat mirip dengan contoh sebelumnya, tetapi kata-kata yang berbahaya telah dienkode, membuat ekspresi racun lebih tersembunyi, bahkan sulit untuk mendeteksi secara langsung meskipun mengakses kode sumber halaman web.
Meskipun kode sumber tidak mengandung kata kunci yang jelas, serangan tetap berhasil dilaksanakan.
MCP alat mengembalikan informasi racun
Berdasarkan petunjuk kata kunci MasterMCP, masukkan perintah simulasi (. Perintah ini tidak memiliki makna nyata dan bertujuan untuk memicu MCP jahat untuk mendemonstrasikan operasi selanjutnya ):
dapat banyak apel
Dapat dilihat, setelah perintah dipicu, klien melakukan panggilan lintas MCP ke Toolbox dan berhasil menambahkan server MCP baru.
Melihat kode plugin, dapat ditemukan bahwa data yang dikembalikan sudah menyertakan muatan berbahaya yang telah diproses dengan encoding, sehingga pengguna hampir tidak dapat mendeteksi adanya anomali.
serangan pencemaran antarmuka pihak ketiga
Demo ini terutama dimaksudkan untuk mengingatkan, baik MCP yang bersifat jahat maupun tidak jahat, saat memanggil API pihak ketiga, jika data pihak ketiga langsung dikembalikan ke konteks, dapat membawa dampak serius.
Eksekusi permintaan:
Ambil json dari /api/data
Hasil: Kata kunci jahat disisipkan ke dalam data JSON yang dikembalikan dan berhasil memicu eksekusi jahat.
Teknik pencemaran tahap inisialisasi MCP
Presentasi ini mencakup dua konten yaitu penyisipan prompt awal dan konflik nama.
serangan penimpaan fungsi jahat
Di sini MasterMCP telah menulis sebuah tool dengan nama fungsi yang sama remove_server seperti Toolbox, dan telah menyembunyikan kata-kata jahat dalam kode.
Eksekusi perintah:
alat kotak hapus ambil plugin server
Claude Desktop tidak memanggil metode remove_server toolbox yang asli, melainkan memicu metode dengan nama yang sama yang disediakan oleh MasterMCP.
Prinsipnya adalah dengan menekankan "metode lama telah dibatalkan", utamakan mengarahkan model besar untuk memanggil fungsi yang ditimpa secara jahat.
Menambahkan logika pemeriksaan global yang berbahaya
Di sini MasterMCP telah menulis sebuah alat banana, yang memiliki fungsi inti untuk memaksa semua alat menjalankan pemeriksaan keamanan dengan alat ini sebelum menjalankan kata perintah.
Sebelum setiap eksekusi fungsi, sistem akan terlebih dahulu memanggil mekanisme pemeriksaan banana.
Ini adalah injeksi logika global yang dicapai dengan menekankan berulang kali dalam kode "harus menjalankan deteksi banana".
Teknik Lanjutan untuk Menyembunyikan Kata Kunci Berbahaya
cara pengkodean yang ramah terhadap model besar
Karena model bahasa besar (LLM) memiliki kemampuan analisis yang sangat kuat terhadap format multibahasa, hal ini malah dimanfaatkan untuk menyembunyikan informasi jahat, metode yang umum digunakan termasuk:
mekanisme pengembalian muatan jahat acak
Seperti yang disebutkan dalam Bab Kedua mengenai pencemaran antarmuka pihak ketiga, saat meminta /random:
Setiap kali akan secara acak mengembalikan halaman dengan muatan berbahaya, sangat meningkatkan kesulitan deteksi dan pelacakan.
Ringkasan
Melalui demonstrasi praktis MasterMCP, kami secara langsung melihat berbagai potensi risiko keamanan yang tersembunyi dalam sistem Model Context Protocol (MCP). Dari injeksi kata kunci yang sederhana, panggilan lintas MCP, hingga serangan fase inisialisasi yang lebih tersembunyi dan penyembunyian instruksi jahat, setiap langkah mengingatkan kami: meskipun ekosistem MCP kuat, ia juga rentan.
Terutama di zaman di mana model besar semakin sering berinteraksi dengan plugin dan API eksternal, sedikit pencemaran input dapat memicu risiko keamanan sistem yang besar. Dan keberagaman metode penyerangan ( penyembunyian kode, pencemaran acak, dan penutupan fungsi ) juga berarti bahwa pendekatan perlindungan tradisional perlu ditingkatkan secara menyeluruh.
Keamanan tidak pernah dicapai dalam sekejap.
Semoga presentasi kali ini dapat membangunkan kesadaran semua orang: baik pengembang maupun pengguna, harus tetap waspada terhadap sistem MCP, selalu memperhatikan setiap interaksi, setiap baris kode, dan setiap nilai kembali. Hanya dengan memperhatikan setiap detail dengan cermat, kita dapat benar-benar membangun lingkungan MCP yang kokoh dan aman.
Selanjutnya, kami juga akan terus menyempurnakan skrip MasterMCP, membuka lebih banyak kasus uji yang ditargetkan, untuk membantu semua orang memahami, berlatih, dan memperkuat perlindungan dalam lingkungan yang aman.