Mengamankan data RAG dari sumber hingga penghapusan
RAG perlu menjaga izin sumber pada seluruh data turunannya. Dokumen yang tidak boleh dibaca pengguna jangan masuk ke konteks model, termasuk melalui cache atau indeks lama.
Di halaman ini
RAG membantu mencari informasi, bukan memberi izin
Periksa hak pengguna sebelum dokumen atau potongannya masuk ke konteks model. Sumber yang relevan dengan pertanyaan belum tentu boleh dibaca pengguna tersebut.
RAG (retrieval-augmented generation) mengambil informasi dari sumber seperti dokumen atau basis pengetahuan untuk membantu model menyusun jawaban. Umumnya dokumen dipecah menjadi potongan (chunk), diubah menjadi representasi angka (embedding) dan dimasukkan ke indeks pencarian. Jawaban atau hasil pencarian juga dapat disimpan sementara dalam cache.
RAG tidak otomatis membuat jawaban benar, bebas prompt injection atau patuh aturan data pribadi. Hak sumber perlu diterapkan di setiap tahap; embedding tidak boleh dianggap anonim hanya karena sulit dibaca langsung.
Petakan sumber dan data turunannya
Contoh fiktif: asisten dukungan mencari prosedur internal dua pelanggan. Pelanggan A hanya boleh membaca dokumen A. Tim perlu dapat menelusuri potongan mana berasal dari dokumen mana, versi sumber, siapa mengunggah dan siapa boleh membacanya.
| Tahap | Catatan yang diperlukan |
|---|---|
| Dokumen sumber | ID, versi/hash, asal, pemilik, pelanggan, klasifikasi dan hak pengguna/peran. |
| Potongan | ID sumber/versi, batas akses, penanda pelanggan dan isi yang diperlukan. |
| Embedding / indeks | Hubungan ke potongan, versi model embedding, batas pencarian dan izin pengelola indeks. |
| Konteks untuk model | ID/versi sumber terpilih, identitas peminta, hasil cek akses dan waktu pemeriksaan. |
| Cache / jawaban | Pengguna/pelanggan, dependensi sumber, versi izin, masa simpan dan cara invalidasi. |
Catatan hash membantu memeriksa perubahan file, tetapi tidak membuktikan isi benar atau aman. Tentukan pihak yang boleh menambah/mengubah sumber serta jalur peninjauan dan pemulihan versi.
Terapkan izin saat dokumen dicari
Simpan batas pelanggan dan metadata akses bersama potongan. Gunakan identitas terautentikasi dari server untuk pencarian; jangan membiarkan parameter model memilih pelanggan lain. Ruang indeks terpisah dapat membantu isolasi, tetapi API pencarian tetap harus memeriksa siapa yang berhak mengaksesnya.
Periksa izin saat retrieval, termasuk saat memakai kandidat dari cache. Menyalin izin pada hari dokumen dimasukkan belum cukup: pegawai pindah peran, pelanggan berhenti berlangganan atau dokumen berubah menjadi terbatas.
Jangan mengambil semua dokumen lalu meminta model menyembunyikan yang dilarang. Data yang sudah masuk konteks dapat memengaruhi jawaban atau tindakan. Bila layanan izin tidak tersedia, hentikan akses yang belum dapat dipastikan; jangan beralih ke pencarian global.
Cache harus mengikuti pengguna dan izin
Pertanyaan yang sama bisa memiliki jawaban berbeda karena hak pengguna berbeda. Cache dengan kunci “pertanyaan saja” dapat menyajikan jawaban pelanggan B kepada A.
Batasi cache menurut pengguna/pelanggan dan keadaan izin. Catat dependensi sumber agar perubahan, pencabutan hak atau penghapusan dapat membatalkan entri yang terdampak. Tetapkan masa simpan; data sangat sensitif dapat memerlukan larangan cache. Kunci yang tepat tidak menggantikan pemeriksaan akses terkini.
Periksa perubahan izin selama pekerjaan berlangsung: antara pencarian, penyusunan konteks dan pengiriman hasil. Gunakan versi izin, pemeriksaan ulang atau pembatalan sesuai arsitektur. Jangan menjanjikan pencabutan instan jika sinkronisasi masih tertunda; batasi akses sampai keadaan sumber dapat dipastikan.
Perlakukan isi sumber sebagai data yang tidak memberi perintah
Dokumen dapat memuat instruksi berbahaya atau informasi palsu. Pisahkan instruksi aplikasi dari teks sumber, batasi ukuran/jumlah potongan dan tinjau sumber baru. Penyaringan pola membantu, tetapi tidak menjamin semua prompt injection terdeteksi.
Uji dokumen yang meminta agen membaca pelanggan lain atau mengirim data. Layanan eksekusi tool tetap harus menolak tindakan tanpa izin walaupun model mengusulkannya. Validasi keluaran sesuai tempat penggunaannya; kutipan sumber bukan bukti bahwa seluruh jawaban didukung sumber tersebut.
Penghapusan perlu mencapai seluruh turunan
Penghapusan dokumen asal belum tentu menghapus potongan, embedding, indeks, cache, jawaban tersimpan atau memori agen. Petakan dependensi dan pemilik setiap tempat; cabut akses terlebih dahulu bila penghapusan belum selesai.
Catat ID sumber, permintaan, dasar/tenggat yang relevan, tempat yang diperiksa, jumlah turunan yang dibersihkan dan hasil uji pencarian ulang. Bedakan penghapusan data aktif dari backup, log dan salinan penyedia. Bukti “hasil pencarian kosong” hanya mencakup jalur yang diuji, bukan bukti semua salinan telah hilang.
Tentukan retensi, pemulihan backup dan kewajiban penyimpanan sesuai data serta layanan. Baca retensi dan penghapusan data pribadi dan pemeriksaan vendor AI untuk bagian data pribadi; anjuran teknis OWASP bukan tenggat hukum Indonesia.
Contoh yang dijalankan: izin dicabut, cache tetap hangat
Lab keamanan AI 1.0 dijalankan dengan Node 24.21.0 pada 1 Oktober 2026. Sepuluh kasus bagian RAG lolos, dalam 25 kasus seluruh fixture:
| Kasus | Hasil teramati |
|---|---|
| Pertanyaan sama dari pengguna A/B | Masing-masing hanya memperoleh chunk-A / chunk-B. |
| Cache buruk dengan kunci pertanyaan saja | Mengembalikan FAKE_DOCUMENT_B kepada peminta A; kegagalan sengaja diperlihatkan. |
| Pencarian yang memeriksa identitas | A tidak memperoleh penanda B. |
| Izin A dicabut saat cache terisi | Hasil A kosong, bahkan sebelum nomor versi izin dinaikkan. |
| Izin A dipulihkan melalui sumber | chunk-A kembali tersedia bagi A. |
| Dokumen A dihapus | Sumber hilang; potongan, keanggotaan indeks dan cache yang merujuknya tersisa nol. |
| Uji ulang sesudah penghapusan | A tidak mendapat konteks terhapus; dokumen B tetap tersedia bagi B. |
Source dan hasil tersedia dalam ZIP. Jalankan:
node agent-rag-lab.mjs
Ini fixture pencarian logis dalam memori. Tidak menjalankan LLM, model embedding, pencarian semantik atau vector database. Tidak menguji poisoning, mutu jawaban, race terdistribusi, backup atau secure erase. Cache lab menyimpan ID kandidat; cache jawaban produksi juga memerlukan penelusuran dependensi dan pemeriksaan tersendiri.
Bawa bukti ke pemeriksaan sebelum rilis
Uji pengguna sah, pelanggan lain, hak dicabut, sumber berubah/dihapus, cache terisi, kegagalan layanan izin serta keluaran/tool yang dipengaruhi sumber. Catat versi sumber/model/kebijakan dan batas yang belum diperiksa pada evaluasi fitur AI. Log terstruktur cukup untuk penelusuran; lindungi data sensitif dan batasi masa simpannya.
Penjelasan kontrol mengadaptasi OWASP RAG Security Cheat Sheet, diubah ke bahasa Indonesia dengan contoh Kompli, dengan CC BY-SA 4.0. Source fixture orisinal memiliki lisensi CC0; hasil terbatas pada lingkungan yang dijelaskan.
Contoh tambahan: peringkat vektor istilah dan sumber terkini
Lab operasi AI 1.0 dijalankan 2 Oktober 2026, Node 24.21.0. Ia menghitung frekuensi istilah berbobot IDF, vektor ternormalisasi dan cosine pada tiga dokumen buatan. Ini retrieval numerik berbasis kata, bukan embedding terlatih, pencarian semantik, vector database atau inference LLM.
| Kasus | Hasil dan batas yang diamati |
|---|---|
| Peringkat global buruk | B1 paling mirip dengan pertanyaan A. Jalur berizin menyaring pelanggan dan ACL terkini sebelum peringkat/konteks. |
| Cache dan pencabutan | Kandidat A1 tersimpan, tetapi izin terkini dicabut; retrieval dan pemeriksaan ulang konteks menahan A1. Cache menyimpan ID, bukan jawaban. |
| Sumber berubah | Versi source/indeks berbeda menahan potongan lama; rebuild mendapatkan teks baru. |
| Layanan izin gagal | Model menolak pencarian; tidak beralih ke indeks global. |
| Dokumen berbahaya | A2 masih ditemukan; usulan tool buatan ditolak. Tidak menguji respons model terhadap instruksi tersebut. |
| Penghapusan | A1 hilang dari sumber/vektor/cache aktif dan query terpilih kosong; B1 tetap tersedia bagi B. |
| Salinan yang sudah dipegang | Variabel lain tetap memuat teks A1. Bukan secure erase atau bukti semua salinan/backup hilang. |
Identitas dianggap terpercaya oleh fixture; gate berjalan sinkron dalam memori. Hasil tidak membuktikan autentikasi, race, beberapa proses atau retensi penyedia. Kasus label jawaban pada bagian evaluasi lab terpisah dari korpus retrieval ini; jangan menyamakannya dengan keluaran model yang membaca potongan tersebut.
Sumber rujukan
- RAG Security Cheat Sheet ↗OWASP Foundation; panduan teknis · Bagian 1–4, 6–7 dan 9–14: provenance, embedding privacy, ACL inheritance, deletion, cache, output dan fail-closed.
- AI Agent Security Cheat Sheet ↗OWASP Foundation; panduan teknis · Batas tool dan pemisahan identitas/konteks ketika hasil RAG dipakai agen.
Baca naskah lengkap untuk melihat syarat dan pengecualiannya. Sesuaikan dengan layanan dan bidang usaha Anda.
Perlu membahas kebutuhan tim Anda?
Ceritakan penggunaan AI di tim Anda dan hal yang ingin dipersiapkan.
Konsultasikan kebutuhan Anda