Teknik rehberYapay Zekâ

Otonom Yazılım Ajanlarını Güvenli Değerlendirme: Devin ve OpenHands Üzerine Teknik Bir Bakış

Devin ve OpenHands gibi otonom yazılım ajanlarını güvenli bir şekilde değerlendirmek için izole ortamlar, yetki sınırlandırma ve gözlemlenebilirlik katmanları şart. Bu yazıda, riskleri azaltan uygulanabilir bir değerlendirme akışı kuruyoruz.

Yapay zekâ ve dijital teknoloji görseli
Görsel: Unsplash · Görsel kaynağı

Otonom Yazılım Ajanları Neden Farklı Bir Değerlendirme Gerektirir?

Geleneksel kod üretim araçları, genellikle bir istem (prompt) alıp statik bir çıktı döndürür. Otonom yazılım ajanları ise bunun ötesine geçer: dosya sistemi, terminal, tarayıcı ve hatta harici API'lerle etkileşime girer. Devin ve OpenHands gibi sistemler, verilen görevi tamamlamak için plan yapar, komut çalıştırır, hata ayıklar ve gerektiğinde ortamı değiştirir. Bu özerklik, üretkenliği artırırken saldırı yüzeyini de genişletir. Dolayısıyla bir ajanı değerlendirmek, yalnızca ürettiği kodu incelemek değil; onun çalışma ortamını, yetkilerini ve dış dünyayla kurduğu bağlantıları da denetlemek anlamına gelir.

Bu yazıda, Devin ve OpenHands özelinde, doğrulanabilir ve tekrarlanabilir bir güvenli değerlendirme akışı kuruyoruz. Amaç, ajanın yeteneklerini ölçerken sisteminize verebileceği zararı en aza indirmektir.

1. İzole ve Tek Kullanımlık Ortamlar

Bir otonom ajanın en temel riski, ana makinenizde veya üretim ortamınızda kontrolsüz komut çalıştırmasıdır. Bunu engellemek için değerlendirme sürecini konteyner tabanlı, ağ erişimi kısıtlanmış ve kalıcı olmayan bir ortamda yürütün. Docker veya Podman ile oluşturacağınız bir imaj, ajanın ihtiyaç duyduğu araçları (Python, Node.js, git) içersin; ancak ana makine dosya sistemine erişimi olmasın.

Örnek bir docker-compose.yml iskeleti:

version: '3.8'
services:
  agent-sandbox:
    build: ./sandbox
    network_mode: "none"
    read_only: true
    tmpfs:
      - /tmp:size=512M
    volumes:
      - ./workspace:/workspace:rw
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL

Bu yapılandırma, ajanın ağa çıkmasını engeller, kök dosya sistemini salt okunur yapar ve yalnızca /workspace dizininde yazma izni verir. OpenHands gibi ajanlar kendi içinde bir çalışma alanı yönetir; bu alanı ayrı bir birim olarak bağlamak, değerlendirme sonrası temizliği kolaylaştırır. Devin için ise resmî dokümantasyonda belirtilen izole oturum özelliklerini kullanmak, ajanın sizin altyapınıza doğrudan erişmesini önler. Ürünün sağladığı izolasyon seviyesini mutlaka resmî kaynaklardan doğrulayın.

2. Yetki Sınırlandırma ve Sır Yönetimi

Otonom ajanlara asla geniş kapsamlı kimlik bilgileri vermeyin. Değerlendirme sırasında kullanacağınız API anahtarları, veritabanı şifreleri veya bulut erişim anahtarları; yalnızca test ortamına özel, kısa ömürlü ve minimum yetkili olmalıdır. Örneğin, bir AWS görevi için AdministratorAccess yerine yalnızca ilgili S3 klasörüne okuma/yazma izni veren bir IAM politikası tanımlayın.

OpenHands, çalışma zamanında ortam değişkenlerini kullanabilir. Bu değişkenleri doğrudan ajanın oturumuna enjekte etmek yerine, bir sır yönetim aracı (örneğin HashiCorp Vault veya AWS Secrets Manager) üzerinden dinamik olarak çekmesini sağlayın. Devin'in ise hangi kimlik bilgilerine erişebildiğini resmî dokümantasyondan kontrol edin; ürünün varsayılan olarak hangi izinleri istediğini ve bunların nasıl kısıtlanabileceğini doğrulayın.

