Rilis modul LKRG 0.8 kanggo nglindhungi saka eksploitasi kerentanan ing kernel Linux

Proyek Openwall diterbitake release modul kernel LKRG 0.8 (Linux Kernel Runtime Guard), dirancang kanggo ndeteksi lan mblokir serangan lan nglanggar integritas struktur kernel. Contone, modul bisa nglindhungi saka owah-owahan ora sah kanggo kernel mlaku lan nyoba kanggo ngganti ijin pangolahan pangguna (ndeteksi nggunakake exploitasi). Modul iki cocok kanggo ngatur proteksi marang eksploitasi sing wis dikenal kanggo kernel Linux (contone, ing kahanan sing angel nganyari kernel ing sistem), lan kanggo nglawan eksploitasi kanggo kerentanan sing durung dingerteni. Kode proyek disebarake dening dilisensi ing GPLv2.

Antarane owah-owahan ing versi anyar:

  • Posisi proyek LKRG wis diganti, sing ora dipΓ©rang dadi subsistem sing kapisah kanggo mriksa integritas lan nemtokake panggunaan eksploitasi, nanging ditampilake minangka produk lengkap kanggo ngenali serangan lan macem-macem pelanggaran integritas;
  • Kompatibilitas diwenehake karo kernel Linux saka 5.3 nganti 5.7, uga karo kernel sing disusun kanthi optimalisasi GCC sing agresif, tanpa opsi CONFIG_USB lan CONFIG_STACKTRACE utawa kanthi opsi CONFIG_UNWINDER_ORC, uga karo kernel sing ora duwe fungsi kecanthol LKRG, yen bisa. disingkirake;
  • Nalika mbangun, sawetara setelan kernel CONFIG_* wajib dicenthang kanggo ngasilake pesen kesalahan sing penting tinimbang kacilakan sing ora jelas;
  • Dhukungan ditambahake kanggo mode siyaga (ACPI S3, digantung menyang RAM) lan mode turu (S4, digantung menyang disk);
  • Ditambahake dhukungan DKMS menyang Makefile;
  • Dhukungan eksperimen kanggo platform ARM 32-bit wis ditindakake (dites ing Raspberry Pi 3 Model B). Dhukungan AArch64 (ARM64) sing kasedhiya sadurunge wis ditambahi kanggo nyedhiyakake kompatibilitas karo papan Raspberry Pi 4;
  • Pancing anyar wis ditambahake, kalebu handler telpon sing bisa () kanggo luwih ngenali eksploitasi sing ngapusi "kemampuan", ora ngolah ID (kapercayan);
  • Logika anyar wis diusulake kanggo ndeteksi upaya kanggo uwal saka watesan namespace (contone, saka kontaner Docker);
  • Ing sistem x86-64, bit SMAP (Supervisor Mode Access Prevention) dicenthang lan ditrapake, dirancang kanggo mblokir akses menyang data spasi pangguna saka kode istimewa sing mlaku ing tingkat kernel. SMEP (Supervisor Mode Execution Prevention) proteksi wis dileksanakake sadurunge;
  • Sajrone operasi, setelan LKRG diselehake ing kaca memori sing biasane mung diwaca;
  • Informasi logging sing paling migunani kanggo serangan (contone, informasi babagan alamat ing kernel) diwatesi ing mode debugging (log_level=4 lan luwih dhuwur), sing dipateni kanthi standar.
  • Skalabilitas database pelacakan proses wis tambah - tinimbang siji wit RB sing dilindhungi dening siji spinlock, tabel hash 512 wit RB sing dilindhungi 512 kunci maca-tulis digunakake;
  • Mode wis diterapake lan diaktifake kanthi gawan, ing ngendi integritas pengenal proses asring dicenthang mung kanggo tugas saiki, lan uga opsional kanggo tugas sing diaktifake (tangi). Kanggo tugas liyane sing ana ing negara turu utawa bisa digunakake tanpa ngakses kernel API sing dikontrol LKRG, pamriksan ditindakake kurang asring.
  • Nambahake parameter sysctl lan modul anyar kanggo LKRG sing apik, uga loro sysctl kanggo konfigurasi sing disederhanakake kanthi milih saka set setelan (profil) sing disiapake dening pangembang;
  • Setelan gawan wis diganti kanggo entuk imbangan luwih imbang antarane kacepetan deteksi pelanggaran lan efektifitas respon, ing tangan siji, lan impact ing kinerja lan risiko positif palsu, ing sisih liyane;
  • File unit systemd wis dirancang maneh kanggo mbukak modul LKRG nalika wiwitan boot (pilihan baris perintah kernel bisa digunakake kanggo mateni modul);

Nganggep optimasi sing diusulake ing rilis anyar, pangurang kinerja nalika nggunakake LKRG 0.8 kira-kira 2.5% ing mode standar ("abot") lan 2% ing mode cahya ("cahya").

Ing bubar dianakaké riset efektifitas paket kanggo ndeteksi rootkit LKRG nuduhake asil paling apik, ngenali 8 saka 9 rootkits dites makarya ing tingkat kernel tanpa positif palsu (rootkits Diamorphine, Madu Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptil, Rootfoo Linux Rootkit lan Sutekh diidentifikasi, nanging Keysniffer, kang kernel a modul, iki ora kejawab karo keylogger a, ora rootkit ing pangertèn harfiah). Kanggo mbandhingake, paket AIDE, OSSEC lan Rootkit Hunter ndeteksi 2 saka 9 rootkit, dene Chkrootkit ora ndeteksi. Ing wektu sing padha, LKRG ora ndhukung deteksi rootkit sing ana ing ruang pangguna, saéngga efisiensi paling gedhe digayuh nalika nggunakake kombinasi AIDE lan LKRG, sing ngidini kanggo ngenali 14 saka 15 rootkit saka kabeh jinis.

Kajaba iku, bisa dicathet yen pangembang distribusi Whonix diwiwiti mbentuk paket siap karo DKMS kanggo Debian, Whonix, Qubes lan Kicksecure, lan paket kanggo Linux Arch wis dianyari kanggo versi 0.8. Paket karo LKRG uga kasedhiya ing basa Rusia ALL Linux ΠΈ AstraLinux.

Priksa integritas ing LKRG ditindakake kanthi mbandhingake kode lan data nyata saka kernel lan modul, sawetara struktur data penting lan setelan CPU kanthi hash sing disimpen utawa salinan area memori sing cocog, struktur data utawa ndhaptar. Priksa diaktifake kanthi periodik kanthi wektu lan nalika kedadeyan macem-macem acara.

Nemtokake kemungkinan nggunakake eksploitasi lan pamblokiran serangan ditindakake ing tahap sadurunge kernel nyedhiyakake akses menyang sumber daya (contone, sadurunge mbukak file), nanging sawise proses kasebut nampa ijin sing ora sah (contone, ngganti UID). Nalika prilaku ora sah dideteksi, pangolahan dipeksa kanggo mungkasi minangka standar, kang cukup kanggo mblokir akeh exploitasi.

Source: opennet.ru

Add a comment