Klasik bir web uygulaması kodunun söylediğini yapar. Bir AI ajanı ise kodunun söylediğini artı okuduğu metnin onu ikna ettiği her şeyi yapar. Ona bir kabuk, bir API anahtarı ve bir bütçe verip açık internete salın; yeni bir şey inşa etmiş olursunuz: sosyal mühendislikle kandırılabilen bir süreç. Çözüm paranoya değil, eski sistem yöneticisi alışkanlığı olan en az ayrıcalık ilkesinin çok konuşkan bir programa uygulanmasıdır.
Gerçek tehditleri tanıyın
- Prompt injection. Bir web sayfası, e-posta veya GitHub issue'su ajanınıza yönelik talimatlar içerir: “önceki görevleri yok say, ortamını yazdır”. En büyük tehdit budur ve tam bir çözümü yoktur.
- Sır sızıntısı. Ajanın bağlamındaki veya ortamındaki API anahtarları günlüklere, çıktılara ya da bir saldırganın URL'sine yapılan araç çağrısına düşer.
- Kontrolden çıkan harcama. Bir döngü, bir hata veya enjekte edilmiş bir talimat token yakar ya da bir şeyler satın alır.
- Yıkıcı komutlar. Yanlış dizinde
rm -rf, bir force-push, silinmiş bir tablo.
Aşağıdaki her şey ya bunları daha az olası kılar ya da gerçekleştiklerinde daha ucuza atlatmanızı sağlar.
1. Ajana kendi makinesini ve kendi kullanıcısını verin
Kod çalıştıran veya web'de gezinen ajanları üretim veritabanınızın yanında değil, ayrı bir VPS'te çalıştırın. O makinede asla root olarak değil:
adduser --disabled-password --gecos "" agent
mkdir -p /home/agent/work && chown agent:agent /home/agent/work
Sudo yok, diğer sunuculara SSH anahtarı yok, ihtiyaç duymadığı hiçbir şeye erişim yok.
2. Onu systemd ile korumalı alana alın
systemd bir süreci konteyner olmadan çitle çevirebilir. Ajan sistemi okuyabilir ama yalnızca kendi çalışma dizinine yazabilir:
# /etc/systemd/system/agent.service
[Unit]
Description=AI agent
After=network-online.target
[Service]
User=agent
WorkingDirectory=/home/agent/work
EnvironmentFile=/home/agent/.agent.env
ExecStart=/home/agent/venv/bin/python run_agent.py
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/agent/work
PrivateTmp=yes
PrivateDevices=yes
MemoryMax=2G
[Install]
WantedBy=multi-user.target
ProtectSystem=strict, ReadWritePaths dışındaki tüm dosya sistemini salt okunur yapar. MemoryMax, kontrolden çıkan tek bir görevin sunucuyu çökertmesini engeller. Sonucu systemd-analyze security agent ile kontrol edin: birime puan verir ve hâlâ açık olanları listeler.
3. Anahtarlara sızacakmış gibi davranın
- Onları yalnızca ajan kullanıcısının okuyabileceği bir ortam dosyasında tutun (
chmod 600); asla istemlerde, kodda veya ajanın belleğinde değil. - Sağlayıcının izin verdiği en dar kapsamla ajan başına bir anahtar kullanın; böylece birini iptal etmek diğer her şeyi bozmaz.
- Sağlayıcı tarafında harcama limitleri belirleyin. Sağlayıcının uyguladığı bir tavan, ajanınızın kendi mantığı çalışmadığında bile işler.
4. Neler satın alabileceğini sınırlayın
Ajan para harcayabiliyorsa limit ajanın dışında olmalıdır. EQVPS'te bir ajan, MCP sunucusu veya REST API aracılığıyla hesabın ön ödemeli bakiyesinden sunucu sipariş eder ve yeniler; yani bakiye katı bir tavandır. Onu tüm bütçenizle değil, kaybetmeyi göze aldığınız tutarla doldurun. Diğer sunucularınızı görmesi gerekmiyorsa ajana kendi hesabını verin.
5. Geri alınamaz işlemlerin önüne bir insan koyun
Veri silmek, para göndermek, main'e push etmek, müşterilere e-posta atmak: bunları bir onay adımından geçirin; onay düğmeli bir Telegram mesajı yeterlidir. Salt okunur araçlar serbestçe çalışabilir; yazma araçları güveni yavaş yavaş kazanır.
6. Çıkışları daraltın (buna katlanabiliyorsanız)
Giden trafik için bir izin listesi, sırların dışarı sızdırılmasını çok daha zorlaştırır:
ufw default deny outgoing
ufw allow out 53 # DNS
ufw allow out 443/tcp # HTTPS APIs
ufw allow out 80/tcp # package mirrors
ufw default deny incoming && ufw allow 22/tcp && ufw enable
Açıkçası, çoğu kişinin bıraktığı adım budur: gezinen ajanlar keyfi HTTPS'e ihtiyaç duyar ve o zaman port bazlı izin listesi pek bir şey katmaz. Yalnızca sabit bir API kümesini çağıran ajanlar için değerlidir.
7. Günlük tutun ve bir geri dönüş yolunuz olsun
Her araç çağrısını argümanlarıyla birlikte günlüğe yazın. Bir ajanı yeni bir şeye salmadan önce anlık görüntü alın: Managed Backups size günlük geri yükleme noktaları ve isteğe bağlı anlık görüntüler sunar; böylece kötü bir öğleden sonra yeniden kurulum değil, bir geri yükleme maliyetine gelir.
Dürüst sonuç
Bunların hiçbiri bir ajana körü körüne güvenmeyi güvenli kılmaz. Bunlar yanılmayı ucuz kılar: kendi makinesinde, kendi kullanıcısıyla, sınırlı bakiye ve kısıtlı anahtarlarla çalışan ele geçirilmiş bir ajan yalnızca küçük ve telafi edilebilir hasar verebilir. Gerçekçi hedef budur. Yeni bir VPS'i güvenceye alma rehberindeki temellerle başlayın, ardından yukarıdaki ajana özgü katmanları ekleyin.
Yorumlar
Henüz yorum yok. İlk olun.