Google memperkenalkan sistem ujian kabur ClusterFuzzLite

Google telah memperkenalkan projek ClusterFuzzLite, yang membolehkan penganjuran ujian kabur kod untuk pengesanan awal potensi kelemahan semasa operasi sistem penyepaduan berterusan. Pada masa ini, ClusterFuzz boleh digunakan untuk mengautomasikan ujian fuzz bagi permintaan tarik dalam Tindakan GitHub, Google Cloud Build dan Prow, tetapi sokongan untuk sistem CI lain dijangka pada masa hadapan. Projek ini berdasarkan platform ClusterFuzz, dicipta untuk menyelaraskan kerja kluster ujian kabur, dan diedarkan di bawah lesen Apache 2.0.

Adalah diperhatikan bahawa selepas Google memperkenalkan perkhidmatan OSS-Fuzz pada tahun 2016, lebih daripada 500 projek sumber terbuka yang penting telah diterima ke dalam program ujian kabur berterusan. Berdasarkan ujian yang dijalankan, lebih daripada 6500 kelemahan yang disahkan telah dihapuskan dan lebih daripada 21 ribu kesilapan telah diperbetulkan. ClusterFuzzLite terus membangunkan mekanisme ujian kabur dengan keupayaan untuk mengenal pasti masalah lebih awal pada peringkat semakan perubahan yang dicadangkan. ClusterFuzzLite telah pun dilaksanakan dalam proses semakan perubahan dalam projek systemd dan curl, dan telah membolehkan untuk mengenal pasti ralat yang terlepas oleh penganalisis statik dan linter yang digunakan pada peringkat awal menyemak kod baharu.

ClusterFuzzLite menyokong semakan projek dalam C, C++, Java (dan bahasa berasaskan JVM lain), Go, Python, Rust dan Swift. Ujian fuzzing dijalankan menggunakan enjin LibFuzzer. Alat AddressSanitizer, MemorySanitizer dan UBSan (UndefinedBehaviorSanitizer) juga boleh dipanggil untuk mengenal pasti ralat dan anomali memori.

Ciri utama ClusterFuzzLite: semakan pantas perubahan yang dicadangkan untuk mencari ralat sebelum penerimaan kod; memuat turun laporan mengenai keadaan ranap; keupayaan untuk beralih kepada ujian fuzzing yang lebih maju untuk mengenal pasti ralat yang lebih mendalam yang tidak muncul selepas menyemak perubahan kod; penjanaan laporan liputan untuk menilai liputan kod semasa ujian; seni bina modular yang membolehkan anda memilih fungsi yang diperlukan.

Mari kita ingat bahawa ujian kabur melibatkan penjanaan aliran semua jenis gabungan rawak data input yang hampir dengan data sebenar (contohnya, halaman html dengan parameter teg rawak, arkib atau imej dengan tajuk anomali, dll.), dan kemungkinan rakaman kegagalan dalam proses pemprosesan mereka. Jika urutan ranap atau tidak sepadan dengan respons yang dijangkakan, maka tingkah laku ini berkemungkinan besar menunjukkan pepijat atau kelemahan.

Sumber: opennet.ru

Tambah komen