Rakirina modula LKRG 0.8 ji bo parastina li dijî îstismarkirina qelsiyên di kernel Linux de

Projeya Openwall weşandin serbestberdana module kernel LKRG 0.8 (Linux Kernel Runtime Guard), ji bo tespîtkirin û astengkirina êrîş û binpêkirinên yekparebûna strukturên kernelê hatî çêkirin. Mînakî, modul dikare li hember guheztinên bêdestûr ên kernelê yên xebitandinê û hewildanên guheztina destûrên pêvajoyên bikarhêneran biparêze (tehlîlkirina karanîna karanînê). Modul hem ji bo organîzekirina parastina li dijî kelûmelên jixwe naskirî yên ji bo kernel Linux (mînak, di rewşên ku nûvekirina kernelê di pergalê de dijwar e), hem jî ji bo berevajîkirina îstismarên ji bo qelsiyên hîn nenas re maqûl e. Koda projeyê belav kirin ji hêla lîsansa di bin GPLv2.

Di nav guhertinên di guhertoya nû de:

  • Positiona projeya LKRG hate guheztin, ku êdî ji bo kontrolkirina yekrêziyê û destnîşankirina karanîna îstismarkirinê di bin pergalên cihê de nayê dabeş kirin, lê ji bo tespîtkirina êrîş û binpêkirinên cûrbecûr yekparebûnê wekî hilberek bêkêmasî tê pêşkêş kirin;
  • Lihevhatî bi kernelên Linux re ji 5.3 heta 5.7, û hem jî bi kernelên ku bi xweşbîniyên GCC-yê êrîşkar hatine berhev kirin, bêyî vebijarkên CONFIG_USB û CONFIG_STACKTRACE an bi vebijarka CONFIG_UNWINDER_ORC re, û hem jî bi kernelên ku fonksiyonên LKRG tune ne, tê peyda kirin, were belavkirin;
  • Dema çêkirinê, hin mîhengên kernelê yên mecbûrî yên CONFIG_* têne kontrol kirin da ku li şûna têkçûnên nezelal peyamên xeletiya watedar biafirînin;
  • Piştgiriya ji bo modên standby (ACPI S3, sekinandina RAM) û xewê (S4, sekinandina dîskê) zêde kir;
  • Piştgiriya DKMS li Makefile zêde kir;
  • Piştgiriya ceribandinê ya ji bo platformên ARM-ê yên 32-bit hate bicîh kirin (li ser Raspberry Pi 3 Model B ceribandin). Piştgiriya berê ya AArch64 (ARM64) hate berfireh kirin da ku lihevhatina bi panela Raspberry Pi 4 re peyda bike;
  • Çêlikên nû hatine zêdekirin, di nav wan de rêvekerek bangê ya jêhatî() jî heye da ku îstismarên ku manîpule dikin çêtir nas bikin.Aborî", Nasnameyên pêvajoyê nakin (şehadan);
  • Mantiqê nû ji bo tesbîtkirina hewildanên revê ji qedexeyên cîhê navan (mînak, ji konteynerên Docker) hatî pêşniyar kirin;
  • Li ser pergalên x86-64, bit SMAP (Pêşgiriya Gihîştina Moda Çavdêr) tê kontrol kirin û sepandin, ku ji bo astengkirina gihandina daneyên cîhê bikarhêner ji koda îmtiyazê ya ku di asta kernelê de dimeşîne asteng dike. Berê parastina SMEP (Supervisor Mode Execution Prevention) hate pêkanîn;
  • Di dema xebatê de, mîhengên LKRG di rûpelek bîranînê de têne danîn ku bi gelemperî tenê-xwendin e;
  • Agahiyên qeydkirinê yên ku dibe ku ji bo êrîşan herî bikêrhatî bin (mînak, agahdariya li ser navnîşanên di kernelê de) bi moda xeletkirinê (log_level=4 û bilindtir) ve sînorkirî ye, ku ji hêla xwerû ve tê neçalak kirin.
  • Mezinbûna databasa şopandina pêvajoyê zêde bûye - li şûna yek dara RB ya ku ji hêla yek spinlockê ve hatî parastin, tabloyek haş a 512 darên RB yên ku ji hêla 512 kilîdên xwendin-nivîsandinê ve têne parastin tê bikar anîn;
  • Modek ji hêla xwerû ve hatî bicîh kirin û çalak kirin, ku tê de yekrêziya nasnameyên pêvajoyê bi gelemperî tenê ji bo peywira heyî tê kontrol kirin, û di heman demê de vebijarkî ji bo peywirên çalak (hişyar) têne kontrol kirin. Ji bo karên din ên ku di xew de ne an bêyî ku bigihîjin API-ya kernelê ya ku ji hêla LKRG ve tê kontrol kirin dixebitin, kontrol kêm caran tê kirin.
  • Parametreyên sysctl û modulê yên nû ji bo birêkûpêkkirina LKRG, û her weha du sysctl ji bo veavakirina sadekirî bi hilbijartina ji komek mîhengên birêkûpêk (profîl) ên ku ji hêla pêşdebiran ve hatine amadekirin, zêde kirin;
  • Mîhengên xwerû hatine guheztin da ku hevsengiyek bêtir hevseng di navbera leza tespîtkirina binpêkirinan û bandora bersivdanê de, ji aliyekî ve, û bandora li ser performansê û xetereya erênîyên derewîn, ji hêla din ve;
  • Pelê yekîneya systemd ji nû ve hatî sêwirandin da ku modula LKRG di destpêka bootê de were barkirin (vebijarkek rêzika fermanê ya kernel dikare were bikar anîn da ku modulê neçalak bike);

