PT. Digital Media Techindo

Perum Pondok Tandala, Jl. Bungur V No. 230
Kawalu, Kota Tasikmalaya
Jawa Barat - Indonesia 46182




Sekelompok akademisi dari Graz University of Technology dan CISPA Helmholtz Center for Information Security mengungkapkan alasan yang tepat di balik mengapa alamat kernel di-cache di tempat pertama, serta menyajikan beberapa serangan baru yang mengeksploitasi masalah mendasar dalam prosesor yang sebelumnya tidak diketahui, memungkinkan penyerang untuk mengekstrak data sensitif.

Penelitian baru ini menjelaskan serangan mikroarsitektur sebenarnya disebabkan oleh spekulatif dereferencing register ruang pengguna di kernel, yang tidak hanya memengaruhi CPU Intel terbaru dengan mitigasi perangkat keras terbaru, tetapi juga beberapa prosesor modern dari ARM, IBM, dan AMD – yang sebelumnya diyakini tidak terpengaruh oleh kerentanan.

Kami menemukan bahwa efek yang dilaporkan dalam beberapa makalah akademis selama 4 tahun terakhir tidak dipahami dengan benar, yang mengarah pada asumsi yang salah,” kata para peneliti.

Efek prefetching ini sebenarnya tidak terkait dengan instruksi prefetch software atau efek prefetching hardware karena akses memori dan sebaliknya disebabkan oleh dereferensi spekulatif register ruang pengguna di kernel.”

Selain menganalisis akar penyebab sebenarnya dari efek prefetching, beberapa temuan utama lainnya dari penelitian ini adalah:

  • Penemuan beberapa serangan baru yang mengeksploitasi akar penyebab yang mendasarinya, termasuk serangan address-translation dalam konteks yang lebih terbatas, kebocoran langsung nilai register dalam skenario tertentu, dan eksploitasi Foreshadow end-to-end yang menargetkan data non-L1.
  • Serangan saluran rahasia lintas inti baru yang, dalam beberapa kasus, dapat membuat penyerang mengamati caching alamat (atau nilai) yang disimpan dalam register tanpa bergantung pada memori bersama.
  • prefetchSpectre dapat langsung membocorkan data aktual, yang tidak hanya membuat serangan ZombieLoad efisien pada CPU Intel untuk membocorkan data sensitif dari buffer atau memori internal tetapi juga berdampak pada CPU non-Intel.
  • Masalah dereferensi spekulatif – dalam serangan tertentu seperti Rowhammer, serangan cache, dan DRAMA – dapat membuat penyerang memulihkan alamat fisik variabel JavaScript dan mengekstrak informasi melalui eksekusi sementara dari jarak jauh melalui browser web.

Selain itu, para peneliti juga mendemonstrasikan bahwa kerentanan Foreshadow pada CPU Intel dapat dieksploitasi bahkan ketika mitigasi yang disarankan aktif. Hal ini dimungkinkan karena fakta bahwa serangan dapat dipasang pada data yang tidak berada di cache L1 pada versi kernel yang berisi ‘prefetch‘.

Dari Serangan Address Translation ke Foreshadow

Perangkat lunak sistem bergantung pada mekanisme address translation CPU untuk menerapkan isolasi di antara proses yang berbeda. Setiap proses memiliki ruang memori virtualnya sendiri dan tidak dapat mengakses alamat memori fisik sembarangan di luarnya.

Address translation, dengan demikian, bertindak sebagai lapisan perantara yang memetakan ruang alamat virtual, yang digunakan oleh program, ke alamat fisik.

Ruang alamat virtual juga menyertakan ruang alamat kernel untuk menampung utas kernel Linux, sehingga memudahkan perangkat keras yang mendasarinya untuk menangani instruksi istimewa dari utas pengguna dalam mode kernel.


