Quasa
Gunakan Aplikasi QUASA
Bergabunglah dengan pelopor pekerja lepas kripto Web3 hari ini!
Buka
AI dan Otomatisasi

Prompt injection pada agen AI: satu dokumen dapat membajak tindakan

|Penulis: Tim Redaksi QUASA|5 mnt baca| 3
Prompt injection pada agen AI: satu dokumen dapat membajak tindakan

Mencegah prompt injection pada agen AI memerlukan pertahanan berlapis, bukan sekadar larangan dalam system prompt. Pisahkan instruksi dari data eksternal, batasi izin, periksa panggilan alat dengan kebijakan deterministik, wajibkan persetujuan manusia untuk tindakan berisiko, validasi keluaran, dan uji serangan sebelum produksi.

Satu dokumen dapat mengalihkan tindakan apabila agen memperlakukan teks di dalamnya sebagai instruksi tepercaya. Klasifikasi prompt injection dari OWASP membedakan masukan berbahaya yang diberikan langsung dan instruksi tidak langsung yang ditanam dalam konten; dampaknya mencakup kebocoran data, eskalasi hak akses, eksekusi perintah tanpa izin, dan manipulasi alur kerja.

Kenali dua jalur serangan

Agen pemroses email mendeteksi instruksi tersembunyi yang mencoba mengubah tugas ringkasan menjadi pengiriman lampiran rahasia.

Injeksi langsung terjadi ketika pengguna mencoba mengganti tujuan agen melalui kanal masukan aplikasi, misalnya dengan menyuruhnya mengabaikan kebijakan atau mengungkap data internal. Kontrol di pintu masuk dapat membatasi format, mengklasifikasikan risiko, dan mendeteksi pola umum, tetapi pencocokan frasa saja mudah dilewati melalui penyamaran atau pemecahan instruksi.

Injeksi tidak langsung datang melalui data yang diminta untuk dibaca agen: email, lampiran, halaman web, dokumen RAG, respons API, atau keluaran alat lain. Dalam contoh bersyarat, agen yang ditugaskan merangkum faktur menemukan perintah agar dokumen lain dikirim kepada penyerang. Riset red-teaming NIST CAISI menjelaskan bahwa instruksi berbahaya dalam sumber eksternal seperti email, situs, dan repositori kode dapat membelokkan agen menuju eksfiltrasi data atau eksekusi kode berbahaya.

Sinyal penyimpangan karena itu tidak terbatas pada kalimat “abaikan instruksi sebelumnya”. Permintaan alat yang tidak diperlukan, penerima baru, perluasan cakupan data, akses rahasia, perubahan tujuan, dan penulisan instruksi ke memori juga perlu diperiksa.

Pisahkan instruksi tepercaya dari data eksternal

Tetapkan hierarki kepercayaan dalam arsitektur. Kebijakan aplikasi dan tujuan pengguna yang telah diautentikasi dapat menjadi instruksi, sedangkan email, dokumen, halaman web, hasil retrieval, metadata, respons API, dan keluaran alat harus tetap diperlakukan sebagai data tak tepercaya meskipun bahasanya menyerupai perintah.

  • Beri konten eksternal tipe, asal, dan batas yang jelas. Jangan izinkan konten itu mengubah kebijakan, identitas pengguna, daftar alat, atau aturan persetujuan.
  • Normalisasi HTML, karakter Unicode tersembunyi, metadata, dan lampiran sebelum pemrosesan, tetapi jangan menganggap sanitasi mampu menemukan setiap serangan.
  • Jangan menyalin data eksternal mentah ke pesan berperan sebagai system atau developer. Ringkasan konten berisiko dapat dibuat dalam tahap terisolasi tanpa akses ke alat sensitif.
  • Validasi data sebelum masuk ke memori. Pisahkan memori per pengguna dan sesi, batasi masa simpan, dan tolak kredensial maupun instruksi yang mencoba menetap sebagai konteks.

Delimiter dan label membantu model membedakan bagian prompt, tetapi bukan batas otorisasi. Keputusan tentang siapa boleh menjalankan alat, terhadap resource apa, dan dengan parameter mana harus ditegakkan oleh aplikasi di luar model.

Batasi alat, izin, dan parameter

Layanan otorisasi menolak permintaan agen karena cakupan dokumen melebihi tugas dan hak akses yang diberikan.

