Teknologi

Menguji STM32MP2 dan Menemukan Celah Keamanan Silikon

Menguji STM32MP2 dan Menemukan Celah Keamanan Silikon
Daftar Isi
  1. Eksperimen Tanpa Linux dan DDR Eksternal
  2. Pengujian PCIe dan Penemuan Celah RISAF
  3. Kinerja dan Langkah Selanjutnya

Seorang pengembang membagikan pengalamannya bereksperimen dengan SoC STM32MP2 sebagai alternatif mikrokontroler konvensional untuk dihubungkan ke FPGA melalui PCIe. Dalam proyek tanpa sistem operasi Linux atau TrustZone ini, ia berhasil menjalankan sistem bare-metal namun berujung pada penemuan celah keamanan silikon penting.

Eksperimen Tanpa Linux dan DDR Eksternal

Pengembang ini awalnya mencari solusi pengganti bus FMC (Flexible Memory Controller) pada seri STM32H7 yang memerlukan banyak pin dan sulit dirancang pada papan sirkuit murah. Pilihannya jatuh pada STM32MP2 karena memiliki fitur SERDES 5 Gbps yang dapat dikonfigurasi sebagai PCIe gen1/2 x1 serta mempertahankan periferal khas STMicroelectronics. Tujuan eksperimen ini adalah membangun sistem murni menggunakan arm g++ dan binutils tanpa SDK vendor, menjalankan kode pada inti ganda A35 dan tambahan M33, menghindari memori DDR eksternal demi kesederhanaan papan, serta menjalankan perulangan peristiwa sederhana dari citra *boot loader* tahap pertama (FSBL) di dalam SRAM internal.

Setelah melewati berbagai penyesuaian penataan alamat memori RETRAM dan pembuatan utilitas *flasher*, pengembang berhasil menghidupkan inti bantu Cortex-M33 dan melanjutkan inisialisasi sistem termasuk monitor VDDIO, RAM internal, serta pohon jam (*clock tree*). Selanjutnya, ia mengaktifkan inti ganda Cortex-A35 dalam mode aarch64 dengan tabel halaman memori dan penyiapan *cache*, tanpa menyentuh memori DDR eksternal yang dinilai terlalu rumit untuk kebutuhan perangkat kerasnya.

Pengujian PCIe dan Penemuan Celah RISAF

Untuk menghubungkan STM32MP2 ke modul FPGA, pengembang memanfaatkan slot PCIe dengan adaptor M.2. Pada awalnya, tautan mengalami ketidakstabilan akibat jitter dari jam internal, namun masalah tersebut teratasi dengan beralih menggunakan jam referensi eksternal 100 MHz. Setelah tautan stabil pada kecepatan 2.5 GT/s, ia melanjutkan tahap enumerasi bus PCIe menggunakan unit translasi alamat internal (iATU).

Saat melakukan pengujian baca dan tulis ke ruang konfigurasi dan BAR, pengembang mendapati seluruh data *payload* tertulis sebagai angka nol meskipun paket TLP (*Transaction Layer Packet*) terkirim dengan alamat yang benar. Penyelidikan lebih lanjut menunjukkan bahwa unit isolasi sumber daya untuk perlindungan alamat, yakni Resource Isolation Slave unit for Address space protection, Full (RISAF), memicu kesalahan saat wilayah PCIe diakses dari mode aman EL3.

Temuan ini dikonfirmasikan sebagai kutu silikon (*silicon errata*) nyata yang memungkinkan penyerang melewati proteksi TrustZone, di mana transaksi baca mengembalikan nilai nol dan transaksi tulis menimpa target MMIO dengan data nol terlepas dari nilai aslinya. Pengembang melaporkan temuan tersebut melalui tim pengungkapan kerentanan hingga akhirnya STMicroelectronics menerbitkan penasihat resmi terkait kutu yang kini didokumentasikan sebagai errata 2.3.33 tersebut.

Kinerja dan Langkah Selanjutnya

Dari pengujian kinerja awal menggunakan *software memcpy* melalui I/O terprogram (PIO), sistem mampu mencapai kecepatan maksimum sekitar 1,77 Gbps, yang jauh melampaui kemampuan bus FMC konvensional. Kinerja ini diprediksi dapat meningkat lebih tinggi jika menggunakan DMA dengan efisiensi TLP mencapai kisaran 3,71 Gbps.

Setelah sempat menunda pengujian selama masa pengungkapan celah keamanan RISAF, pengembang berencana melanjutkan uji coba tumpukan PCIe buatan sendiri pada FPGA Artix-7 dan modul Efinix Ti375. Ia juga membuka kemungkinan untuk meneliti lebih lanjut potensi eksploitasi pada instansi RISAF lainnya di masa mendatang.

Mungkin Anda Suka

Tinggalkan Komentar

Alamat email tidak akan dipublikasikan. Kolom wajib ditandai *