# Güvenlik ## Genel Bakış Neotask, güvenlik öncelikli mimariyle tasarlanmıştır. Gateway varsayılan olarak localhost'a bağlanır, tüm hassas veriler depolamada şifrelenir ve ajan yürütmesi yalıtılmış konteynerlerde korumalı alan içinde çalıştırılabilir. ## Ağ Güvenliği ### Varsayılan Olarak Geri Döngü Gateway, bağlama modunu açıkça değiştirmedikçe yalnızca `127.0.0.1` (localhost) üzerinde dinler. Varsayılan olarak dış ağ açıklığı yoktur. ### Kimlik Doğrulama Tüm WebSocket bağlantıları kimlik doğrulama gerektirir: - **Token kimlik doğrulama**, Taşıyıcı token'ı (UUID veya özel dize) - **Şifre kimlik doğrulama**, Bcrypt karma şifresi - **Güvenilir proxy**, Ters proxy'lerden ön kimlik doğrulamalı başlıklar - **Yerel güven**, Geri döngü bağlantıları örtülü olarak güvenilirdir ### Uzaktan Erişim Güvenliği Uzaktan erişim için önerilen yaklaşım **Tailscale VPN** veya **SSH tüneli**dir, Gateway'i hiçbir zaman doğrudan internete açmayın. ## Cihaz Eşleştirme ### Eşleştirme Nasıl Çalışır? Gateway'e bağlanan her istemci eşleştirilmelidir: 1. Cihaz, kimliğini sunar (parmak izi + açık anahtar) 2. Gateway, eşleştirme zorluğu gönderir (nonce) 3. Cihaz, nonce'u özel anahtarıyla imzalar 4. Cihazı kullanıcı arayüzü üzerinden onaylarsınız 5. Gateway, gelecekteki bağlantılar için bir cihaz token'ı verir ### Güven Modeli - **Yerel cihazlar** (geri döngü) kolaylık için otomatik olarak onaylanır - **Yerel olmayan cihazlar** açık onay gerektirir - Cihaz token'ları yerel olarak depolanır ve yeniden bağlanmada yeniden kullanılır - Cihazlar istediğiniz zaman iptal edilebilir ## Şifreleme ### Depolamada Veri - **AES-256-GCM**, Tüm token'lar, sırlar ve API anahtarları depolamada şifrelenir - **Makineden türetilen anahtarlar**, Şifreleme anahtarları, cihaz kimliğinden scrypt aracılığıyla türetilir - **Düz metin depolama yok**, Token'lar hiçbir zaman düz metin olarak depolanmaz ### Aktarımda Veri - **TLS**, API iletişimi için HTTPS - **WSS**, Gateway bağlantıları için WebSocket Güvenli (Tailscale Serve veya ters proxy kullanırken) - **HMAC imzalama**, Nonce ve zaman damgasıyla istek bütünlüğü ## Korumalı Alan ### Docker Tabanlı Yalıtım Ajan komut yürütmesi Docker konteynerlerinde korumalı alan içinde çalıştırılabilir: - **Ajan başına profiller**, Her ajanın kendi korumalı alan yapılandırması olabilir - **Kaynak limitleri**, Yapılandırılabilir CPU, bellek ve zaman aşımı limitleri - **Ağ yalıtımı**, Konteynerler ağ yalıtımlı olabilir - **Dosya sistemi kısıtlaması**, Ajanlar yalnızca çalışma alanlarına erişebilir - **Özel görüntüler**, Belirli araçlar kurulu önceden oluşturulmuş görüntüleri kullanın ### Korumalı Alan Kapsamları | Kapsam | Açıklama | |-------|-------------| | **Oturum başına** | Her oturum için yeni konteyner | | **Ajan başına** | Ajan başına kalıcı konteyner | | **Paylaşılan** | Ajanlar arasında paylaşılan konteyner | ### Çalışma Alanı Erişimi Korumalı alan ajanları, çalışma alanı dizinlerine (konteynere monte edilmiş) erişebilir ancak çalışma alanı dışında ana bilgisayar dosya sistemine erişemez. ## Yürütme Onayları Ajanların düğümler ve Gateway ana bilgisayarında hangi komutları yürütebileceğini kontrol edin: ### Modlar | Mod | Açıklama | |------|-------------| | **İzin Listesi** | Yalnızca önceden onaylanmış komutlar yürütülür | | **Sor** | Bilinmeyen komutlar kullanıcı onayı için uyarır | | **Tam** | Kısıtlama yok (dikkatli kullanın) | ### Düğüm Başına Yapılandırma Her düğümün (macOS, başsız ana bilgisayar) yerel olarak depolanan kendi yürütme onay yapılandırması vardır. Belirli ikililere (ör. `/usr/bin/docker`, `/usr/local/bin/terraform`) izin verirken diğer her şeyi engelleyebilirsiniz. ## Yükseltilmiş Mod Bazı işlemler Gateway ana bilgisayarında doğrudan çalıştırılması gerektirir (korumalı alanda değil). Yükseltilmiş mod şunlardır: - Ajan yapılandırmasında açık izinle kısıtlı - Yalnızca Gateway ana bilgisayarında kullanılabilir - Varsayılan olarak devre dışı - Günlük kaydı üzerinden denetlenebilir ## Güvenlik Denetimi Yerleşik güvenlik denetimi şunları kontrol eder: - Yapılandırma dosyası izinleri (600 olmalı) - Oturum dosyası izinleri - Node.js sürümü (güvenlik yamaları) - Düz metin sır tespiti - Eklenti izin listesi doğrulaması - Açık ağ arayüzü denetimi - Kimlik doğrulama yapılandırması eksiksizliği İzin verildiğinde birçok sorunu otomatik olarak düzeltebilir. ## En İyi Uygulamalar 1. **Gateway'i geri döngüde tutun**, Uzaktan erişim için Tailscale veya SSH kullanın 2. **Korumalı alanı etkinleştirin**, Ajan komutlarını Docker konteynerlerinde çalıştırın 3. **Yürütme izin listeleri kullanın**, Ajanların düğümlerde çalıştırabileceği komutları kısıtlayın 4. **Kimlik doğrulama token'larını ayarlayın**, Geri döngü için bile her zaman token kimlik doğrulamasını yapılandırın 5. **Ajan izinlerini gözden geçirin**, Mümkün olan yerlerde minimum araç profillerini kullanın 6. **Neotask'ı güncel tutun**, Güncellemeler güvenlik yamaları içerir 7. **Düzenli olarak denetleyin**, Yanlış yapılandırmaları tespit etmek için güvenlik denetimleri çalıştırın 8. **Eklenti yüklemeyi kısıtlayın**, Yalnızca güvenilir eklentileri kurun