Chip M1 Apple Memiliki Kelemahan yang Menarik


M1 baru Apple CPU memiliki kelemahan yang membuat saluran rahasia yang dapat digunakan oleh dua atau lebih aplikasi jahat—yang sudah terpasang—untuk mengirimkan informasi satu sama lain, menurut temuan seorang pengembang.

Komunikasi diam-diam dapat terjadi tanpa menggunakan memori komputer, soket, file, atau fitur sistem operasi lainnya, pengembang Hector Martin kata. Saluran dapat menjembatani proses yang berjalan sebagai pengguna berbeda dan di bawah tingkat hak istimewa yang berbeda. Karakteristik ini memungkinkan aplikasi untuk bertukar data dengan cara yang tidak dapat dideteksi—atau setidaknya tanpa peralatan khusus.

Martin mengatakan bahwa cacat tersebut terutama tidak berbahaya karena tidak dapat digunakan untuk menginfeksi Mac dan tidak dapat digunakan oleh eksploitasi atau malware untuk mencuri atau merusak data yang tersimpan di mesin. Sebaliknya, cacat hanya dapat disalahgunakan oleh dua atau lebih aplikasi berbahaya yang telah diinstal pada Mac melalui cara yang tidak terkait dengan cacat M1.

Namun, bug, yang disebut Martin sebagai M1racles, memenuhi definisi teknis kerentanan. Dengan demikian, ia datang dengan sebutan kerentanannya sendiri: CVE-2021-30747.

“Itu melanggar model keamanan OS,” jelas Martin dalam sebuah posting yang diterbitkan Rabu. “Anda tidak seharusnya dapat mengirim data dari satu proses ke proses lain secara diam-diam. Dan bahkan jika tidak berbahaya dalam kasus ini, Anda juga tidak seharusnya dapat menulis ke register sistem CPU acak dari ruang pengguna.”

Peneliti lain dengan keahlian dalam CPU dan keamanan berbasis silikon lainnya setuju dengan penilaian itu.

“Bug yang ditemukan tidak dapat digunakan untuk menyimpulkan informasi tentang aplikasi apa pun pada sistem,” kata Michael Schwartz, salah satu peneliti yang membantu menemukan kerentanan Meltdown dan Spectre yang lebih serius di CPU Intel, AMD, dan ARM. “Itu hanya dapat digunakan sebagai saluran komunikasi antara dua aplikasi yang berkolusi (berbahaya).”

Dia melanjutkan untuk menguraikan:

Kerentanan ini mirip dengan “kotak pos” anonim, yang memungkinkan kedua aplikasi saling mengirim pesan. Ini kurang lebih tidak terlihat oleh aplikasi lain, dan tidak ada cara yang efisien untuk mencegahnya. Namun, karena tidak ada aplikasi lain yang menggunakan “kotak pos” ini, tidak ada data atau metadata dari aplikasi lain yang bocor. Jadi ada batasannya, hanya bisa digunakan sebagai saluran komunikasi antara dua aplikasi yang berjalan di macOS. Namun, sudah ada begitu banyak cara bagi aplikasi untuk berkomunikasi (file, pipa, soket, …), sehingga satu saluran lagi tidak terlalu berdampak negatif pada keamanan. Tetap saja, ini adalah bug yang dapat disalahgunakan sebagai saluran komunikasi yang tidak diinginkan, jadi saya pikir adil untuk menyebutnya kerentanan.

Saluran rahasia mungkin lebih berdampak pada iPhone, kata Martin, karena dapat digunakan untuk melewati kotak pasir yang ada di aplikasi iOS. Dalam kondisi normal, aplikasi papan ketik berbahaya tidak memiliki sarana untuk membocorkan penekanan tombol karena aplikasi tersebut tidak memiliki akses ke Internet. Saluran rahasia dapat menghindari perlindungan ini dengan meneruskan penekanan tombol ke aplikasi jahat lainnya, yang pada gilirannya akan mengirimkannya melalui Internet.

Meski begitu, kemungkinan dua aplikasi akan melewati proses peninjauan Apple dan kemudian diinstal pada perangkat target tidak masuk akal.

Cacat ini berasal dari register sistem per-cluster di CPU ARM yang dapat diakses oleh EL0, mode yang disediakan untuk aplikasi pengguna dan karenanya memiliki hak istimewa sistem yang terbatas. Register berisi dua bit yang dapat dibaca atau ditulis. Ini menciptakan saluran rahasia, karena register dapat diakses secara bersamaan oleh semua inti dalam cluster.

Martin menulis:

Sepasang proses kerjasama yang berbahaya dapat membangun saluran yang kuat dari keadaan dua bit ini, dengan menggunakan protokol clock-and-data (misalnya, satu sisi menulis 1x untuk mengirim data, sisi lain menulis 00 untuk meminta bit berikutnya) . Ini memungkinkan proses untuk menukar sejumlah data yang berubah-ubah, hanya terikat oleh overhead CPU. API afinitas inti CPU dapat digunakan untuk memastikan bahwa kedua proses dijadwalkan pada kluster inti CPU yang sama. Tersedia PoC yang menunjukkan pendekatan ini untuk mencapai transfer data yang kuat dan berkecepatan tinggi sini. Pendekatan ini, tanpa banyak pengoptimalan, dapat mencapai kecepatan transfer lebih dari 1MB/dtk (kurang dengan redundansi data).


Diposting oleh : SGP Prize