Kewenangan berlebihan adalah kerentanan yang terjadi saat model bahasa besar (LLM) diberi kemampuan yang tidak perlu atau terlalu permisif untuk berinteraksi dengan sistem lain. Jika LLM dapat memanggil alat, plugin, atau fungsi eksternal (kemampuan "agen"), kerentanan ini memungkinkan LLM melakukan tindakan yang tidak diinginkan, tidak sah, dan berpotensi berbahaya. Penyerang dapat mengeksploitasi hal ini dengan menggunakan injeksi perintah atau teknik manipulasi lainnya untuk menipu LLM agar menggunakan kemampuan yang diberikan untuk tujuan berbahaya. Masalah utamanya bukan hanya bahwa LLM dapat mengambil tindakan, tetapi cakupan tindakan tersebut terlalu luas dan tidak terkontrol dengan baik.
Alasan developer Android harus peduli
Memberi LLM agensi yang berlebihan dalam aplikasi Android Anda dapat menyebabkan insiden keamanan yang parah:
- Akses sistem yang tidak sah: Jika sistem file dan resource penyimpanan perangkat atau kemampuan untuk melakukan panggilan jaringan diekspos ke model melalui panggilan fungsi, penyerang dapat menggunakan injeksi perintah untuk mengakses, mengubah, atau menghapus file di perangkat (misalnya, dokumen pengguna, data aplikasi) atau resource jaringan yang terhubung.
- Pemindahan data yang tidak sah: Jika aplikasi menggunakan panggilan fungsi untuk memberi LLM akses ke data lokal (seperti, database Room, SharedPreferences, atau API internal). Perintah berbahaya dapat mengelabui model untuk mengambil informasi sensitif dan meneruskannya ke alat eksternal, seperti fungsi permintaan email atau jaringan.
- Kompromi fungsi/sistem lain: Jika LLM memiliki kontrol atas fungsi lain (misalnya, mengirim SMS, melakukan panggilan, memposting di media sosial menggunakan intent implisit, mengubah setelan sistem, melakukan pembelian dalam aplikasi), penyerang dapat membajak fungsi ini untuk mengirim spam, menyebarkan disinformasi, atau melakukan transaksi yang tidak sah, sehingga menyebabkan kerugian finansial langsung atau membahayakan pengguna.
- Penolakan layanan: Jika LLM diintegrasikan dengan panggilan fungsi yang mengekspos kueri database atau permintaan jaringan, perintah berbahaya dapat memicu tindakan ini berulang kali. Hal ini dapat menyebabkan penurunan kualitas kesehatan sistem, seperti pengurasan baterai yang berlebihan, kelebihan penggunaan data, atau kehabisan resource lokal.
Mitigasi untuk developer aplikasi Android
Mitigasi untuk agensi yang berlebihan dalam aplikasi Android berfokus pada penerapan prinsip hak istimewa terendah untuk setiap alat dan fungsi yang dapat diakses atau dipicu oleh LLM.
Membatasi toolbox AI (fungsi terperinci vs. terbuka):
- Menyediakan alat minimal: LLM hanya boleh memiliki akses ke alat (fungsi, API, maksud) tertentu yang benar-benar diperlukan untuk melakukan tugasnya dalam aplikasi Anda. Jika tidak perlu dapat menjelajahi web atau mengirim email, jangan ekspos kemampuan tersebut ke LLM.
- Gunakan alat yang sederhana dan memiliki satu tujuan: Desain alat dengan cakupan yang terbatas dan spesifik. Misalnya, sediakan alat yang hanya membaca jenis setelan pengguna tertentu, bukan alat generik yang menerima parameter terbuka untuk mengakses beberapa sumber data. Hindari mengekspos API tingkat sistem yang canggih, seperti
Runtime.getRuntime().exec(), ke LLM dengan mengizinkan model menentukan perintah atau argumen.
Membatasi kemampuan AI
- Izin Android terperinci: Saat fungsi yang dipicu LLM berinteraksi dengan resource sistem Android atau aplikasi lain, pastikan aplikasi Anda hanya meminta dan memegang izin Android minimum yang mutlak diperlukan.
- Izin per pengguna: Saat LLM melakukan tindakan atas nama pengguna, LLM harus melakukannya dengan izin dan konteks khusus pengguna tersebut. Tindakan yang dilakukan oleh LLM harus berupa respons langsung terhadap perintah pengguna tertentu.
Memastikan pengguna tetap memegang kendali (izin pengguna untuk tindakan penting)
- Mewajibkan persetujuan pengguna: Untuk setiap tindakan penting atau berisiko yang mungkin disarankan atau dicoba dilakukan oleh LLM (misalnya, menghapus data, melakukan pembelian dalam aplikasi, mengirim pesan, mengubah setelan penting), selalu minta persetujuan eksplisit dari manusia menggunakan dialog konfirmasi di UI Anda. Anggap saja seperti membutuhkan persetujuan dari manajer untuk keputusan penting.
Percaya tetapi verifikasi (validasi input/output dan backend yang andal)
- Keamanan backend: Jangan hanya mengandalkan LLM untuk memutuskan apakah suatu tindakan diizinkan. Semua layanan atau API backend yang terhubung dengan fungsi yang dipicu LLM harus memiliki autentikasi, otorisasi, dan validasi input yang kuat untuk memeriksa ulang setiap permintaan dan memverifikasi bahwa permintaan tersebut sah dan berada dalam parameter yang diharapkan.
- Membersihkan data: Sama seperti kerentanan lainnya, Anda harus membersihkan dan memvalidasi input yang masuk ke LLM dan parameter yang dihasilkan oleh LLM untuk panggilan fungsi guna mendeteksi petunjuk berbahaya atau output yang tidak terduga sebelum tindakan apa pun dieksekusi.
Ringkasan
Otoritas Berlebihan adalah kerentanan kritis di mana LLM memiliki izin yang terlalu luas untuk berinteraksi dengan sistem atau fungsi lain, sehingga memungkinkan LLM ditipu untuk melakukan tindakan berbahaya. Hal ini dapat menyebabkan akses data yang tidak sah, penyusupan sistem, kerugian finansial, atau bahaya bagi pengguna di aplikasi Android. Mitigasi sangat bergantung pada prinsip hak istimewa terendah: batasi secara ketat alat dan izin Android yang tersedia untuk LLM, verifikasi bahwa setiap alat memiliki fungsi minimal dan spesifik, serta mewajibkan persetujuan manusia untuk semua operasi berdampak tinggi.