Risiko Prompt Injection pada Chatbot untuk Pelanggan
Oleh Apex Horizon Digital
Chatbot untuk pelanggan menerima teks tidak tepercaya karena itulah fungsi dasarnya. Sebagian pesan akan mencoba mengganti instruksi, mengungkap data tersembunyi, memanipulasi tool terhubung, atau menyamarkan permintaan tidak aman di dalam konten tersandi maupun kutipan. Sistem yang lebih kuat tidak bergantung pada kemampuan model mengenali setiap trik. Sistem membatasi data dan tool, memisahkan instruksi dari konten tidak tepercaya, memvalidasi tindakan di kode aplikasi, dan menguji apakah seluruh workflow gagal dengan aman.
Ringkasan utama
- Perlakukan setiap pesan pelanggan, dokumen retrieval, dan hasil tool eksternal sebagai input tidak tepercaya.
- Gunakan akses data serta tool least-privilege yang ditegakkan di luar language model.
- Pelihara red-team suite untuk instruction override, permintaan data, penyalahgunaan tool, prompt tersandi, dan safe refusal.
Bangun threat model dari aset dan tindakan
Daftar hal yang dapat dilihat dan dilakukan chatbot: instruksi sistem, riwayat percakapan, data pelanggan, passage knowledge, credential API, tool bisnis, dan metadata internal. Lalu catat dampak jika setiap aset terungkap, diubah, atau disalahgunakan. Bot yang hanya menjawab dari halaman produk publik memiliki batas risiko berbeda dari sistem yang dapat membaca order atau membuat permintaan refund.
Petakan trust boundary. Teks pelanggan tidak tepercaya. Dokumen retrieval dapat memuat instruksi berbahaya atau tidak sengaja. Halaman eksternal dan hasil tool adalah data, bukan otoritas. Output model adalah usulan yang harus divalidasi sebelum menjadi tindakan. Threat model ini menentukan kontrol yang perlu berada pada retrieval, orkestrasi, kode aplikasi, identity, dan monitoring.
- Aset: instruksi, data privat, credential, knowledge, log, dan record bisnis.
- Tindakan: membaca, membuat, mengubah, mengirim, menyetujui, membatalkan, atau mengungkapkan.
- Aktor: pelanggan, pengguna anonim, sumber compromised, dan orang internal yang keliru.
- Boundary: kanal, retrieval, model, tool gateway, data store, dan inbox agent.
- Dampak: kehilangan privasi, tindakan tanpa izin, komitmen palsu, gangguan layanan, atau manipulasi tersembunyi.
Red-team instruction override dan permintaan data
Buat pesan uji yang meminta bot mengabaikan instruksi sebelumnya, menampilkan hidden prompt, bertindak sebagai administrator, atau memperlakukan teks pelanggan sebagai kebijakan baru. Tambahkan kasus indirect ketika dokumen retrieval memuat instruksi untuk model. Perilaku yang diharapkan adalah mempertahankan batas tugas resmi, memperlakukan konten sebagai data, dan menolak permintaan konfigurasi tersembunyi.
Uji permintaan data secara terpisah. Minta order pelanggan lain, daftar pelanggan lengkap, catatan internal, credential, atau field yang tidak berkaitan dengan tugas layanan saat ini. Perilaku yang diharapkan bergantung pada identity serta authorization yang ditegakkan kode aplikasi. Model tidak boleh memutuskan bahwa penjelasan persuasif memberi akses.
- Direct override: permintaan mengabaikan atau mengganti aturan sistem.
- Role impersonation: klaim otoritas administrator atau karyawan.
- Prompt extraction: permintaan instruksi tersembunyi atau konfigurasi keamanan.
- Indirect injection: instruksi yang ditanam di konten retrieval atau upload.
- Data lintas pelanggan: permintaan record di luar scope identity terverifikasi.
Red-team penyalahgunaan tool dan prompt tersandi
Uji usaha memanggil tool tanpa identity lengkap, mengubah parameter setelah konfirmasi, mengulangi tindakan, memilih fungsi lebih privileged, atau memasukkan instruksi ke field teks bebas yang akan mencapai sistem lain. Perilaku yang diharapkan adalah validasi server-side, idempotency jika diperlukan, permission sempit, konfirmasi untuk tindakan material, dan audit record percobaan yang ditolak.
Uji juga instruksi tersandi, terpisah, salah eja, multibahasa, dan dikutip. Encoding tidak selalu berbahaya, tetapi membuka encoding dari konten tidak tepercaya lalu memperlakukannya sebagai otoritas dapat melewati filter keyword sederhana. Kontrol perlu fokus pada tugas serta action schema yang diizinkan, bukan memelihara daftar frasa terlarang.
- Tool tanpa izin: meminta tindakan di luar permission pengguna saat ini.
- Manipulasi parameter: mengubah jumlah, penerima, item, atau tujuan setelah review.
- Eksekusi berulang: replay atau duplikasi permintaan tindakan sebelumnya.
- Stored injection: menaruh instruksi dalam data yang dikonsumsi langkah model berikutnya.
- Instruksi tersandi: menyembunyikan override dalam representasi atau bahasa berbeda.
Tegakkan kontrol di luar model
Berikan kepada chatbot hanya data yang diperlukan untuk tugas terverifikasi saat ini. Filter retrieval berdasarkan aturan akses sebelum passage mencapai model. Buka tool sempit dengan input bertipe, pemeriksaan permission, rate limit, validasi, konfirmasi, dan pesan error aman. Simpan credential di luar prompt dan log yang dapat dilihat model. Untuk tindakan berdampak lebih tinggi, minta approval deterministik atau keputusan manusia.
Pisahkan instruksi dan data tidak tepercaya di desain orkestrasi, tetapi jangan menganggap formatting sebagai pertahanan lengkap. Model masih dapat salah memahami konten. Kode aplikasi harus tetap menjadi otoritas akses dan tindakan. Catat sumber instruksi, passage retrieval, permintaan tool, hasil validasi, dan refusal agar reviewer dapat menyusun ulang jalurnya.
- Minimalkan konteks dan data berdasarkan kebutuhan terverifikasi.
- Filter retrieval menggunakan kebijakan akses dan governance sumber.
- Buka tool least-privilege dengan parameter bertipe serta tervalidasi.
- Minta konfirmasi atau approval deterministik untuk tindakan material.
- Simpan credential dan konfigurasi sensitif di luar konteks model.
Rancang safe refusal, handoff, dan monitoring
Safe refusal tidak perlu mengungkap aturan tersembunyi atau mengajarkan seberapa dekat percobaan dengan keberhasilan. Sistem dapat menyatakan bahwa tindakan atau informasi tidak tersedia dan menawarkan alternatif resmi. Jika kebutuhan pelanggan yang sah tetap ada, rutekan kepada manusia bersama konteks tugas, tetapi jangan meneruskan instruksi berbahaya sebagai panduan yang berwenang.
Pantau tool call yang ditolak, pola retrieval tidak umum, percobaan override berulang, permintaan lintas pelanggan, dan perubahan hasil red-team. Tinjau alert bersama konteks percakapan serta kontrol privasi. Tambahkan pola terkonfirmasi ke evaluation suite, tetapi pertahankan kontrol arsitektur sebagai pertahanan utama. Bahasa baru tidak seharusnya menjadi kerentanan baru jika model tidak pernah memiliki permission atau data untuk menyebabkan dampak.
- Tolak permintaan tidak aman tanpa membuka konfigurasi tersembunyi.
- Tawarkan langkah berikutnya yang diizinkan untuk kebutuhan pelanggan yang sah.
- Transfer hanya konteks yang diperlukan dan tandai konten tidak tepercaya dengan jelas.
- Buat alert untuk tindakan ditolak dan pola akses mencurigakan.
- Jalankan ulang red-team suite setelah perubahan model, prompt, retrieval, atau tool.