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 ("kemampuannya"), 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 otoritas 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: Penyerang dapat memerintahkan LLM untuk mengakses, mengubah, atau menghapus file di perangkat lokal berteknologi Android (misalnya, dokumen pengguna, data aplikasi) atau resource jaringan yang terhubung jika model memiliki kemampuan dan izin Android yang sesuai untuk melakukannya.
- Pencurian data: LLM dapat ditipu untuk membaca data sensitif dari database aplikasi lokal (seperti Room), SharedPreferences, atau API internal, lalu mencuri informasi tersebut ke sumber eksternal (misalnya, mengirimkannya menggunakan panggilan API atau fungsi email). Model juga dapat membocorkan informasi sensitif yang diserapnya selama fase pelatihan, atau informasi sensitif yang diberikan pengguna dalam perintahnya.
- Kompromi fungsi/sistem lain: Jika LLM memiliki kontrol atas fungsi lain (misalnya, mengirim SMS, melakukan panggilan, memposting di media sosial menggunakan maksud 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: LLM dapat diinstruksikan untuk melakukan tindakan yang intensif sumber daya berulang kali dalam aplikasi atau terhadap layanan backend, seperti menjalankan kueri database yang kompleks atau memanggil API dalam loop, yang menyebabkan aplikasi tidak responsif, baterai cepat habis, penggunaan data berlebihan, atau bahkan penolakan layanan untuk sistem backend.
Mitigasi untuk developer aplikasi Android
Mitigasi untuk agensi berlebihan di aplikasi Android berfokus pada penerapan prinsip hak istimewa terendah ke setiap alat dan fungsi yang dapat diakses atau dipicu oleh LLM.
Membatasi toolbox AI (fungsi terperinci versus 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 sederhana yang memiliki satu tujuan: Lebih baik memberi LLM alat yang hanya dapat melakukan satu hal tertentu (seperti "membaca jenis setelan pengguna tertentu") daripada alat canggih yang memiliki banyak fungsi dan dapat melakukan apa saja (seperti "mengeksekusi perintah shell apa pun").
Membatasi kemampuan AI
- Izin Android dengan perincian tinggi: Saat fungsi yang dipicu LLM berinteraksi dengan resource sistem Android atau aplikasi lain, pastikan aplikasi Anda hanya meminta dan memegang izin Android minimum mutlak yang diperlukan.
- Izin per pengguna: Saat LLM melakukan tindakan atas nama pengguna, LLM harus melakukannya dengan izin dan konteks khusus pengguna tersebut, bukan dengan akun tingkat aplikasi yang lebih luas dan berpotensi administratif. Hal ini memverifikasi bahwa LLM tidak dapat melakukan apa pun yang tidak diizinkan untuk dilakukan oleh pengguna itu sendiri.
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 wajibkan 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 instruksi 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 LLM dapat 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.