Kerentanan dalam eBPF membolehkan perlindungan pintasan terhadap serangan Spectre

Semalam kami menerbitkan di blog mengenai berita mengenai Aya, perpustakaan untuk membuat pemacu eBPF di Rust dan tujuan ini adalah untuk mencipta pemacu yang lebih selamat atau Projek Prossimo untuk memastikan memori kernel Linux dengan Rust (dua projek hebat yang akan banyak dibincangkan pada bulan-bulan berikutnya).

Dan ia dalam masa yang singkat, pelbagai kelemahan telah dilaporkan di mana memanfaatkan pepijat di eBPF dan bahawa ia adalah masalah di mana pembangun kernel tidak berhenti berfungsi dan mungkin Rust adalah penyelesaiannya.

Sebab menyentuh topik ini ialah baru-baru ini berita dikeluarkan bahawa mereka telah mengenal pasti Kerentanan "Lain" dalam kernel Linux (CVE-2021 33624-) untuk memintas perlindungan terhadap kerentanan kelas Spectre, kerana ini memungkinkan untuk menggunakan subsistem eBPF untuk dapat menentukan kandungan memori sebagai hasil dari penciptaan syarat untuk spekulasi pelaksanaan operasi tertentu.

Disebutkan bahawa kerentanan ia disebabkan oleh kegagalan dalam pengesah, yang digunakan untuk mengesan kesalahan dan aktiviti tidak sah dalam program BPF. Pengesah menyenaraikan kemungkinan jalan pelaksanaan kod, tetapi mengabaikan pilihan percabangan yang tidak sah dari sudut pandang semantik seni bina set arahan.

Semasa menjalankan program BPF, pilihan percabangan yang tidak diperhitungkan oleh pengesah dapat diramalkan secara salah oleh pemproses dan dijalankan dalam mod spekulatif.

Pada sistem yang terjejas, program BPF yang tidak istimewa dapat memanfaatkan kerentanan ini untuk menyaring kandungan memori kernel sewenang-wenang (dan oleh itu semua memori fizikal) melalui saluran sampingan.

Contohnya semasa menganalisis operasi "beban", pengesahan menganggap bahawa arahan menggunakan daftar dengan alamat yang nilainya selalu berada dalam had yang ditentukan, tetapi penyerang dapat mewujudkan keadaan di bawah mana pemproses akan secara spekulatif berusaha melakukan perdagangan dengan alamat yang tidak memenuhi syarat pengesahan.

Serangan Spectre memerlukan kehadiran skrip tertentu dalam kod istimewa, membawa kepada pelaksanaan arahan spekulatif. Dengan memanipulasi program BPF yang diserahkan untuk pelaksanaan, adalah mungkin untuk menghasilkan petunjuk seperti itu di eBPF dan menyaring kandungan memori kernel dan kawasan memori fizikal yang sewenang-wenang melalui saluran sampingan.

Selain itu, anda boleh menandakan nota mengenai kesan prestasi aset untuk melindungi daripada kelemahan kelas Spectre.

Catatan ini merangkum hasilnya pengoptimuman debugger rr (Record and Replay), yang pernah dibuat oleh Mozilla untuk men-debug ralat yang sukar diulang di Firefox. Melakukan panggilan sistem yang digunakan untuk mengesahkan kewujudan direktori mengurangkan operasi "sumber rr" untuk projek ujian dari 3 minit 19 saat menjadi 36 saat.

Pengarang pengoptimuman memutuskan untuk memeriksa berapa banyak yang akan berubah prestasi setelah melumpuhkan perlindungan Spectre. Setelah melakukan boot sistem dengan parameter "mitigations = off", masa pelaksanaan "rr sumber" tanpa pengoptimuman adalah 2 minit 5 saat (1.6 kali lebih cepat) dan dengan pengoptimuman 33 saat (9% lebih cepat).

Dengan rasa ingin tahu, melumpuhkan perlindungan Spectre bukan sahaja mengurangkan masa berjalan kod tahap kernel dalam 1.4 kali (dari 2 min 9s hingga 1 min 32s), ia juga mengurangkan separuh masa pelaksanaan di ruang pengguna (dari 1 min 9s hingga 33s), mungkin disebabkan oleh penurunan kecekapan cache CPU dan TLB diset semula ketika perlindungan Spectre diaktifkan.

Masalahnya telah muncul sejak pelepasan kernel 4.15 dan telah diperbaiki dalam bentuk tambalan, yang pada masa ini masih belum mencapai semua pengedaran, jadi disarankan kepada pengguna bahawa pada hari ini mereka akan membuat kemas kini yang relevan segera setelah mereka menerima pemberitahuan.

Si anda ingin mengetahui lebih lanjut mengenainya, anda boleh menyemak perinciannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.