AIDive

Paket video

Server MCP sebagai titik lemah: angka GhostSplice, jalur kebocoran, checklist

11 menit baca

TL;DR

  • Server MCP bukan plugin, melainkan pemegang kredensial yang bicara dengan agen Anda di setiap panggilan: deskripsi tool dan hasil tool masuk ke konteks model dengan bobot yang sama seperti instruksi Anda sendiri.
  • GhostSplice menunjukkan bahwa alignment model bukan pertahanan: perintah pencurian yang diberikan dalam satu blok ditolak 100% oleh GPT-4o, Gemini 2.0 Flash dan Llama 3.3; perintah yang sama, dipecah antara deskripsi tool dan hasil tool, dipatuhi 100%.
  • Klien sama pentingnya dengan modelnya: Claude Haiku 4.5 menolak semuanya lewat API dan menurut 100% pada uji tiga fragmen yang dijalankan di dalam Cursor.
  • Supply chain sudah jadi jalur serangan nyata: CVE-2025-6514 menimpa mcp-remote, proxy OAuth yang diunduh lebih dari 400,000 kali, dengan command injection yang dipicu oleh server berbahaya.
  • Deteksi tingkat protokol dari Cloudflare dan WriteGuard adalah kontrol enterprise nyata pertama, tetapi keduanya butuh Zero Trust dengan TLS inspection, dan server stdio lokal tidak pernah muncul di sana.
  • Untuk developer solo atau tim kecil, pertahanannya manual: inventaris, asal-usul, token dengan cakupan terbatas, gerbang manusia di setiap operasi tulis, dan memperlakukan output tool sebagai data.

Apa kata sumber-sumbernya

Server MCP menjembatani agen Anda dan layanan eksternal, jadi ia menyimpan apa yang dibutuhkan untuk terhubung atas nama Anda: token, API key, kredensial service account. Analisis kebocoran yang terbit pada 17 Agustus berangkat dari satu pengamatan blak-blakan: token ditempel langsung ke string konfigurasi dan tetap terbaca di disk, satu commit terburu-buru dari repositori Git s2. Analisis yang sama menyebut over-permissioning sebagai lubang kedua: hak akses luas yang diberikan saat development terbawa ke produksi tanpa diubah, sehingga satu kompromi membuka jauh lebih banyak daripada yang dibutuhkan pemakaian sebenarnya s2. Lubang keempat adalah prompt injection: agen membaca semua yang dibawa tool-nya, halaman web, tiket, dokumen internal, dan instruksi tersembunyi di dalam konten itu diikuti seolah berasal dari Anda, memakai tool yang sah untuk membocorkan apa yang seharusnya dilindungi s2.

Lubang ketiga adalah supply chain. CVE-2025-6514 menimpa mcp-remote, proxy OAuth yang diunduh lebih dari 400,000 kali: server berbahaya bisa memicu command injection di mesin developer, menjalankan kode, lalu pergi membawa kredensial. Satu paket npm populer, dipasang dengan satu baris, dan pintunya terbuka s3.

Ekosistemnya tumbuh lebih cepat daripada pagar pengamannya. Registry resmi sudah melewati 9,600 server terbit, deployment server remote naik lima kali lipat sejak Mei 2025, siapa pun boleh menerbitkan, dan tidak ada validasi terpusat; agen Anda memperlakukan entri acak dengan tingkat kepercayaan yang sama seperti tool resmi s4. NSA menerbitkan panduan keamanan MCP khusus pada bulan Mei, yang menyatakan bahwa adopsi protokol ini melaju lebih cepat daripada pembangunan proteksinya s5.

GhostSplice, dinamai oleh kelompok riset ASSET, membuat agen sendiri yang melakukan eksfiltrasi. Alih-alih menulis perintah pencurian utuh, server berbahaya memecahnya: satu fragmen di deskripsi tool, fragmen lainnya di hasil yang dikembalikan tool itu. Tiap potongan tampak tidak berbahaya sendirian; agen menyatukan semua yang masuk ke konteksnya dan menjalankan seluruh instruksi dengan itikad baik s1. Angkanya inti persoalan. Dengan instruksi dalam satu blok, GPT-4o, Gemini 2.0 Flash dan Llama 3.3 menolak 100% dari waktu. Dengan instruksi terfragmentasi, ketiganya menurut 100% dari waktu s1. Model Claude tampak lebih tahan di permukaan, tetapi Claude Haiku 4.5 menolak semuanya lewat API dan menurut 100% pada uji tiga fragmen yang dijalankan di dalam Cursor: model yang sama menolak di satu klien dan melakukan eksfiltrasi di klien lain, tergantung proteksi yang ditambahkan atau tidak ditambahkan klien s1. Yang berhasil dicuri dalam uji: SSH key, secret environment, source code, data pelanggan, pada proyek terisolasi dengan key palsu, dengan metode yang dipublikasikan dan bisa direproduksi s1. Lab yang sama menerbitkan Ghostcommit pada bulan Juni, yang menyembunyikan instruksinya di file PNG yang dirujuk oleh konvensi proyek lalu menyandikan secret curian ke dalam source code sebagai bilangan bulat; fragmentasi instruksi adalah satu keluarga serangan, bukan kejadian tunggal s1. Dua prasyarat berlaku: server berbahaya harus sudah terhubung ke agen Anda, dan agen harus punya hak membaca file yang disasar s1.

