Cara menonaktifkan perlindungan Spectre: parameter baru telah ditambahkan ke kernel Linux

Bendera telah muncul di kernel Linux yang menonaktifkan perlindungan terhadap kerentanan Specter v4 di semua proses anak yang berjalan di server. Lebih lanjut tentang parameter baru - di bawah potongan.


/ Flickr / Rie H / CC BY / Foto berubah

Mengapa Anda perlu menonaktifkan perlindungan


Kelompok kerentanan prosesor Specter pertama kali dikenal pada awal 2018, dan selama bulan-bulan berikutnya keluarga ini diisi dengan "lubang keamanan" baru. Kerentanan terkait dengan pengoperasian sistem yang meningkatkan kinerja prosesor - penulisan dan pembacaan spekulatif dan transisi transisi - dan memungkinkan penyerang untuk mem-bypass mekanisme isolasi memori dalam prosesor dari Intel dan AMD.

Untuk menutup kerentanan, pengembang sistem operasi mengeluarkan tambalan, tetapi menginstalnya sering menyebabkan penurunan kecepatan server. Misalnya, pada mesin Linux, beberapa patch Spectre mengurangi kinerja hingga 30-50%.

Administrator sistem tidak puas dengan masalah, terutama di pusat data besar. Mereka mulai meminta pengembang kernel Linux untuk secara selektif menonaktifkan perlindungan Specter. Beberapa kerentanan yang ditemukan hanya bersifat teoretis, dan dalam sejumlah sistem mereka pada dasarnya tidak dapat membahayakan. Misalnya, membuat pertanian dan superkomputer offline terputus dari Internet, sehingga mereka tidak takut dengan suntikan kode berbahaya.

Tim Linux bertemu dengan para pengguna dan memperkenalkan beberapa fungsi yang menonaktifkan perlindungan terhadap kerentanan Specter v1, v2 (kita akan berbicara lebih banyak tentang mereka nanti) dan v4. Yang terakhir diperkenalkan pada awal Februari untuk semua versi kernel saat ini - ini adalah flag baru PR_SPEC_DISABLE_NOEXEC.

Apa dan mengapa menonaktifkan fungsi


Kerentanan Spectre v4 disebut Bypass Store Spekulatif. Hal ini memungkinkan malware untuk mengakses hasil komputasi spekulatif yang sebelumnya dibuang oleh prosesor sebagai tidak perlu.

Situasi ini terjadi ketika CPU bergantian membaca dan menulis menggunakan pengalamatan tidak langsung. Membaca terjadi lebih sering daripada menulis, dan prosesor dapat menggunakan data dari memori untuk menentukan alamat baca tanpa menunggu perhitungan offset dari pengalamatan tidak langsung. Jika, setelah menghitung offset, persimpangan area memori untuk menulis dan membaca terdeteksi (yaitu, pembacaan dilakukan dari area yang salah), maka operasi kedua dilakukan lagi, dan hasil spekulatifnya dibuang.

Secara teori, ternyata jika penyerang mengetahui alamat dan struktur sel memori, ia dapat mengekstrak data dari mereka, seperti kunci enkripsi.

Patch untuk Specter v4 muncul di kernel Linux beberapa hari setelah publikasi informasi tentang kerentanan - secara default mematikan fungsi disambiguasi memori , yang memungkinkan eksekusi perintah yang luar biasa. Tetapi ini memperlambat operasi I / O prosesor sebesar 10–40%.


/ Flickr / Rie H / CC BY-SA

Dan pada awal Juni 2018, rilis kernel 4.17 memungkinkan untuk menonaktifkan perlindungan ini. Ada satu masalah: parameter tidak diteruskan dari induk ke proses anak. Bagi mereka, perlindungan harus dinonaktifkan secara manual, yang menyebabkan ketidaknyamanan bagi administrator sistem. Tetapi pada awal Februari, pengembang kernel menerapkan flag PR_SPEC_DISABLE_NOEXEC . Ini melengkapi fungsi sebelumnya dan menyalin mode operasi tambalan dari Specter v4 dari proses induk ke yang anak. PR_SPEC_DISABLE_NOEXEC adalah bagian dari prctl, dan Anda dapat mengaktifkannya saat memulai proses baru apa pun.

