Penyelidik Cisco Talos dibebaskan Beberapa hari yang lalu kerentanan dalam kernel Linux yang dapat dieksploitasi untuk mencuri data dan juga berfungsi sebagai alat untuk meningkatkan hak istimewa dan menjejaskan sistem.
Kerentanan digambarkan sebagai 'kerentanan pendedahan maklumat yang membolehkan penyerang melihat memori timbunan kernel. '
CVE-2020-28588 adalah kerentanan yang ditemui dalam fungsi ARM proc / pid / syscall Peranti 32-bit yang menjalankan sistem operasi. Menurut Cisco Talos, masalah itu pertama kali ditemukan pada perangkat yang menjalankan Azure Sphere.
Kerentanan pendedahan maklumat wujud dalam fungsi / proc / pid / syscall Linux Kernel 5.1 Stable dan 5.4.66. Lebih khusus lagi, masalah ini telah diperkenalkan dalam v5.1-rc4 (melakukan 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) dan masih terdapat di v5.10-rc4, jadi semua versi pertengahan kemungkinan besar akan terpengaruh. Penyerang dapat membaca / proc / pid / syscall untuk mengaktifkan kerentanan ini, menyebabkan kernel kehilangan kandungan memori.
Proc adalah sistem fail pseudo khas pada sistem operasi seperti Unix yang digunakan untuk mengakses data proses secara dinamik dijumpai di kernel. Mempersembahkan maklumat proses dan maklumat sistem lain dalam struktur hirarki, seperti fail.
Sebagai contoh, ia mengandungi subdirektori / proc / [pid], yang masing-masing mengandungi fail dan subdirektori yang memaparkan maklumat mengenai proses tertentu, yang dapat dibaca dengan menggunakan ID proses yang sesuai. Dalam kes fail "syscall", itu adalah file sistem operasi Linux yang sah yang berisi log panggilan sistem yang digunakan oleh kernel.
Bagi syarikat, lPeretas dapat memanfaatkan kekurangan dan mengakses sistem operasi dan fail syscall melalui sistem yang digunakan untuk berinteraksi antara struktur data kernel, Proc. Entri procss syscall dapat dieksploitasi jika penggodam mengeluarkan perintah untuk menghasilkan 24 byte memori timbunan yang tidak diinisialisasi, yang mengarah ke pemintas pengacakan susun atur ruang alamat kernel (KASLR).
Melihat fungsi khusus ini, semuanya kelihatan baik-baik saja, tetapi perlu diperhatikan bahawa
args
parameter lulus berasal dariproc_pid_syscall
fungsi dan dengan demikian sebenarnya jenis__u64 args
. Dalam sistem ARM, definisi fungsi menukar ukuranarg
susun dalam elemen empat bait dari lapan bait (sejakunsigned long
dalam ARM itu 4 bait), yang menghasilkannya dalammemcpy
disalin menjadi 20 bait (ditambah 4 untukargs[0]
).Begitu juga untuk i386, di mana
unsigned long
ia hanya 4 baitargs
24 bait pertama argumen ditulis, membiarkan baki 24 bait utuh.Dalam kedua kes tersebut, jika kita melihat kembali
proc_pid_syscall
fungsi.Semasa menggunakan ARM 32-bit dan i386, kami hanya menyalin 24 bait ke dalam
args
array, rentetan format akhirnya membaca 48 bait dariargs
matriks, sejak%llx
String format adalah lapan bait pada sistem 32-bit dan 64-bit. Oleh itu, 24 byte memori timbunan yang tidak dimulakan akhirnya mendapat output, yang boleh menyebabkan pintasan KASLR.
Para penyelidik menyatakan bahawa serangan ini "mustahil untuk dikesan dari jarak jauh di rangkaian" kerana membaca fail yang sah dari sistem operasi Linux. "Jika digunakan dengan betul, penggodam dapat memanfaatkan kebocoran maklumat ini untuk berjaya mengeksploitasi kerentanan Linux lain yang tidak dapat ditandingi," kata Cisco.
Sehubungan itu, Google baru-baru ini mengatakan:
“Kekurangan keselamatan memori sering mengancam keselamatan peranti, terutamanya aplikasi dan sistem operasi. Sebagai contoh, dalam sistem operasi mudah alih Android yang juga disokong oleh kernel Linux, Google mengatakan bahawa ia mendapati bahawa lebih daripada separuh kerentanan keselamatan yang ditangani pada tahun 2019 adalah hasil daripada bug keselamatan memori.
Akhir sekali Disarankan untuk mengemas kini versi kernel Linux versi 5.10-rc4, 5.4.66, 5.9.8 Kerentanan ini telah diuji dan disahkan dapat memanfaatkan versi kernel Linux berikut.
Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya Mengenai siaran, anda boleh menyemak butiran di pautan berikut.