FineIBT Diperbarui Untuk Linux Sebagai Pendekatan Integritas Aliran Kontrol Alternatif (CFI)

  • Post author:
  • Post category:Linux

Kembali pada bulan Agustus 2021 melihat patch awal oleh Intel untuk “FineIBT” untuk kernel Linux yang bertujuan untuk menggabungkan yang terbaik dari Control-flow Enforcement Technology (CET) dan Control Flow Integrity untuk meningkatkan perlindungan keamanan kernel secara efisien.
Pada tahun lalu patch FineIBT telah diperbarui dan minggu ini insinyur Intel Peter Zijlstra mengirimkan patch FineIBT terbaru untuk Linux. Ringkasan terbarunya tentang pekerjaan integritas aliran kontrol FineIBT untuk Linux ini adalah:
Menerapkan skema CFI alternatif yang menggabungkan sifat halus kCFI tetapi juga memanfaatkan sepenuhnya CFI perangkat keras berbutir kasar yang disediakan oleh IBT.
Untuk kontras:
kCFI adalah skema CFI perangkat lunak murni dan bergantung pada kemampuan membaca teks — khususnya instruksi *sebelum* simbol target, dan melakukan validasi hash *sebelum* melakukan panggilan (jika tidak, aliran kontrol sudah terganggu).
FineIBT adalah skema hibrida perangkat lunak dan perangkat keras; dengan memastikan setiap target cabang dimulai dengan validasi hash, validasi hash dimungkinkan untuk ditempatkan setelah cabang. Ini memiliki beberapa keuntungan:
o beban (hash) dihindari; tidak ada memo; tidak ada persyaratan RX.
o Status IBT WAIT-FOR-ENDBR adalah penghentian spekulasi; dengan menempatkan validasi hash dalam instruksi langsung setelah target cabang ada jendela spekulasi minimal dan keseluruhannya merupakan pertahanan yang layak melawan SpectreBHB.
Jelas patch ini bergantung pada kCFI (upstream), tetapi selain itu juga bergantung pada padding dari patch pelacakan kedalaman panggilan (tip/x86/core). Ia menggunakan padding ini untuk menempatkan validasi hash sementara situs panggilan ditulis ulang untuk mengubah target tidak langsung menjadi 16 byte di depan target asli, sehingga mengenai pembukaan baru ini.
Khususnya, tidak ada perangkat keras yang memerlukan pelacakan kedalaman panggilan (Skylake) dan mendukung IBT (Tigerlake dan seterusnya). Kode ini dibangun dari pekerjaan Pelacakan Kedalaman Panggilan terbaru dalam perjalanan ke Linux arus utama (kemungkinan 6.2). Lihat seri tambalan ini untuk diskusi terbaru seputar FineIBT — termasuk beberapa diskusi tentang implikasi keamanan tambahan yang perlu dipertimbangkan. Kita akan melihat ke mana arah kerja FineIBT ini dan jika/kapan berhasil diambil oleh kernel arus utama.

Itulah berita seputar FineIBT Diperbarui Untuk Linux Sebagai Pendekatan Integritas Aliran Kontrol Alternatif (CFI), semoga bermanfaat. Disadur dari Phoronix.com.