Dün gece geç saatlerde terminalin başında oturmuş, bir yandan kahvemi yudumlarken bir yandan da Anthropic'in yeni bombası Claude Code'u kurcalıyordum. İşin aslı, ilk duyurulduğunda "Yine mi bir sarmalayıcı (wrapper) araç?" diye düşündüm. Ama işin içine girip, özellikle güvenlik tarafındaki yeteneklerini görünce "Tamam, bir şeyler gerçekten değişiyor" dedim.
Yıllardır pentestlerde, red team operasyonlarında binlerce satır kodun arasında kayboluyoruz. Statik analiz araçları (SAST) kullanıyoruz, ama dürüst olalım; o araçların çıkardığı binlerce "false positive" (yanlış alarm) raporu temizlemek bazen manuel analiz yapmaktan daha yorucu oluyor. Claude Code ise terminale yerleşip, doğrudan seninle bir iş arkadaşın gibi konuşarak bu süreci başka bir boyuta taşıyor.
Terminaldeki Yeni Gözcü
Claude Code, bildiğin o klasik yapay zeka sohbet arayüzlerinden farklı. Doğrudan senin dosya sistemine erişiyor, git geçmişine bakıyor, testleri çalıştırıyor ve hatta kodunu düzeltiyor. Geçenlerde bir projede karşılaştığım bir durumu simüle ettim. Bir API endpoint'inde yetkilendirme kontrolü (broken object level authorization - BOLA) eksikti. Klasik SAST araçları bunu genelde kaçırır çünkü mantık hatasını anlamak için uygulamanın genel akışını bilmek gerekir.
Claude'a "Buradaki endpoint'lerde güvenlik açısından riskli bir durum görüyor musun?" diye sordum. Önce routes/ klasörüne daldı, sonra controllers/ altındaki mantığı inceledi ve "Bak, burada kullanıcıdan id alıyorsun ama bu id'nin o kullanıcıya ait olup olmadığını kontrol etmiyorsun, bu bir güvenlik riski" dedi. İşte o an, "Vay canına" dedim.
Bir örnek üzerinden gidelim. Şöyle basit ama riskli bir Express.js kodun olduğunu düşün:
// Riskli kod örneği
app.get('/api/user/invoice/:id', async (req, res) => {
const invoice = await Invoice.findOne({ id: req.params.id });
if (invoice) {
res.json(invoice);
} else {
res.status(404).send('Fatura bulunamadı');
}
});
Burada büyük bir IDOR/BOLA riski var. Herhangi bir kullanıcı, faturanın id numarasını değiştirerek başkasının faturasına erişebilir. Claude Code'u buraya saldığında, sadece "Hata var" demiyor, sana doğrudan bir yama öneriyor:
// Claude Code'un önerdiği güvenli versiyon
app.get('/api/user/invoice/:id', async (req, res) => {
// Kullanıcının sadece kendi faturalarına erişebildiğinden emin oluyoruz
const invoice = await Invoice.findOne({
id: req.params.id,
userId: req.user.id // Token'dan gelen kullanıcı ID'si
});
if (invoice) {
res.json(invoice);
} else {
res.status(404).send('Erişim yetkiniz yok veya fatura mevcut değil');
}
});
Hız mı, Güvenlik mi? İkisi Birden!
Sıkça karşılaştığım bir durum var: Yazılımcı arkadaşlara "Güvenlik testlerini pipeline'a ekleyelim" dediğimde genelde "Abi build süresi çok uzuyor, zaten çok fazla yanlış alarm veriyor" diye itiraz ediyorlar. Haklılar da. Ama Claude Code gibi agentic (kendi başına karar verebilen) yapılarla bu iş başka bir yere evriliyor.
Sadece kodu okumakla kalmıyor, senin adına npm test veya pytest komutlarını koşturup yazdığı fix'in mevcut özellikleri bozup bozmadığını da kontrol ediyor. Bu, DevSecOps süreçlerinde hayal ettiğimiz o "kendi kendini onaran sistemler" (self-healing systems) vizyonuna bir adım daha yaklaşmak demek.
Ancak dikkat etmen gereken bir nokta var; bu araçlara körü körüne güvenmemek lazım. Bence en büyük risk, "AI halletti ya, güvenlidir o" yanılgısına düşmek. Geçenlerde denediğim bir senaryoda, Claude çok karmaşık bir race condition (yarış durumu) açığını tamamen yanlış yorumladı. Yani hala bizlere, yani işin uzmanına ihtiyaç var. Claude senin asistanın olabilir ama kararı veren mercii olamaz.
Red Team Gözüyle Claude Code
Bir saldırgan veya red teamer olarak düşünürsen, Claude Code aslında bir "saldırı hızlandırıcı". Hedef sistemin kaynak koduna bir şekilde (sızma yoluyla veya supply chain atağıyla) eriştiğini hayal et. Eskiden saatlerce inceleyeceğin kodu, şimdi Claude'a "Buradaki en kritik zafiyetleri bul ve bana bir exploit senaryosu hazırla" diyerek dakikalar içinde analiz ettirebilirsin.
Özellikle hardcoded credentials (kodun içine gömülmüş şifreler) veya zayıf şifreleme algoritmalarını bulmakta inanılmaz hızlı. Mesela şu tarz bir şeyi yakalaması milisaniyeler sürüyor:
# Sakın böyle şeyler yapmayın :)
import hashlib
def hash_password(password):
# Claude bunu görür görmez "MD5 mi kaldı kardeşim?" diye uyaracaktır.
return hashlib.md5(password.encode()).hexdigest()
Bana sorarsan, Claude Code'un en güçlü yanı "Context" (bağlam) farkındalığı. Klasik araçlar sadece o satıra bakar. Claude ise projenin tamamına hakim olabiliyor. "Bu değişken buradan geliyor, şu fonksiyona giriyor, orada sanitize edilmeden database'e yazılıyor" diyebiliyor. Bu, bizim "taint analysis" dediğimiz olayın yapay zeka ile şahlanmış hali.
İşin Aslı: Gümüş Kurşun mu?
Tabii ki her yeni teknolojide olduğu gibi burada da bir "hype" (abartı) rüzgarı var. Claude Code her şeyi çözen sihirli bir değnek değil. İşin içinde hala "hallucination" (halüsinasyon) riski var. Olmayan bir kütüphaneyi varmış gibi gösterip ona göre güvenlik tavsiyesi verdiği de oluyor.
Bir de gizlilik meselesi var. Kurumsal bir projede çalışıyorsan, kodunu Anthropic'in sunucularına göndermek ne kadar mantıklı? Şirket politikalarını gözden geçirmek şart. Gerçi Anthropic bu verilerin eğitimde kullanılmadığını söylüyor ama biz güvenlikçiler "güven ama doğrula" (trust but verify) prensibiyle yaşarız.
Bence şu an yapman gereken en mantıklı şey, Claude Code'u bir "pair programmer" (eşli programcı) gibi yanına almak. Kod yazarken bir yandan da "Hey Claude, bu yazdığım fonksiyonda bir açık kapı bıraktım mı? Bir göz atar mısın?" demek sana çok zaman kazandırır.
Son Söz Niyetine
Teknoloji çok hızlı ilerliyor. Bir gün gelecek, belki de siber saldırıların çoğu AI ajanları tarafından yapılacak ve savunmayı da yine bu AI ajanları üstlenecek. Claude Code, bu geleceğin şu anki en somut örneklerinden biri.
Eğer bir geliştiriciysen veya güvenlik tarafındaysan, bu tarz araçları kullanmayı öğrenmek zorundasın. Treni kaçırmamak lazım. Ama unutma; en iyi güvenlik aracı hala senin beynin. Claude sadece senin daha hızlı ve daha odaklı çalışmanı sağlayan çok yetenekli bir stajyer gibi.
Sen ne düşünüyorsun? Claude Code'u deneme şansın oldu mu? Kendi projelerinde buna güvenip "push" der miydin? Merak ediyorum, belki bir gün üzerine uzun uzun konuşuruz.
Görüşmek üzere, güvenli kodlamalar!
