GNU/Linux >> Belajar Linux >  >> Linux

Uji Kerentanan CPU Spectre dan Meltdown dan Pembaruan Mikrokode di Linux



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:

  1. Buka aplikasi terminal
  1. Jenis pengguna Debian/Ubuntu Linux:sudo apt install intel-microcode
  1. 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.


Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

  2. Linux – Mengonfigurasi, Mengkompilasi, dan Menginstal Kernel Linux Kustom?

  3. Linux – Perbedaan Antara Ruang Pengguna dan Ruang Kernel?

  1. Kernel Linux Tidak Akan Memperbarui Ke 2.35.25?

  2. Pengantar Interupsi Linux dan CPU SMP Affinity

  3. Bagaimana cara mengurangi kerentanan Spectre dan Meltdown pada sistem Linux?

  1. Bagaimana kernel Linux menangani interupsi

  2. Memantau host Linux dan Windows dengan Glances

  3. Batas garis Shebang di bash dan kernel linux