Perlakukan keluaran model sebagai usulan, bukan izin eksekusi. AI Agent Security Cheat Sheet dari OWASP merekomendasikan hak akses minimum, validasi data eksternal, isolasi memori, keluaran terstruktur, persetujuan manusia untuk tindakan berdampak tinggi, pemantauan, dan pengujian adversarial.

  1. Buat identitas agen khusus. Hindari token pengguna atau akun layanan bercakupan luas. Pisahkan izin baca dan tulis serta lingkungan pengujian dan produksi.
  2. Gunakan daftar izin per alat. Agen peringkas email tidak otomatis memerlukan kemampuan mengirim pesan; agen dokumen tidak memerlukan akses transaksi atau administrasi.
  3. Validasi skema dan kebijakan. Periksa nama alat, parameter, resource, penerima, domain tujuan, cakupan data, dan hubungannya dengan permintaan awal. Tolak argumen tambahan serta tujuan jaringan di luar daftar izin.
  4. Batasi rangkaian tindakan. Tetapkan batas panggilan, kedalaman rantai, pengulangan, waktu, token, dan biaya. Hentikan sesi jika alat yang tidak relevan terus diminta.

Untuk API, sediakan endpoint sempit seperti membaca satu objek, bukan pencarian menyeluruh. Untuk transaksi, pisahkan penyusunan draf dari eksekusi: agen boleh mengusulkan tindakan, tetapi layanan otorisasi independen harus memeriksa identitas, penerima, cakupan, hak akses, dan status persetujuan.

Ikat persetujuan pada tindakan yang tepat

Persetujuan manusia diperlukan sebelum tindakan yang sulit dibatalkan, berdampak eksternal, membuka data sensitif, atau mengubah hak akses. Contohnya meliputi pengiriman email, pembagian dokumen, penghapusan berkas, eksekusi kode, perubahan konfigurasi, pembuatan akun, dan transaksi.

Tampilan persetujuan harus dibangun dari parameter yang telah divalidasi, bukan narasi bebas buatan model. Tampilkan tindakan, target, penerima, cakupan data, dan konsekuensinya. Ikat persetujuan pada parameter tersebut, beri masa berlaku singkat, dan batalkan jika agen mengubah penerima, resource, atau isi tindakan.

Jangan meminta konfirmasi untuk setiap langkah kecil hingga pengguna terbiasa mengklik. Klasifikasikan tindakan sebagai otomatis berisiko rendah, memerlukan konfirmasi, atau dilarang; kebijakan aplikasi, bukan penilaian model semata, harus menegakkan klasifikasi itu.

Validasi keluaran, catat keputusan, lalu serang sistem sendiri

Simulasi serangan memblokir respons API berbahaya yang mencoba memicu alat administratif dan mencatat hasil validasi.

Periksa keluaran sebelum ditampilkan, disimpan, atau diteruskan ke alat. Gunakan schema validation, penyamaran rahasia dan data pribadi sesuai kebijakan, pembatasan URL tujuan, serta encoding yang sesuai untuk HTML atau perintah. Jangan mengeksekusi kode, kueri, atau parameter hanya karena model menyatakannya aman.

Log harus memungkinkan rekonstruksi insiden tanpa menjadi kebocoran baru. Catat versi model dan kebijakan, asal data, alat yang diminta, parameter yang telah disamarkan, hasil validasi, persetujuan, penolakan, timeout, dan penghentian darurat. Hindari kredensial, isi sensitif lengkap, atau penalaran internal yang tidak diperlukan.

Sebelum memberikan akses produksi, jadikan skenario berikut sebagai pengujian berulang:

  • Email mencoba meneruskan lampiran rahasia kepada penerima baru.
  • Dokumen RAG mencoba mengganti tujuan, menulis instruksi ke memori, atau membaca dokumen pengguna lain.
  • Halaman web memuat teks tersembunyi yang memicu koneksi ke domain tak dikenal.
  • Respons API menyuruh agen memanggil alat administratif atau memperluas cakupan data.
  • Permintaan transaksi mengubah penerima atau parameter lain setelah persetujuan.

Ulangi pengujian setelah perubahan pada prompt, model, alat, skema API, retrieval, memori, atau logika persetujuan. Sistem baru lulus jika kontrol tetap mencegah akses, pengiriman, penyimpanan, dan eksekusi tanpa izin ketika model gagal mengenali injeksi.

Bagikan:

Berlangganan buletin kami

Dapatkan berita Web3, AI, dan kripto terbaru langsung di kotak masuk Anda.

0