İçeriğe geç
Sedat Özdemir
Yazılar

ai-security

Terminaldeki Yeni Göz: Claude Code Güvenlik Açıklarını Gerçekten Bulabiliyor mu?

Claude Code'un güvenlik dünyasına girişini, kendi deneyimlerimle ve teknik derinliğiyle inceledim. AI, güvenlik açıklarını bulmada ne kadar başarılı?

Sedat Özdemir
· 4 dk okuma

Geçen akşam evde oturmuş, bir yandan kahvemi yudumlarken bir yandan da Anthropic’in yeni duyurduğu Claude Code CLI aracını kurcalıyordum. Biliyorsun, piyasada bin tane AI asistanı var; ama bu seferki biraz farklı duruyor. Terminale hapsolmuş bir asistan değil de, sanki seninle beraber kodu okuyan, analiz eden ve hatta "Burada bir yamuk var" diyen bir ekip arkadaşı gibi. İşin aslı, güvenlik dünyasında otomasyon her zaman bizim için bir "kutsal kâse" oldu ama statik analiz araçlarının (SAST) çıkardığı o bitmek bilmeyen false positive (yanlış alarm) listelerinden hepimiz yorulduk.

Claude Code’un güvenlik açıklarını tespit etme iddiası beni heyecanlandırdı çünkü Claude 3.5 Sonnet’in akıl yürütme (reasoning) yetenekleri malum. Literatürde buna "Agentic Workflow" deniyor. Yani sadece kodu alıp "Burada SQL injection var mı?" demiyor; projenin tamamına bakıyor, veri akışını (data flow) takip ediyor ve bir Red Teamer gibi bağlantıları kurmaya çalışıyor.

Bir Pentest Sırasında Claude Code ile Karşılaşmak

Geçenlerde bir mikroservis mimarisini incelerken, Claude Code’u projenin kök dizininde çalıştırdım. Klasik bir SAST aracı olsaydı, muhtemelen dangerouslySetInnerHTML gibi anahtar kelimeleri yakalayıp bana 50 tane uyarı basacaktı. Claude’a sadece şu komutu verdim:

claude "Analyze the authentication flow in this project and find potential logic flaws."

Aldığım cevap beni şaşırttı. Sadece kod satırını göstermekle kalmadı, aynı zamanda JWT (JSON Web Token) doğrulama mekanizmasında exp (expiration) claim’inin kontrol edilmediğini fark etti. Bunu yaparken de projedeki auth.go dosyasından middleware.go dosyasına zıplayarak bağlantıyı kurdu. İşte bu, geleneksel araçların pek yapamadığı bir şey.

İşin Akademik Boyutu: Neden Şimdi?

Anthropic'in yayınladığı model kartlarına ve Jimenez et al. (2023) tarafından sunulan "SWE-bench" gibi kıyaslama platformlarına baktığımızda, LLM'lerin (Large Language Models) yazılım mühendisliği problemlerini çözme başarısının logaritmik olarak arttığını görüyoruz. Claude Code, bu yeteneği doğrudan terminalimize, yani operasyonun kalbine getiriyor.

Buradaki asıl olay "Context Window" (bağlam penceresi). Eski modeller kodun sadece küçük bir kısmını görebilirken, Claude 200k token'lık bağlamıyla koca bir repoyu avucunun içi gibi biliyor. Bu da bize "Semantic Security Analysis" (anlamsal güvenlik analizi) kapısını açıyor. Yani artık sadece syntax (sözdizimi) hatalarına değil, mantıksal kurgu hatalarına da odaklanabiliyoruz.

Pratik Bir Örnek: Race Condition Avcılığı

Diyelim ki bir Go projesinde bakiye transferi yapan bir fonksiyonun var. Geleneksel tarayıcılar burada bir hata bulmakta zorlanır çünkü kod sözdizimi açısından mükemmeldir. Ama Claude Code’a "Bu fonksiyonda concurrency (eşzamanlılık) sorunları olabilir mi?" diye sorduğunda, sana şöyle bir analizle gelebiliyor:

// Claude'un bulduğu o meşhur hatalı blok
func Transfer(fromAccount *Account, toAccount *Account, amount float64) {
    if fromAccount.Balance >= amount {
        // Tam burada bir race condition oluşabilir!
        fromAccount.Balance -= amount
        toAccount.Balance += amount
    }
}

Claude, buradaki if kontrolü ile bakiyenin düşürülmesi arasında geçen o milisaniyelik sürede başka bir işlemin araya girebileceğini (Race Condition) anlıyor. Hatta bence işin en güzel yanı, sana doğrudan bir "fix" (düzeltme) önerisi sunması:

claude "Apply a mutex lock to the Transfer function to prevent race conditions."

Ve çat! Kodu senin için güncelliyor. Tabii burada "aman dikkat" demem gereken bir nokta var; her yazdığına körü körüne güvenmemek lazım.

Halüsinasyon ve Güvenlik: Dikkat Etmen Gerekenler

Claude Code ne kadar gelişmiş olursa olsun, hala bir AI. Literatürde "Hallucination" (halüsinasyon) dediğimiz olay, güvenlik bağlamında çok tehlikeli olabilir. Geçen gün bir testte, aslında hiç var olmayan bir kütüphanenin zafiyetinden bahsetti bana. İşin aslı, model bazen "aşırı yardımcı" olma çabasıyla olmayan problemleri varmış gibi gösterebiliyor.

Ayrıca, Claude Code kullanırken verinin nereye gittiği konusu da kritik. Kurumsal bir projede çalışıyorsan, şirketin veri gizliliği politikalarını göz ardı etmemelisin. Anthropic, verilerin model eğitimi için kullanılmadığını söylese de, hassas API anahtarlarını veya müşteri verilerini içeren kod bloklarını bu tarz araçlara göndermek her zaman risk taşır.

Red Team Gözüyle: Bizim İşimiz Elden Gidiyor mu?

Bence hayır. Aksine, işimiz daha keyifli bir hale geliyor. Eskiden vaktimizin %70'ini basit zafiyetleri ayıklamakla (low-hanging fruits) harcıyorduk. Şimdi Claude Code gibi araçlar bu yükü üstleniyor. Bizim asıl yapmamız gereken, bu araçların göremediği "Business Logic" (iş mantığı) açıklarına odaklanmak. Bir AI, senin uygulamanın iş modelini, hangi kullanıcının hangi veriye neden erişmemesi gerektiğini tam olarak kavrayamaz. O, kodun teknik doğruluğuna bakar, biz ise sistemin bütününe.

Sonuç Yerine: Denemeye Değer mi?

Kesinlikle evet. Eğer terminalle aran iyiyse ve kodun içinde boğulmak yerine bir üst katmana çıkmak istiyorsan Claude Code'u bir dene derim. Ama şunu unutma: Bu araç bir kurtarıcı değil, çok güçlü bir büyüteç.

Senin de bu konuda deneyimlerin olursa konuşalım. Özellikle AI tarafından yazılan kodun güvenliği ve bu kodun tekrar AI tarafından taranması gibi "inception" durumları bence önümüzdeki dönemin en büyük tartışma konusu olacak. Dikkat et, sistemlerini güncel tut ve terminalin başında çok fazla sabahlamamaya çalış!

Bence siber güvenlikte yeni bir dönemin eşiğindeyiz ve bu dönemde en hızlı koşan değil, yanındaki araçları en zekice kullanan hayatta kalacak.

Selamlar, Sedat.

İlgili yazılar