out-of-tree v1.0.0 - alat untuk mengembangkan dan menguji eksploitasi dan modul kernel Linux


out-of-tree v1.0.0 - alat untuk mengembangkan dan menguji eksploitasi dan modul kernel Linux

Versi out-of-tree pertama (v1.0.0), sebuah toolkit untuk mengembangkan dan menguji eksploitasi dan modul kernel Linux, telah dirilis.

out-of-tree memungkinkan Anda mengotomatiskan beberapa tindakan rutin untuk menciptakan lingkungan untuk men-debug modul dan eksploitasi kernel, menghasilkan statistik keandalan eksploitasi, dan juga menyediakan kemampuan untuk dengan mudah diintegrasikan ke dalam CI (Continuous Integration).

Setiap modul kernel atau eksploitasi dijelaskan oleh file .out-of-tree.toml, yang menentukan informasi tentang lingkungan yang diperlukan dan (jika itu adalah eksploitasi) pembatasan operasi dengan adanya mitigasi keamanan tertentu.

Toolkit ini juga memungkinkan Anda mengidentifikasi versi kernel tertentu yang terpengaruh oleh kerentanan (menggunakan perintah --guess), dan juga dapat digunakan untuk menyederhanakan pencarian biner untuk penerapan tertentu.

Di bawah ini adalah daftar perubahan sejak versi v0.2.

Ditambahkan

  • Menerapkan kemampuan untuk membatasi jumlah kernel yang dihasilkan (autogen kernel di luar pohon) (berdasarkan deskripsi di .out-of-tree.toml) dan memeriksa proses (pew di luar pohon) menggunakan β€”max= parameter X.

  • Perintah genall baru, yang memungkinkan Anda menghasilkan semua kernel untuk distribusi dan versi tertentu.

  • Semua log sekarang disimpan dalam database sqlite3. Perintah yang diterapkan untuk kueri sederhana yang sering dibutuhkan, serta mengekspor data ke json dan penurunan harga.

  • Perhitungan probabilitas keberhasilan operasi telah diterapkan (berdasarkan peluncuran sebelumnya).

  • Kemampuan untuk menyimpan hasil pembangunan (parameter --dist baru untuk perintah pew di luar pohon)

  • Dukungan untuk menghasilkan metadata untuk kernel yang diinstal pada sistem host, serta membangun langsung pada host.

  • Dukungan untuk kernel pihak ketiga.

  • Lingkungan debug di luar pohon sekarang secara otomatis mencari simbol debug pada sistem host.

  • Menambahkan kemampuan untuk mengelola mitigasi keamanan dengan mengaktifkan/menonaktifkan tanda KASLR, SMEP, SMAP, dan KPTI selama proses debug.

  • Menambahkan parameter --threads=N ke perintah pengujian out-of-tree pew, yang dapat digunakan untuk menentukan jumlah thread untuk membangun/menjalankan dan menguji eksploitasi dan modul kernel.

  • Kemampuan untuk mengatur tag yang akan dicatat dalam log dan kemudian dapat digunakan untuk menghitung statistik.

  • Menambahkan kemampuan untuk menentukan versi kernel tanpa menggunakan ekspresi reguler.

  • Perintah paket baru, digunakan untuk pengujian massal eksploitasi dan modul kernel di subdirektori.

  • Dalam konfigurasi (.out-of-tree.toml) untuk modul eksploitasi dan kernel, kemampuan untuk menonaktifkan KASLR, SMEP, SMAP dan KPTI telah ditambahkan, serta menentukan jumlah core dan memori yang diperlukan.

  • Sekarang image (rootfs) dimuat secara otomatis saat autogen kernel sedang berjalan. bootstrap tidak lagi diperlukan.

  • Dukungan untuk kernel CentOS.

Perubahan

  • Sekarang, jika tidak ada image (rootfs) untuk versi distribusi yang diperlukan, out-of-tree akan mencoba menggunakan image dari versi terdekat. Misalnya, gambar Ubuntu 18.04 untuk Ubuntu 18.10.

  • Sekarang pengujian untuk modul kernel tidak akan dianggap gagal jika tidak ada (tidak ada pengujian - tidak ada kesalahan!).

  • Sekarang out-of-tree akan mengembalikan kode kesalahan negatif jika setidaknya satu tahap (build, launch, atau test) pada salah satu core gagal.

  • Proyek telah beralih menggunakan modul Go, membangun dengan GO111MODULE=on kini lebih disukai.

  • Menambahkan tes default.

  • Test.sh sekarang akan digunakan secara default jika perakitan di ${TARGET}_test tidak diimplementasikan di Makefile.

  • Log kernel tidak lagi dihapus sebelum menjalankan modul kernel atau mengeksploitasi. Beberapa eksploitasi menggunakan kebocoran basis kernel di dmesg untuk melewati KASLR, sehingga pembersihan dapat merusak logika implementasi eksploitasi.

  • qemu/kvm sekarang menggunakan semua kemampuan prosesor host.

DIHAPUS

  • Pabrik Kernel sepenuhnya dihapus karena penerapan pembuatan kernel berdasarkan Dockerfiles yang diperbarui secara bertahap.

  • bootstrap tidak melakukan hal lain. Perintah tersebut akan dihapus pada rilis berikutnya.

Π°Π²Π»Π΅Π½ΠΎ

  • Di macOS, GNU coreutils tidak lagi diperlukan untuk dijalankan.

  • File sementara telah dipindahkan ke ~/.out-of-tree/tmp/ karena kesalahan pemasangan di dalam buruh pelabuhan pada beberapa sistem.

Sumber: linux.org.ru

Tambah komentar