Google, sürekli entegrasyon sistemlerinin çalışması sırasında potansiyel güvenlik açıklarının erken tespiti için kod bulanıklaştırma testlerinin düzenlenmesine olanak tanıyan ClusterFuzzLite projesini tanıttı. Şu anda ClusterFuzz, GitHub Actions, Google Cloud Build ve Prow'daki çekme isteklerinin bulanıklık testini otomatikleştirmek için kullanılabilir, ancak gelecekte diğer CI sistemleri için de destek bekleniyor. Proje, kümelerin bulanıklaştırılması çalışmalarını koordine etmek için oluşturulan ClusterFuzz platformunu temel alıyor ve Apache 2.0 lisansı altında dağıtılıyor.
Google'ın 2016 yılında OSS-Fuzz hizmetini devreye sokmasının ardından 500'den fazla önemli açık kaynaklı projenin sürekli fuzzing test programına kabul edildiği belirtiliyor. Yapılan testlere göre 6500'den fazla doğrulanmış güvenlik açığı giderildi ve 21 binden fazla hata düzeltildi. ClusterFuzzLite, önerilen değişikliklerin inceleme aşamasında sorunları daha erken tespit etme becerisine sahip bulanık test mekanizmaları geliştirmeye devam ediyor. ClusterFuzzLite, systemd ve curl projelerinde değişiklik inceleme süreçlerinde halihazırda uygulanmıştır ve yeni kodun kontrol edilmesinin ilk aşamasında kullanılan statik analizörler ve linterler tarafından gözden kaçırılan hataların tespit edilmesini mümkün kılmıştır.
ClusterFuzzLite, C, C++, Java (ve diğer JVM tabanlı diller), Go, Python, Rust ve Swift dillerinde proje incelemesini destekler. Fuzzing testi LibFuzzer motoru kullanılarak gerçekleştirilir. AdresSanitizer, MemorySanitizer ve UBSan (UnDefinitionBehaviorSanitizer) araçları da bellek hatalarını ve anormalliklerini tanımlamak için çağrılabilir.
ClusterFuzzLite'ın temel özellikleri: kod kabul edilmeden önce hataları bulmak için önerilen değişikliklerin hızlı kontrolü; çarpışma koşullarına ilişkin raporların indirilmesi; kod değişikliklerini kontrol ettikten sonra ortaya çıkmayan daha derin hataları belirlemek için daha gelişmiş bulanıklaştırma testlerine geçme yeteneği; test sırasında kod kapsamını değerlendirmek için kapsam raporlarının oluşturulması; gerekli işlevselliği seçmenizi sağlayan modüler mimari.
Bulanıklaştırma testinin, gerçek verilere yakın olan giriş verilerinin her türlü rastgele kombinasyonundan oluşan bir akış oluşturmayı (örneğin, rastgele etiket parametrelerine sahip html sayfaları, anormal başlıklara sahip arşivler veya resimler vb.) ve olası kayıt işlemlerini içerdiğini hatırlayalım. onların işlenmesi sürecindeki başarısızlıklar. Bir dizi çökerse veya beklenen yanıtla eşleşmiyorsa, bu davranışın büyük olasılıkla bir hata veya güvenlik açığına işaret ettiği söylenebilir.
Kaynak: opennet.ru