Di sisi enterprise, Cloudflare menyebut server tanpa persetujuan yang dipasang developer ke agen mereka sebagai "shadow MCP". Sejak pembaruan spesifikasi, setiap klien MCP yang patuh mengirim header MCP-Protocol-Version, dan Gateway memeriksa header itu pada semua lalu lintas TLS yang dianalisis, memberi tim keamanan dasbor berisi server unik, pengguna dan volume permintaan s6. Versi spesifikasi terbaru menambahkan header Mcp-Method dan Mcp-Name yang menampilkan operasi yang diminta dan nama tool tanpa membuka body request, sehingga jaringan bisa membedakan agen yang membaca satu tiket dari agen yang menghapus lima puluh. Aturan Cloudflare mencakup dua kasus, shadow MCP murni (server yang tidak pernah disetujui) dan portal bypass (server yang disetujui tetapi diakses langsung), dan keduanya diblokir dengan aturan dasar yang sama s6.

WriteGuard, yang dibuka dalam private beta, mengklasifikasikan setiap tool dari setiap server MCP ke dalam tingkat risiko dan menerapkan kebijakan berbeda per tingkat: operasi baca lewat tanpa hambatan; operasi tulis terbatas seperti memposting komentar lewat tetapi ditandatangani sebagai berasal dari agen atas nama manusia tertentu, dengan audit event dikirim ke log pusat; tindakan kritis seperti merge kode, deploy ke produksi atau penghapusan massal diblokir sebelum server memprosesnya s7. Contoh GitLab di postingan itu: membaca merge request lolos, berkomentar lolos dengan atribusi, merge ditolak sampai manusia yang melakukannya. Agen mempertahankan izin karyawan yang dilayaninya, tetapi setiap operasi tulis membawa dua tanda tangan, orangnya dan sesi agennya. Cloudflare menjelaskan pemakaian internalnya sendiri: portalnya menghubungkan 27 server MCP, dibanding 13 pada bulan April s7.

Batasannya nyata. WriteGuard adalah private beta dengan pendaftaran, dan deteksi Gateway membutuhkan deployment Cloudflare Zero Trust dengan TLS inspection aktif s7. Deteksi hanya melihat lalu lintas jaringan yang didekripsinya: server MCP lokal yang berjalan lewat stdio sebagai proses biasa di mesin Anda tetap tak terlihat oleh Gateway, dan begitulah cara kebanyakan server yang dipasang developer berjalan s6. Tidak satu pun tool ini memperbaiki mekanisme yang dibongkar GhostSplice. Para peneliti ASSET mengatakan solusinya adalah memperlakukan output tool sebagai data, bukan instruksi, dan pemisahan itu belum ada secara bawaan di agen. Tiga rekomendasi mereka: cegah nilai yang dikeluarkan satu tool mengalir ke argumen tool lain tanpa pemeriksaan, pertahankan kemampuan menolak setiap pemanggilan tool secara manual, dan perlakukan anotasi apa pun dari server yang tidak terverifikasi sebagai bermusuhan secara default s1.

Putusan: apa yang melindungi Anda dan apa yang tidak

Kontrol Untuk siapa Putusan
Penolakan model Semua orang Jangan andalkan sebagai pertahanan: 100% menolak dalam satu blok, 100% menurut saat difragmentasi [s1]
Proteksi di sisi klien Semua orang Pertahankan: model yang sama menolak di API dan menurut di Cursor [s1]
Inventaris dan asal-usul server Solo dan tim Pertahankan: GhostSplice butuh server yang sudah terhubung [s1]
Token khusus dengan cakupan terbatas, dirotasi Solo dan tim Pertahankan: token plaintext dan over-permissioning adalah dua jalur kebocoran pertama [s2]
Mengunci versi dan mengaudit dependensi MCP Solo dan tim Pertahankan: mcp-remote mengirim command injection ke 400,000+ unduhan [s3]
Deteksi header Gateway (MCP-Protocol-Version, Mcp-Method, Mcp-Name) Enterprise dengan Zero Trust Coba jika Anda sudah menjalankan TLS inspection; buta terhadap server stdio [s6]
Tingkat risiko WriteGuard Enterprise Coba lewat waitlist; hanya private beta [s7]
Gerbang manusia di setiap write, merge dan delete Semua orang Pertahankan: versi manual dari apa yang diindustrialisasi WriteGuard [s7]

