Ancaman Keamanan dan Demonstrasi Serangan pada Sistem MCP
MCP (Model Context Protocol) sistem saat ini masih berada dalam tahap pengembangan awal, lingkungan secara keseluruhan cukup kacau, berbagai cara serangan potensial bermunculan, dan desain protokol serta alat yang ada sulit untuk memberikan pertahanan yang efektif. Untuk meningkatkan keamanan MCP, SlowMist telah mengeluarkan alat MasterMCP secara terbuka, melalui latihan serangan nyata membantu menemukan celah keamanan dalam desain produk, sehingga memperkuat proyek MCP.
Artikel ini akan menunjukkan cara serangan umum dalam sistem MCP, seperti pencemaran informasi, penyembunyian perintah jahat, dan kasus nyata lainnya. Semua skrip demonstrasi juga akan diopen-source ke GitHub, agar semua orang dapat mereproduksi seluruh proses dalam lingkungan yang aman, bahkan mengembangkan plugin pengujian serangan mereka sendiri.
Tinjauan Arsitektur Keseluruhan
Menunjukkan Target Serangan MCP: Toolbox
smithery.ai adalah salah satu situs plugin MCP yang populer saat ini, mengumpulkan banyak daftar MCP dan pengguna aktif. Di antaranya, @smithery/toolbox adalah alat manajemen MCP yang diluncurkan secara resmi.
Memilih Toolbox sebagai target pengujian terutama berdasarkan:
Basis pengguna yang besar, mewakili
Mendukung instalasi otomatis plugin lain, melengkapi beberapa fungsi klien
Termasuk konfigurasi sensitif ( seperti API Key ), memudahkan demonstrasi
Demo penggunaan MCP jahat: MasterMCP
MasterMCP adalah alat simulasi MCP jahat yang dikembangkan oleh SlowMist khusus untuk pengujian keamanan, dirancang dengan arsitektur berbasis plugin, yang mencakup modul kunci berikut:
Simulasi layanan situs web lokal:
MasterMCP dilengkapi dengan modul simulasi layanan situs web lokal, menggunakan kerangka kerja FastAPI untuk dengan cepat membangun server HTTP sederhana, mensimulasikan lingkungan halaman web yang umum. Halaman-halaman ini terlihat normal, tetapi sebenarnya menyembunyikan muatan berbahaya yang dirancang dengan cermat dalam kode sumber atau respons antarmuka.
Arsitektur MCP yang dapat dipasang secara lokal
MasterMCP menggunakan metode plugin untuk memperluas, memudahkan penambahan cepat cara serangan baru. Setelah dijalankan, MasterMCP akan menjalankan layanan FastAPI dari modul sebelumnya di proses anak.
Klien Demo
Cursor: Salah satu IDE pemrograman yang dibantu AI yang sedang populer di seluruh dunia
Claude Desktop: Klien resmi Anthropic
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.
Pemanggilan Jahat Cross-MCP
Demonstrasi ini mencakup dua konten yaitu pemrograman berbahaya dan pemanggilan jahat Cross-MCP.
serangan pencemaran konten web
Model penyerangan yang bersifat komentar
Cursor mengakses situs web pengujian lokal, ini adalah halaman "Delicious Cake World" yang tampaknya tidak 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 jahat disisipkan dalam bentuk komentar HTML.
Pemrograman komentar racun
Akses halaman /encode, ini adalah halaman web yang terlihat sama, tetapi kata-kata jahat di dalamnya telah dienkode, membuat pencemaran exp lebih terselubung, bahkan sulit untuk langsung mendeteksi meskipun mengakses kode sumber halaman web.
Meskipun kode sumber tidak mengandung kata kunci dalam bentuk teks biasa, serangan tetap berhasil dijalankan.
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 menyebabkan dampak yang serius.
Eksekusi permintaan:
Ambil json dari /api/data
Hasil: Kata kunci jahat telah disisipkan ke dalam data JSON yang dikembalikan dan berhasil memicu eksekusi jahat.
Teknik Poisoning pada Tahap Inisialisasi MCP
Demonstrasi ini mencakup dua konten yaitu injeksi kata kunci awal dan konflik nama.
serangan penutupan fungsi jahat
MasterMCP telah menulis alat remove_server dengan nama fungsi yang sama dengan Toolbox, dan menyandi kata-kata petunjuk jahat.
Eksekusi perintah:
alat kotak hapus ambil plugin server
Claude Desktop tidak memanggil metode remove_server dari toolbox yang asli, melainkan memicu metode bernama sama yang disediakan oleh MasterMCP.
Prinsipnya adalah dengan menekankan "metode yang ada telah dibatalkan", secara prioritas mendorong model besar untuk memanggil fungsi yang ditutupi dengan jahat.
Tambahkan logika pemeriksaan global yang berbahaya
MasterMCP telah menulis alat banana, dengan fungsi utama memaksa semua alat untuk menjalankan alat ini untuk pemeriksaan keamanan sebelum menjalankan perintah.
Setiap kali fungsi dijalankan, sistem akan terlebih dahulu memanggil mekanisme pemeriksaan banana. Ini dicapai melalui penekanan berulang dalam kode bahwa "harus menjalankan deteksi banana" sebagai penyuntikan logika global.
Teknik Lanjutan untuk Menyembunyikan Kata Peringatan Berbahaya
cara pengkodean yang ramah model besar
Karena model bahasa besar memiliki kemampuan analisis yang sangat kuat terhadap format multibahasa, hal ini justru dimanfaatkan untuk menyembunyikan informasi berbahaya, metode yang umum digunakan termasuk:
Lingkungan Inggris: menggunakan pengkodean Hex Byte
Lingkungan berbahasa Mandarin: menggunakan pengkodean NCR atau pengkodean JavaScript
mekanisme pengembalian muatan jahat acak
Saat permintaan /random, setiap kali akan secara acak mengembalikan halaman dengan muatan jahat, yang secara signifikan meningkatkan kesulitan deteksi dan penelusuran.
Ringkasan
Melalui demonstrasi praktis MasterMCP, kita dapat melihat secara langsung berbagai risiko keamanan yang tersembunyi dalam sistem MCP. Dari injeksi kata kunci sederhana, pemanggilan antar MCP, hingga serangan fase inisialisasi yang lebih tersembunyi dan penyembunyian instruksi jahat, setiap tahap mengingatkan kita: meskipun ekosistem MCP kuat, ia juga rentan.
Terutama dengan model besar yang semakin sering berinteraksi dengan plugin eksternal dan API, pencemaran input kecil saja dapat memicu risiko keamanan tingkat sistem. Berbagai metode penyerangan seperti penyembunyian dengan encoding (, pencemaran acak, dan penutupan fungsi ) berarti bahwa pendekatan perlindungan tradisional perlu diperbarui secara menyeluruh.
Semoga demonstrasi kali ini dapat membangunkan semua orang: pengembang dan pengguna harus tetap waspada terhadap sistem MCP, memperhatikan setiap interaksi, setiap baris kode, setiap nilai kembali. Hanya dengan perhatian yang cermat terhadap detail, kita dapat membangun lingkungan MCP yang kuat dan aman.
SlowMist akan terus menyempurnakan skrip MasterMCP, membuka lebih banyak kasus pengujian yang spesifik, untuk membantu memahami, berlatih, dan memperkuat perlindungan dalam lingkungan yang aman. Konten terkait telah disinkronkan ke GitHub, pembaca yang tertarik dapat memeriksanya.
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.
12 Suka
Hadiah
12
6
Bagikan
Komentar
0/400
screenshot_gains
· 22jam yang lalu
gm telah muncul celah baru lagi
Lihat AsliBalas0
AirdropSweaterFan
· 22jam yang lalu
Hati-hati dianggap bodoh ya
Lihat AsliBalas0
ContractCollector
· 22jam yang lalu
MCP sudah dikirim
Lihat AsliBalas0
ForkItAll
· 22jam yang lalu
Hitam sudah keluar, masih ada yang perlu dibicarakan?
Lihat AsliBalas0
MissedAirdropBro
· 23jam yang lalu
Mobil jenazah bahkan lebih stabil darinya.
Lihat AsliBalas0
MEVSandwichVictim
· 23jam yang lalu
Sudah dipermainkan lagi? Memainkan orang untuk menghisap lebih baik daripada memainkan kami yang merupakan para pemula~
MasterMCP mengungkapkan risiko keamanan MCP dengan demonstrasi praktis berbagai metode serangan
Ancaman Keamanan dan Demonstrasi Serangan pada Sistem MCP
MCP (Model Context Protocol) sistem saat ini masih berada dalam tahap pengembangan awal, lingkungan secara keseluruhan cukup kacau, berbagai cara serangan potensial bermunculan, dan desain protokol serta alat yang ada sulit untuk memberikan pertahanan yang efektif. Untuk meningkatkan keamanan MCP, SlowMist telah mengeluarkan alat MasterMCP secara terbuka, melalui latihan serangan nyata membantu menemukan celah keamanan dalam desain produk, sehingga memperkuat proyek MCP.
Artikel ini akan menunjukkan cara serangan umum dalam sistem MCP, seperti pencemaran informasi, penyembunyian perintah jahat, dan kasus nyata lainnya. Semua skrip demonstrasi juga akan diopen-source ke GitHub, agar semua orang dapat mereproduksi seluruh proses dalam lingkungan yang aman, bahkan mengembangkan plugin pengujian serangan mereka sendiri.
Tinjauan Arsitektur Keseluruhan
Menunjukkan Target Serangan MCP: Toolbox
smithery.ai adalah salah satu situs plugin MCP yang populer saat ini, mengumpulkan banyak daftar MCP dan pengguna aktif. Di antaranya, @smithery/toolbox adalah alat manajemen MCP yang diluncurkan secara resmi.
Memilih Toolbox sebagai target pengujian terutama berdasarkan:
Demo penggunaan MCP jahat: MasterMCP
MasterMCP adalah alat simulasi MCP jahat yang dikembangkan oleh SlowMist khusus untuk pengujian keamanan, dirancang dengan arsitektur berbasis plugin, yang mencakup modul kunci berikut:
MasterMCP dilengkapi dengan modul simulasi layanan situs web lokal, menggunakan kerangka kerja FastAPI untuk dengan cepat membangun server HTTP sederhana, mensimulasikan lingkungan halaman web yang umum. Halaman-halaman ini terlihat normal, tetapi sebenarnya menyembunyikan muatan berbahaya yang dirancang dengan cermat dalam kode sumber atau respons antarmuka.
MasterMCP menggunakan metode plugin untuk memperluas, memudahkan penambahan cepat cara serangan baru. Setelah dijalankan, MasterMCP akan menjalankan layanan FastAPI dari modul sebelumnya di proses anak.
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.
Pemanggilan Jahat Cross-MCP
Demonstrasi ini mencakup dua konten yaitu pemrograman berbahaya 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.
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 jahat disisipkan dalam bentuk komentar HTML.
Akses halaman /encode, ini adalah halaman web yang terlihat sama, tetapi kata-kata jahat di dalamnya telah dienkode, membuat pencemaran exp lebih terselubung, bahkan sulit untuk langsung mendeteksi meskipun mengakses kode sumber halaman web.
Meskipun kode sumber tidak mengandung kata kunci dalam bentuk teks biasa, serangan tetap berhasil dijalankan.
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 menyebabkan dampak yang serius.
Eksekusi permintaan: Ambil json dari /api/data
Hasil: Kata kunci jahat telah disisipkan ke dalam data JSON yang dikembalikan dan berhasil memicu eksekusi jahat.
Teknik Poisoning pada Tahap Inisialisasi MCP
Demonstrasi ini mencakup dua konten yaitu injeksi kata kunci awal dan konflik nama.
serangan penutupan fungsi jahat
MasterMCP telah menulis alat remove_server dengan nama fungsi yang sama dengan Toolbox, dan menyandi kata-kata petunjuk jahat.
Eksekusi perintah: alat kotak hapus ambil plugin server
Claude Desktop tidak memanggil metode remove_server dari toolbox yang asli, melainkan memicu metode bernama sama yang disediakan oleh MasterMCP.
Prinsipnya adalah dengan menekankan "metode yang ada telah dibatalkan", secara prioritas mendorong model besar untuk memanggil fungsi yang ditutupi dengan jahat.
Tambahkan logika pemeriksaan global yang berbahaya
MasterMCP telah menulis alat banana, dengan fungsi utama memaksa semua alat untuk menjalankan alat ini untuk pemeriksaan keamanan sebelum menjalankan perintah.
Setiap kali fungsi dijalankan, sistem akan terlebih dahulu memanggil mekanisme pemeriksaan banana. Ini dicapai melalui penekanan berulang dalam kode bahwa "harus menjalankan deteksi banana" sebagai penyuntikan logika global.
Teknik Lanjutan untuk Menyembunyikan Kata Peringatan Berbahaya
cara pengkodean yang ramah model besar
Karena model bahasa besar memiliki kemampuan analisis yang sangat kuat terhadap format multibahasa, hal ini justru dimanfaatkan untuk menyembunyikan informasi berbahaya, metode yang umum digunakan termasuk:
mekanisme pengembalian muatan jahat acak
Saat permintaan /random, setiap kali akan secara acak mengembalikan halaman dengan muatan jahat, yang secara signifikan meningkatkan kesulitan deteksi dan penelusuran.
Ringkasan
Melalui demonstrasi praktis MasterMCP, kita dapat melihat secara langsung berbagai risiko keamanan yang tersembunyi dalam sistem MCP. Dari injeksi kata kunci sederhana, pemanggilan antar MCP, hingga serangan fase inisialisasi yang lebih tersembunyi dan penyembunyian instruksi jahat, setiap tahap mengingatkan kita: meskipun ekosistem MCP kuat, ia juga rentan.
Terutama dengan model besar yang semakin sering berinteraksi dengan plugin eksternal dan API, pencemaran input kecil saja dapat memicu risiko keamanan tingkat sistem. Berbagai metode penyerangan seperti penyembunyian dengan encoding (, pencemaran acak, dan penutupan fungsi ) berarti bahwa pendekatan perlindungan tradisional perlu diperbarui secara menyeluruh.
Semoga demonstrasi kali ini dapat membangunkan semua orang: pengembang dan pengguna harus tetap waspada terhadap sistem MCP, memperhatikan setiap interaksi, setiap baris kode, setiap nilai kembali. Hanya dengan perhatian yang cermat terhadap detail, kita dapat membangun lingkungan MCP yang kuat dan aman.
SlowMist akan terus menyempurnakan skrip MasterMCP, membuka lebih banyak kasus pengujian yang spesifik, untuk membantu memahami, berlatih, dan memperkuat perlindungan dalam lingkungan yang aman. Konten terkait telah disinkronkan ke GitHub, pembaca yang tertarik dapat memeriksanya.