Linux Menangani Masalah Keamanan Perangkat Lunak x86 32-bit Untuk Intel TDX & AMD SEV

AMD Secure Encrypted Virtualization (SEV) dan Intel Trust Domain Extensions (TDX) dimaksudkan untuk membantu memberikan keamanan yang lebih baik untuk mesin virtual dan merupakan elemen kunci bagi investasi kedua perusahaan seputar komputasi rahasia. Ternyata mereka memiliki musuh yang sama dalam tujuan keamanan VM mereka: perangkat lunak x86 32-bit.
Patch yang digabungkan pada hari Kamis untuk Linux 6.7 mengatasi vektor keamanan karena perangkat lunak 32-bit dan potensi penyalahgunaan oleh VMM. Intel TDX dan AMD SEV tidak hanya melindungi VM dari VM lain, namun juga memastikan pemisahan dari VMM/hypervisor itu sendiri. Karena semantik x86 32-bit, ada masalah di dunia yang semakin berfokus pada keamanan ini. Salah satu patch yang digabungkan kemarin untuk Linux 6.7 akhirnya menonaktifkan dukungan 32-bit secara default saat dijalankan di TDX dan SEV. Insinyur Intel Linux Kirill Shutemov menjelaskan dalam pesan patch:
“Instruksi INT 0x80 digunakan untuk syscall Linux 32-bit x86. Kernel mengharapkan untuk menerima interupsi perangkat lunak sebagai hasil dari instruksi INT 0x80. Namun, interupsi eksternal pada vektor yang sama memicu penangan yang sama.
Kernel menafsirkan interupsi eksternal pada vektor 0x80 sebagai panggilan sistem 32-bit yang berasal dari ruang pengguna.
VMM dapat memasukkan interupsi eksternal pada vektor sembarang kapan pun. Hal ini tetap berlaku bahkan untuk tamu TDX dan SEV yang VMMnya tidak dapat dipercaya.
Secara keseluruhan, ini memungkinkan VMM yang tidak tepercaya memicu penanganan syscall int80 pada titik tertentu. Isi file register tamu pada saat itu menentukan syscall apa yang dipicu dan argumennya. Ini membuka OS tamu untuk manipulasi dari sisi VMM.
Nonaktifkan emulasi 32-bit secara default untuk TDX dan SEV. Pengguna dapat menggantinya dengan opsi baris perintah ia32_emulation=y.”Shutemov dalam patch tindak lanjut kemudian dipulihkan dengan beberapa perubahan tambahan:
“Emulasi 32-bit dinonaktifkan di TDX untuk mencegah kemungkinan serangan oleh VMM yang menyuntikkan interupsi pada vektor 0x80.
Sekarang int80_emulation() telah memeriksa interupsi eksternal, batasan tersebut dapat dicabut.
Untuk membedakan interupsi perangkat lunak dari interupsi eksternal, int80_emulation() memeriksa bit APIC ISR yang relevan dengan vektor 0x80. Untuk interupsi perangkat lunak, bit ini akan menjadi 0.
Di TDX, status VAPIC (termasuk ISR) dilindungi dan tidak dapat dimanipulasi oleh VMM. Bit ISR diatur oleh aliran mikrokode selama penanganan interupsi yang diposting.” Dengan patch kemarin, dukungan perangkat lunak x86 32-bit ketika berjalan di bawah AMD SEV untuk VM tetap dinonaktifkan secara default.
Semua patch ini untuk meningkatkan keamanan AMD SEV dan Intel TDX untuk mencegah penyalahgunaan int 0x80 oleh VMM diatur untuk di-back-port ke versi kernel yang didukung sejak Linux 6.0.

Di sisi positifnya, perubahan untuk membersihkan kode ini menyebabkan kernel membuang sekumpulan kode entri yang ditulis Majelis dan digantikan oleh kode C.

Itulah berita seputar Linux Menangani Masalah Keamanan Perangkat Lunak x86 32-bit Untuk Intel TDX & AMD SEV, semoga bermanfaat. Disadur dari Phoronix.com.