Rhyddhau modiwl LKRG 0.8 i amddiffyn rhag camfanteisio ar wendidau yn y cnewyllyn Linux

Prosiect Openwall cyhoeddi rhyddhau modiwl cnewyllyn LKRG 0.8 (Linux Kernel Runtime Guard), a gynlluniwyd i ganfod a rhwystro ymosodiadau a thorri cywirdeb strwythurau cnewyllyn. Er enghraifft, gall y modiwl amddiffyn rhag newidiadau anawdurdodedig i'r cnewyllyn rhedeg ac ymdrechion i newid caniatâd prosesau defnyddwyr (canfod y defnydd o gampau). Mae'r modiwl yn addas ar gyfer trefnu amddiffyniad rhag gorchestion hysbys ar gyfer y cnewyllyn Linux (er enghraifft, mewn sefyllfaoedd lle mae'n anodd diweddaru'r cnewyllyn yn y system), ac ar gyfer gwrthweithio gorchestion am wendidau anhysbys eto. Cod prosiect dosbarthu gan trwyddedig o dan GPLv2.

Ymhlith y newidiadau yn y fersiwn newydd:

  • Mae lleoliad y prosiect LKRG wedi'i newid, nad yw bellach wedi'i rannu'n is-systemau ar wahân ar gyfer gwirio cywirdeb a phennu'r defnydd o gampau, ond fe'i cyflwynir fel cynnyrch cyflawn ar gyfer nodi ymosodiadau a throseddau uniondeb amrywiol;
  • Darperir cydnawsedd â chnewyllyn Linux o 5.3 i 5.7, yn ogystal â chnewyllyn a luniwyd gydag optimeiddiadau GCC ymosodol, heb yr opsiynau CONFIG_USB a CONFIG_STACKTRACE neu gyda'r opsiwn CONFIG_UNWINDER_ORC, yn ogystal â chnewyllyn nad oes ganddynt swyddogaethau bachu LKRG, os gallant cael ei hepgor;
  • Wrth adeiladu, mae rhai gosodiadau cnewyllyn CONFIG_* gorfodol yn cael eu gwirio i gynhyrchu negeseuon gwall ystyrlon yn lle damweiniau aneglur;
  • Cefnogaeth ychwanegol ar gyfer moddau segur (ACPI S3, atal dros dro i RAM) a chysgu (S4, atal i ddisg);
  • Ychwanegwyd cefnogaeth DKMS i Makefile;
  • Mae cymorth arbrofol ar gyfer llwyfannau ARM 32-did wedi'i roi ar waith (wedi'i brofi ar Model B Raspberry Pi 3). Mae cymorth AArch64 (ARM64) a oedd ar gael yn flaenorol wedi'i ehangu i ddarparu cydnawsedd â bwrdd Raspberry Pi 4;
  • Mae bachau newydd wedi'u hychwanegu, gan gynnwys triniwr galwadau () galluog i adnabod campau sy'n trin "galluoedd" , nid prosesu IDau (credentials);
  • Mae rhesymeg newydd wedi'i chynnig ar gyfer canfod ymdrechion i ddianc rhag cyfyngiadau gofod enwau (er enghraifft, o gynwysyddion Docker);
  • Ar systemau x86-64, mae'r did SMAP (Atal Mynediad Modd Goruchwylydd) yn cael ei wirio a'i gymhwyso, wedi'i gynllunio i rwystro mynediad i ddata gofod defnyddwyr o god breintiedig sy'n rhedeg ar lefel y cnewyllyn. Rhoddwyd amddiffyniad SMEP (Atal Gweithredu Modd Goruchwylio) ar waith yn flaenorol;
  • Yn ystod gweithrediad, gosodir y gosodiadau LKRG mewn tudalen cof sydd fel arfer yn ddarllen-yn-unig;
  • Mae gwybodaeth logio a allai fod yn fwyaf defnyddiol ar gyfer ymosodiadau (er enghraifft, gwybodaeth am gyfeiriadau yn y cnewyllyn) wedi'i chyfyngu i'r modd dadfygio (log_level=4 ac uwch), sy'n anabl yn ddiofyn.
  • Mae graddfa'r gronfa ddata olrhain prosesau wedi cynyddu - yn lle un goeden RB wedi'i diogelu gan un sbinlock, defnyddir bwrdd stwnsh o 512 o goed RB wedi'u diogelu gan 512 o gloeon darllen-ysgrifennu;
  • Mae modd wedi'i weithredu a'i alluogi yn ddiofyn, lle mae cywirdeb dynodwyr proses yn aml yn cael ei wirio ar gyfer y dasg gyfredol yn unig, a hefyd yn ddewisol ar gyfer tasgau actifedig (deffro). Ar gyfer tasgau eraill sydd mewn cyflwr cysgu neu'n gweithio heb gyrchu'r API cnewyllyn a reolir gan LKRG, mae'r gwiriad yn cael ei berfformio'n llai aml.
  • Ychwanegwyd paramedrau sysctl a modiwl newydd ar gyfer mireinio LKRG, yn ogystal â dwy sysctl ar gyfer cyfluniad symlach trwy ddewis o setiau o osodiadau mireinio (profiliau) a baratowyd gan y datblygwyr;
  • Mae gosodiadau diofyn wedi'u newid i sicrhau cydbwysedd mwy cytbwys rhwng cyflymder canfod troseddau ac effeithiolrwydd yr ymateb, ar y naill law, a'r effaith ar berfformiad a'r risg o bethau cadarnhaol ffug, ar y llaw arall;
  • Mae'r ffeil uned systemd wedi'i hailgynllunio i lwytho'r modiwl LKRG yn gynnar yn y cychwyn (gellir defnyddio opsiwn llinell orchymyn cnewyllyn i analluogi'r modiwl);

