Lanjutkan ke konten

CET shadow stacks

Referensi arsitekturFeex

Juga disebut CET-SS

CET shadow stacks menyediakan status alamat kembali yang terlindungi untuk membantu mendeteksi alur kendali return yang rusak. Kemampuan shadow-stack prosesor hanyalah salah satu prasyarat bagi proses yang dilindungi secara aktif.

Yang perlu Anda ketahui

CET shadow stacks menyediakan status alamat kembali yang terlindungi untuk membantu mendeteksi alur kendali return yang rusak. Kemampuan shadow-stack prosesor hanyalah salah satu prasyarat bagi proses yang dilindungi secara aktif.

Cara kerjanya

Shadow stack menyimpan salinan informasi return yang terlindungi berdampingan dengan tumpukan eksekusi biasa. Return yang terlindungi memeriksa konsistensi sesuai aturan arsitektur. OS mengelola pengaktifan, izin memori, dan status thread, sementara runtime harus menangani eksepsi dan transisi konteks dengan benar.

Manfaat penggunaan

Penimpaan stack yang mengubah alamat kembali biasa dapat menghasilkan eksepsi perlindungan kendali jika tidak sesuai dengan status return yang terlindungi. Debugger atau runtime harus memahami lingkungan shadow-stack alih-alih memperlakukannya sebagai stack biasa yang dapat ditulisi.

Cara memeriksa dukungan dan pengaktifan

CPUID.07H.00H:ECX bit 7 mengenumerasi kemampuan shadow-stack. Gunakan antarmuka status per-proses atau per-thread yang terdokumentasi pada OS untuk memastikan pengaktifan. Crash yang tidak dapat dijelaskan perlu diperiksa melalui pembaruan perangkat lunak dan kompatibilitas yang didukung sebelum mengubah kebijakan perlindungan.

Kemampuan, pengaktifan, dan penegakan harus diperiksa secara terpisah. Sebuah prosesor dapat mendukung suatu perlindungan sementara OS, aplikasi, atau kebijakan mesin virtual tidak mengaktifkannya. Kolom dukungan pada basis data bukanlah atestasi dari sistem yang sedang berjalan.

Hal yang tidak dipastikan oleh fitur ini

Shadow stack tidak menetapkan dukungan IBT, tidak melindungi semua data aplikasi, atau meniadakan setiap serangan alur kendali. Label CPU tidak membuktikan bahwa setiap executable dan pustaka yang dimuat tercakup dalam kebijakan kompatibilitas OS.

Kompatibilitas dan performa dalam praktik

Pastikan OS, firmware, dan runtime yang terpengaruh selalu mutakhir. Jika suatu perlindungan menimbulkan masalah kompatibilitas, gunakan diagnostik vendor dan pembaruan yang didukung terlebih dahulu. Tombol perlindungan menyeluruh dapat memengaruhi aplikasi yang tidak terkait dan harus mengikuti kebijakan penerapan serta pemulihan yang eksplisit.

Daftar periksa verifikasi praktis

  1. Catat model prosesor atau platform yang tepat serta versi aplikasi, OS, dan runtime yang terlibat. Pertahankan kata-kata dari kesalahan atau persyaratan sebenarnya.
  2. Periksa referensi produsen untuk model persis tersebut, lalu periksa kemampuan efektif dan status aktif di lingkungan tempat program berjalan.
  3. Bandingkan setiap persyaratan dari biner atau backend yang dipilih. Fitur dengan nama serupa, alias, atau label teknologi umum tidaklah cukup.
  4. Pastikan aplikasi memilih implementasi yang dimaksudkan. Gunakan diagnostik terdokumentasi miliknya dan alternatif cadangan yang didukung ketika persyaratan tidak terpenuhi.
  5. Lakukan satu perubahan yang didukung pada satu waktu dan ulangi beban kerja yang sama. Pertahankan konfigurasi asli dan jalur pemulihan tetap tersedia.

Jika fitur terdaftar tetapi perangkat lunak tidak dapat menggunakannya

Mulailah dari komponen persis yang mengalami kegagalan. Basis data perangkat keras menjelaskan kemampuan yang tercatat; sistem operasi atau hipervisor dapat mengekspos lingkungan efektif yang berbeda. Kesalahan instruksi ilegal juga memerlukan penyelidikan terhadap instruksi bermasalah yang sebenarnya dan build biner, karena korupsi data atau instruksi tidak didukung yang tidak terkait dapat menghasilkan gejala serupa.

Pasang versi aplikasi, driver, atau runtime yang didukung untuk platform persis tersebut, dan gunakan build standar atau cadangan yang terdokumentasi dari vendor jika diperlukan. Pembaruan perangkat lunak tidak dapat menciptakan instruksi yang tidak dimiliki prosesor. Perubahan firmware dan kebijakan keamanan harus mengikuti prosedur produsen sistem serta rencana pemulihan, bukan resep optimasi umum.

Sumber dan cakupan penjelasan ini

Intel 64 and IA-32 Architectures Software Developer's Manual · Kernel Linux: Control-flow Enforcement Technology shadow stack

Referensi ini menetapkan perilaku arsitektur dan persyaratan perangkat lunak. Referensi tersebut tidak memverifikasi secara independen setiap nilai fitur pada halaman model perangkat keras yang ditautkan. Untuk dukungan model, gunakan bukti produsen pada halaman tersebut dan periksa konfigurasi sistem efektif. Artikel ini tidak menyediakan tolok ukur, sertifikasi, atau tanggal tinjauan independen.

Sumber dan verifikasi

Kepemilikan editorial: Feex. Tidak ada tanggal peninjauan independen yang dicatat. Cara kami meneliti.

Apakah artikel ini bermanfaat?

Cukup jawab ya atau tidak. Pilih alasan jika Anda mau, atau tambahkan catatan singkat.

Apakah artikel ini bermanfaat?