1 poin oleh GN⁺ 2024-03-27 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-03-27
Komentar Hacker News
  • Exploit proof-of-concept untuk CVE-2024-1086 telah dipublikasikan. Versi kernel Linux dari v5.14 hingga v6.6 terdampak, sedangkan v6.4 hingga v6.6 bergantung pada variabel konfigurasi kernel 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.
  • Di antara isi patch ada bagian yang membalikkan commit sebelumnya, dan tidak jelas mengapa commit tersebut dibuat. Penasaran apakah ada yang pernah menelusuri sejarahnya.
  • Exploit ini bergantung pada akses ke user namespace non-privileged: 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.
  • Saat menulis artikel blog keamanan, selalu ada pertanyaan tentang seberapa jauh pengetahuan latar belakang pembaca yang harus diasumsikan. Menentukan pembaca sasaran dan memberikan informasi latar yang memadai bukan hal yang mudah. Tulisan ini akan menjadi panduan yang berguna bagi mereka yang mulai meneliti.
  • Mempertanyakan alasan user namespace non-privileged diaktifkan secara default, serta mengapa pengguna pada dasarnya diberi kemampuan untuk menjalankan hal-hal seperti iptables.
  • Bertanya-tanya bagaimana exploit seperti ini masih mungkin dilakukan meskipun ada langkah-langkah keamanan modern seperti ASLR. Melalui praktikum universitas menggunakan berbagai biner yang sengaja mengandung bug, pernah merasakan betapa sulitnya pengembangan exploit di lingkungan nyata.
  • Sudah mencoba menjalankan exploit pada sistem Debian yang rentan, tetapi tidak terjadi eskalasi hak akses, dan pada percobaan kedua sistem benar-benar macet. Menerapkan patch itu penting.
  • Konfigurasi kernel saat ini dapat diperiksa di file /boot/config atau /proc/config.gz.
  • Menurut Ubuntu, semua rilis LTS terdampak, dan telah diperbaiki di kernel terbaru yang sudah ditambal. Xenial dan Bionic adalah informasi untuk pengguna yang menerima dukungan diperpanjang.
  • CONFIG_INIT_ON_FREE_DEFAULT_ON mencegah exploit, tetapi distribusi tidak membangunnya secara default. Ini contoh yang baik tentang betapa pentingnya hardening kernel.