Gan ystyried yr optimeiddiadau a gynigir yn y datganiad newydd, amcangyfrifir bod y gostyngiad mewn perfformiad wrth ddefnyddio LKRG 0.8 yn 2.5% yn y modd rhagosodedig (“trwm”) a 2% yn y modd golau (“golau”).

Mewn a gynhaliwyd yn ddiweddar ymchwil effeithiolrwydd pecynnau ar gyfer canfod rootkits LKRG dangosodd canlyniadau gorau, gan nodi 8 allan o 9 rootkits a brofwyd yn gweithio ar y lefel cnewyllyn heb positifau ffug (rootkits Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit a Sutekh eu nodi, ond Keysniffer, sy'n gnewyllyn modiwl, ei golli gyda keylogger, nid rootkit yn yr ystyr llythrennol). Er mwyn cymharu, mae'r pecynnau AIDE, OSSEC a Rootkit Hunter wedi canfod 2 allan o 9 rootkits, tra nad oedd Chkrootkit wedi canfod unrhyw rai. Ar yr un pryd, nid yw LKRG yn cefnogi canfod rootkits sydd wedi'u lleoli yn y gofod defnyddwyr, felly cyflawnir yr effeithlonrwydd mwyaf wrth ddefnyddio cyfuniad o AIDE a LKRG, a oedd yn ei gwneud hi'n bosibl nodi 14 allan o 15 o rootkits o bob math.

Yn ogystal, gellir nodi bod y datblygwr dosbarthu Whonix wedi cychwyn siapio pecynnau parod gyda DKMS ar gyfer Debian, Whonix, Qubes a Kicksecure, a phecyn ar gyfer Arch Linux eisoes wedi'i ddiweddaru i fersiwn 0.8. Mae pecynnau gyda LKRG hefyd ar gael yn Rwsieg ALT-Linux и AstraLinux.

Perfformir gwirio uniondeb yn LKRG trwy gymharu cod a data gwirioneddol y cnewyllyn a'r modiwlau, rhai strwythurau data pwysig a gosodiadau CPU gyda hashes wedi'u storio neu gopïau o'r ardaloedd cof cyfatebol, strwythurau data neu gofrestrau. Gweithredir gwiriadau o bryd i'w gilydd gan yr amserydd ac ar ôl i ddigwyddiadau amrywiol ddigwydd.

Mae penderfynu ar y defnydd posibl o gampau ac ymosodiadau blocio yn cael ei wneud ar y cam cyn i'r cnewyllyn ddarparu mynediad at adnoddau (er enghraifft, cyn agor ffeil), ond ar ôl i'r broses dderbyn caniatâd anawdurdodedig (er enghraifft, newid yr UID). Pan ganfyddir ymddygiad anawdurdodedig, mae prosesau'n cael eu gorfodi i derfynu yn ddiofyn, sy'n ddigon i rwystro llawer o orchestion.

Ffynhonnell: opennet.ru

Ychwanegu sylw