Kërkuesit nga kompania ARMO demonstruan mundësinë e krijimit të rootkit-ëve që nuk përdorin thirrje specifike sistemore për të kryer operacione të zakonshme, si leximi/shkrimi i skedareve dhe pranimi i komandave nga një server i jashtëm. Në vend të thirrjeve sistemore për kryerjen e operacioneve rrjetë dhe skedare, u propozohet përdorimi i ndërfaqes asinkrone të hyrjes/ daljeve io_uring, e cila mbështetet që nga bërthama Linux 5.1.
Thelbi i metodës është që në vend të thirrjeve të veçanta sistemore për qasje në skedare dhe kryerjen e operacioneve rrjete (lexo/shkruaj, pranosh/dërgo/lidhu/ndahet/listo), mund të përdoren thirrje të përbashkëta sistemore io_uring (io_uring_enter, io_uring_setup, io_uring_register etj.), të cilat nuk analizohen nga mjetet standarde për identifikimin e aktivitetit të dëmshëm. Ndërfaqja io_uring mbështet rreth 60 operacione të ndryshme. Po zhvillohet një mundësi që lejon nisjen e proceseve të reja përmes io_uring.
PĂ«r tĂ« demonstruar punĂ«n e metodĂ«s, Ă«shtĂ« pĂ«rgatitur njĂ« prototip i rootkit-it Curing, i cili kryen veprime tĂ« tilla si pranimi i komandave nga njĂ« tĂ« jashtĂ«m serverĂ« dhe dĂ«rgimi/modifikimi i skedareve. NĂ« demonstrim u pĂ«rdor dĂ«rgimi i njĂ« kĂ«rkese nĂ« portin TCP 8888 tĂ« njĂ« host-i tĂ« jashtĂ«m dhe dĂ«rgimi i pĂ«rmbajtjes sĂ« skedarit â/etc/shadowâ. NĂ«nkuptohet se pas komprometimit tĂ« suksesshĂ«m tĂ« sistemit dhe marrjes sĂ« tĂ« drejtave root, sulmuesi instalon rootkit-in pĂ«r tĂ« konsoliduar praninĂ« e tij nĂ« sistemin e komprometuar.
Në eksperimentin e kryer, aktiviteti i rootkit-it Curing nuk u vërejt nga mjetet e monitorimit Falco dhe Tetragon, të cilat përdoren për të identifikuar anomalitë që lidhen me sigurinë në host-e dhe kontejnerë (mbështetet integrimi me infrastrukturën e bazuar në Kubernetes). Mjetet e përmendura përdorin kapjen e thirrjeve sistemore për të analizuar ngjarje të tilla si nisja e proceseve, aktivizmi rrjetë dhe puna me skedarët, por nuk marrin parasysh mundësinë e përdorimi të nën-sistemit io_uring për operacione të tilla. Pjesa më e madhe e sistemeve komerciale për zbulimin dhe reagimin ndaj incidenteve të sigurisë për Linux gjithashtu bazohet në kapjen e thirrjeve sistemore.
Për të shmangur anashkalimin e instrumenteve të ndjekjes së aktivitetit rrjetor dhe të skedarëve, rekomandohet përdorimi i mekanizmit KRSI (Kernel Runtime Security Instrumentation), i cili u shfaq në kernelin Linux 5.7 dhe lejon lidhjen e programeve BPF me çdo LSM-hook. Për shembull, KRSI në nivelin e LSM-hook-ëve ofron mundësinë për të ndjekur operacionet me skedarët, qasjen në rrjet dhe nisjen e proceseve, pavarësisht nëse këto operacione inicion janë përmes thirrjeve sistemike specifike ose përmes io_uring.
Më parë, nën-sistemi io_uring ishte objekt i kritikave për shkak të dobësive serioze që shfaqeshin vazhdimisht. Në përgjigje të dëshirave të përdoruesve për një mjet të thjeshtë për të çaktivizuar io_uring pa ribërjen e kernelit, në kernelin Linux 6.6 u shtua sysctl io_uring_disabled. Kompania Google e çaktivizoi si parazgjedhje io_uring në ChromeOS, Android dhe në produktet e saj. sistemet, duke shpjeguar se situata e pafavorshme me sigurinë në io_uring e tejkalon përfitimet e përdorimit të io_uring për përmirësimin e performancës.
Burimi: opennet.ru
