AFL++ ile etkili bulanık test için yöntemler açıklandı
Öne çıkanlar
- AFL++ aracında persistent mode kullanımı test hızını yaklaşık 10 kat artırıyor.
- ASan tamponu gerçek boyuttan büyük olduğundan doğrudan test tamponu üzerinden veri aktarmak taşma hatalarını gizliyor.
- Dosya yolu isteyen fonksiyonlar memfd_create çağrısıyla oluşturulan bellek dosyaları üzerinden test ediliyor.
- Statik fonksiyonları ve gizli değişkenleri test etmek amacıyla kaynak kodlar tek derleme birimi olarak içeri alınıyor.
Yazılımlardaki hataları otomatik olarak ortaya çıkaran bulanık test (fuzzing) yöntemleri, karmaşık girdileri işleyen programlarda geniş çaplı açıklar bulmayı sürdürüyor. Yaklaşık bin açık kaynak projeyi test eden bir yazılımcı, AFL++ aracıyla C ve C++ projelerinde yürütülen testlerin verimini artıran pratik yaklaşımlarını paylaştı. Geliştirici, AddressSanitizer (ASan) ve UndefinedBehaviorSanitizer (UBSan) araçlarının varsayılan yapılandırmalarının yetersiz kaldığını belirterek bu araçların daha sıkı denetimlerle çalıştırılması gerektiğini aktardı.
Yayımlanan rehbere göre AFL++ kullanırken süreç tabanlı persistent mode seçeneği test hızını yaklaşık on kat artırıyor. Testlerin doğrudan tek bir derleme biriminde (unity build) toplanması, dahili ve statik fonksiyonların harici arayüzlere gerek kalmadan doğrudan hedeflenmesine olanak tanıyor. Ayrıca resmi şablonlardaki doğrudan tampon bellek kullanımının ASan kaynaklı taşma tespitlerini engellediği vurgulanarak, girdilerin mutlaka hedef boyuta göre yeniden kopyalanması gerektiği ifade edildi.
Dosya yollarını zorunlu kılan programlar için memfd_create ve Linux altındaki /proc dosya tanıtıcıları üzerinden disk erişimini tamamen önleyen bir yöntem önerildi. Bu yaklaşım SSD yıpranmasını ortadan kaldırırken paralel test süreçlerini de hızlandırıyor. Sabit boyutlu devasa arabelleklerin yapay olarak küçültülmesi ise uç durumların ve bellek taşmalarının çok daha kısa sürede tetiklenmesini sağlıyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.