Verëffentlechung vum LKRG 0.8 Modul fir géint Ausbeutung vu Schwachstelle am Linux Kernel ze schützen

Openwall Projet publizéiert Kernel Modul Verëffentlechung LKRG 0.8 (Linux Kernel Runtime Guard), entwéckelt fir Attacken a Verstouss géint d'Integritéit vu Kernelstrukturen z'entdecken an ze blockéieren. Zum Beispill kann de Modul géint onerlaabte Ännerunge vum lafende Kernel schützen a probéiert d'Permissiounen vun de Benotzerprozesser z'änneren (d'Benotzung vun Ausnotzen z'entdecken). De Modul ass gëeegent souwuel fir Schutz géint scho bekannte Ausnotzen fir de Linux Kernel z'organiséieren (zum Beispill, a Situatiounen wou et schwéier ass de Kernel am System ze aktualiséieren), wéi och fir Exploitë fir nach onbekannte Schwachstelle géint. Projet Code verdeelt duerch lizenzéiert ënner GPLv2.

Ënnert den Ännerungen an der neier Versioun:

  • D'Positionéierung vum LKRG-Projet gouf geännert, deen net méi an getrennten Ënnersystemer opgedeelt ass fir d'Integritéit ze kontrolléieren an d'Benotzung vun Ausnotzen ze bestëmmen, awer als komplett Produkt fir d'Identifikatioun vun Attacken a verschidde Integritéitsverletzungen presentéiert;
  • Kompatibilitéit gëtt mat Linux Kernels vu 5.3 bis 5.7 geliwwert, souwéi mat Kernelen kompiléiert mat aggressiven GCC Optimisatiounen, ouni d'CONFIG_USB an CONFIG_STACKTRACE Optiounen oder mat der CONFIG_UNWINDER_ORC Optioun, wéi och mat Kernelen déi keng LKRG Hooked Funktiounen hunn, wa se kënnen verzicht ginn;
  • Wann Dir baut, ginn e puer obligatoresch CONFIG_* Kernel-Astellunge gepréift fir sënnvoll Fehlermeldungen ze generéieren anstatt obskur Crashen;
  • Zousätzlech Ënnerstëtzung fir Standby (ACPI S3, suspendéiert op RAM) a Schlof (S4, suspendéiert op Disk) Modi;
  • DKMS Ënnerstëtzung fir Makefile dobäigesat;
  • Experimentell Ënnerstëtzung fir 32-Bit ARM Plattformen gouf implementéiert (getest op Raspberry Pi 3 Model B). Virdrun verfügbar AArch64 (ARM64) Support gouf erweidert fir Kompatibilitéit mam Raspberry Pi 4 Board ze bidden;
  • Nei Haken goufen bäigefüügt, dorënner e kapabelen () Call Handler fir besser Ausnotzen z'identifizéieren déi manipuléieren "Kënnen", net Prozess IDen (Umeldungsinformatiounen);
  • Nei Logik gouf proposéiert fir Versuche fir Nummraumbeschränkungen z'entdecken (zum Beispill vun Docker Container);
  • Op x86-64 Systemer gëtt de SMAP (Supervisor Mode Access Prevention) Bit gepréift an ugewannt, entwéckelt fir Zougang zu Benotzerraumdaten aus privilegiéierten Code ze blockéieren deen um Kernelniveau leeft. SMEP (Supervisor Mode Execution Prevention) Schutz gouf virdru ëmgesat;
  • Wärend der Operatioun sinn d'LKRG-Astellungen an enger Erënnerungssäit plazéiert déi normalerweis nëmme liesen ass;
  • D'Logéierungsinformatioun déi am nëtzlechsten fir Attacke ka sinn (zum Beispill Informatioun iwwer Adressen am Kärel) ass limitéiert op Debugging Modus (log_level=4 a méi héich), deen par défaut deaktivéiert ass.
  • D'Skalierbarkeet vun der Prozessverfolgungsdatabase gouf erhéicht - amplaz vun engem RB-Bam geschützt vun engem Spinlock, gëtt en Hash-Table vu 512 RB-Beem geschützt vu 512 Lies-Schreifschloss benotzt;
  • E Modus gouf als Standard ëmgesat an aktivéiert, an deem d'Integritéit vu Prozessidentifizéierer dacks nëmme fir déi aktuell Aufgab gepréift gëtt, an och optional fir aktivéiert (erwächen) Aufgaben. Fir aner Aufgaben déi an engem Schlofzoustand sinn oder schaffen ouni Zougang zu der Kernel API, déi vum LKRG kontrolléiert gëtt, gëtt d'Kontroll manner dacks gemaach.
  • Nei Sysctl- a Modulparameter fir LKRG bäigefüügt, souwéi zwee sysctl fir vereinfacht Konfiguratioun andeems Dir aus Sets vu Feintuning-Astellungen (Profiler) auswielen, déi vun den Entwéckler virbereet sinn;
  • D'Standardastellunge goufen geännert fir e méi equilibréiert Gläichgewiicht tëscht der Geschwindegkeet vun der Detektioun vu Verstouss an der Effizienz vun der Äntwert ze erreechen, engersäits, an dem Impakt op d'Leeschtung an de Risiko vu falschen Positiven, op der anerer;
  • D'Systemd Eenheetsdatei gouf nei entwéckelt fir de LKRG Modul fréi am Boot ze lueden (eng Kernel Kommandozeiloptioun kann benotzt ginn fir de Modul auszeschalten);

