Yapay Zekayı Yetkilendirme Hatalarını Bulmak İçin Kullanmak
Bug bounty programları değişiyor. Bazı programlar ödül ödemeyi durdurdu. Diğerleri ödemeleri %80 oranında kesti. Bunun sebebi yapay zekanın çok fazla hata bulması değil. Sebebi, yapay zekanın çok fazla yanlış hata bulması. Triyaj ekipleri düşük kaliteli raporlar altında boğuluyor.
Bu ortamda en önemli beceri hata bulmak değil. Bir hatanın var olmadığını kanıtlamaktır. Doğru negatifleri bulmalısınız.
Kaynak kodu erişilebilir hedefler için iki aşamalı bir yöntem kullanıyorum.
Aşama 1: Fan-out Kodu okumak için ucuz yapay zeka modelleri kullanın. Hedefi küçük parçalara bölün. Modelden bozulmuş değişmezleri (invariants) bulmasını isteyin. Bir nesnenin bir sahip kontrolü yapılmadan yüklendiği veya bir güvenlik kapısının atlandığı yerleri arayın. Yüksek geri çağırma (recall) oranını hedefleyin. Çok sayıda hata bekleyin.
Aşama 2: Adversarial Doğrulama Adayları elemek için pahalı, yüksek muhakeme yeteneğine sahip bir model kullanın. Her adayın çürütüldüğünü varsayın. Bir aday, ancak belirli kod satırlarını gösterebilirseniz hayatta kalır. Yolun ulaşılabilir olduğunu ve başka hiçbir kontrolün bunu engellemediğini kanıtlamanız gerekir.
En değerli çıktı bir çürütme listesidir. Bu liste, triyaj ekipleriyle güven inşa eder.
Açık kaynaklı bir kimlik sunucusu olan Ory Kratos'u test ettim. Ayarlar akışına baktım. Bu alan şifre değişikliklerini ve e-posta güncellemelerini yönetir. Buradaki tek bir hata hesap ele geçirmeye (account takeover) yol açar.
İlk aşama cazip bir hata buldu. OIDC stratejisinde, belirli bir konteyner bir kimlik bağlamasından (identity binding) yoksun. Eğer sadece eksik kontrolleri arıyor olsaydınız, bunu yüksek öncelikli bir hata olarak raporlardınız.
Bu bir hata olurdu.
Eksik olan bağlama istismar edilebilir değil. Sistem, hedef kimliği canlı bir oturum çerezinden veya imzalı bir tokenden alır. Konteyner özellikleri asla gerçek yazma hedefi üzerinde uygulanmaz. Tasarım sağlam duruyor.
Bunu raporlamak zaman kaybı olurdu ve güvenilirliğinize zarar verirdi. Sağladığım değer, rapor sunmama konusundaki özgüvendi.
Aynı yöntemi farklı bir hedefte kullandığımda gerçek bir hata buldum. Alternatif bir giriş noktası, ana yolun uyguladığı bir yetkilendirme kontrolünü atlamıştı. İptal edilmiş bir kullanıcı hala bir yan kapıdan giriş yapabiliyordu. Bu hata yüksek etkiliydi ve standart tarayıcılar için görünmezdi.
Kapı bekçileri, hacme karşı duvarlar örüyor. Başarılı olmak için yapay zeka çalışmanız titiz olmalıdır. Bir insanın okuyabileceğinden daha fazla kodu okumak için yapay zekayı kullanın. Ardından, göndermeden önce kendinizi haksız çıkarmak için yapay zekayı kullanın.
Hacme değil, sinyale odaklanın.
