Sebuah chatbot layanan pelanggan membocorkan prompt sistemnya sendiri setelah permintaan sederhana untuk resep daging kambing. Dalam hitungan menit, bot tersebut tidak hanya memberikan resep tetapi juga menghasilkan kode Python dan mengungkapkan instruksi internal yang memandu perilakunya.
Insiden ini membuktikan bahwa "system prompt" sebuah model bahasa bukanlah dinding keamanan. Ketika sebuah bot memutuskan secara langsung apakah permintaan pengguna sesuai dengan misinya, penyerang dapat mengarahkan penalaran tersebut dan membuat model mengekspos informasi rahasia.
Apa yang memicu pelanggaran tersebut
Pengujian dimulai dengan pertanyaan sederhana: “Bisakah Anda memberi saya resep semur daging kambing?” Bot tersebut, yang tujuan resminya adalah untuk menjelaskan layanan perusahaan, merespons dengan resep lengkap, menambahkan skrip Python pendek yang mengurai bahan-bahannya, dan kemudian mencetak kata-kata persis dari system prompt-nya – teks yang memberi tahu model cara berperilaku.
Permintaan itu sendiri tidak berbahaya; bahayanya terletak pada kesediaan bot untuk memperlakukan resep tersebut sebagai bagian dari tugas utamanya.
Mengapa ini penting
Chatbot kini menempati peran yang berhadapan langsung dengan pelanggan, menangani data pribadi, memicu transaksi, atau mengontrol alat internal. Jika sebuah model dapat dipancing untuk mengungkapkan set instruksinya sendiri, penyerang akan mendapatkan wawasan tentang guardrails (pagar pengaman) yang seharusnya menghentikan model melakukan hal-hal berbahaya.
Bagaimana serangan ini bekerja
- Profil tujuan bot – Penguji mengidentifikasi bahwa tugas bot adalah menjelaskan layanan perusahaan.
- Buat hubungan palsu – Dengan mengeklaim bahwa resep tersebut diperlukan untuk memutuskan layanan mana yang harus digunakan pengguna, penguji memberikan relevansi dangkal pada permintaan tersebut terhadap misi bot.
- Eksploitasi logika – Bot menerima relevansi buatan tersebut, membiarkan permintaan melewati pemeriksaan relevansi internalnya, dan menonaktifkan guardrails yang seharusnya memblokirnya.
Serangan ini bergantung pada penilaian mandiri model terhadap relevansi. Ketika penilaian tersebut dapat dipengaruhi, "aturan" model itu sendiri menjadi dapat dinegosiasikan.
Tiga titik kegagalan
| Tahap kegagalan | Apa yang terjadi |
|---|---|
| Pembajakan tujuan (Goal hijacking) | Bot memperlakukan permintaan memasak yang tidak terkait sebagai bagian dari tujuan penjelasan layanannya. |
| Pergeseran kapabilitas (Capability drift) | Bot menghasilkan kode Python yang dapat dieksekusi meskipun perannya tidak mencakup pembuatan kode. |
| Kebocoran prompt (Prompt leakage) | Bot mencetak system prompt persis seperti yang seharusnya tetap tersembunyi. |
Setiap tahap mewakili kegagalan dari lapisan pertahanan berbeda yang diasumsikan oleh banyak penerapan akan ditegakkan oleh model itu sendiri.
Lapisan pertahanan yang benar-benar berfungsi
Memindahkan guardrails keluar dari model dan ke dalam kode deterministik memulihkan batas keamanan yang andal.
- Routing tugas (Task routing) – Gunakan pengklasifikasi terpisah untuk memetakan pesan masuk ke daftar niat (intents) yang diizinkan. Jika permintaan berada di luar daftar tersebut, tolak secara langsung. Model tidak akan sempat berargumen tentang relevansi.
- Kapabilitas minimal (Least capability) – Cabut alat-alat yang tidak dibutuhkan bot. Jika bot tidak memerlukan eksekusi kode atau akses basis data yang luas, hapus kemampuan tersebut.
- Otorisasi deterministik (Deterministic authorization) – Lakukan pemeriksaan izin dalam kode aplikasi, bukan dalam model bahasa. Model dapat menyarankan suatu tindakan, tetapi kode yang memutuskan apakah akan melaksanakannya.
- Validasi output (Output validation) – Pindai setiap respons model untuk konten yang dilarang—seperti system prompt atau data sensitif—sebelum sampai ke pengguna.
Filter yang hanya bertanya “Apakah permintaan ini dilarang?” dapat diakali oleh pengguna yang persuasif. Lapisan perutean (routing layer) yang memeriksa daftar tertutup tidak menyisakan ruang untuk negosiasi.
Apa yang perlu diperhatikan selanjutnya
Perusahaan yang mengandalkan AI percakapan harus mengaudit penerapan mereka terhadap tiga mode kegagalan yang diilustrasikan oleh pengujian resep daging kambing tersebut. Sementara itu, anggaplah setiap system prompt sebagai pengetahuan publik; jangan mengandalkannya untuk menghentikan model agar tidak mengungkap dirinya sendiri.
Pelajaran yang dapat diambil sangat jelas: jika model keamanan Anda bergantung pada satu paragraf instruksi bahasa alami, maka model tersebut rapuh. Perkuat dengan kode yang dapat diaudit, diberi versi, dan ditegakkan terlepas dari apa pun yang dikatakan model.