Wann Dir d'Optimisatiounen berécksiichtegt, déi an der neier Verëffentlechung proposéiert ginn, gëtt d'Leeschtungsreduktioun beim Benotzen vun LKRG 0.8 op 2.5% am Standardmodus ("schwéier") an 2% am Liichtmodus ("Liicht") geschat.

An engem kuerzem ofgehalen Fuerschung Effektivitéit vu Packagen fir Rootkits LKRG z'entdecken gewisen bescht Resultater, identifizéiert 8 vun 9 getest Rootkits déi um Kernelniveau schaffen ouni falsch Positiver (Rootkits Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit a Sutekh goufen identifizéiert, awer Keysniffer, wat e Kernel ass. Modul, gouf mat engem Keylogger verpasst, net e Rootkit am wuertwiertleche Sënn). Zum Verglach hunn d'AIDE, OSSEC an Rootkit Hunter Packagen 2 vun 9 Rootkits entdeckt, während Chkrootkit keng entdeckt huet. Zur selwechter Zäit ënnerstëtzt LKRG d'Detektioun vu Rootkits net am Benotzerraum, sou datt déi gréissten Effizienz erreecht gëtt wann Dir eng Kombinatioun vun AIDE a LKRG benotzt, wat et méiglech gemaach huet 14 vun 15 Rootkits vun all Typen z'identifizéieren.

Zousätzlech kann et bemierkt ginn datt de Verdeelungsentwéckler Whonix ugefaang ugepaakt fäerdeg Pakete mat DKMS fir Debian, Whonix, Qubes a Kicksecure, an e Package fir Arch Linux schonn op Versioun 0.8 aktualiséiert. Packagen mat LKRG sinn och op Russesch verfügbar ALT Linux и AstraLinux.

Integritéitskontroll am LKRG gëtt duerch Vergläicht den aktuellen Code an Daten vum Kernel a Moduler, e puer wichteg Datestrukturen an CPU-Astellunge mat gespäichert Hashes oder Kopie vun den entspriechende Gedächtnisberäicher, Datestrukturen oder Registere. D'Schecken ginn souwuel periodesch vum Timer a beim Optriede vu verschiddenen Eventer ageschalt.

D'Bestëmmung vun der méiglecher Notzung vun Ausnotzen an Attacke blockéieren gëtt op der Bühn duerchgefouert ier de Kernel Zougang zu Ressourcen ubitt (zum Beispill, ier Dir eng Datei opmaacht), awer nodeems de Prozess onerlaabt Permissiounen kritt huet (zum Beispill d'UID änneren). Wann onerlaabt Verhalen festgestallt gëtt, ginn d'Prozesser gezwongen als Standard ofzeschléissen, wat genuch ass fir vill Ausnotzen ze blockéieren.

Source: opennet.ru

Setzt e Commentaire