← Kembali ke wawasan

Applied AI

Security by Design untuk Aplikasi Generative AI

LinkedIn X

Checklist security by design yang ditulis untuk aplikasi web konvensional mencakup wilayah yang sudah familiar: autentikasi pengguna, otorisasi aksi, validasi input, enkripsi apa yang sensitif. Aplikasi generative AI membutuhkan semua itu, lalu satu lapisan tambahan yang tidak pernah dipikirkan checklist itu, karena aplikasinya sekarang harus bernalar tentang konten yang tidak ia tulis sendiri dan output yang tidak sepenuhnya bisa diprediksi.

Saya melewati ini saat membangun produk generative AI berbasis gambar yang ditujukan untuk pengguna di Indonesia — setiap gambar yang diunggah seseorang untuk menghasilkan konsep desain harus ditangani dengan kehati-hatian yang sama seperti data pengguna sensitif lainnya, dan setiap hasil yang dihasilkan harus diperlakukan sebagai sesuatu yang diproduksi sistem, bukan sesuatu yang bisa dijamin sistem tanpa syarat. Kedua insting itu tidak muncul begitu saja; keduanya harus sengaja dirancang.

Tulisan ini menguraikan pertimbangan keamanan yang menurut saya benar-benar khas untuk fitur generative AI, di luar dasar yang sudah dibutuhkan setiap aplikasi web.

Konten yang diunggah pengguna tidak dipercaya dua kali

Unggahan konvensional hanya perlu divalidasi sebagai file: apakah tipenya sesuai klaimnya, apakah ukurannya aman, apakah mengandung sesuatu yang berbahaya. Fitur generative AI menambahkan satu lapisan pengawasan lagi, karena file yang sama juga menjadi input model, dan input model bisa bersifat adversarial dengan cara yang tidak akan pernah tertangkap pemindai file — sebuah gambar atau teks yang direkayasa untuk memanipulasi apa yang dilakukan model terhadapnya. Memperlakukan unggahan pengguna sebagai aman begitu ia lolos pemeriksaan file konvensional adalah kesalahan paling mahal yang pernah saya lihat: pemeriksaan file dan pemeriksaan input-model adalah dua masalah berbeda, dan melewatkan yang kedua karena yang pertama sudah lolos adalah cara sebuah fitur generative berakhir melakukan sesuatu yang tidak diniatkan siapa pun.

Jangan percayai output yang dihasilkan sebagaimana Anda memercayai baris data di database

Sangat menggoda untuk memperlakukan output model sebagai artefak yang sudah selesai begitu ia dihasilkan — menyimpannya, menampilkannya, meneruskannya ke sistem lain — dengan cara yang sama seperti aplikasi memercayai nilai yang ia baca dari database miliknya sendiri. Output yang dihasilkan tidak berhak atas kepercayaan seperti itu secara default. Ia harus divalidasi terhadap batasan yang benar-benar dibutuhkan fitur tersebut — apakah ini hasil yang masuk akal, apakah ia tetap berada dalam batas yang dijanjikan produk — sebelum sampai ke penyimpanan atau ke pengguna, dan ia harus diperlakukan sebagai konten yang tidak tepercaya jika suatu saat dirender kembali ke sebuah antarmuka, dengan kehati-hatian yang sama seperti konten lain yang belum terverifikasi dan tampil ke pengguna.

Tentukan secara eksplisit apa yang boleh dipengaruhi sebuah prompt

Fitur yang dirancang dengan baik memberi pengguna cara yang sempit dan mudah dipahami untuk memengaruhi model — sebuah deskripsi, pilihan gaya, sebuah gambar referensi yang diunggah. Ia tidak memberi input pengguna jalan untuk memengaruhi sistem di luar itu: instruksi internal mana yang diikuti model, data di luar request saat ini yang bisa ia gunakan, apa yang diizinkan untuk dilakukannya selanjutnya. Setiap fitur generative harus bisa menjawab dengan jelas bagian sistem mana yang bisa disentuh input pengguna, dan segala sesuatu di luar batas itu harus berperilaku seolah-olah inputnya tidak pernah ada.

Jaga manusia tetap ada di dalam alur ketika konsekuensinya nyata

Sebuah guardrail yang terus saya andalkan, dipelajari pertama kali dari produk applied-AI lalu kemudian dari konteks compliance yang jauh lebih berat konsekuensinya: model mengusulkan, dan ketika sebuah keputusan benar-benar penting, manusia yang tetap memutuskan. Pada produk gambar untuk konsumen itu bisa berarti batasan yang jelas bahwa output yang dihasilkan adalah inspirasi, bukan rekomendasi profesional, dikomunikasikan secara jujur alih-alih dibiarkan tersirat. Pada konteks dengan taruhan lebih tinggi itu bisa berarti kategori judgment tertentu yang tidak pernah diizinkan diselesaikan model sendirian.

Pertanyaan desain yang layak diajukan untuk setiap fitur generative pada dasarnya sama: jika model salah dengan penuh percaya diri di sini, apa yang berdiri di antara output itu dan konsekuensi yang harus ditanggung pengguna atau organisasi? Jika jawabannya tidak ada apa-apa, fiturnya belum selesai.

Semua ini tidak memperlakukan generative AI sebagai sesuatu yang unik berbahaya — ini memperlakukannya sebagai fitur yang input dan outputnya kurang bisa diprediksi dibanding bagian lain aplikasi, dan merancang sesuai itu. Security by design untuk generative AI sebagian besar adalah disiplin yang sama yang sudah diterapkan engineer di mana pun, diarahkan ke dua tempat yang dilewatkan checklist yang ditulis sebelum fitur-fitur ini ada: apa yang dikonsumsi model, dan apa yang dikembalikannya.

Terbuka untuk diskusi seputar pengembangan produk yang aman, applied AI, dan compliance engineering.