Yapay zekâ (AI) ajanları, karmaşık görevleri otomatikleştirmek üzere tasarlanmış araçlar olarak öne çıkıyor. Ancak son araştırmalar, bu ajanların kullanabileceği fonksiyonların büyük bir kısmında herhangi bir güvenlik kontrolünün bulunmadığını ortaya koyuyor. ABD merkezli bir geliştirici tarafından yürütülen çalışmada, üç farklı açık kaynaklı TypeScript tabanlı AI ajanı incelendi ve 669 adet yan etkiye sahip fonksiyon tespit edildi. Bunların 553'ünde ( %83) girdi doğrulama, yetkilendirme kontrolleri veya onay adımları gibi koruma mekanizmaları hiç bulunmuyordu.
AI Ajanları Neden Farklı Bir Güvenlik Yaklaşımına İhtiyaç Duyuyor?
Geleneksel web uygulamalarında, kullanıcı arayüzü ve arka planda çalışan middleware'ler, tehlikeli fonksiyonlara erişimi kısıtlar. Örneğin, bir veritabanı silme işlemi için kullanıcıya bir onay penceresi gösterilir veya giriş doğrulaması uygulanır. Ancak AI ajanlarında durum farklıdır. Büyük dil modelleri (LLM'ler), hangi fonksiyonu çağıracağına, hangi argümanlarla çağıracağına ve kaç kez çağıracağına karar verebilir. Bu kararlar, kullanıcıdan bağımsız olarak ve hatta yanıltıcı girdilerle manipüle edilebilir şekilde alınabilir.
Yani, AI ajanlarında güvenlik kontrollerinin arayüz katmanından bağımsız olarak doğrudan kod içerisinde yer alması gerekiyor. Araştırmacıların çalışması da tam olarak bu noktaya odaklanıyor: "Her bir fonksiyon için bir kontrol mekanizması var mı? Ve eğer yoksa, bunun farkında mısınız?"
Statik Analiz ile Risklerin Sayısallaştırılması
Araştırmacı, diplomat-agent-ts adını verdiği bir statik analiz aracı geliştirerek, TypeScript kod tabanlarında yer alan ve yan etkiye sahip fonksiyonları taradı. Araç, ts-morph kütüphanesinden faydalanarak, kodun soyut sözdizimini (AST) analiz etti ve 40'tan fazla farklı yan etki kalıbını tanımladı. Bunlar arasında veritabanı yazma/okuma, dosya silme, ödeme işlemleri, HTTP istekleri ve ajan çağrıları yer alıyordu.
Araç, her bir fonksiyonu üç kategoriden birine dahil etti:
- `no_checks`: Hiçbir koruma mekanizması olmayan fonksiyonlar (83%).
- `partial_checks`: Kısmi korumaya sahip olanlar (yaklaşık %17).
- `confirmed`: Araştırmacının kendi geliştirdiği bir ek açıklama sistemiyle onaylananlar (sıfır, çünkü bu sistem dışarıdaki projelerde kullanılmıyordu).
Tarama sonuçları, OpenClaw adlı uygulama odaklı bir ajanda 419 fonksiyonun 332'sinde ( %79), Mastra adlı çerçeve odaklı projede 185 fonksiyonun 162'sinde ( %88), ve OpenAI Agents JS adlı projede ise 33 fonksiyonun 31'inde ( %94) herhangi bir koruma olmadığını gösterdi. Toplamda incelenen 669 fonksiyonun sadece 116'sında kısmi koruma bulunurken, hiçbirinde araştırmacının eklediği "onaylanmış" statüsü yer almadı.
Hangi Yan Etki Türleri En Riskli?
Yapılan tarama, yan etki kategorilerine göre de ilginç veriler ortaya koydu. Toplam 669 fonksiyondan en yaygın olanları şunlardı:
- Yıkıcı işlemler (486): Komut çalıştırma (shell komutları) ve sistem süreçlerini yönetme.
- Dosya silme (214): Dosya sisteminden veri silme işlemleri.
- Yayınlama (124): Dosya veya verilerin dışa aktarılması.
- Ajan çağrıları (120): Diğer AI ajanlarının çağrılması.
Araştırmacı, bu verilerin doğrudan bir "başarısızlık puanı" olmadığını vurguluyor. Örneğin, OpenClaw adlı uygulama, doğrudan komut çalıştırmak ve dosya yönetmek üzerine kurulu olduğu için bu fonksiyonların çoğu aslında uygulamanın temel işlevini oluşturuyor. Bu nedenle, sadece sayısal verilerden yola çıkarak bir yargıya varmak yerine, her bir bulgunun bağlam içerisinde değerlendirilmesi gerekiyor.
OWASP Standartlarına Göre Risk Dağılımı
Araştırmacı, bulguları OWASP Agentic Güvenlik Enstitüsü (ASI) standartlarına göre sınıflandırdı. Bu sınıflandırmaya göre:
- ASI-02 (Aracın yanlış kullanımı): Tüm 669 fonksiyon bu kategoride yer aldı.
- ASI-01 (Aşırı yetki kullanımı): 576 fonksiyon, yetkilendirme kontrolleri olmadan hassas işlemler gerçekleştirebiliyordu.
- ASI-03 (Yetki ihlali): 465 fonksiyon, yüksek riskli işlemler için herhangi bir onay mekanizması içermiyordu.
Bu sınıflandırmalar, AI ajanlarının güvenlik açıklarını standart bir çerçeveye oturtarak daha sistematik bir şekilde ele alınmasını sağlıyor. Ancak araştırmacı, bu bulguların yalnızca bir envanter niteliğinde olduğunu ve doğrudan bir risk puanı olarak yorumlanmaması gerektiğini hatırlatıyor.
Gelecekteki Adımlar: Güvenlik Kontrollerini Nerede Aramalı?
Statik analiz araçları, kod tabanındaki fonksiyonların güvenlik açıklarını tespit etmek için güçlü bir yöntem sunuyor. Ancak AI ajanlarında güvenlik kontrolleri çoğunlukla kodun içinde değil, ortamda (middleware, ağ geçitleri, çalışma zamanı) yer alıyor. Bu nedenle, statik analiz yalnızca bir başlangıç noktası olabilir.
Araştırmacı, gelecekteki çalışmaların, ajanların çalışma zamanı davranışlarını izleyen dinamik analiz araçlarına odaklanması gerektiğini vurguluyor. Ayrıca, geliştiricilerin AI ajanlarına özel güvenlik kontrolleri tasarlarken, hem kod hem de çalışma zamanı katmanlarını birlikte düşünmeleri gerektiği konusunda uyarıda bulunuyor.
Bu çalışma, AI ajanlarının güvenlik açıklarını sayısallaştırarak, geliştiricilerin ve güvenlik ekiplerinin dikkatini önemli bir konuya çekiyor. Gelecekte, AI tabanlı sistemlerin güvenliğinin yalnızca kod kalitesine değil, aynı zamanda bu sistemlerin nasıl yönetildiğine ve izlendiğine de bağlı olacağı açıkça görülüyor.
Yapay zeka özeti
Üç açık kaynaklı yapay zekâ ajanı kod tabanını tarayan araştırmacı, fonksiyonların %83'ünde herhangi bir koruma olmadığını ortaya koydu. Veritabanı işlemlerinden ödeme çağrışımlarına kadar geniş bir yelpazede yer alan bu riskler, ajan tabanlı sistemlerde yeni güvenlik endişeleri yaratıyor.