Sementara kernel sistem operasi dapat diamankan dari serangan prefetch side-channel melalui teknik yang disebut isolasi tabel halaman kernel (KPTI atau KAISER) – yang memberlakukan isolasi kernel dan ruang pengguna yang ketat sehingga perangkat keras tidak menyimpan informasi apa pun tentang alamat kernel saat dijalankan dalam mode pengguna – para peneliti menemukan bahwa itu tidak menjamin perlindungan penuh dari serangan address translation, di mana penyerang mencoba memeriksa apakah dua alamat virtual yang berbeda memetakan ke alamat fisik yang sama.

Dengan kata lain, “serangan address translation memungkinkan aplikasi tanpa hak istimewa untuk mengambil alamat kernel arbitrer ke dalam cache dan dengan demikian menyelesaikan alamat virtual ke fisik di sistem Linux 64-bit.”

Sementara garis pemikiran asli adalah bahwa serangan tersebut terkait dengan instruksi prefetch, temuan baru membuktikan sebaliknya, dengan demikian memvalidasi bahwa KAISER bukanlah tindakan penanggulanan yang memadai terhadap serangan side-channel mikroarsitektur pada isolasi kernel.

Sebagai gantinya, ia mengeksploitasi Spectre-BTB-SA-IP (Branch Target Buffer, same address, in-place) untuk menyebabkan kebocoran informasi, menyebabkan eksekusi spekulatif, dan selanjutnya melakukan serangan Meltdown dan Foreshadow (L1 Terminal Fault) dengan melewati arus mitigasi L1TF.

Spectre-BTB-SA-IP adalah varian dari kerentanan Spectre yang mengeksploitasi Branch Target Buffer – komponen seperti cache di CPU yang digunakan untuk branch prediction – untuk melakukan serangan dalam ruang alamat yang sama dan lokasi cabang yang sama.

Efek prefetching yang sama dapat digunakan untuk melakukan Foreshadow,” kata para peneliti. “Jika rahasia ada di cache L3 dan alamat peta fisik langsung ditentukan di kernel hypervisor, data dapat diambil ke L1. Ini mengaktifkan kembali Foreshadow bahkan dengan mitigasi Foreshadow diaktifkan jika mitigasi Spectre-BTB yang tidak terkait dinonaktifkan.”

Konsekuensinya adalah bahwa kami dapat memasang serangan Foreshadow pada kernel lama yang diperbaiki dengan semua mitigasi terhadap Foreshadow diaktifkan dan pada kernel yang diperbaiki sepenuhnya jika hanya mitigasi Spectre-v2 yang dinonaktifkan.”

Aktifkan mitigasi Spectre-BTB

Untuk menyoroti dampak serangan side-channel baru yang mengeksploitasi kerentanan dalam prosesor ini, para peneliti membuat saluran rahasia berbasis cache yang mengekstrak data dari proses yang berjalan pada CPU Intel Core i7-6500U ke proses stealthy lainnya, mencapai tingkat transmisi 10 bit/s untuk menyampaikan total 128 byte dari pengirim ke proses penerima.

Selain itu, para peneliti mengungkapkan bahwa dimungkinkan untuk membocorkan konten register dari SGX enclave CPU Intel menggunakan register yang secara spekulatif didereferensi (disebut “Dereference Trap“), menggunakannya untuk memulihkan nilai 32-bit yang disimpan dalam register 64-bit dalam 15 menit.

Terakhir, ‘serangan tertentu’ sekarang dapat diluncurkan dari jarak jauh menggunakan JavaScript di browser web, dan “mengisi register 64-bit dengan nilai yang dikendalikan penyerang di JavaScript dengan menggunakan WebAssembly.”

Untuk mengatasi serangan baru semacam ini, disarankan agar prosesor / CPU mengaktifkan mitigasi Spectre-BTB, termasuk retpoline (kependekan dari “return trampoline“), yang bertujuan untuk mencegah branch-target-injection dengan mengisolasi cabang tidak langsung dari eksekusi spekulatif.

Loader Loading...
EAD Logo Taking too long?

Reload Reload document
| Open Open in new tab

administrator

Just a simple person who like photography, videography, code, and cyber security enthusiast.