Aşırı yetki, büyük bir dil modeline (LLM) diğer sistemlerle etkileşim kurmak için gereksiz veya aşırı izinli yetkiler verildiğinde ortaya çıkan bir güvenlik açığıdır. Bir LLM'nin harici araçları, eklentileri veya işlevleri (kendi "ajansı") çağırabildiği durumlarda bu güvenlik açığı, LLM'nin istenmeyen, yetkisiz ve potansiyel olarak zararlı işlemler gerçekleştirmesine olanak tanır. Saldırganlar, istem ekleme veya diğer manipülasyon tekniklerini kullanarak LLM'yi kötü amaçlı olarak kullanmaya ikna edebilir. Temel sorun, LLM'nin işlem yapabilmesi değil, bu işlemlerin kapsamının çok geniş ve kötü kontrol edilmiş olmasıdır.
Android geliştiriciler neden önemsemeli?
Android uygulamanızda bir LLM'ye aşırı yetki vermek ciddi güvenlik olaylarına yol açabilir:
- Yetkisiz sistem erişimi: Cihazın dosya sistemi ve depolama kaynakları veya ağ araması yapma özelliği, işlev çağrısı aracılığıyla modele sunulursa saldırgan, istem ekleme kullanarak cihazdaki dosyalara (ör. kullanıcı belgeleri, uygulama verileri) veya bağlı ağ kaynaklarına erişebilir, bunları değiştirebilir ya da silebilir.
- Veri sızdırma: Bir uygulama, bir LLM'ye yerel verilere (ör. Room veritabanları, SharedPreferences veya dahili API'ler) erişim sağlamak için işlev çağrısı kullanıyorsa. Kötü amaçlı bir istem, modeli hassas bilgileri alıp e-posta veya ağ isteği işlevi gibi harici bir araca aktarması için kandırabilir.
- Diğer işlevlerin/sistemlerin güvenliğinin ihlal edilmesi: LLM'nin diğer işlevler üzerinde yetkisi varsa (örneğin, SMS gönderme, arama yapma, sosyal medyada yayınlama, örtülü amaçlarla sistem ayarlarını değiştirme, uygulama içi satın alma işlemleri yapma), saldırganlar bu işlevleri ele geçirerek spam gönderebilir, yanlış bilgi yayabilir veya yetkisiz işlemler gerçekleştirebilir. Bu durum, doğrudan maddi kayba veya kullanıcıların zarar görmesine yol açar.
- Hizmet reddi: Bir LLM, veritabanı sorgularını veya ağ isteklerini ortaya çıkaran işlev çağrısıyla entegre edilmişse kötü amaçlı bir istem bu işlemleri tekrar tekrar tetikleyebilir. Bu durum, aşırı pil tüketimi, veri aşımı veya yerel kaynakların tükenmesi gibi sistem sağlığının bozulmasına yol açabilir.
Android uygulama geliştiricileri için azaltma önlemleri
Android uygulamalarındaki aşırı aracılık sorununu azaltmak için LLM'nin erişebileceği veya tetikleyebileceği her araç ve işlevde en düşük ayrıcalık ilkesi uygulanır.
Yapay zekanın araç kutusunu sınırlayın (ayrıntılı işlevler ve açık uçlu işlevler):
- Minimum düzeyde araç sağlayın: LLM, uygulamanızda işini yapabilmek için kesinlikle ihtiyaç duyduğu belirli araçlara (işlevler, API'ler, amaçlar) erişebilmelidir. Web'e göz atması veya e-posta göndermesi gerekmiyorsa bu özellikleri LLM'ye sunmayın.
- Basit ve tek amaçlı araçlar kullanın: Sınırlı ve belirli bir kapsamda tasarım araçları kullanın. Örneğin, birden fazla veri kaynağına erişmek için açık uçlu parametreleri kabul eden genel bir araç yerine yalnızca belirli bir kullanıcı ayarı türünü okuyan bir araç sağlayın. Modelin komutu veya bağımsız değişkenleri tanımlamasına izin vererek
Runtime.getRuntime().exec()gibi güçlü sistem düzeyindeki API'leri bir LLM'ye sunmaktan kaçının.
Yapay zekanın gücünü kısıtlama
- Ayrıntılı Android izinleri: Bir LLM tarafından tetiklenen işlev, Android sistem kaynaklarıyla veya diğer uygulamalarla etkileşimde bulunduğunda uygulamanızın yalnızca gereken mutlak minimum Android izinlerini istediğini ve elinde tuttuğunu doğrulayın.
- Kullanıcı başına izinler: LLM, kullanıcı adına bir işlem gerçekleştirirken bunu kullanıcının belirli izinleri ve bağlamıyla yapmalıdır. Bir LLM'nin gerçekleştirdiği işlem, belirli bir kullanıcı komutuna doğrudan yanıt olmalıdır.
İnsanı sorumlu tutma (önemli işlemler için kullanıcı izni)
- Kullanıcı onayı gerektir: Bir LLM'nin önerebileceği veya gerçekleştirmeye çalışabileceği önemli ya da riskli işlemler (ör. veri silme, uygulama içi satın alma, mesaj gönderme, kritik ayarları değiştirme) için kullanıcı arayüzünüzde onay iletişim kutusu kullanarak her zaman açıkça kullanıcı onayı alın. Bunu, önemli bir kararın onaylanması için yöneticinin imzasının alınması gibi düşünebilirsiniz.
Güvenin ancak doğrulayın (giriş/çıkış doğrulaması ve güçlü arka uçlar)
- Arka uç güvenliği: Bir işleme izin verilip verilmeyeceğine karar vermek için yalnızca LLM'ye güvenmeyin. LLM tarafından tetiklenen işlevlerin bağlandığı tüm arka uç hizmetleri veya API'ler, her isteği iki kez kontrol etmek ve isteğin meşru olup olmadığını ve beklenen parametreler içinde yer alıp almadığını doğrulamak için kendi güçlü kimlik doğrulama, yetkilendirme ve giriş doğrulama işlemlerine sahip olmalıdır.
- Verileri temizleme: Diğer güvenlik açıkları gibi, herhangi bir işlem yürütülmeden önce kötü amaçlı talimatları veya beklenmedik çıkışları yakalamak için hem LLM'ye giren girişi hem de işlev çağrıları için LLM tarafından oluşturulan parametreleri temizlemek ve doğrulamak çok önemlidir.
Özet
Aşırı yetki, bir LLM'nin diğer sistemler veya işlevlerle etkileşim kurmak için aşırı geniş izinlere sahip olduğu ve zararlı eylemler gerçekleştirmesi için kandırılmasına olanak tanıyan kritik bir güvenlik açığıdır. Bu durum, Android uygulamalarında yetkisiz veri erişimine, sistemin güvenliğinin ihlal edilmesine, maddi kayba veya kullanıcıların zarar görmesine yol açabilir. Bu saldırıları önlemek için en az ayrıcalık ilkesi büyük önem taşır: LLM'nin kullanabileceği araçlar ve Android izinleri kesinlikle sınırlandırılmalı, her aracın minimum ve belirli işlevlere sahip olduğu doğrulanmalı ve yüksek etkili tüm işlemler için kullanıcı onayı alınmalıdır.