Pengantar Kerentanan CPU Spectre &Meltdown
Salah satu cara untuk memblokir serangan ini adalah dengan mengosongkan cache memori pada waktu-waktu tertentu, menghilangkan informasi yang dieksfiltrasi sebelum penyerang dapat mengaksesnya. Mengunduh cache setelah setiap panggilan sistem mungkin akan memblokir berbagai serangan spekulatif, tetapi juga akan memperlambat sistem hingga pengguna akan mencari cara untuk menonaktifkan mekanisme tersebut. Keamanan informasi sangat penting, tetapi biaya yang terlalu tinggi saat mengosongkan cache memori mengurangi waktu produksi yang berharga.
Serangan yang menggunakan eksekusi spekulatif melibatkan meyakinkan prosesor untuk berspekulasi pada rute yang tidak akan diikuti oleh eksekusi non-spekulatif. Misalnya, fungsi kernel mungkin berisi pemeriksaan batas yang akan mencegah kode mengakses di luar akhir array, yang akan menyebabkan kesalahan dikembalikan. Serangan yang menggunakan kerentanan Spectre akan melewati pemeriksaan itu dengan cara yang spekulatif, mengakses data yang ditulis khusus untuk tidak diakses oleh kode. Pengembalian kesalahan adalah petunjuk bahwa mungkin sesuatu yang tidak pantas sedang terjadi, tetapi pada saat itu, kerusakan akan terjadi.
Cara memeriksa apakah server Linux Anda rentan terhadap bug CPU Spectre
Pemeriksa Hantu &Kehancuran adalah skrip shell yang memeriksa bug Intel/AMD/ARM berikut dan CPU lainnya:
- CVE-2017-5753:batas pemeriksaan bypass (Spectre Variant 1). Anda perlu mengkompilasi ulang perangkat lunak dan kernel dengan kompiler yang dimodifikasi yang memperkenalkan opcode LFENCE pada posisi yang tepat dalam kode yang dihasilkan. Dampak kinerja dari mitigasi dapat diabaikan.
- CVE-2017-5715:injeksi target cabang (Varian Hantu 2). Dampak kinerja dari mitigasi tergantung pada CPU Anda.
- CVE-2017-5754:memuat cache data jahat (Meltdown). Anda harus menginstal versi kernel yang diperbarui dengan patch PTI/KPTI. Memperbarui kernel sudah cukup. Dampak kinerja dari mitigasi rendah hingga sedang.
spectre-meltdown-checker.sh adalah skrip shell sederhana untuk mengetahui apakah kernel (pemasangan) Linux Anda rentan terhadap 3 CVE “eksekusi spekulatif”.
Instalasi
Script harus dijalankan sebagai root pengguna. Anda dapat melihat kode sumber di bawah ini. Gunakan perintah wget atau perintah curl untuk mengambil kode sumber di kotak Linux Anda:
$ cd /tmp/
$ wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
ATAU
$ git clone https://github.com/speed47/spectre-meltdown-checker.git
Contoh keluaran:
Mengkloning ke 'spectre-meltdown-checker'...
jarak jauh:Menghitung objek:155, selesai.
remote:Mengompresi objek:100% (20/20), selesai.
jarak jauh:Total 155 (delta 18), digunakan kembali 21 (delta 10), paket digunakan kembali 125
Menerima objek:100% (155/155), 49,78 KiB | 145.00 KiB/s, selesai.
Menyelesaikan delta:100% (88/88), selesai.
Cara memeriksa Linux untuk kerentanan Spectre dan Meltdown
Jalankan skrip sebagai pengguna root menggunakan perintah sudo atau perintah su:
$ sudo sh spectre-meltdown-checker.sh
Contoh keluaran dari desktop Ubuntu Linux:
Keluaran lain dari server CentOS 7.x saya tempat Meltdown/Spectre v1 ditambal dengan Kernel:
$ sudo sh spectre-meltdown-checker.sh
Bagaimana cara menginstal/memperbarui firmware mikrokode Intel di Linux?
Mikrokode tidak lain adalah firmware CPU yang disediakan oleh Intel atau AMD. Kernel Linux dapat memperbarui firmware CPU tanpa pembaruan BIOS saat boot. Mikrokode prosesor disimpan dalam RAM dan kernel memperbarui mikrokode selama setiap boot. Pembaruan mikrokode ini dari Intel/AMD diperlukan untuk memperbaiki bug atau menerapkan kesalahan untuk menghindari bug CPU. Halaman ini menunjukkan cara menginstal pembaruan mikrokode AMD atau Intel menggunakan manajer paket atau pembaruan mikrokode prosesor yang disediakan oleh Intel di Linux.
Cara mengetahui status mikrokode saat ini
Jalankan perintah berikut sebagai root pengguna:
# dmesg | grep microcode
Contoh keluaran:
Cara menginstal firmware mikrokode Intel di Linux menggunakan pengelola paket
Alat untuk mengubah dan menyebarkan pembaruan mikrokode CPU untuk x86/amd64 hadir dengan Linux. Prosedur untuk menginstal firmware mikrokode AMD atau Intel di Linux adalah sebagai berikut:
- Buka aplikasi terminal
- Jenis pengguna Debian/Ubuntu Linux:sudo apt install intel-microcode
- Tipe pengguna CentOS/RHEL Linux:sudo yum install microcode_ctl
Nama paketnya adalah sebagai berikut untuk distro Linux populer:
- microcode_ctl dan linux-firmware – paket pembaruan mikrokode CentOS/RHEL
- intel-microcode – Debian/Ubuntu dan mengkloning paket pembaruan mikrokode untuk Intel CPUS
- amd64-microcode – Debian/Ubuntu dan mengkloning firmware mikrokode untuk CPU AMD
- linux-firmware – Firmware mikrokode Arch Linux untuk CPU AMD (diinstal secara default dan Anda tidak perlu melakukan tindakan apa pun)
- intel-ucode – firmware mikrokode Arch Linux untuk CPU Intel
- microcode_ctl, linux-firmware dan ucode-intel – Paket pembaruan mikrokode Suse/OpenSUSE Linux
Peringatan:Dalam beberapa kasus, pembaruan mikrokode dapat menyebabkan masalah boot seperti server menjadi hang atau me-reset secara otomatis pada saat boot. Lakukan dengan risiko Anda sendiri.
Contoh
Ketik perintah apt/perintah apt-get berikut pada Debian/Ubuntu Linux untuk CPU Intel:
$ sudo apt-get install intel-microcode
Contoh keluaran:
Anda harus mem-boot ulang kotak untuk mengaktifkan pembaruan mikrokode:
$ sudo reboot
Verifikasi setelah reboot:
# dmesg | grep 'microcode'
Jika Anda menggunakan RHEL/CentOS, coba instal atau perbarui dua paket berikut menggunakan perintah yum:
$ sudo yum install linux-firmware microcode_ctl
$ sudo reboot
$ sudo dmesg | grep 'microcode'
Bagaimana cara memperbarui/menginstal mikrokode yang diunduh dari situs Intel?
Hanya gunakan metode berikut jika direkomendasikan oleh vendor Anda jika tidak, tetap gunakan paket Linux seperti yang dijelaskan di atas. Sebagian besar pengelola distro Linux memperbarui mikrokode melalui manajer paket. Metode pengelola paket aman karena telah diuji oleh banyak pengguna.
Bagaimana cara menginstal gumpalan mikrokode prosesor Intel untuk Linux (rilis 180108)?
Kunjungi situs AMD atau Intel untuk mendapatkan firmware mikrokode terbaru. Ekstrak terlebih dahulu menggunakan perintah tar:
$ mkdir firmware
$ cd firmware
$ tar xvf ~/path/to/file/microcode-20180108.tgz
$ ls –l
Contoh keluaran:
Pastikan /sys/devices/system/cpu/microcode/reload keluar:
$ ls -l /sys/devices/system/cpu/microcode/reload
Anda harus menyalin semua file dari intel-ucode ke /lib/firmware/intel-ucode/ menggunakan perintah cp:
$ sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/
Anda baru saja menyalin direktori intel-ucode ke /lib/firmware/. Tulis antarmuka reload ke 1 untuk memuat ulang file mikrokode:
# echo 1 > /sys/devices/system/cpu/microcode/reload
Perbarui initramfs yang ada sehingga lain kali dapat dimuat melalui kernel:
$ sudo update-initramfs -u
$ sudo reboot
Memverifikasi bahwa mikrokode telah diperbarui saat boot atau dimuat ulang dengan perintah echo:
# dmesg | grep microcode
Itu semuanya. Anda baru saja memperbarui firmware untuk CPU Intel Anda.