Anthropic, öncü yapay zekâ modellerinin yalnızca açık bulmakla kalmayıp yazılımın saldırı yüzeyini sistematik olarak küçültmek için de kullanılabileceğini gösteren ilk araştırma sonuçlarını paylaştı. Şirketin yaklaşımı; erişilebilen kodu modelle haritalayıp belirli bir dağıtımın açığa çıkarması gerekmeyen her şeyi kaldırmak veya erişimini kısıtlamak üzerine kurulu. Anthropic, Claude‘u 25 açık kaynak projede çalıştırdığını ve 493 sorun bulduğunu açıkladı.
Neden saldırı yüzeyi?
Anthropic’e göre açıkları tek tek bulup düzeltmek kötü ölçekleniyor: Kritik bir açığı kapatmak, geriye kalan açıklar hakkında hiçbir şey söylemiyor. Buna karşın kodun erişilebilirliğini azaltmak, aktif olarak istismar edilenler dahil bilinmeyen açıkların ciddiyetini düşürüyor. Bu teknikler açıkları ortadan kaldırmıyor ama onlara ulaşmayı zorlaştırıyor. Örneğin kodu kimlik doğrulama öncesinden sonrasına, sıfır tıklamadan tek tıklamaya veya varsayılan açıktan açık rızaya taşımak bu kapsamda.
Üç yöntem
- Varsayılan yapılandırma: Gönderildiği varsayılan yapılandırmada erişilebilen ama hiçbir varsayılan işlev tarafından kullanılması amaçlanmayan kod.
- Yapılandırma etkileşimi: Tek başına makul görünen ama birlikte ayarlandığında bir güvenlik kontrolünü sessizce kapatan veya tanımsız davranış bırakan seçenek çiftleri.
- Erken erişilebilirlik: Kimlik doğrulama gibi bir güvenlik kontrolünden önce, kurban etkileşimi olmadan veya protokol durum geçişinden önce çalışan hassas ve karmaşık kod.
Bulgular
C, C++, Java, PHP ve Python ile yazılmış, toplamda 5 milyondan fazla satırlık 25 projede Claude, 17.000’i aşkın yapılandırma seçeneğinin envanterini çıkardı; bunların 3.842’si güvenlikle ilgiliydi. Projelerin 10’u herkese açık (Public), 11’i kimlik doğrulamalı (Gated), 4’ü özel (Private) kategorideydi. Öne çıkan sonuçlar:
- Kimlik doğrulamalı 11 projenin tamamında istemeden erişilebilen kod vardı: Varsayılan yapılandırmada 93 gereksiz kimlik doğrulama öncesi yüzey, kimlik doğrulamadan önce kod çalıştıran veya durum kaydeden 37 konum ve yöneticinin ayarladığı bir kontrolü sessizce zayıflatan 61 yapılandırma kombinasyonu bulundu. Bunların hiçbiri tek başına hemen istismar edilebilir değildi.
- Hata veya uyarı vermeden kabul edilen ve davranışı belgelenmemiş 162 güvenlik hassas yapılandırma kombinasyonu tespit edildi; bunların 94’ünde kombinasyon bir güvenlik kontrolünü sessizce kapatıyordu.
- Birbiriyle ilgisiz dört projede aynı örüntü görüldü: Ters DNS çözümleme kapalıyken ana makine adıyla yazılan bir engelleme kuralı hiçbir zaman eşleşmiyor ve liste “açık kalacak şekilde” başarısız oluyordu.
- Bir projede istemci sertifikası zorunluluğunu sessizce devre dışı bırakan çelişkili seçenekler 21 yıldır yazılımda bulunuyordu.
Vaka çalışması: OpenSSH
Toplam kod satırına oranla en büyük azaltım OpenSSH‘te elde edildi. Claude, SSH daemon’unun 10.4 sürümünde, varsayılan yapılandırmada kimliği doğrulanmamış bir istemcinin erişebildiği yaklaşık 4.500 satırlık yeni ve deneysel ML-DSA-44 (kuantum sonrası imza algoritması) kodu buldu. ML-DSA varsayılan olarak etkin değildi ve yönetici açıkça hariç tutsa bile kod erişilebiliyordu; bu, varsayılan sshd’deki kimlik doğrulama öncesi kodun yaklaşık yüzde 16’sına denk geliyordu. Anthropic bunu yamalarla birlikte bildirdi ve 10.5 sürümünde kontrol ayrıştırmanın önüne taşındı.
Claude daha sonra 10.5’teki kontrolde iki boşluk daha buldu: İstemcinin duyurduğu algoritma adıyla gönderdiği anahtar türü arasındaki uyumsuzluk ve sertifikalardaki CA imzasının yapılandırmaya bakılmadan doğrulanması. Bakımcılarla birlikte geliştirilen düzeltme, kontrolleri ayrıştırıcının içine yerleştirdi ve 10.6 sürümünde yayımlandı. Anthropic’e göre bu, varsayılan bir derlemede kimliği doğrulanmamış istemcinin daha önce erişebildiği OpenSSH kodunun yaklaşık beşte birini kaldırdı.
Yeniden kullanılabilir Claude becerisi
Anthropic, bu teknikleri OSS-Scanner’a entegre etmeye çalıştığı tek bir Claude becerisinde (skill) birleştirdi. Beceri kod tabanı üzerinde her seferinde temiz bağlamla üç geçiş yapıyor, her bulguyu programın dinamik izlemesiyle doğruluyor ve varsayılan yapılandırma bulguları için projenin kendi test paketini çalıştırarak varsayılan davranışı değiştirmeyen kapılar tasarlıyor. Varsayılan dışı yapılandırmaları etkileyecek değişiklikler insan kararına bırakılıyor.
Kaynak: Anthropic: Using Claude to reduce the attack surface of code
Henüz yorum yok. İlk yorumu siz yapın!