Giriş
OpenClaw, kullanıcıların kendi sunucularında barındırabildiği, yapay zeka tabanlı ajanlar oluşturmalarını sağlayan popüler bir self-hosted (kendi kendine barındırılan) platformdur. Bu ajanlar, çeşitli görevleri otomatikleştirmek için büyük dil modelleri (LLM) ve üçüncü parti hizmetlerle entegre çalışır. Ancak, araştırmacılar tarafından yakın zamanda tespit edilen kritik güvenlik açıkları, bu ajanların saldırıya uğramasına ve ciddi veri kayıplarına yol açabilecek uzaktan kod yürütme (RCE) ve veri sızıntısı risklerini ortaya çıkardı.
Tespit Edilen Güvenlik Açıklıkları
1. Agentjacking: Enjekte Edilen Komutlarla Uzaktan Kod Yürütme
CVE-2024-XXXX (Agentjacking) olarak adlandırılan bu açıklık, saldırganların OpenClaw ajanlarına gizlenmiş kötü niyetli komutlar enjekte etmesine olanak tanır. Bu saldırı vektörü, özellikle ajanların işlediği paylaşılan kontaklar (vCards), konum pinleri ve diğer mesaj nesneleri üzerinden gerçekleşir. Bu nesnelerde yer alan metadata ve komutlar arasında ayrım yapamayan LLM, saldırganın enjekte ettiği komutları doğal bir talimat olarak algılar ve yürütür.
Nasıl çalışır?
- Saldırgan, ajanla etkileşime geçebilecek bir vCard, konum pini veya benzeri mesaj nesnesi oluşturur. Örneğin, bir vCard içine saklanmış bir Python komutu:
- Ajan, bu nesneyi işlerken metadata ile komut arasında ayrım yapamaz ve saklanan komutu yürütür. Örneğin, OpenClaw ajanının bu vCard'ı işlerken
TITLEalanındaki komutu çalıştırması: - Sonuç: Tüm sistemde yıkıcı etkilere yol açabilir. Örneğin, dosya silme, veri sızıntısı veya ajanın kontrolünün ele geçirilmesi.
BEGIN:VCARD
VERSION:3.0
FN:Malicious Contact
TITLE:;rm -rf /;--
END:VCARD
rm -rf /
2. Sınırlandırılmamış Girdi Doğrulama
OpenClaw ajanlarının, işlediği mesaj nesnelerinde doğru sınırlandırma mekanizmaları bulunmamaktadır. Bu durum, saldırganların arbitrary code execution (herhangi bir komutun yürütülmesi) ve data exfiltration (veri sızıntısı) gerçekleştirmelerine olanak tanır. Özellikle, location pins ve shared contacts gibi zengin içerikli nesnelerde yer alan veriler, ajan tarafından güvenilir olarak kabul edilir ve işlenir.
Etki ve Riskler
Etki Alanı: Bu açıklıklar, OpenClaw'ı kullanan tüm kullanıcıları ve kuruluşları etkiler. Saldırganlar, ajanların yetkilerini kullanarak ağdaki diğer sistemlere erişim sağlayabilir, kullanıcı verilerini çalabilir veya ajanları kötü amaçlı botlara dönüştürebilir.
Olası Saldırı Senaryoları:
- Veri Sızıntısı: Ajanlar tarafından işlenen hassas verilerin (örneğin, müşteri listeleri, API anahtarları) saldırgana gönderilmesi.
- Sistem Yıkımı: Ajanların yerel sistem komutlarını çalıştırması sonucu dosya sisteminin bozulması.
- Hizmet Aksatma: Ajanların sürekli olarak zararlı komutları çalıştırmasıyla sistem kaynaklarının tüketilmesi ve hizmetin durması.
- Yanal Hareket: Ajanların yerel ağdaki diğer sistemlere saldırması ve ağın geniş çapta tehlikeye girmesi.
Uyarı: Bu açıklıklar, OpenClaw'ın varsayılan kurulumunda ve en son sürümlerinde bile mevcuttur. Kullanıcıların acilen yamaları uygulaması ve ek koruma önlemleri alması gerekmektedir.
Çözüm Adımları ve Koruma Önlemleri
1. Acil Yamaların Uygulanması
OpenClaw geliştiricileri, bu açıklıkları gidermek için acil yamalar yayınlamıştır. Kullanıcıların aşağıdaki adımları izleyerek sistemlerini güncellemeleri gerekmektedir:
- Mevcut OpenClaw sürümünüzü kontrol edin:
docker exec openclaw-agent curl -s http://localhost:8080/version - En son yamalı sürümü indirin ve güncelleyin:
docker pull openclaw/agent:latest docker stop openclaw-agent docker rm openclaw-agent docker run -d --name openclaw-agent -p 8080:8080 openclaw/agent:latest - Yamaların uygulandığını doğrulayın:
docker exec openclaw-agent curl -s http://localhost:8080/health | grep "status"
2. Girdi Doğrulama ve Sınırlandırma
OpenClaw ajanlarının güvenliğini artırmak için aşağıdaki adımları uygulayın:
- Mesaj Nesnelerinde Doğrulama:
- vCard ve konum pinlerinde yer alan metadata ve komutları ayırın. Örneğin,
TITLEalanındaki komutları engelleyen bir doğrulama mekanizması ekleyin:
if (title.startsWith(";") || title.includes("rm -rf")) { throw new Error("Invalid title field"); } - vCard ve konum pinlerinde yer alan metadata ve komutları ayırın. Örneğin,
- Beyaz Listeleme:
- İzin verilen komutları ve metadata alanlarını belirleyin. Örneğin, sadece belirli komutların çalıştırılmasına izin verin:
const allowedCommands = ["ls", "cat", "echo"]; if (!allowedCommands.includes(userInput)) { throw new Error("Command not allowed"); } - Sandbox Ortamı:
- Ajanların çalıştırdığı komutları izole edilmiş bir ortamda çalıştırın. Örneğin, Docker konteynerleri içinde sınırlı yetkilerle çalıştırın:
docker run --read-only --tmpfs /tmp -u 1000:1000 openclaw/agent
3. Ağ ve Erişim Kontrolleri
Ajanların güvenliğini sağlamak için aşağıdaki ağ ve erişim kontrollerini uygulayın:
- Ajanların Ağ Erişimini Sınırlandırın:
- Ajanların sadece gerekli olan ağ kaynaklarına erişmesine izin verin. Örneğin, sadece belirli IP adreslerinden gelen istekleri kabul edin:
iptables -A INPUT -p tcp --dport 8080 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 8080 -j DROP - Kimlik Doğrulama ve Yetkilendirme:
- Ajanlara erişim sağlayan kullanıcıların kimlik doğrulamasını zorunlu hale getirin. Örneğin, OpenClaw'a JWT tabanlı kimlik doğrulama ekleyin:
curl -X POST http://localhost:8080/auth/login \ -H "Content-Type: application/json" \ -d '{"username": "admin", "password": "securepassword"}' - Ajanların Loglarını İzleyin:
- Ajanların çalıştırdığı tüm komutları ve erişimleri loglayın. Örneğin, komut yürütme loglarını Elasticsearch'e gönderin:
docker run -d --name openclaw-logger \ -v /var/log/openclaw:/var/log/openclaw \ openclaw/log-forwarder:latest
4. Ek Koruma Önlemleri
Aşağıdaki ek koruma önlemleri, OpenClaw ajanlarının güvenliğini artırmaya yardımcı olabilir:
- Güvenlik Duvarı Kuralları:
- Ajanların çalıştırdığı komutları izleyin ve şüpheli aktiviteleri engelleyin. Örneğin,
rm -rfgibi yıkıcı komutları engelleyen bir güvenlik duvarı kuralı ekleyin:
iptables -A OUTPUT -p exec -m string --string "rm -rf" -j DROP - Ajanların çalıştırdığı komutları izleyin ve şüpheli aktiviteleri engelleyin. Örneğin,
- İzole Ortamlar:
- Ajanları izole edilmiş ortamlarda çalıştırın. Örneğin, Kubernetes pod'larında sınırlı kaynaklarla çalıştırın:
apiVersion: v1 kind: Pod metadata: name: openclaw-agent spec: containers: - name: openclaw-agent image: openclaw/agent:latest securityContext: readOnlyRootFilesystem: true runAsNonRoot: true capabilities: drop: - ALL - Düzenli Güvenlik Denetimleri:
- Ajanların güvenlik açıklarını tespit etmek için düzenli denetimler yapın. Örneğin, OpenClaw'ın en son güvenlik tavsiyelerini takip edin:
curl -s https://api.github.com/repos/openclaw/agent/security-advisories | jq '.[] | .id'
Sıkça Sorulan Sorular (SSS)
1. Bu açıklıklar hangi OpenClaw sürümlerini etkiliyor?
Bu açıklıklar, OpenClaw'ın tüm mevcut sürümlerinde (v1.0.0 ila v2.3.1) tespit edilmiştir. En son yamalı sürüm olan v2.3.2 ve üzeri bu açıklıkları gidermektedir.
2. Agentjacking saldırısından nasıl korunabilirim?
Agentjacking saldırılarından korunmak için aşağıdaki adımları uygulayın:
- En son yamaları uygulayın.
- vCard ve konum pinlerinde yer alan metadata ve komutları doğrulayın.
- Ajanları izole edilmiş ortamlarda çalıştırın.
- Sadece gerekli komutların çalıştırılmasına izin verin.
3. Ajanımın saldırıya uğradığını nasıl anlarım?
Ajanınızın saldırıya uğradığını aşağıdaki belirtilerden anlayabilirsiniz:
- Bilinmeyen komutların çalıştırılması.
- Sistem performansında ani düşüşler.
- Loglarda şüpheli aktiviteler.
- Ajanın ağ trafiğinde artış.
Sonuç
OpenClaw AI ajanlarındaki bu kritik güvenlik açıkları, saldırganların uzaktan kod yürütme ve veri sızıntısı gerçekleştirmelerine olanak tanımaktadır. Kullanıcıların acilen yamaları uygulaması, girdi doğrulama mekanizmaları eklemesi ve ek koruma önlemleri alması gerekmektedir. Bu adımlar, ajanlarınızın güvenliğini sağlamaya ve olası saldırıları önlemeye yardımcı olacaktır.
Kaynaklar:


