Google ClusterFuzzLite fuzzing test sistemini təqdim etdi

Google şirkəti fasiləsiz inteqrasiya sistemlərinin işləməsi zamanı potensial zəifliklərin erkən aşkarlanması üçün kodun qeyri-səlis testini təşkil etməyə imkan verən ClusterFuzzLite layihəsini təqdim edib. Hal-hazırda, ClusterFuzz GitHub Actions, Google Cloud Build və Prow-da çəkmə sorğularının qeyri-səlis testini avtomatlaşdırmaq üçün istifadə edilə bilər, lakin gələcəkdə digər CI sistemləri üçün dəstək gözlənilir. Layihə fuzzing test klasterlərinin işini koordinasiya etmək üçün yaradılmış ClusterFuzz platformasına əsaslanır və Apache 2.0 lisenziyası altında paylanır.

Qeyd olunur ki, Google 2016-cı ildə OSS-Fuzz xidmətini təqdim etdikdən sonra 500-dən çox mühüm açıq mənbə layihəsi davamlı fuzzing test proqramına qəbul edilib. Aparılan sınaqlar əsasında 6500-dən çox təsdiqlənmiş boşluq aradan qaldırılıb və 21 mindən çox səhv düzəldilib. ClusterFuzzLite, təklif olunan dəyişikliklərin nəzərdən keçirilməsi mərhələsində problemləri daha əvvəl müəyyən etmək imkanı ilə qeyri-müəyyən test mexanizmlərini inkişaf etdirməyə davam edir. ClusterFuzzLite artıq systemd və curl layihələrində dəyişikliklərin nəzərdən keçirilməsi proseslərində tətbiq edilib və yeni kodun yoxlanılmasının ilkin mərhələsində istifadə olunan statik analizatorlar və lintrlər tərəfindən buraxılmış səhvləri müəyyən etməyə imkan verib.

ClusterFuzzLite C, C++, Java (və JVM əsaslı digər dillər), Go, Python, Rust və Swift-də layihənin nəzərdən keçirilməsini dəstəkləyir. Fuzzing testi LibFuzzer mühərrikindən istifadə etməklə həyata keçirilir. AddressSanitizer, MemorySanitizer və UBSan (UndefinedBehaviorSanitizer) alətləri də yaddaş səhvlərini və anomaliyalarını müəyyən etmək üçün çağırıla bilər.

ClusterFuzzLite-in əsas xüsusiyyətləri: kodun qəbulundan əvvəl səhvləri tapmaq üçün təklif olunan dəyişikliklərin tez yoxlanılması; qəza şəraiti haqqında hesabatların yüklənməsi; kod dəyişikliklərini yoxladıqdan sonra üzə çıxmayan daha dərin səhvləri müəyyən etmək üçün daha təkmil fuzzing testinə keçmək imkanı; test zamanı kod əhatəsini qiymətləndirmək üçün əhatə dairəsi hesabatlarının yaradılması; tələb olunan funksionallığı seçməyə imkan verən modul arxitektura.

Yada salaq ki, qeyri-müəyyənlik testi real verilənlərə yaxın olan hər cür təsadüfi daxilolma məlumatlarının (məsələn, təsadüfi etiket parametrləri olan html səhifələri, arxivlər və ya anomal başlıqlı şəkillər və s.) cərəyanının yaradılmasını və mümkün qeydi nəzərdə tutur. onların emalı prosesində uğursuzluqlar. Ardıcıllıq çökərsə və ya gözlənilən cavaba uyğun gəlmirsə, bu davranış səhv və ya zəifliyi göstərə bilər.

Mənbə: opennet.ru

Добавить комментарий