mcp-fence – proksi keamanan yang memeriksa permintaan dan respons server MCP secara dua arah
(github.com/yjcho9317)Saat agen AI membaca file atau memanggil alat melalui server MCP, respons yang dikembalikan server masuk ke konteks tanpa verifikasi terpisah. mcp-fence adalah proksi keamanan yang memeriksa kedua sisi, baik permintaan maupun respons, secara real-time.
Saya mengalami langsung struktur ini saat membuat nworks (server MCP NAVER WORKS). Saya meninjau 28 proyek keamanan MCP di GitHub, dan sebagian besar hanya memeriksa sisi yang dikirim, tanpa melihat sisi yang kembali. Jadi saya membuatnya sendiri.
Setelah selesai membuatnya, saya menjalankan audit keamanan sendiri. Saya berhasil menembus seluruh deteksi menggunakan karakter yang terlihat sama bagi manusia tetapi dikenali komputer sebagai huruf berbeda, menyisipkan karakter transparan yang tidak terlihat untuk lolos dari semua pemeriksaan, dan juga menemukan bug yang membuat pemeriksaan keamanan itu sendiri berhenti dengan input khusus. Semuanya saya perbaiki sebelum rilis. Dari 1.426 pengujian, 630 di antaranya adalah pengujian keamanan adversarial, dengan tingkat deteksi 86% terhadap 13 kerentanan MCP yang telah diketahui. Berdasarkan OWASP MCP Top 10, proyek ini mencakup 9 dari 10 kategori.
Ia mendeteksi injection, secret, PII, dan command injection, serta menangkap rug-pull ketika deskripsi alat diam-diam diubah melalui hash pinning. Deteksinya berbasis regex, jadi jika makna yang sama diekspresikan dengan cara berbeda, itu bisa lolos. Deteksi semantik berbasis ML direncanakan untuk v1.x.
Sebagai contoh, jika menggunakan server MCP filesystem, Anda cukup menaruhnya di depan.
npx mcp-fence start -- npx @modelcontextprotocol/server-filesystem /tmp
Tanpa perlu memodifikasi kode server yang ada, satu baris ini sudah bisa berjalan. Secara default ia hanya meninggalkan log dan tidak memblokir. Anda bisa terlebih dahulu melihat trafik seperti apa yang lewat, lalu jika sudah sesuai, beralih ke mode pemblokiran.
Ini adalah proyek yang dibuat sendirian selama 10 minggu oleh seorang engineer keamanan mobile dengan pengalaman 9 tahun, jadi mungkin masih ada kekurangan. Saya akan berterima kasih atas masukan Anda.
Belum ada komentar.