Li gorî xweşbîniyên ku di serbestberdana nû de hatine pêşniyar kirin, kêmkirina performansê dema ku LKRG 0.8 bikar tîne di moda xwerû ("giran") de% 2.5 û di moda ronahiyê de ("ronahî")% 2, tê texmîn kirin.

Di demeke dawî de pêk hat lêkolînê bandora pakêtan ji bo tespîtkirina rootkits LKRG nîşan da encamên herî baş, naskirina 8 ji 9 rootkitên testkirî ku di asta kernelê de bêyî erênîyên derewîn dixebitin (rootkits Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit û Sutekh hatin nas kirin, lê Keysniffernel e, ku ew e. module, bi keylogger, ne rootkit di wateya rast de hate winda kirin). Ji bo berhevdanê, pakêtên AIDE, OSSEC û Rootkit Hunter 2 ji 9 rootkit tespît kirin, dema ku Chkrootkit yek nedît. Di heman demê de, LKRG piştgirî nade tespîtkirina rootkitên ku di cîhê bikarhêner de cih digirin, ji ber vê yekê dema ku têkeliyek AIDE û LKRG bikar bînin, karîgeriya herî mezin tê bidestxistin, ku ev yek gengaz kir ku 14 ji 15 rootkitên ji her celebî were nas kirin.

Wekî din, dikare were zanîn ku pêşdebirê belavkirinê Whonix destpêkirin şikilandin pakêtên amade bi DKMS-ê ji bo Debian, Whonix, Qubes û Kicksecure, û pakêtek ji bo Arch Linux jixwe guhertoya 0.8-ê hatî nûve kirin. Pakêtên bi LKRG bi rûsî jî hene alt linux и AstraLinux.

Kontrolkirina yekrêziyê di LKRG de bi berhevkirina kod û daneyên rastîn ên kernel û modulan, hin strukturên daneya girîng û mîhengên CPU-yê bi haşeyên hilanîn an kopiyên deverên bîranîn, strukturên daneyê an tomarên têkildar re tê kirin. Kontrol hem dem bi dem bi demjimêr û hem jî li ser rûdana bûyerên cihêreng têne çalak kirin.

Tesbîtkirina karanîna muhtemel a kedkaran û astengkirina êrîşan di qonaxa berî ku kernel gihîştina çavkaniyan peyda bike (mînakî, berî vekirina pelek), lê piştî ku pêvajo destûrên nedestûr werdigire (mînak, guhartina UID) tête kirin. Dema ku tevgerên nedestûr têne tesbît kirin, pêvajo neçar dibin ku ji hêla xwerû ve biqedin, ku ji bo astengkirina gelek îstîsmaran bes e.

Source: opennet.ru

Add a comment