Güvenlik
AETHON yerel önceliklidir ve güvenli varsayılanlarla gelir:
- Loopback bağlama (fail-closed): WebChat (ve onun üzerine bağlanan dashboard/webhook'lar) varsayılan olarak
127.0.0.1adresine bağlanır. localhost'un ötesine açmak içinchannels.webchat.host: 0.0.0.0ve birdashboard.auth_tokenayarlayın — loopback dışı bir bağlama, token olmadan başlamayı reddeder (yalnız kendi kimlik doğrulayan proxy'nizin arkasında--insecure-bindile geçersiz kılınır). - Paylaşılan kimlik doğrulama token'ı (varsayılan ret):
dashboard.auth_tokenayarlandığında, paylaşılan uygulamadaki tüm yollar token gerektirir — her/api/*(/api/statusdâhil),/dashboard, FastAPI belgeleri ve bilinmeyen yollar (401). Genel istisnalar:/,/health,/dashboard/static/*ve kendi HMAC'iyle doğrulanan/webhook/*. Her iki WebSocket de (/ws/chat,/ws/dashboard) upgrade'i kabul etmeden önce Origin başlığını ve token'ı doğrular. Token,aethon_dashçerezi,Authorization: Bearerveya?token=aracılığıyla verilir. Uptime denetimleri için/api/statusyerine (artık korumalı) gerçekten açık olan/health'i kullanın. - Dosya erişimi sandbox'ı: varsayılan olarak dosya araçları, sistem ve kimlik bilgisi yollarından oluşan bir engelleme listesi (
/etc,/usr,/bin,~/.ssh,~/.gnupg,~/.aethon/credentials, …) dışında ev dizininizin altındaki her yeri okuyup yazabilir. Dosya araçlarını yalnızca~/.aethon/workspaceile sınırlamak içinsecurity.workspace_only: trueayarlayın. - Engellenen komutlar: güvenlik kancası (hook), herhangi bir
security.blocked_commandsgirdisini içeren shell komutlarını reddeder (varsayılanrm -rf /,sudo,mkfsve yerleşik bir tehlike listesi). - Onay denetimi (gating): isteğe bağlı, kesme (interrupt) tabanlı bir kanca,
approval.requires_approvaliçindeki eylemler için onay gerektirebilir (varsayılanshell,file_write,manage_tools,manage_specialists) — varsayılan olarak kapalıdır (approval.enabled: false). (security.require_approvalalanı ayrılmıştır ve şu anda uygulanmamaktadır.) - Gönderen izin listeleri (varsayılan ret):
security.allowed_senders.<kanal>, her kanala kimin mesaj gönderebileceğini kısıtlar. Mesajlaşma botlarında (telegram/discord/slack/whatsapp) boş bir izin listesi herkesi reddeder — botu kullanmak için izin verilen gönderen kimliklerini ekleyin. - Yürütme sandbox'ı (tercihe bağlı):
shellaracını, kaynak üst sınırları (sandbox_memory,sandbox_cpus,sandbox_pids_limit), varsayılan olarak host ağı olmadan (sandbox_network: none) ve salt okunur bir rootfs ile oturum başına tek kullanımlık bir container içinde çalıştırmak içinsecurity.sandbox: dockerayarlayın.dockerseçilip kullanılamıyorsa başlamayı reddeder (fail closed). Varsayılannone, shell'i host üzerinde engellenen-komutlar listesi altında çalıştırır. (Dosya araçları bu sürümde host tarafında kalır.) - Güvenilmeyen içerik işaretleme (varsayılan olarak açık):
security.mark_untrusted_content: trueile, harici içerik araçlarının (scraper,http_request,jsonrpc,use_github) sonuçları ve gelen webhook yükleri[UNTRUSTED EXTERNAL CONTENT]işaretleriyle sarmalanır; böylece model bunları talimat değil veri olarak ele alır. Bu, bir enjeksiyon dedektörü değil dürüst bir işaretlemedir — devre dışı bırakmak içinfalseyapın. - Sır maskeleme: dashboard'daki
GET /api/configdökümü, hassas anahtarları (api_key,token,bot_token,app_token,secret,password)***olarak maskeler. - Bellek koruması: bellek koruma (memory guard) kancası, sırların uzun süreli belleğe yazılmasını engeller.
- Webhook doğrulaması (fail-closed): gelen webhook'larda HMAC-SHA256
X-Aethon-Signaturezorunlu kılmak içinwebhook.secretayarlayın. Loopback dışı bir bağlamada boş bir secret ile/webhook/*yolları hiç kaydedilmez. - Kimlik bilgisi yalıtımı: token'ları yapılandırma dosyasının dışında tutmak için
${ENV_VAR}referansları kullanın ve sırları~/.aethon/credentials/altında saklayın.
:::warning Dışarıya açmadan önce
channels.webchat.host: 0.0.0.0 ayarladığınız an, bir dashboard.auth_token da ayarlayın —
aksi takdirde porta erişebilen herkes dashboard + API'ye tam erişim kazanır.
:::
Tam güvenlik modeli ve tehdit analizi için depodaki
SECURITY.md dosyasına bakın.