Gizli anahtar taramasında bağlam: daha az gürültü, ölçeklenen koruma
GitHub, regex aday üretimi ile ModernBERT tabanlı bağlam sınıflandırıcısını birleştirdi. Hedef, yanlış pozitifleri azaltırken push korumasını ölçeklenebilir kılmak; bazı özellikler önizlemede.
Bu yazıda 7 bölüm
Ne oldu: GitHub, gizli anahtar taramasında iki aşamalı bir yaklaşımı devreye aldı: yüksek hatırlamalı regex aday üretimi ve adayı dosya yolu, değişken adı ve çevresindeki kodla birlikte değerlendiren fine-tuned ModernBERT sınıflandırıcısı. İlk kaynak modelin eğitim ve ölçüm ayrıntılarını; ikinci kaynak ise korumanın yazılım üretimi hızına yetişmesi gerektiğini anlatıyor. Geliştirici için mesele şu: aynı görünen dize üretimde gerçek bir kimlik bilgisi, testte ise zararsız bir örnek olabilir. Bu ayrımı yapamayan tarama ya gerçek sırları kaçırır ya da ekibi yanlış alarmlarla yorar.
İki aşamalı iş akışı
GitHub’ın tarif ettiği akış önce tarama yüzeylerini geziyor: depo içeriği, commit’ler, pull request’ler ve diğer taranan alanlar. Ardından regex desenleri olası token, anahtar ve kimlik bilgisi benzeri dizeleri geniş bir ağla yakalıyor. Son adımda ModernBERT, adayı tek başına değil; dosya yolu, değişken adı ve sınırlı miktarda çevre kodla birlikte okuyup gerçek sır olma olasılığını puanlıyor. Yüksek güvenli bulgular alarm olurken, yer tutucu, test fixture’ı ve checksum gibi görünüşte benzer dizeler eleniyor. Bu yaklaşım, GitHub’ın model duyurusunda (GitHub Blog) ayrıntılandırılıyor.
Regex ve model birbirinin yerine geçmiyor
Önemli tasarım tercihi, modelin deterministik taramayı dışlamaması. Regex geniş aday kapsaması, hız ve şeffaflık sağlıyor; sınıflandırıcı ise asıl kazancı bağlam gerektiren kararda üretiyor. Yani sistem sır gibi görünen ile gerçekten sır olma ihtimali yüksek olan arasındaki farkı öğrenmeye çalışıyor. GitHub, ModernBERT’i kompakt ve verimli olduğu, kod komşusu metin üzerinde kısa aday pencerelerinde kalibre edilmiş karar verebildiği için seçtiğini söylüyor. Model ONNX formatına 8 bit nicemlemeyle aktarılıyor; bu da çıkarımı hızlandırıyor.
Ölçülen etki ve maliyet
GitHub’ın verdiği üretim sonuçlarına göre depo sahibi ağırlıklı kabul oranı %11,5 artmış. Post-push taramasında medyan çalışma süresi %86 düşmüş; hizmet maliyeti uzak LLM çağrılarına kıyasla %98’den fazla azalmış. Bu üç rakam, aynı kaliteyi daha ucuza ve daha hızlı sunma iddiasının merkezinde. Kaynak, yeni sınıflandırıcının aday yığınlarını 2 milisaniyenin altında değerlendirebildiğini ve push korumasında önlenebilecek sır sayısını iki katından fazlasına çıkarabileceğini belirtiyor. Ancak bunlar GitHub’ın kendi trafiğinde ve kendi ürün sınırları içinde elde edilmiş sonuçlar.
Üretim hızı güvenliği neden zorluyor?
İkinci kaynak, asıl sorunu dikkatsizlik değil ölçek olarak çerçeveliyor. GitHub’a göre ajan içeren pull request payı bir yıl içinde belirgin biçimde arttı; kod üretimi bu hızla büyürken kimlik bilgisi sızıntısını insan emeğiyle yakalamak sürdürülebilir değil. Kaynak, push korumasının yeni tespit edilen sırların yaklaşık %30’unu depoya girmeden durdurabildiğini, kalan %70’inin ise kimlik bilgisi görünür geçmişe girdikten sonra bulunduğunu aktarıyor. Ayrıca manuel iptal süreleri haftalarla, bazen aylarla ölçüldüğü için müdahale üretim hızına yetişemiyor. Bu tabloyu GitHub’ın ölçek yazısı (GitHub Blog) veriye dayandırıyor.
Hangi özellik hangi aşamada?
Durum ayrımını net tutmak gerekiyor. AI destekli genel sır tespiti modelinin push korumasına dahil edilmesi şu anda özel önizlemede. Kaynağa göre bu ay içinde GitHub Secret Protection kullanan kuruluşlara Enterprise Cloud ve GitHub Teams üzerinden sunulacak; AI kredisi tüketecek. Bugün itibarıyla AI secret detection kullanan her kuruluş yeni modele otomatik güncelleniyor; post-push taramalarından açılan alarmlar ek ücret olmadan mevcut secret scanning satın alımına dahil kalıyor. Model, GitHub Enterprise Server 3.23 ile genel önizlemede, hava boşluklu ortamlara da gelecek. Copilot CLI ve Copilot App’teki /security-review komutuna da sınıflandırıcı ekleniyor.
Uygulanabilir kontrol listesi
- Regex aday üretimini kaldırma; yüksek hatırlama için geniş ağ atmaya devam et.
- Model kararını bağlamla besle: dosya yolu, değişken adı, komşu kod ve metin.
- Eşikleri yalnızca çevrimdışı testte seçme; üretim benzeri trafikte doğrula.
- Push yolunda gecikme bütçesi tanımla; milisaniye seviyesi kritikse küçük encoder sınıflandırıcı değerlendir.
- Yanlış pozitifleri etiketleyip eğitim ve değerlendirme döngüsüne geri ver.
- Kimlik bilgisi iptalini otomatikleştir; manuel iptal süreleri ölçeklenmez.
- AI kredisi ve plan gereksinimlerini maliyet hesabına kat.
Sınırlamalar
GitHub’ın rakamları kendi trafiği, kendi eğitim verisi ve kendi ürün tanımı için geçerli. Başka bir kod tabanında aynı kazançların çıkması beklenmemeli. Model, eğitim verisindeki bağlam örüntülerine bağlı; farklı dil, şablon veya üretim kodunda yanlış karar verebilir. Özelliklerin bir kısmı önizleme veya plan aşamasında; genel kullanıma açılmış varsayılmamalı. Kaynaklar, sonuçların bağımsız üçüncü taraflarca doğrulandığını göstermiyor.