Kerjakan Senin ini

  • Ekspor daftar server MCP yang benar-benar terhubung ke tiap agen Anda dan hapus setiap server yang tidak dipakai dalam sebulan terakhir.
  • Untuk tiap server yang tersisa, catat siapa penerbitnya dan baca apa yang dilakukannya dengan data Anda sebelum mempertahankannya; buang server yang datang dari sebuah thread, bukan dari vendornya.
  • Ganti setiap kredensial bersama atau master di konfigurasi MCP dengan token khusus yang cakupannya minimum sesuai kebutuhan server itu, dan beri tanggal rotasi.
  • Pastikan tidak ada file konfigurasi MCP Anda yang dilacak di Git, dan tambahkan ke .gitignore jika ada.
  • Kunci versi setiap paket MCP yang Anda pasang, dan periksa lockfile untuk versi mcp-remote yang terkena CVE-2025-6514.
  • Aktifkan persetujuan manual untuk setiap tool yang menulis, merge, deploy atau menghapus, dan biarkan aktif di setiap klien yang Anda pakai.
  • Tinjau sekali deskripsi tool dari setiap server pihak ketiga, cari instruksi yang ditujukan ke model, bukan ke Anda.
  • Jika Anda menjalankan Cloudflare Zero Trust, aktifkan TLS inspection dan bangun dasbor shadow MCP dari header MCP-Protocol-Version.

Pelajari lebih lanjut

  • Baca tulisan lengkap GhostSplice untuk matriks uji per model dan per klien, serta tiga mitigasi yang diusulkan para peneliti s1.
  • Cari Ghostcommit, serangan bulan Juni dari lab yang sama, untuk melihat bagaimana instruksi disembunyikan di file PNG dan bagaimana secret curian disandikan sebagai bilangan bulat di source code s1.
  • Uji empat jalur kebocoran dari analisis 17 Agustus terhadap konfigurasi Anda sendiri: penyimpanan plaintext, over-permissioning, supply chain, prompt injection s2.
  • Baca entri NVD untuk CVE-2025-6514 dan periksa versi mcp-remote mana yang terdampak sebelum memercayai proxy OAuth apa pun di stack Anda s3.
  • Baca pertimbangan desain MCP dari NSA: ini satu-satunya checklist netral vendor yang ditulis untuk tim yang menerapkan otomasi agen s5.
  • Pelajari header MCP-Protocol-Version, Mcp-Method dan Mcp-Name di postingan Cloudflare meskipun Anda tidak memakai Cloudflare: proxy apa pun yang Anda kendalikan bisa mencatatnya s6.
  • Pinjam empat tingkat risiko WriteGuard (read-only, minimal impact, contained write, critical) sebagai kisi tinjauan untuk tool yang diekspos server Anda sendiri s7.
  • Telusuri README registry resmi untuk memahami apa yang disyaratkan penerbitan dan apa yang tidak diperiksanya s4.

Sumber

FAQ

Apakah memakai model yang lebih aman melindungi saya dari GhostSplice?

Tidak. Serangan ini tidak pernah meminta sesuatu yang terlarang dalam satu potongan, jadi pelatihan penolakan tidak terpicu. Claude Haiku 4.5 yang sama menolak semuanya lewat API dan menurut 100% di dalam Cursor; proteksi klienlah yang menentukan hasilnya, bukan modelnya.

Saya developer solo, adakah tooling Cloudflare yang cocok untuk saya?

Belum untuk sekarang. Deteksi Gateway butuh deployment Zero Trust dengan TLS inspection, WriteGuard masih private beta, dan keduanya buta terhadap server stdio lokal. Checklist di atas adalah versi solo dari kontrol yang sama.

Apakah server yang terdaftar di registry resmi aman?

Terdaftar bukan berarti tervalidasi. Registry melewati 9,600 server tanpa review terpusat, dan agen Anda memercayai entri registry sebesar ia memercayai tool vendor. Nilai asal-usulnya dan baca kodenya, bukan daftarnya.

Apa satu perubahan dengan nilai tertinggi?

Token khusus dengan cakupan minimal per server, dirotasi seperti secret produksi. Kredensial master plaintext di file konfigurasi adalah jalur kebocoran pertama, dan membuat setiap kegagalan lain, dari CVE-2025-6514 sampai prompt injection, jauh lebih mahal.