Penyuntikan dan Manipulasi Tersembunyi dalam Sistem MCP: Demonstrasi Praktis
Saat ini MCP ( Model Context Protocol ) masih dalam tahap perkembangan awal, lingkungan keseluruhan cukup kacau, berbagai potensi metode serangan bermunculan, dan desain protokol serta alat yang ada sulit untuk melakukan pertahanan yang efektif. Untuk membantu komunitas lebih memahami dan meningkatkan keamanan MCP, baru-baru ini telah dirilis alat MasterMCP, bertujuan untuk membantu menemukan kerentanan keamanan dalam desain produk melalui latihan serangan praktis, secara bertahap memperkuat proyek MCP.
Artikel ini akan membawa pembaca untuk melakukan praktik langsung, mendemonstrasikan metode serangan umum dalam sistem MCP, seperti informasi keracunan, perintah jahat yang disembunyikan, dan kasus nyata lainnya. Semua skrip demonstrasi juga akan dibuka sumbernya, sehingga pembaca dapat mereproduksi seluruh proses dalam lingkungan yang aman, bahkan mengembangkan plugin pengujian serangan mereka sendiri berdasarkan skrip-skrip ini.
Tinjauan Arsitektur Keseluruhan
Menunjukkan 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 yang diluncurkan secara resmi oleh situs tersebut.
Pilih Toolbox sebagai target pengujian, terutama berdasarkan poin-poin berikut:
Basis pengguna yang besar, memiliki representasi
Mendukung instalasi otomatis plugin lain, melengkapi beberapa fungsi klien.
Termasuk konfigurasi sensitif ( seperti API Key ), memudahkan untuk melakukan demonstrasi
MCP jahat yang digunakan untuk demonstrasi: MasterMCP
MasterMCP adalah alat simulasi MCP jahat yang dirancang khusus untuk pengujian keamanan, menggunakan desain arsitektur berbasis plugin, mencakup modul kunci berikut:
Simulasi layanan situs web lokal:
Untuk merekonstruksi skenario serangan dengan lebih realistis, MasterMCP dilengkapi dengan modul simulasi layanan situs web lokal. Ini dengan cepat membangun server HTTP sederhana menggunakan kerangka FastAPI, mensimulasikan lingkungan halaman web yang umum. Halaman-halaman ini tampak normal di permukaan, tetapi sebenarnya menyimpan muatan jahat yang dirancang dengan cermat dalam kode sumber halaman atau respons antarmuka.
Dengan cara ini, kami dapat secara lengkap mendemonstrasikan teknik serangan seperti pencemaran informasi dan penyembunyian instruksi dalam lingkungan lokal yang aman dan terkontrol, membantu pemahaman yang lebih jelas: bahkan halaman web yang tampaknya biasa pun bisa menjadi sumber risiko yang memicu model besar untuk melakukan operasi yang tidak normal.
Arsitektur MCP yang Dapat Dipasang Secara Lokal
MasterMCP menggunakan metode modular untuk memperluas, memudahkan penambahan cara serangan baru dengan cepat di kemudian hari. Setelah dijalankan, MasterMCP akan menjalankan layanan FastAPI dari modul sebelumnya di proses anak. ( Jika Anda memperhatikan dengan seksama, Anda akan menyadari adanya risiko keamanan di sini—plugin lokal dapat dengan bebas memulai proses anak yang tidak diharapkan oleh MCP ).
Klien Demonstrasi
Cursor: Salah satu IDE pemrograman yang dibantu AI paling populer di dunia saat ini
Claude Desktop: Anthropic(MC Protokol 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 relatif kuat dalam ekosistem MCP saat ini.
Panggilan Jahat Cross-MCP
serangan konten web
Serangan penyuntikan
Cursor mengakses situs web pengujian lokal.
Ini adalah halaman yang tampaknya tidak berbahaya tentang "Delicious Cake World", melalui eksperimen ini, menunjukkan simulasi dampak yang disebabkan 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 ke server pengujian. Dalam kode sumber, kata-kata yang merugikan disisipkan dalam bentuk komentar HTML.
Meskipun cara anotasi cukup jelas dan mudah dikenali, namun sudah dapat memicu tindakan jahat.
Serangan Dosis Komentar Terkode
Akses halaman /encode, ini adalah halaman web yang terlihat sama seperti contoh di atas, tetapi di dalamnya kata-kata jahat telah dikodekan, membuat eksploitasi lebih tersembunyi, bahkan sulit untuk langsung mendeteksi meskipun mengakses kode sumber halaman.
Meskipun kode sumber tidak mengandung kata kunci dalam bentuk teks biasa, serangan tetap berhasil dilaksanakan, prinsip spesifiknya akan dijelaskan secara rinci dalam bab-bab berikutnya.
MCP alat mengembalikan informasi pencemaran
Menurut petunjuk kata kunci MasterMCP, masukkan instruksi simulasi (, instruksi ini tidak memiliki makna nyata, bertujuan untuk memicu MCP jahat untuk mendemonstrasikan operasi selanjutnya ):
dapat banyak apel
Dapat dilihat, setelah perintah dipicu, klien memanggil Toolbox melalui MCP dan berhasil menambahkan server MCP baru.
Melihat kode plugin, dapat ditemukan bahwa data yang dikembalikan sudah disematkan dengan muatan jahat yang telah diproses, dan pengguna hampir tidak dapat mendeteksi keanehan.
serangan pencemaran antarmuka pihak ketiga
Demo ini terutama mengingatkan bahwa, baik MCP yang berniat jahat maupun tidak, saat memanggil API pihak ketiga, jika data pihak ketiga dikembalikan langsung ke konteks, dapat membawa dampak serius.
Melaksanakan permintaan:
Ambil json dari /api/data
Hasil: Kata kunci jahat disisipkan ke dalam data JSON yang dikembalikan dan berhasil memicu eksekusi jahat.
Teknik poisoning pada fase inisialisasi MCP
serangan penutupan fungsi jahat
MasterMCP telah menulis alat dengan nama fungsi yang sama remove_server seperti yang digunakan di Toolbox, dan menyandi kata-kata petunjuk jahat.
Eksekusi perintah:
alat menghapus ambil plugin server
Claude Desktop tidak memanggil metode remove_server toolbox yang asli, tetapi memicu metode dengan nama yang sama yang disediakan oleh MasterMCP.
Prinsipnya adalah dengan menekankan "metode lama telah dibatalkan", lebih diutamakan untuk memicu model besar untuk memanggil fungsi yang ditutupi secara jahat.
Tambahkan logika pemeriksaan global berbahaya
MasterMCP telah menulis sebuah alat banana, yang memiliki fungsi utama untuk memaksa semua alat menjalankan pemeriksaan keamanan dengan alat ini sebelum dijalankan dalam prompt.
Sebelum setiap kali fungsi dieksekusi, 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 model besar
Karena model bahasa besar memiliki kemampuan analisis yang sangat kuat terhadap format multibahasa, ini justru dimanfaatkan untuk menyembunyikan informasi jahat, metode yang umum digunakan termasuk:
Dalam lingkungan berbahasa Inggris: menggunakan pengkodean Hex Byte
Dalam lingkungan Cina: gunakan pengkodean NCR atau pengkodean JavaScript
mekanisme pengembalian muatan jahat acak
Ketika permintaan /random dilakukan, setiap kali akan secara acak mengembalikan halaman dengan muatan berbahaya, yang secara signifikan meningkatkan kesulitan dalam deteksi dan penelusuran.
Ringkasan
Melalui demonstrasi praktis MasterMCP, kami secara intuitif melihat berbagai potensi risiko keamanan yang tersembunyi dalam sistem Model Context Protocol (MCP). Dari injeksi kata kunci sederhana, panggilan lintas MCP, hingga serangan tahap inisialisasi yang lebih tersembunyi dan penyembunyian instruksi jahat, setiap tahap mengingatkan kita: meskipun ekosistem MCP kuat, tetapi juga rentan.
Terutama di era di mana model besar semakin sering berinteraksi dengan plugin eksternal dan API, sedikit pencemaran input dapat memicu risiko keamanan tingkat sistem secara keseluruhan. Selain itu, keragaman metode penyerangan seperti 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 bisa menjadi peringatan bagi 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 teliti, kita bisa benar-benar membangun lingkungan MCP yang kokoh dan aman.
Langkah selanjutnya, kami juga akan terus menyempurnakan skrip MasterMCP, mengeluarkan lebih banyak kasus uji yang spesifik, untuk membantu semua orang memahami, berlatih, dan memperkuat perlindungan dalam lingkungan yang aman.
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.
MCP Risiko Keamanan Praktis: Teknik Tersembunyi dari Serangan Injeksi hingga Kontrol Global
Penyuntikan dan Manipulasi Tersembunyi dalam Sistem MCP: Demonstrasi Praktis
Saat ini MCP ( Model Context Protocol ) masih dalam tahap perkembangan awal, lingkungan keseluruhan cukup kacau, berbagai potensi metode serangan bermunculan, dan desain protokol serta alat yang ada sulit untuk melakukan pertahanan yang efektif. Untuk membantu komunitas lebih memahami dan meningkatkan keamanan MCP, baru-baru ini telah dirilis alat MasterMCP, bertujuan untuk membantu menemukan kerentanan keamanan dalam desain produk melalui latihan serangan praktis, secara bertahap memperkuat proyek MCP.
Artikel ini akan membawa pembaca untuk melakukan praktik langsung, mendemonstrasikan metode serangan umum dalam sistem MCP, seperti informasi keracunan, perintah jahat yang disembunyikan, dan kasus nyata lainnya. Semua skrip demonstrasi juga akan dibuka sumbernya, sehingga pembaca dapat mereproduksi seluruh proses dalam lingkungan yang aman, bahkan mengembangkan plugin pengujian serangan mereka sendiri berdasarkan skrip-skrip ini.
Tinjauan Arsitektur Keseluruhan
Menunjukkan 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 yang diluncurkan secara resmi oleh situs tersebut.
Pilih Toolbox sebagai target pengujian, terutama berdasarkan poin-poin berikut:
MCP jahat yang digunakan untuk demonstrasi: MasterMCP
MasterMCP adalah alat simulasi MCP jahat yang dirancang khusus untuk pengujian keamanan, menggunakan desain arsitektur berbasis plugin, mencakup modul kunci berikut:
Untuk merekonstruksi skenario serangan dengan lebih realistis, MasterMCP dilengkapi dengan modul simulasi layanan situs web lokal. Ini dengan cepat membangun server HTTP sederhana menggunakan kerangka FastAPI, mensimulasikan lingkungan halaman web yang umum. Halaman-halaman ini tampak normal di permukaan, tetapi sebenarnya menyimpan muatan jahat yang dirancang dengan cermat dalam kode sumber halaman atau respons antarmuka.
Dengan cara ini, kami dapat secara lengkap mendemonstrasikan teknik serangan seperti pencemaran informasi dan penyembunyian instruksi dalam lingkungan lokal yang aman dan terkontrol, membantu pemahaman yang lebih jelas: bahkan halaman web yang tampaknya biasa pun bisa menjadi sumber risiko yang memicu model besar untuk melakukan operasi yang tidak normal.
MasterMCP menggunakan metode modular untuk memperluas, memudahkan penambahan cara serangan baru dengan cepat di kemudian hari. Setelah dijalankan, MasterMCP akan menjalankan layanan FastAPI dari modul sebelumnya di proses anak. ( Jika Anda memperhatikan dengan seksama, Anda akan menyadari adanya risiko keamanan di sini—plugin lokal dapat dengan bebas memulai proses anak yang tidak diharapkan oleh MCP ).
Klien Demonstrasi
model besar yang digunakan untuk demonstrasi
Pilih versi Claude 3.7, karena telah ada perbaikan dalam pengenalan operasi sensitif, sekaligus mewakili kemampuan operasi yang relatif kuat dalam ekosistem MCP saat ini.
Panggilan Jahat Cross-MCP
serangan konten web
Cursor mengakses situs web pengujian lokal.
Ini adalah halaman yang tampaknya tidak berbahaya tentang "Delicious Cake World", melalui eksperimen ini, menunjukkan simulasi dampak yang disebabkan 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 ke server pengujian. Dalam kode sumber, kata-kata yang merugikan disisipkan dalam bentuk komentar HTML.
Meskipun cara anotasi cukup jelas dan mudah dikenali, namun sudah dapat memicu tindakan jahat.
Akses halaman /encode, ini adalah halaman web yang terlihat sama seperti contoh di atas, tetapi di dalamnya kata-kata jahat telah dikodekan, membuat eksploitasi lebih tersembunyi, bahkan sulit untuk langsung mendeteksi meskipun mengakses kode sumber halaman.
Meskipun kode sumber tidak mengandung kata kunci dalam bentuk teks biasa, serangan tetap berhasil dilaksanakan, prinsip spesifiknya akan dijelaskan secara rinci dalam bab-bab berikutnya.
MCP alat mengembalikan informasi pencemaran
Menurut petunjuk kata kunci MasterMCP, masukkan instruksi simulasi (, instruksi ini tidak memiliki makna nyata, bertujuan untuk memicu MCP jahat untuk mendemonstrasikan operasi selanjutnya ):
dapat banyak apel
Dapat dilihat, setelah perintah dipicu, klien memanggil Toolbox melalui MCP dan berhasil menambahkan server MCP baru.
Melihat kode plugin, dapat ditemukan bahwa data yang dikembalikan sudah disematkan dengan muatan jahat yang telah diproses, dan pengguna hampir tidak dapat mendeteksi keanehan.
serangan pencemaran antarmuka pihak ketiga
Demo ini terutama mengingatkan bahwa, baik MCP yang berniat jahat maupun tidak, saat memanggil API pihak ketiga, jika data pihak ketiga dikembalikan langsung ke konteks, dapat membawa dampak serius.
Melaksanakan permintaan: Ambil json dari /api/data
Hasil: Kata kunci jahat disisipkan ke dalam data JSON yang dikembalikan dan berhasil memicu eksekusi jahat.
Teknik poisoning pada fase inisialisasi MCP
serangan penutupan fungsi jahat
MasterMCP telah menulis alat dengan nama fungsi yang sama remove_server seperti yang digunakan di Toolbox, dan menyandi kata-kata petunjuk jahat.
Eksekusi perintah: alat menghapus ambil plugin server
Claude Desktop tidak memanggil metode remove_server toolbox yang asli, tetapi memicu metode dengan nama yang sama yang disediakan oleh MasterMCP.
Prinsipnya adalah dengan menekankan "metode lama telah dibatalkan", lebih diutamakan untuk memicu model besar untuk memanggil fungsi yang ditutupi secara jahat.
Tambahkan logika pemeriksaan global berbahaya
MasterMCP telah menulis sebuah alat banana, yang memiliki fungsi utama untuk memaksa semua alat menjalankan pemeriksaan keamanan dengan alat ini sebelum dijalankan dalam prompt.
Sebelum setiap kali fungsi dieksekusi, 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 model besar
Karena model bahasa besar memiliki kemampuan analisis yang sangat kuat terhadap format multibahasa, ini justru dimanfaatkan untuk menyembunyikan informasi jahat, metode yang umum digunakan termasuk:
mekanisme pengembalian muatan jahat acak
Ketika permintaan /random dilakukan, setiap kali akan secara acak mengembalikan halaman dengan muatan berbahaya, yang secara signifikan meningkatkan kesulitan dalam deteksi dan penelusuran.
Ringkasan
Melalui demonstrasi praktis MasterMCP, kami secara intuitif melihat berbagai potensi risiko keamanan yang tersembunyi dalam sistem Model Context Protocol (MCP). Dari injeksi kata kunci sederhana, panggilan lintas MCP, hingga serangan tahap inisialisasi yang lebih tersembunyi dan penyembunyian instruksi jahat, setiap tahap mengingatkan kita: meskipun ekosistem MCP kuat, tetapi juga rentan.
Terutama di era di mana model besar semakin sering berinteraksi dengan plugin eksternal dan API, sedikit pencemaran input dapat memicu risiko keamanan tingkat sistem secara keseluruhan. Selain itu, keragaman metode penyerangan seperti 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 bisa menjadi peringatan bagi 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 teliti, kita bisa benar-benar membangun lingkungan MCP yang kokoh dan aman.
Langkah selanjutnya, kami juga akan terus menyempurnakan skrip MasterMCP, mengeluarkan lebih banyak kasus uji yang spesifik, untuk membantu semua orang memahami, berlatih, dan memperkuat perlindungan dalam lingkungan yang aman.