Ketahui Lebih Lanjut tentang Buku Karya Benny Czarny, *Cybersecurity Upside Down*

Pelajari Lebih Lanjut
Kami menggunakan kecerdasan buatan untuk menerjemahkan situs ini, dan meskipun kami berupaya semaksimal mungkin untuk memastikan keakuratan, terjemahan tersebut mungkin tidak selalu 100% tepat. Kami mengucapkan terima kasih atas pengertian Anda.

Atasi Kerentanan Google Chrome dengan Solusi MetaDefender Endpoint

Oleh OPSWAT
Bagikan Postingan Ini

Kami dengan antusias memperkenalkan serangkaian artikel blog analisis teknis yang berfokus pada berbagai Kerentanan dan Paparan Umum (Common Vulnerabilities and Exposures atau CVE), yang telah diidentifikasi dan ditangani menggunakan teknologi deteksi ancaman canggih kami. Seluruh penelitian ini dilakukan oleh para mahasiswa pascasarjana yang berpartisipasi dalam program Beasiswa Keamanan Siber “ OPSWAT ” yang diluncurkan pada September 2023.

Foto close-up Tri Luong dan Khoi Ta dari Universitas Sains Ho Chi Minh
Para siswa mengikuti Program Beasisw OPSWAT .

Dalam blog ini, kami akan menjelaskan kerentanan CVE-2019-13720 pada Google Chrome serta cara organisasi dapat melindungi diri dari serangan eksploitasi CVE-2019-13720.

Apa itu Google Chrome dan kapan didirikan?  

Google Chrome adalah peramban web lintas platform yang dikembangkan oleh Google dan dirilis secara resmi pada 2 September 2008. Peramban ini dikembangkan sebagai bagian dari upaya Google untuk menciptakan peramban yang lebih baik dan lebih modern. Pada saat itu, peramban ini menawarkan banyak fitur baru, termasuk penjelajahan dengan tab, mode privasi, dan sinkronisasi dengan layanan Google. Sejak dirilis, peramban ini telah menjadi salah satu peramban web terpopuler di seluruh dunia. Pada tahun 2021, Google Chrome diperkirakan memiliki sekitar 3,2 miliar pengguna.

Karena popularitas Google Chrome, peramban ini telah menjadi fokus utama penelitian dan serangan, yang menarik perhatian baik peretas etis maupun peretas jahat. Kerentanan umum yang teridentifikasi di Google Chrome antara lain Denial of Service (DoS), kebocoran informasi, dan eksekusi kode jarak jauh. Terkait kerentanan Eksekusi Kode Jarak Jauh, terdapat dua jenis masalah ini di Google Chrome: pelarian dari sandbox dan non-pelarian.

Apa itu CVE-2019-13720?

CVE-2019-13720 adalah kerentanan Use After Free (UAF) pada WebAudio di Google Chrome versi sebelum 78.0.3904.87 yang memungkinkan penyerang jarak jauh untuk berpotensi mengeksploitasi kerusakan heap melalui halaman HTML yang dirancang khusus. Ketika korban mengakses halaman web berbahaya atau membuka halaman HTML yang dirancang khusus pada peramban Google Chrome yang rentan, kode berbahaya tersebut akan dieksekusi di perangkat korban. CVE ini pertama kali dilaporkan oleh Anton Ivanov dan Alexey Kulaev pada tahun 2019.

cuplikan yang menunjukkan tingkat keparahan tinggi menurut NIST-NVD, beserta skor dasar dan string vektor yang terkait dengan kerentanan keamanan siber
Informasi mengenai CVE-2019-13720 di NIST NVD

Dari sudut pandang teknis, kerentanan “use-after-free” dapat dieksploitasi akibat terjadinya kondisi persaingan (race condition) antara thread Render dan Audio dalam komponen audio Qt WebEngine, yang memungkinkan penyerang jarak jauh menjalankan kode shell WebAssembly, sehingga perangkat korban menjadi terkompromi. Solusi untuk masalah ini adalah agar semua pengguna Qt WebEngine memperbarui ke versi terbaru.

Fase-Fase Serangan

Infografis serangan phishing empat langkah yang menjelaskan proses pembuatan URL, pengiriman email phishing, korban yang membuka tautan HTML, dan eksekusi kode jarak jauh
Proses-Proses Serangan

