Pengembang Linux kini tengah sibuk melakukan proses perbaikan kerentanan tingkat tinggi yang, dalam beberapa kasus, memungkinkan instalasi malware yang berjalan pada tingkat firmware, memberikan akses infeksi ke bagian terdalam dari sebuah perangkat di mana mereka sulit dideteksi atau dihapus.
Kerentanan ini berada di shim, yang dalam konteks Linux adalah komponen kecil yang berjalan di firmware pada awal proses boot sebelum sistem operasi dimulai. Lebih spesifik lagi, shim yang menyertai hampir semua distribusi Linux memainkan peran penting dalam boot aman, perlindungan yang dibangun ke dalam sebagian besar perangkat komputasi modern untuk memastikan setiap tautan dalam proses boot berasal dari pemasok yang diverifikasi dan terpercaya.
Pemanfaatan kerentanan ini memungkinkan penyerang untuk menetralisir mekanisme ini dengan menjalankan firmware jahat pada tahap awal proses boot sebelum firmware Unified Extensible Firmware Interface dimuat dan menyerahkan kontrol kepada sistem operasi.
Kerentanan ini, dilacak sebagai CVE-2023-40547, merupakan apa yang dikenal sebagai buffer overflow, sebuah bug pemrograman yang memungkinkan penyerang menjalankan kode pilihannya. Ini berada di bagian dari shim yang memproses boot dari server pusat pada jaringan menggunakan HTTP yang sama dengan dasar web.
Penyerang dapat mengeksploitasi kerentanan eksekusi kode dalam berbagai skenario, hampir semuanya mengikuti beberapa bentuk kompromi sukses baik perangkat yang ditargetkan atau server atau jaringan dari mana perangkat tersebut boot.
Iklan
“Seorang penyerang harus bisa memaksa sistem untuk boot dari HTTP jika belum melakukannya, dan entah berada dalam posisi untuk menjalankan server HTTP yang dimaksud atau MITM lalu lintas kepadanya,” tulis Matthew Garrett, pengembang keamanan dan salah satu penulis shim asli, dalam wawancara online.
“Seorang penyerang (yang hadir secara fisik atau yang sudah berhasil mengompromikan root pada sistem) dapat menggunakan ini untuk menggagalkan boot aman (menambahkan entri boot baru ke server yang mereka kendalikan, mengompromikan shim, menjalankan kode sembarang).”
Dinyatakan secara berbeda, skenario ini meliputi:
Mendapatkan kemampuan untuk mengompromi server atau melakukan impersonasi penyerang di tengah jalan untuk menargetkan perangkat yang sudah dikonfigurasi untuk boot menggunakan HTTP
Sudah memiliki akses fisik ke perangkat atau mendapatkan kontrol administratif dengan mengeksploitasi kerentanan terpisah.
Meskipun hambatan-hambatan ini sulit, mereka sama sekali tidak mustahil, terutama kemampuan untuk mengompromi atau melakukan impersonasi server yang berkomunikasi dengan perangkat melalui HTTP, yang tidak dienkripsi dan tidak memerlukan otentikasi.
Skenario khusus ini dapat terbukti berguna jika seorang penyerang sudah mendapatkan beberapa tingkat akses di dalam jaringan dan sedang mencari untuk mengambil alih kontrol perangkat pengguna akhir yang terhubung.
Namun, skenario ini, secara luas diperbaiki jika server menggunakan HTTPS, varian dari HTTP yang mengharuskan server untuk mengautentikasi dirinya sendiri. Dalam kasus itu, penyerang harus pertama-tama memalsukan sertifikat digital yang digunakan server untuk membuktikan bahwa itu diotorisasi untuk menyediakan firmware boot ke perangkat.
Kemampuan untuk mendapatkan akses fisik ke perangkat juga sulit dan secara luas dianggap sebagai alasan untuk mempertimbangkannya telah dikompromi. Dan, tentu saja, sudah mendapatkan kontrol administratif melalui mengeksploitasi kerentanan terpisah dalam sistem operasi adalah sulit dan memungkinkan penyerang untuk mencapai semua jenis tujuan jahat.
Dikatakan bahwa, mendapatkan kemampuan untuk menjalankan kode selama proses boot, sebelum sistem operasi utama dimulai, merupakan eskalasi besar dari akses apa pun yang sudah dimiliki penyerang. Ini berarti penyerang dapat menetralisir banyak bentuk perlindungan ujung yang dirancang untuk mendeteksi kompromi.
Dengan demikian, serangan ini memungkinkan untuk instalasi bootkit, istilah untuk malware yang berjalan sebelum OS. Namun, berbeda dengan banyak bootkit, bootkit yang dibuat dengan mengeksploitasi CVE-2023-40547 tidak akan bertahan jika hard drive dihapus atau diformat.
Garrett menjelaskan:
Pada teori ini seharusnya tidak memberikan penyerang kemampuan untuk mengompromi firmware itu sendiri, tetapi dalam kenyataannya memberi mereka eksekusi kode sebelum ExitBootServices (penyerahan antara firmware yang masih menjalankan perangkat keras dan OS yang mengambil alih) dan itu berarti permukaan serangan yang jauh lebih besar terhadap firmware - asumsi biasanya adalah hanya kode yang dipercayai yang berjalan sebelum ExitBootServices. Saya pikir ini masih akan disebut sebagai bootkit - itu dapat memodifikasi bootloader OS dan kernel sebelum eksekusi. Tapi itu tidak akan sepenuhnya persisten (jika Anda menghapus disk itu akan hilang).
Memperbaiki kerentanan melibatkan lebih dari sekadar menghapus overflow buffer dari kode shim. Ini juga memerlukan pembaruan mekanisme boot aman untuk mencabut versi bootloader yang rentan. Itu, pada gilirannya, menimbulkan beberapa tingkat risiko. Paul Asadoorian, evangelis keamanan utama di Eclypsium dan penulis dari pos blog yang meningkatkan kesadaran akan kerentanan tersebut, menjelaskan:
Pengguna bisa mengalami situasi di mana pembaruan DBX (daftar pencabutan) sedang diterapkan pada sistem mereka yang menentukan bootloader yang terinstal saat ini sebagai tidak valid dalam Secure Boot. Dalam kasus ini, saat reboot, Secure Boot akan menghentikan proses boot. Selama pengguna dapat masuk ke pengaturan BIOS/UEFI mereka, ini dapat diperbaiki dengan menonaktifkan sementara Secure Boot (jika pengguna telah mengatur kata sandi BIOS ini akan membuat
pemulihan sangat sulit). Utilitas Linux fwupd memiliki fasilitas untuk memperbarui DBX Secure Boot dan akan memberikan peringatan kepada pengguna jika bootloader yang terinstal saat ini ada dalam pembaruan DBX yang tertunda.
Tantangan lain dalam memperbarui, kata Asadoorian, melibatkan jumlah ruang yang terbatas yang dipesan untuk menyimpan pencabutan dalam bagian dari UEFI yang dikenal sebagai DBX. Beberapa daftar dapat berisi lebih dari 200 entri yang harus ditambahkan ke DBX. Dengan banyak shims membatasi ruang tersebut pada 32 kilobit, kapasitas ini bisa mendekati kehabisan ruang.
Langkah lain dalam proses patch adalah menandatangani shims yang diperbaiki menggunakan otoritas sertifikasi pihak ketiga Microsoft.
Pengembang yang mengawasi shims Linux telah merilis patch ke pengembang shim individu, yang telah memasukkannya ke setiap versi yang mereka tanggung jawabkan. Mereka sekarang telah merilis versi-versi tersebut ke distributor Linux, yang sedang dalam proses membuatnya tersedia untuk pengguna akhir.
Risiko eksploitasi yang berhasil sebagian besar terbatas pada skenario ekstrim, seperti yang telah disebutkan sebelumnya. Satu-satunya skenario di mana eksploitasi paling memungkinkan – ketika perangkat menerima gambar boot melalui server HTTP yang tidak dienkripsi – adalah satu yang seharusnya tidak pernah terjadi pada tahun 2024 atau sepuluh tahun sebelumnya, untuk hal itu.
Namun demikian, kerusakan dari eksploitasi yang berhasil serius dan merupakan alasan untuk peringkat keparahan 9.8 dari total 10. Orang harus menginstal patch segera begitu mereka tersedia.