Google, davamlı inteqrasiya sistemləri zamanı potensial zəifliklərin erkən aşkarlanması üçün kodun qeyri-səlis testinə imkan verən ClusterFuzzLite layihəsini təqdim etdi. 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əyin əlavə ediləcəyi gözlənilir. Layihə fuzz test klasterlərini əlaqələndirmək üçün nəzərdə tutulmuş ClusterFuzz platformasına əsaslanır və Apache 2.0 lisenziyası əsasında lisenziyalaşdırılıb.
Qeyd edilir ki, Google 2016-cı ildə OSS-Fuzz xidmətini təqdim edəndən bəri 500-dən çox mühüm açıq mənbə layihəsi davamlı fuzzing test proqramına qəbul edilib. Bu yoxlamalar əsasında 6500-dən çox təsdiqlənmiş boşluq aradan qaldırılıb və 21-dən çox xəta aradan qaldırılıb. ClusterFuzzLite təklif olunan dəyişikliklərin nəzərdən keçirilməsi zamanı problemlərin daha əvvəl aşkarlanmasına imkan verməklə, qeyri-müəyyən test mexanizmlərini inkişaf etdirməyə davam edir. ClusterFuzzLite artıq sistemli və curl layihələri üçün dəyişikliklərin nəzərdən keçirilməsi proseslərinə inteqrasiya olunub və yeni kodun nəzərdən keçirilməsinin ilkin mərhələsində istifadə olunan statik analizatorlar və lintrlər tərəfindən buraxılmış səhvlərin aşkar edilməsinə imkan verib.
ClusterFuzzLite C, C++, Java (və digər JVM əsaslı dillər), Go, Python, Rust və Swift-də layihənin yoxlanılmasını dəstəkləyir. Fuzzing testi LibFuzzer mühərrikindən istifadə etməklə həyata keçirilir. AddressSanitizer, MemorySanitizer və UBSan (UdefinedBehaviorSanitizer) yaddaş səhvlərini və anomaliyalarını müəyyən etmək üçün də istifadə edilə bilər.
ClusterFuzzLite-in əsas xüsusiyyətlərinə aşağıdakılar daxildir: kod qəbul edilməzdən əvvəl səhvləri müəyyən etmək üçün təklif olunan dəyişikliklərə sürətli baxış; qəza şəraiti haqqında hesabatların yüklənməsi; kod dəyişikliklərini nəzərdən keçirdikdən 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ı; və sizə lazım olan funksionallığı seçməyə imkan verən modul arxitektura.
Xatırladırıq ki, qeyri-müəyyənlik testi hər cür təsadüfi daxilolma məlumat birləşmələrinin cərəyanını, təxmini real məlumatlara (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.) və emal zamanı mümkün uğursuzluqları qeyd etməyi əhatə edir. Əgər hər hansı ardıcıllıq qəza ilə nəticələnirsə və ya gözlənilən cavaba uyğun gəlmirsə, bu davranış böyük ehtimalla səhv və ya zəifliyin göstəricisidir.
Mənbə: opennet.ru
