Rehber · AI ajanları · · Stefan Tsezarov
Ajanına harekete geçmeden önce ikinci bir görüş ver
Kodlama ajanından bir derlemeyi düzeltmesini istiyorsun. README'yi okuyor, bir issue tartışmasına bakıyor ve bir öneri buluyor:
Makul bir düzeltme. Küçük bir değişiklik. Ajan kurulum komutunu hazırlıyor.
Ama o eksik tire önemli. crossenv, ortam değişkenlerini (geliştiricilerin genellikle anahtarları ve tokenları sakladığı yer) çaldığı anlaşıldıktan sonra 2017'de npm'den kaldırılmış gerçek bir kötü amaçlı paketti.
Yukarıdaki konuşma bir örnek. Paket değildi.
01Bir öneri komuta dönüştüğünde
Kodlama ajanları senin hiç görmeyebileceğin pek çok metin okur: belgeler, issue yorumları, web sayfaları ve hata mesajları. Bu bağlam sorunları çözmelerine yardımcı olur. Onları kötü bir bağımlılığa da yönlendirebilir.
Bir paket kurmak özel dikkat gerektirir. npm paketleri kurulum sırasında çalışan betikler içerebilir, bu yüzden kod, onu inceleme fırsatın olmadan önce çalışabilir.
SaveSaveSaveSave'in kurulum öncesi koruması tam bu noktada bir kontrol ekler. Desteklenen bir kurulum komutu çalışmadan önce paketi sorgular ve seçtiğin bir politikayı uygular.
02Bir kuruluma ne olur?
Bir ajanın önerebileceği üç komutu düşün.
Hiçbir uyarı vermeyen bir kayıt defteri paketi
npm install cross-env
Koruma komutun devam etmesine izin verir. Her zamanki onay istemin yine geçerlidir. Bu, kontrollerin itiraz için bir neden bulmadığı anlamına gelir; paketin güvenli olduğunun garantisi değildir.
Kötü amaçlı olarak bildirilmiş bir paket
cd app && npm install --save-dev crossenv
Koruma komutu reddeder ve ajana nedenini söyler. Kurulum başka bir komutun ardından gelse bile onu tanır.
Doğrudan GitHub'dan getirilen kod
npx github:someone/setup-script
Varsayılan modda koruma insan incelemesi ister. Bir Git URL'si npm kayıt defteri kontrollerinin dışında kalır, bu yüzden aynı değerlendirmeyi sağlayamaz.
Desteklenen komutlar arasında npm, pnpm, yarn ve bun ile yapılan kurulumların yanı sıra npx, npm ci, && kullanan komut zincirleri ve bash -c "…" içine sarılmış komutlar bulunur.
03Kuralları sen seçersin
Tarama kanıt sağlar: neyi kontrol ettiğini, ne bulduğunu ve neyi değerlendiremediğini. Makinende çalışan bir politika sonra ne olacağını belirler.
Üç moddan birini seç:
| Mod | Kötü amaçlı olarak bildirilmiş | Dikkat veya yetersiz veri | Kontrol başarısız veya kaynak kayıt defterinin dışında |
|---|---|---|---|
| observe | İzin ver ve bildir | İzin ver | İzin ver |
| guard · varsayılan | Reddet | Bir insana sor | Bir insana sor |
| strict | Reddet | Reddet | Reddet |
Korumanın iş akışında nasıl davrandığını görmek için observe kullan. Bilinen kötü amaçlı paketleri engellemek ve belirsiz durumları incelemek için guard seç. Sonuçsuz bir sonucun kurulumu durdurması gerektiğinde strict seç.
Temiz bir sonuç, ajanının aksi halde gerektireceği bir onayı asla kaldırmaz.
04İş akışına ekle
Claude Code için bu kancayı projenin .claude/settings.json dosyasına ekle. Dosya zaten ayarlar içeriyorsa, kancayı onlarla birleştir.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "npx -y savesavesavesave@0.1.5 hook claude-code --mode observe"
}
]
}
]
}
}
Kanca önerilen Bash komutlarını kontrol eder. Tanınan bir kurulum içermeyen komutlar geçer.
Başka bir ajan veya betik için korumayı kurulum komutunun önüne koy:
npx savesavesavesave@0.1.5 guard --mode guard -- npm install some-package
Çıkış kodları entegrasyonuna nasıl devam edeceğini söyler:
0: izin ver1: insan incelemesi iste2: reddet
Entegrasyonunun bu sonuçlara uyması gerekir.
MCP desteği olan ajanlar da doğrudan kontrol isteyebilir. İstemci kurulum talimatları Ajanlar için sayfasında.
Hesap veya API anahtarı gerekmez. Örnekler, kullanmadan önce belirli bir sürümü inceleyebilmen için bir sürümü sabitler.
05Kontrolün neyi kapsadığını bil
Koruma npm kayıt defteri ve OSV.dev tarafından yayımlanan bilgileri okur. Paketi indirmez veya çalıştırmaz ve şu anda PyPI veya crates.io gibi ekosistemleri değil, npm paketlerini kapsar.
Bu birkaç pratik sınır bırakır:
- Aldığı desteklenen komutları kontrol eder. Betik dosyalarının içine gizlenmiş kurulumlar, desteklenmeyen paket yöneticileri veya indirilmiş ikili dosyalar görüş alanının dışında kalabilir. Daha güçlü kısıtlamalar, ajanın ağ ve dosya sistemi erişimi üzerinde denetimler gerektirir.
- Bildirilmemiş bir tehdit geçebilir. “İtiraz yok”, mevcut kontrollerin bilinen bir risk bulmadığı anlamına gelir.
- Politikanın çalışması için kancanın çalışması gerekir. Strict modu kullanıyorsan, kancanın kendisi başlatılamadığında komutları engellemek için paketin README dosyasındaki talimatları izle.
Bir kodlama ajanı bir derlemeyi hızla düzeltebilir. Tanımadığın birinden gelen ikna edici bir öneriye göre de hızla hareket edebilir.
O öneri makinene erişmeden önce ona ikinci bir görüş ver.
Sonraki adımın: kancayı observe modunda ekle, sonuçlarını incele ve iş akışına uyan politikayı seç.