Yapay Zeka Ajanlarının Anahtarlara Değil, Sınırlara İhtiyacı Var
Bir yapay zeka ajanına MCP aracılığıyla uygulamanıza erişim vermek risklidir. Bir anahtarlık teslim edip sadece belirli kapıları açmalarını umuyorsunuz demektir. Bu güven, bir güvenlik riskidir.
Çok kiracılı (multi-tenant) bir Laravel uygulaması için MCP araçları geliştirirken bir sorunu çözmeniz gerekir: Bir ajanın, başkasının verilerine erişmeden uygulamayı yönetmesine nasıl izin verilir?
Her MCP aracı bir uç nokta (endpoint) gibi davranır. Bir ajan bir aracı çağırır ve sunucunuz kodu çalıştırır. Çok kiracılı bir kurulumda, her araç şu iki soruyu yanıtlamalıdır:
- Bunu yapmaya izniniz var mı?
- Bunu burada yapmaya izniniz var mı?
Bunları atlarsanız, bir güvenlik açığı oluşturursunuz.
Web istekleri, çok kiracılığı yönetmek için oturumları (sessions) kullanır. MCP araçları ise token'ları kullanır. Mevcut kiracı bağlamını (tenant context) ayarlayacak bir oturum veya middleware bulunmaz. Eğer oturumda "mevcut organizasyon" (current org) arayan global scope'lara güveniyorsanız, hiçbir şey bulamayacaklardır. Kısıtlanması gereken bir sorgu, veritabanınızdaki tüm satırları döndürebilir.
Güvende kalmak için şu dört kuralı uyguluyorum:
- Açık filtreleme: Token kimlik doğrulaması altında asla ortam kapsamına (ambient scope) güvenmeyin. Her seferinde organizasyona göre filtreleme yapmak için tek bir trait kullanın.
- UUID kullanın: Asla otomatik artan (auto-increment) ID'ler kullanmayın. Ajanların diğer kayıtları tahmin edememesi için tahmin edilemez tanımlayıcılar kullanın.
- İzinleri yeniden kullanın: Ajanlar için yeni izin setleri oluşturmayın. Web uygulamanızın kullandığı aynı yetenek dizelerini (ability strings) kullanın.
- Yan etkileri işaretleyin: Araçları salt okunur (read-only) veya yazma etkin (write-enabled) olarak etiketlemek için anotasyonlar kullanın.
Organizasyon aramaları için tek bir trait kullanarak denetlenecek tek bir yer oluşturursunuz. Eğer arama null dönerse, araç ajana kaydın bulunamadığını söyler. Ajan, diğer kiracılar hakkında hiçbir bilgi alamaz.
Bu bir yapay zeka problemi değil. Bu bir çok kiracılık (multi-tenancy) ve yetkilendirme problemidir. MCP, uygulamanızı dışarıya açmayı kolaylaştırır, bu nedenle sınırlar konusunda disiplinli olmalısınız.
Bir ajan, kendi kiracısı dahilinde, bir insanın yapabildiklerini tam olarak yapmalı ve daha fazlasını yapmamalıdır.
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi
