Google telah mengungkapkan bahwa alat fuzzing bertenaga AI, OSS-Fuzz, telah digunakan untuk membantu mengidentifikasi 26 kerentanan di berbagai repositori kode sumber terbuka, termasuk kelemahan tingkat keparahan sedang di perpustakaan kriptografi OpenSSL.
“Kerentanan khusus ini mewakili tonggak sejarah dalam penemuan kerentanan otomatis: masing-masing kerentanan ditemukan dengan AI, menggunakan target fuzz yang dihasilkan AI dan ditingkatkan,” kata tim keamanan sumber terbuka Google dalam postingan blog yang dibagikan kepada The Hacker News.
Kerentanan OpenSSL yang dimaksud adalah CVE-2024-9143 (skor CVSS: 4.3), sebuah bug penulisan memori di luar batas yang dapat mengakibatkan aplikasi crash atau eksekusi kode jarak jauh. Masalah ini telah diatasi di OpenSSL versi 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb, dan 1.0.2zl.
Google, yang menambahkan kemampuan untuk memanfaatkan model bahasa besar (LLM) untuk meningkatkan cakupan fuzzing di OSS-Fuzz pada bulan Agustus 2023, mengatakan bahwa kerentanan tersebut kemungkinan telah ada dalam basis kode selama dua dekade dan “tidak akan dapat ditemukan dengan target fuzz yang ada yang ditulis oleh manusia.”
Lebih lanjut, raksasa teknologi ini mencatat bahwa penggunaan AI untuk menghasilkan target fuzz telah meningkatkan cakupan kode di 272 proyek C/C++, menambahkan lebih dari 370,000 baris kode baru.
“Salah satu alasan mengapa bug tersebut masih belum ditemukan dalam jangka waktu lama adalah karena cakupan saluran bukan merupakan jaminan bahwa suatu fungsi bebas dari bug,” kata Google. “Cakupan kode sebagai metrik tidak mampu mengukur semua kemungkinan jalur dan status kode—tanda dan konfigurasi yang berbeda dapat memicu perilaku yang berbeda, sehingga menemukan bug yang berbeda.”
Penemuan kerentanan yang dibantu AI ini juga dimungkinkan oleh fakta bahwa LLM terbukti mahir meniru alur kerja fuzzing pengembang, sehingga memungkinkan lebih banyak otomatisasi.
Perkembangan ini terjadi ketika perusahaan mengungkapkan awal bulan ini bahwa kerangka kerja berbasis LLM yang disebut Big Sleep memfasilitasi deteksi kerentanan zero-day di mesin database sumber terbuka SQLite.
Bersamaan dengan itu, Google telah berupaya melakukan transisi basis kodenya ke bahasa yang aman untuk memori seperti Rust, sekaligus melakukan retrofit mekanisme untuk mengatasi kerentanan keamanan memori spasial – yang terjadi ketika ada kemungkinan sepotong kode mengakses memori di luar yang dimaksudkan. batas – dalam proyek C++ yang ada, termasuk Chrome.
Hal ini termasuk bermigrasi ke Safe Buffer dan mengaktifkan libc++ yang diperkeras, yang menambahkan pemeriksaan batas ke struktur data C++ standar untuk menghilangkan sejumlah besar bug keamanan spasial. Lebih lanjut disebutkan bahwa biaya overhead yang dikeluarkan sebagai akibat dari penerapan perubahan tersebut adalah minimal (yaitu, rata-rata dampak kinerja sebesar 0,30%).
“Libc++ yang diperkeras, baru-baru ini ditambahkan oleh kontributor sumber terbuka, memperkenalkan serangkaian pemeriksaan keamanan yang dirancang untuk menangkap kerentanan seperti akses di luar batas dalam produksi,” kata Google. “Meskipun C++ tidak sepenuhnya aman untuk memori, peningkatan ini mengurangi risiko […]sehingga menghasilkan perangkat lunak yang lebih andal dan aman.”