Apa kata para ahli


Di milis pengembang kernel Linux, pengenalan bendera baru ditulis oleh Waiman Long of Red Hat. Menurutnya, perlindungan dari Specter v4 secara signifikan mempengaruhi kinerja aplikasi yang melakukan banyak operasi penulisan, seperti basis data. PR_SPEC_DISABLE_NOEXEC akan membantu mengotomatiskan pemeriksaan untuk menonaktifkan patch dan mempercepat server dengan sejumlah besar proses yang berjalan secara bersamaan.

Pada saat yang sama, peserta dalam komunitas TI mencatat bahwa dalam situasi tertentu, penanganan bendera baru yang tidak hati-hati dapat menyebabkan konsekuensi yang tidak menyenangkan.

"Perlu dicatat bahwa di beberapa lingkungan tidak aman untuk menonaktifkan perlindungan dari Specter v4," kata Sergey Belkin, kepala departemen pengembangan penyedia IaaS 1cloud.ru . - Ini termasuk, misalnya, layanan web menggunakan Java dan JavaScript. Pengungkapan konten proses kontrol oleh kode yang dikelola dapat berakibat fatal bagi keamanan aplikasi. "

Tentang patch Spectre lainnya di kernel Linux


Selain bendera PR_SPEC_DISABLE_NOEXEC, kernel Linux memiliki parameter lain yang menonaktifkan perlindungan Specter.

Yang pertama adalah nospectre_v2 . Fungsi menonaktifkan perlindungan dari Specter v2, yang memungkinkan penyerang menggunakan blok prediksi transisi untuk "memaksa" prosesor untuk secara spekulatif melakukan operasi dalam modul memori tertentu. Untuk perlindungan, tambalan menonaktifkan fungsi prediksi transisi secara tidak langsung dan mencegah transfer informasi yang diterima antara utas dalam inti CPU yang sama.

Menonaktifkan perlindungan menyebabkan peningkatan kinerja prosesor sebesar 30% - ini adalah penurunannya setelah memasang patch dari Specter v2. Bahkan pencipta Linux, Linus Torvalds, mendukung fitur baru ini. Menurutnya, kerentanan hanya mengancam prosesor dengan fungsi SMT , dalam hal ini akan lebih menguntungkan untuk menonaktifkannya.

Parameter kedua - nospectre_v1 - menonaktifkan perlindungan dari opsi Spectre pertama. Dengan bantuan malware, peretas dapat menyebabkan prosesor memprediksi hasil transisi bersyarat yang salah dan membuang hasil perhitungan spekulatif di area memori yang diperlukan peretas. Meskipun tambalan dari v1 tidak secara signifikan mempengaruhi kinerja (menurut beberapa laporan , pengurangan kecepatan prosesor dapat sepenuhnya diabaikan), para pengembang diminta untuk menambahkan kemampuan untuk menonaktifkan perlindungan ini ke kernel. Ini memungkinkan kami untuk menyederhanakan struktur jaringan yang terisolasi dari akses eksternal.

Komunitas kernel Linux tetap setia pada gagasan pilihan bebas yang ditetapkan Linus Torvalds di awal: pengguna sendiri bertanggung jawab untuk menyeimbangkan keamanan dan kinerja sistem Linux. Oleh karena itu, sangat layak untuk mengharapkan bahwa setelah deteksi kerentanan baru yang mirip dengan Specter di kernel, baik tambalan dan kemampuan untuk menonaktifkannya akan muncul.

Posting dari blog perusahaan kami:

Source: https://habr.com/ru/post/id442140/


All Articles