3. Gözlemlenebilirlik ve Denetim Kaydı

Bir ajanın ne yaptığını bilmiyorsanız, güvenli olduğunu varsayamazsınız. Değerlendirme ortamınızda tüm sistem çağrılarını, ağ isteklerini ve dosya değişikliklerini kaydedin. strace, auditd veya konteyner seviyesinde eBPF tabanlı araçlar kullanarak süreçleri izleyebilirsiniz. Ayrıca ajanın ürettiği tüm komutları ve çıktıları bir günlük dosyasına yazın.

Örnek bir izleme komutu:

docker run --rm -it --cap-add=SYS_PTRACE --security-opt seccomp=unconfined agent-sandbox strace -f -o /workspace/trace.log -e trace=execve,openat,connect ./run_task.sh

Bu kayıtlar, hem hata ayıklama hem de güvenlik denetimi için gereklidir. OpenHands'in kendi arayüzünde oturum geçmişi bulunur; ancak altyapı seviyesindeki izleme, ajanın araç dışına taşan davranışlarını yakalamak için şarttır.

4. Ağ Erişimini Kontrol Etme

Otonom ajanlar, görevleri tamamlamak için paket indirebilir, API çağırabilir veya dış servislere bağlanabilir. Değerlendirme sırasında ağ erişimini ya tamamen kapatın ya da yalnızca beyaz listeye aldığınız adreslere izin verin. Docker'da network_mode: none kullanmak en katı seçenektir; ancak ajanın bağımlılık indirmesi gerekiyorsa, önceden hazırlanmış bir önbellek kullanın.

Daha esnek bir yaklaşım için bir HTTP proxy arkasında çalıştırın ve yalnızca pypi.org, registry.npmjs.org gibi gerekli adreslere izin verin. Devin'in bulut tabanlı yapısı gereği ağ erişimi ürün tarafından yönetilir; bu nedenle kendi altyapınızda çalışan OpenHands gibi araçlarda ağ politikasını siz tanımlarsınız.

5. Uygulamalı Örnek: Basit Bir Görev Değerlendirmesi

Aşağıdaki adımlar, bir OpenHands ajanını güvenli şekilde değerlendirmek için izlenebilecek bir akıştır:

  1. Yukarıdaki docker-compose.yml ile izole bir ortam başlatın.
  2. Ajanın çalışma alanına, çözmesini istediğiniz küçük bir kodlama görevi (örneğin, bir Python fonksiyonunu düzeltme) içeren bir depo kopyalayın.
  3. Ajanı başlatın ve görevi tanımlayın. OpenHands'in kendi arayüzünü veya CLI'sini kullanın.
  4. Görev sırasında trace.log dosyasını canlı olarak izleyin; beklenmeyen bir connect veya openat çağrısı olup olmadığını kontrol edin.
  5. Görev tamamlandığında, üretilen kodu inceleyin ve ortamı derhal yok edin.

Bu akış, ajanın yeteneklerini ölçerken riskleri de kontrol altında tutar. Devin için benzer bir değerlendirme yaparken, ürünün sağladığı izole oturumları kullanın ve oturum sırasında hangi kaynaklara eriştiğini resmî denetim araçlarıyla takip edin.

Sonuç

Otonom yazılım ajanları, yazılım geliştirme süreçlerini hızlandırabilir; ancak kontrolsüz kullanıldığında ciddi güvenlik açıklarına yol açabilir. Devin ve OpenHands gibi araçları değerlendirirken izolasyon, minimum yetki, gözlemlenebilirlik ve ağ kısıtlaması ilkelerinden ödün vermeyin. Her ürünün kendine özgü davranışlarını ve sınırlamalarını resmî dokümantasyondan doğrulayın. Unutmayın: Bir ajanın ne yapabileceğini değil, ne yapmasına izin verdiğinizi test ediyorsunuz.

🍪
Çerez Kullanımı

Kodumun Hatası, web sitesinin çalışmasını sağlamak ve kullanıcı deneyimini geliştirmek için çerezler kullanabilir. Zorunlu olmayan çerezler için tercihlerinizi belirleyebilir, ayrıntılı bilgiye Çerez Politikamızdan ulaşabilirsiniz.