0. Sebelum membaca
- Postingan blog ini ditujukan untuk para penjelajah waktu masa depan yang ingin meneliti kerentanan kernel Linux, dan ditulis agar pemula dapat mempelajari alur kerja penelitian sementara peneliti berpengalaman dapat mempelajari teknik baru.
- Postingan blog ini mengambil format makalah penelitian, sehingga meski panjang, strukturnya disusun agar mudah dipindai dan pengetahuannya mudah diekstrak.
- Sebagai cara membaca postingan blog ini secara efisien, disarankan untuk membaca bagian ikhtisar, membagi layar untuk membaca dan mencari, melompat ke bagian bug untuk memahami cara kerja bug, lalu melalui bagian proof of concept untuk meninjau eksploitnya.
1. Ikhtisar
- Dalam postingan blog ini diperkenalkan teknik baru untuk mengeksploitasi bug double-free 0-day yang ditemukan di nf_tables, guna mengeksploitasi kernel Linux yang diperkeras (misalnya instance mitigasi KernelCTF) dengan tingkat keberhasilan 93%-99%.
- Eksploit ini hanya bekerja saat nf_tables aktif dan user namespace non-privileged diaktifkan, serta menjalankan KSMA (Kernel-Space Mirroring Attack) yang mencerminkan ruang kernel ke ruang pengguna seperti cermin.
- Dengan menggunakan teknik Dirty Pagedirectory, dimungkinkan untuk memperoleh hak baca/tulis tak terbatas atas alamat fisik, dan hal ini diwujudkan melalui page table confusion.
2. Informasi latar belakang
nf_tables adalah salah satu modul inti kernel Linux, dan digunakan sebagai backend untuk iptables pada versi-versi terbaru.
iptables adalah alat firewall yang menggunakan state machine dan aturan yang ditentukan pengguna untuk memutuskan apakah paket dapat melewati firewall.
- Netfilter verdict adalah keputusan dari kumpulan aturan Netfilter mengenai apakah paket tertentu dapat melewati firewall, termasuk keputusan seperti menjatuhkan atau menerima paket.
- Struktur
sk_buff digunakan untuk mendeskripsikan data jaringan (misalnya paket IP, frame Ethernet, dan sebagainya), dan objek sk_buff->head berisi isi paket yang sebenarnya.
- Fitur fragmentasi paket pada IPv4 memungkinkan paket dikirim sebagai beberapa fragmen IP, dan kernel Linux menyimpan semua fragmen tersebut di red-black tree yang sama.
Opini GN⁺
- Postingan blog ini memberikan informasi yang sangat berguna bagi orang-orang yang ingin meneliti kerentanan kernel Linux. Secara khusus, pembaca dapat memahami kerentanan yang terkait dengan nf_tables dan mempelajari cara mengeksploitasinya.
- Teknik eksploit yang disajikan dapat memberikan kontribusi penting bagi riset keamanan di lingkungan nyata, dan melalui teknik seperti ini para profesional keamanan dapat lebih memahami kerentanan sistem serta cara mempertahankannya.
- Namun, karena teknik eksploit seperti ini juga berpotensi digunakan untuk tujuan jahat, perlu dipertimbangkan persoalan etika yang dapat timbul dari penyebarannya.
- Untuk memperkuat keamanan kernel Linux, komunitas perlu terus menemukan dan menambal kerentanan, dan postingan blog ini dapat dipandang sebagai bagian dari upaya tersebut.
- Jika melakukan riset keamanan menggunakan teknik ini atau teknik serupa, peneliti harus mengikuti kebijakan responsible disclosure dan bekerja sama agar patch dapat didistribusikan sebelum kerentanan dieksploitasi secara luas.
1 komentar
Komentar Hacker News
CONFIG_INIT_ON_ALLOC_DEFAULT_ON. Untuk detail lebih lanjut, lihat README.md. Bug ini telah ditambal pada Februari 2024, dan perangkat Linux disarankan untuk diperbarui.sysctl kernel.unprivileged_userns_clone = 1. Pengaturan ini adalah nilai bawaan pada kernel Debian/Ubuntu dan Arch Linux. Jika tidak memerlukan pengaturan ini, sebaiknya dinonaktifkan./boot/configatau/proc/config.gz.CONFIG_INIT_ON_FREE_DEFAULT_ONmencegah exploit, tetapi distribusi tidak membangunnya secara default. Ini contoh yang baik tentang betapa pentingnya hardening kernel.