Kerentanan dalam eBPF memungkinkan perlindungan bypass terhadap serangan Spectre

Kemarin kami menerbitkan di sini di blog berita tentang Aya, perpustakaan untuk membuat driver eBPF di Rust dan apakah tujuannya adalah untuk membuat driver yang lebih aman atau or Proyek prossimo untuk memastikan memori kernel Linux dengan Rust (dua proyek hebat yang akan banyak dibicarakan di bulan-bulan berikutnya).

Dan apakah itu dalam waktu singkat, berbagai kerentanan telah dilaporkan di mana manfaatkan bug di eBPF dan itu adalah masalah di mana pengembang kernel tidak berhenti bekerja dan mungkin Rust adalah solusinya.

Alasan menyentuh topik ini adalah is baru-baru ini berita dirilis bahwa mereka telah mengidentifikasi Kerentanan "Lainnya" di kernel Linux (CVE-2021-33624) untuk melewati perlindungan terhadap kerentanan kelas Spectre, karena ini memungkinkan untuk menggunakan subsistem eBPF untuk dapat menentukan konten memori sebagai hasil dari penciptaan kondisi untuk spekulasi pelaksanaan operasi tertentu.

Disebutkan bahwa kerentanan itu disebabkan oleh kegagalan dalam verifier, yang digunakan untuk mendeteksi kesalahan dan aktivitas tidak valid dalam program BPF. Pemverifikasi mencantumkan jalur eksekusi kode yang mungkin, tetapi mengabaikan opsi percabangan apa pun yang tidak valid dari sudut pandang semantik arsitektur set instruksi.

Saat menjalankan program BPF, opsi percabangan yang tidak diperhitungkan oleh pemverifikasi mungkin salah diprediksi oleh prosesor dan dieksekusi dalam mode spekulatif.

Pada sistem yang terpengaruh, program BPF yang tidak memiliki hak istimewa dapat mengeksploitasi kerentanan ini untuk memfilter konten memori kernel arbitrer (dan karenanya semua memori fisik) melalui saluran samping.

Misalnya ketika menganalisis operasi "memuat", pemverifikasi mengasumsikan bahwa instruksi menggunakan register dengan alamat yang nilainya selalu dalam batas yang ditentukan, tetapi penyerang dapat membuat kondisi di bawah mana prosesor akan secara spekulatif mencoba melakukan perdagangan dengan alamat yang tidak memenuhi persyaratan verifikasi.

Serangan Spectre membutuhkan kehadiran skrip tertentu dalam kode istimewa, yang mengarah pada eksekusi instruksi yang spekulatif. Dengan memanipulasi program BPF yang diteruskan untuk dieksekusi, dimungkinkan untuk menghasilkan instruksi seperti itu di eBPF dan memfilter konten memori kernel dan area memori fisik yang berubah-ubah melalui saluran samping.

Selain itu, Anda dapat menandai catatan tentang dampak kinerja dari aset untuk melindungi dari kelas kerentanan Spectre.

Catatan ini merangkum hasil optimasi debugger rr (Rekam dan Putar Ulang), pernah dibuat oleh Mozilla untuk men-debug kesalahan yang sulit diulang di Firefox. Caching panggilan sistem yang digunakan untuk memverifikasi keberadaan direktori mengurangi operasi "sumber rr" untuk proyek uji dari 3 menit 19 detik menjadi 36 detik.

Penulis pengoptimalan memutuskan untuk memeriksa berapa banyak yang akan berubah kinerja setelah menonaktifkan perlindungan Spectre. Setelah mem-boot sistem dengan parameter "mitigasi = mati", waktu eksekusi "sumber rr" tanpa optimasi adalah 2 menit 5 detik (1.6 kali lebih cepat) dan dengan optimasi 33 detik (9% lebih cepat).

Anehnya, menonaktifkan perlindungan Spectre tidak hanya mengurangi runtime kode level kernel dalam 1.4 kali (dari 2 menit 9 detik hingga 1 menit 32 detik), itu juga mengurangi separuh waktu eksekusi di ruang pengguna (dari 1 menit 9 detik hingga 33 detik), mungkin karena penurunan efisiensi cache CPU dan TLB disetel ulang saat perlindungan Spectre diaktifkan.

Masalah telah muncul sejak rilis kernel 4.15 dan telah diperbaiki dalam bentuk tambalan, yang saat ini masih belum menjangkau semua distribusi, jadi disarankan kepada pengguna bahwa hari ini mereka membuat pembaruan yang relevan segera setelah mereka menerima pemberitahuan.

Si Anda ingin tahu lebih banyak tentang itu, Anda dapat memeriksa detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.