Para penyerang membuat URL khusus yang berisi kode HTML berbahaya, lalu mengirimkan email phishing yang berisi tautan tersebut kepada korban. Ketika korban membuka email dan mengklik tautan tersebut, kode berbahaya tersebut akan dijalankan dan memungkinkan penyerang untuk mengambil alih sistem yang terkena serangan. Rincian mengenai taktik eksekusi kode jarak jauh, sebagaimana tercantum dalam dokumen HTML, dapat dilihat di sini.

Apa itu kerentanan Use After Free (UAF) dan heap spray?

Kerentanan UAF adalah jenis celah keamanan yang terjadi ketika sebuah program terus menggunakan memori setelah memori tersebut telah dibebaskan. Hal ini dapat menimbulkan berbagai konsekuensi merugikan, termasuk kerusakan data, eksekusi kode sembarangan, dan sistem yang macet.

Heap spraying adalah teknik pengiriman muatan yang melibatkan penulisan beberapa byte di berbagai lokasi di seluruh heap. Teknik ini melibatkan penyisipan muatan yang dirancang khusus (yaitu data berbahaya) ke dalam heap memori, sehingga alur eksekusi melompat ke memori yang telah disemprotkan alih-alih ke kode asli aplikasi. Tujuan serangan ini biasanya adalah untuk menguasai register EIP. 

diagram yang menunjukkan alokasi memori sebelum dan sesudah serangan heap spraying, dengan kesalahan alur kontrol yang ditunjukkan
Visualisasi Teknik Penyemprotan Heap

Apa itu WebAssembly?

WebAssembly, yang sering disingkat Wasm, adalah format instruksi biner baru yang berfungsi sebagai target portabel untuk kompilasi bahasa pemrograman tingkat tinggi seperti C/C++, sehingga memungkinkan bahasa-bahasa tersebut berjalan dengan kecepatan yang mendekati kecepatan native di mesin JavaScript peramban web. 

Diagram alur konversi kode dari C/C++ ke browser melalui Emscripten, WebAssembly, JS Glue Code, dan Aplikasi HTML
Mengkompilasi Kode Menjadi WebAssembly

Namun, karena WebAssembly dapat dikompilasi dari bahasa pemrograman yang tidak aman dalam hal memori, seperti C/C++, kerentanan pemrograman umum seperti buffer overflow atau kerentanan format string dapat muncul dalam file biner WebAssembly hasil kompilasi silang. Potensi masuknya kerentanan ke dalam modul WebAssembly ini telah memperluas permukaan serangan pada aplikasi web masa kini.

diagram yang menunjukkan JS dan WA dalam konteks berbagi memori linier aplikasi di lingkungan runtime
Desain Aplikasi Umum Menggunakan WebAssembly

Apa itu kerentanan kondisi persaingan?

Kerentanan kondisi persaingan (race condition) dalam perangkat lunak muncul ketika beberapa proses atau utas (thread) mencoba mengakses sumber daya bersama secara bersamaan, sehingga menimbulkan hasil yang tidak terduga atau gangguan operasional akibat perbedaan waktu akses. Jika suatu program memiliki kerentanan kondisi persaingan, hal ini dapat menyebabkan berbagai masalah seperti aplikasi macet, kerusakan data, hasil yang salah, atau ketidakkonsistenan. Penyerang dapat memanfaatkan kerentanan ini untuk mendapatkan akses tanpa izin, membocorkan informasi, meningkatkan hak akses, atau menyebabkan sistem macet.  

Diklasifikasikan sebagai kerentanan kondisi persaingan (race condition), kerentanan TOCTTOU memanfaatkan selisih waktu antara proses pemeriksaan dan penggunaan suatu sumber daya.

Diagram yang menunjukkan kerentanan TOCTOU (Time of Check to Time of Use) dalam sebuah aplikasi yang sedang dieksploitasi oleh serangan
Ilustrasi kondisi race dalam perangkat lunak. Sumber: Devopedia 2020 (*) TOCTOU (Time of Check to Time Of Use)

Bagaimana cara kerja CVE-2019-13720?

