Alat ODGen Baru Menggali 180 Zero-Days di Perpustakaan Node.js Data Intelligence PlatoBlockchain. Pencarian Vertikal. Ai.

Alat ODGen Baru Menggali 180 Zero-Days di Perpustakaan Node.js

Para peneliti di Universitas Johns Hopkins baru-baru ini menemukan 180 kerentanan zero-day yang mengejutkan di ribuan perpustakaan Node.js menggunakan alat analisis kode baru yang mereka kembangkan khusus untuk tujuan tersebut, yang disebut ODGen.

Tujuh puluh dari kelemahan tersebut telah menerima pengidentifikasi kerentanan umum dan eksposur (CVE). Mereka termasuk kelemahan injeksi perintah, kerentanan jalur traversal, masalah eksekusi kode arbitrer, dan kerentanan skrip lintas situs โ€” beberapa di antaranya dalam aplikasi yang banyak digunakan.

Dalam sebuah makalah yang dirilis di Usenix Security Symposium awal bulan ini, para peneliti Johns Hopkins โ€” Song Li, Mingqing Kang, Jianwei Hou, dan Yinzhi Cao โ€” menggambarkan ODGen sebagai alternatif yang lebih baik untuk analisis kode saat ini dan apa yang disebut berbasis kueri grafik. pendekatan untuk menemukan kerentanan Node.js.

Pendekatan berbasis analisis program telah terbukti berguna dalam membantu mendeteksi jenis kerentanan individu seperti kelemahan kode-injeksi dalam JavaScript. Tetapi mereka tidak dapat dengan mudah diperluas untuk mendeteksi semua jenis kerentanan yang mungkin ada di platform Node.js, kata para peneliti. Demikian pula, metode analisis kode berbasis grafik โ€” di mana kode pertama kali direpresentasikan sebagai grafik dan kemudian ditanyakan untuk kesalahan pengkodean tertentu โ€” bekerja dengan baik di lingkungan seperti C++ dan PHP. Namun, pendekatan berbasis grafik tidak seefisien dalam menambang kerentanan JavaScript karena penggunaan fitur dinamis bahasa pemrograman yang ekstensif, catat mereka.

Pendekatan 'Novel' untuk Menemukan Kerentanan JavaScript

Jadi, para peneliti malah mengembangkan apa yang mereka gambarkan sebagai sebuah "novel" dan metode yang lebih baik yang disebut Object Dependence Graph (ODG) yang dapat digunakan untuk mendeteksi kerentanan Node.js. Mereka menerapkan ODGen untuk menghasilkan "ODG" untuk program Node.js untuk mendeteksi kerentanan, kata mereka.

Cao, asisten profesor ilmu komputer di Universitas Johns Hopkins dan rekan penulis laporan penelitian, menggunakan beberapa analogi untuk menggambarkan analisis kode berbasis grafik secara umum dan Grafik Ketergantungan Objektif yang mereka usulkan. โ€œJika kita menganggap kerentanan sebagai pola khusus โ€” katakanlah, simpul hijau yang terhubung dengan simpul merah dan kemudian simpul hitam โ€” alat analisis kode berbasis grafik pertama-tama mengubah program menjadi grafik dengan banyak simpul dan tepi,โ€ kata Cao . โ€œKemudian alat tersebut mencari pola seperti itu dalam grafik untuk menemukan kerentanan.โ€

Grafik Ketergantungan Objek yang telah diusulkan para peneliti menyempurnakan pendekatan ini dengan merepresentasikan objek JavaScript sebagai node dan menambahkan fitur โ€” termasuk dependensi antar objek โ€” yang khusus untuk bahasa pemrograman, dan kemudian menanyakan kesalahan. Cao menjelaskan cara kerja metode ini menggunakan biji-bijian dalam segenggam beras: Jika semua biji-bijian terlihat sama sebelum direbus tetapi memiliki dua warna berbeda setelah direbus โ€” satu mewakili biji-bijian yang baik dan biji-bijian yang buruk lainnya โ€” maka akan lebih mudah untuk dikenali dan disingkirkan. biji-bijian yang buruk. โ€œPenafsiran abstrak seperti proses perebusan yang mengubah nasi โ€” yaitu, program โ€” menjadi objek berwarna berbedaโ€ sehingga kesalahan lebih mudah dikenali, kata Cao.

Berbagai Bug

Untuk melihat apakah pendekatan mereka berhasil, para peneliti pertama-tama menguji ODGen terhadap sampel 330 kerentanan yang dilaporkan sebelumnya dalam paket Node.js pada repositori node package manager (npm). Pengujian menunjukkan pemindai dengan benar mengidentifikasi 302 dari 330 kerentanan. Didukung oleh tingkat akurasi yang relatif tinggi, para peneliti menjalankan ODGen terhadap sekitar 300,000 paket Java dalam npm. Pemindai melaporkan total 2,964 potensi kerentanan di seluruh paket. Para peneliti memeriksa 264 di antaranya - semuanya dengan rata-rata lebih dari 1,000 unduhan per minggu - dan dapat mengonfirmasi 180 sebagai kerentanan yang sah. Empat puluh tiga di antaranya berada pada level aplikasi, 122 berada dalam paket yang diimpor oleh aplikasi atau kode lain, dan 15 sisanya berada dalam paket tidak langsung.

Sejumlah (80) kerentanan yang dikonfirmasi yang terdeteksi ODGen adalah aliran injeksi perintah yang memungkinkan penyerang mengeksekusi kode arbitrer pada tingkat sistem operasi melalui aplikasi yang rentan. Tiga puluh adalah cacat jalur traversal; 24 gangguan kode diaktifkan, dan 19 melibatkan jenis tertentu dari serangan injeksi perintah yang disebut polusi prototipe.

Stempel Waktu:

Lebih dari Bacaan gelap