Intel x86 Root of Trust: hilangnya kepercayaan



Gambar: shutterstock

Inilah saatnya arsitek sistem, insinyur, dan pakar keamanan Intel paling ditakuti: kesalahan ditemukan di area memori yang tidak dapat ditulis (ROM) dari Intel Converged Security and Management Engine, dan kesalahan ini menimbulkan keraguan pada semua upaya perusahaan untuk menciptakan akar kepercayaan dan fondasi keamanan pada platformnya.

Dan intinya di sini bukan bahwa kesalahan dari firmware (firmware), yang "kabel" dalam memori on-board dari ROM Mask mikroprosesor dan chipset, tidak dapat diperbaiki, tetapi kesalahan yang ditemukan menghancurkan rantai kepercayaan seluruh platform secara keseluruhan, memungkinkan kompromi basis perangkat kerasnya.

Ahli Positive Technologies menemukan kesalahan perangkat keras pada perangkat keras Intel, serta kesalahan dalam firmware Intel CSME, yang memanifestasikan dirinya pada tahap yang sangat awal dari subsistem ini, dalam ROM boot (boot ROM). Diketahui bahwa itu adalah Intel CSME yang memberikan otentikasi awal sistem berdasarkan chip Intel, mengunduh dan memeriksa semua sisa firmware dari platform modern. Misalnya, Intel CSME, berinteraksi dengan mikrokode CPU, memastikan keaslian firmware UEFI BIOS menggunakan teknologi BootGuard. Selain itu, Intel CSME mengunduh dan memverifikasi firmware dari Power Management Controller, yang mengontrol pasokan tegangan ke setiap unit perangkat keras dalam chip Intel.

Tetapi yang lebih penting, Intel CSME yang bertanggung jawab atas basis kriptografi dari teknologi perlindungan perangkat keras yang dikembangkan oleh Intel dan digunakan di mana-mana, seperti DRM, fTPM, dan Intel Identity Protection. Firmware Intel CSME mengimplementasikan sistem sertifikasi jarak jauh untuk sistem tepercaya yang disebut EPID (Enhanced Privacy ID), yang memungkinkan Anda mengidentifikasi secara unik dan anonim setiap contoh spesifik dari sistem komputasi (komputer), menemukan banyak aplikasi yang berguna, seperti melindungi konten digital, memastikan keamanan transaksi keuangan, sertifikasi Internet hal. Selain itu, firmware Intel CSME memiliki modul perangkat lunak TPM yang memungkinkan Anda menggunakannya untuk menyimpan kunci enkripsi tanpa chip TPM tambahan, yang jauh dari setiap komputer.

Dan Intel telah mencoba membuat akar kepercayaan ini seaman mungkin. Sistem keamanan platform Intel dirancang sedemikian rupa sehingga bahkan kesalahan eksekusi kode arbitrer di salah satu modul firmware Intel CSME tidak membawa risiko kehilangan kunci keamanan (alias Chipset Key), tetapi hanya membahayakan fungsi spesifik yang menjadi tanggung jawab modul rentan ketika modul rentan bertanggung jawab ketika Ini memungkinkan Anda untuk mengurangi risiko dengan mudah dengan mengubah kunci enkripsi menggunakan mekanisme nomor versi SVN yang aman. Ini jelas ditunjukkan pada tahun 2017, ketika kesalahan eksekusi kode arbitrer ditemukan dalam modul firmware BringUP (bup), yang dijelaskan dalam Intel SA-00086. Kemudian Intel hanya melakukan regenerasi kunci dengan meningkatkan SVN, dan dengan demikian dengan mudah menghindari risiko kompromi teknologi berbasis EPID.

Namun sayangnya, tidak ada sistem keamanan yang sempurna, dan, seperti yang lain, arsitektur keamanan Intel memiliki haknya - ROM boot. Kesalahan dalam ROM pada tahap awal pelaksanaan benar-benar memungkinkan Anda untuk mengontrol proses membaca Kunci Chipset dan menghasilkan semua kunci enkripsi lainnya. Salah satu kunci ini digunakan untuk mengenkripsi larik data ICVB (Integrity Control Value Blob). Dengan kunci ini, Anda dapat memalsukan kode modul firmware Intel CSME mana pun - dan sistem otentikasi tidak akan dapat mengenali yang palsu. Ini sama saja dengan membocorkan kunci pribadi tanda tangan digital firmware Intel CSME, tetapi untuk platform khusus ini.

