Google memperkenalkan sistem pengujian fuzzing ClusterFuzzLite

Google telah memperkenalkan proyek ClusterFuzzLite, yang memungkinkan pengorganisasian pengujian kode fuzzing untuk deteksi dini potensi kerentanan selama pengoperasian sistem integrasi berkelanjutan. Saat ini, ClusterFuzz dapat digunakan untuk mengotomatisasi pengujian fuzz pada permintaan pull di GitHub Actions, Google Cloud Build, dan Prow, namun dukungan untuk sistem CI lainnya diharapkan tersedia di masa mendatang. Proyek ini didasarkan pada platform ClusterFuzz, dibuat untuk mengoordinasikan pekerjaan cluster pengujian fuzzing, dan didistribusikan di bawah lisensi Apache 2.0.

Perlu dicatat bahwa setelah Google memperkenalkan layanan OSS-Fuzz pada tahun 2016, lebih dari 500 proyek open source penting diterima dalam program pengujian fuzzing berkelanjutan. Berdasarkan pengujian yang dilakukan, lebih dari 6500 kerentanan yang terkonfirmasi telah dihilangkan dan lebih dari 21 ribu kesalahan telah diperbaiki. ClusterFuzzLite terus mengembangkan mekanisme pengujian fuzzing dengan kemampuan untuk mengidentifikasi masalah lebih awal pada tahap peninjauan perubahan yang diusulkan. ClusterFuzzLite telah diimplementasikan dalam proses peninjauan perubahan di proyek systemd dan curl, dan memungkinkan untuk mengidentifikasi kesalahan yang terlewatkan oleh penganalisis statis dan linter yang digunakan pada tahap awal pemeriksaan kode baru.

ClusterFuzzLite mendukung tinjauan proyek dalam C, C++, Java (dan bahasa berbasis JVM lainnya), Go, Python, Rust, dan Swift. Pengujian fuzzing dilakukan dengan menggunakan mesin LibFuzzer. Alat AddressSanitizer, MemorySanitizer, dan UBSan (UndefinisiBehaviorSanitizer) juga dapat dipanggil untuk mengidentifikasi kesalahan dan anomali memori.

Fitur utama ClusterFuzzLite: pemeriksaan cepat terhadap perubahan yang diusulkan untuk menemukan kesalahan sebelum penerimaan kode; mengunduh laporan kondisi kecelakaan; kemampuan untuk beralih ke pengujian fuzzing yang lebih canggih untuk mengidentifikasi kesalahan yang lebih dalam yang tidak muncul setelah memeriksa perubahan kode; pembuatan laporan cakupan untuk menilai cakupan kode selama pengujian; arsitektur modular yang memungkinkan Anda memilih fungsionalitas yang diperlukan.

Mari kita ingat bahwa pengujian fuzzing melibatkan pembuatan aliran semua jenis kombinasi acak dari data masukan yang mendekati data nyata (misalnya, halaman html dengan parameter tag acak, arsip atau gambar dengan judul yang tidak wajar, dll.), dan kemungkinan perekaman kegagalan dalam proses pengolahannya. Jika suatu urutan mogok atau tidak sesuai dengan respons yang diharapkan, maka perilaku ini kemungkinan besar mengindikasikan bug atau kerentanan.

Sumber: opennet.ru

Tambah komentar