Untuk memanfaatkan kerentanan ini, peneliti menyisipkan kode JavaScript ke dalam berkas HTML. Ketika pengguna membuka berkas HTML tersebut, skrip tersebut berusaha menemukan alamat yang bocor dengan membuat dua utas (utas utama dan utas audio) yang menangani data buffer yang sama. Alamat yang bocor dari `temporary_buffer_object` di `ReverbConvolverStage` kemudian digunakan untuk mendapatkan pointer dari `feedforward_array` di `IIRFilterNode` (yang berbagi super page yang sama dengan `Convolver`). Selanjutnya, peneliti mencoba mendapatkan pointer dari `feedforward_array` pada pemicu UAF kedua.

Alur proses eksploit: Memicu UAF, Memicu UAF untuk kedua kalinya, Heap Spray, Menulis Shellcode, Memicu Modul WebAssembly, Menjalankan Payload
Proses Pemicu Use-After-Free

WebAssembly menangani eksekusi shellcode. Untuk mengaktifkan eksekusi shellcode, peneliti mencoba membebaskan memori yang ditempati oleh IIRFilter dan menulis ke GCPreventer hingga mereka memperoleh kendali atas lokasi alokasi memori baru tanpa perlu menggunakan teknik "spray". Akhirnya, peneliti menulis kode shell ke wilayah Just-In-Time (JIT) di memori. Akibatnya, saat terjadi peristiwa kesalahan pada pembaca berkas, modul WebAssembly akan menjalankan kode shell tersebut.

Untuk menjalankan kode shell yang terkait dengan kerentanan ini, pengguna harus menonaktifkan fitur sandbox pada versi Chrome yang rentan. 

Pesan peringatan browser: 'Anda menggunakan opsi baris perintah yang tidak didukung: -no-sandbox. Stabilitas dan keamanan akan terganggu.'

Saat kode shell dijalankan, kode tersebut secara otomatis membuka layanan Notepad di perangkat korban.

Layar kesalahan di peramban web dengan pesan 'Aw, Snap! Terjadi kesalahan saat menampilkan halaman web ini', disertai jendela Notepad yang terbuka

Metode Remediasi

MetaDefender Endpoint, sebuah solusi keamanan titik akhir yang dikembangkan oleh OPSWAT, memungkinkan pengguna untuk mendeteksi dan melindungi sistem mereka dari serangan-serangan tersebut. Setelah pengguna menonaktifkan fitur Privacy Sandbox (--no-sandbox), MetaDefender Endpoint dapat mendeteksi CVE dan menerapkan patch Google Chrome terbaru. Setelah itu, pengguna dapat memperbarui Google Chrome ke versi terbaru secara manual atau mengaktifkan fitur “pembaruan otomatis” di bawah tab Patch Management agar OPSWAT MetaDefender Endpoint secara otomatis memperbarui browser begitu patch baru tersedia.

Untuk mencegah paparan terhadap kode berbahaya, pengguna disarankan menggunakan alat penyaring email untuk mendeteksi serangan phishing dan menghindari mengklik tautan yang tidak dikenal dalam email.

MetaDefender Endpoint Fitur dan Manfaat Utama Produk

  • Tinjau dan perbaiki aplikasi yang berisiko. Aplikasi yang rentan atau sudah kedaluwarsa dapat dilihat melalui antarmuka pengguna (UI) MetaDefender Endpoint .
  • Pastikan perlindungan anti-malware telah dikonfigurasi dengan benar pada sistem operasi.
  • Pastikan kepatuhan terhadap standar keamanan organisasi.
  • Jaminan enkripsi hard disk.
  • Verifikasi pembaruan sistem operasi.
  • Berbagai pilihan untuk pemindaian malware dan penerbitan pengumuman bahwa perangkat akhir telah bebas dari malware.
MetaDefender Endpoint Antarmuka pengguna yang menampilkan daftar kerentanan kritis pada Google Chrome beserta nomor CVE dan skornya
MetaDefender Endpoint UI

MetaDefender Endpoint Untuk informasi mengenai Kerentanan " Endpoint " dan Penambalan Aplikasi, silakan unduh di sini.


Ikuti terus kabar terbaru dari OPSWAT!

Daftar sekarang untuk mendapatkan kabar terbaru dari perusahaan, cerita, informasi acara, dan masih banyak lagi.