Pada saat ini, situasi dengan EPID diredakan oleh fakta bahwa Kunci Chipset disimpan di dalam platform (dalam memori OTP khusus, Memori Diprogram Satu Kali) dalam bentuk terenkripsi dan untuk sepenuhnya mengkompromikan EPID, juga perlu mengekstrak kunci perangkat keras tempat Kunci Chipset disimpan, yang dienkripsi. dalam penyimpanan SKS khusus (Penyimpanan Kunci Aman). Tetapi kunci ini tidak unik untuk platform, tetapi satu untuk seluruh generasi chipset Intel. Dan karena kesalahan yang ditemukan dalam ROM memungkinkan Anda untuk mencegat eksekusi kode hingga mengunci mekanisme pembuatan kunci perangkat keras di SKS, dan kesalahan dalam ROM itu sendiri tidak dapat diperbaiki, kami percaya bahwa ini hanya masalah waktu - ketika kunci ini akan diekstraksi. Dan kemudian kekacauan total akan datang: identifikasi perangkat keras akan dipalsukan, konten digital akan diekstraksi, informasi terenkripsi dari media permanen akan didekripsi.
Jadi, para ahli Positive Technologies menemukan kesalahan dalam ROM booting Intel CSME di semua chipset dan SoC Intel yang saat ini dirilis kecuali Ice Point (prosesor generasi ke-10). Kesalahan ini memungkinkan Anda untuk mengekstrak Kunci Chipset, serta memanipulasi bagian dari kunci perangkat keras dan proses pembuatannya, namun tidak memungkinkan, pada saat ini, untuk secara langsung mendapatkan komponen perangkat kerasnya (kabel dalam SKS). Selain itu, kesalahan dalam ROM ini memungkinkan Anda untuk mengatur eksekusi kode arbitrer pada tingkat nol hak istimewa Intel CSME.

Secara lebih rinci kami akan menjelaskan detail teknis dalam kertas putih penuh yang ditujukan untuk kesalahan ini, yang kami rencanakan untuk diterbitkan sedikit kemudian. Perlu dicatat bahwa setelah spesialis kami menghubungi Intel PSIRT dengan laporan tentang kesalahan ini, Intel melaporkan bahwa kesalahan sudah diketahui ( CVE-2019-0090) Intel memahami bahwa tidak mungkin untuk memperbaiki kesalahan dalam ROM pada peralatan yang sudah dirilis, dan karena itu mereka hanya memblokir semua cara operasi yang mungkin. Patch untuk CVE-2019-0090 hanya mengoreksi salah satu vektor serangan yang mungkin - melalui hub sensor terintegrasi (Integrated Sensors Hub, ISH). Kami berpikir bahwa ada banyak cara untuk mengeksploitasi kerentanan ini dalam ROM. Beberapa dari mereka mungkin memerlukan akses lokal, beberapa fisik. Untuk sedikit membuka tabir kerahasiaan, katakanlah beberapa kata tentang kerentanan itu sendiri:

  1. , boot ROM: IOMMU MISA (Minute IA System Agent), SRAM ( ) Intel CSME DMA-, . , , .
  2. Intel CSME boot ROM (page directory), IOMMU. , , SRAM DMA- (DMA CSME, ) SRAM Intel CSME.
  3. Parameter MISA IOMMU diatur ulang saat reset dilakukan untuk Intel CSME, yang setelah reset memulai eksekusi lagi dari boot ROM.

Dengan demikian, perangkat platform apa pun yang dapat melakukan transaksi DMA dalam memori statis Intel CSME dan pada saat yang sama me-reboot Intel CSME (atau hanya menunggu Intel CSME untuk bangun) dapat memodifikasi tabel sistem halaman Intel CSME dan dengan demikian eksekusi mencegat.

Diposting oleh Mark Ermolov, Spesialis Utama, Teknologi OS dan Solusi Perangkat Keras, Teknologi Positif.

All Articles