Prototipi i një rootkiti për Linux, i cili përdor io_uring për të anashkaluar analizatorët e thirrjeve të sistemit

Kërkuesit nga kompania ARMO demonstruan mundësinë e krijimit të rootkit-eve që nuk përdorin thirrje specifike sistemore për të kryer operacione të zakonshme, siç janë leximi/shkrimi i skedarëve dhe marrja e komandave nga një server jashtë. Në vend të thirrjeve sistemore për kryerjen e operacioneve rrjet dhe skedarësh, është propozuar përdorimi i ndërfaqes së hyrjes/ndërrimit asinkron io_uring, e cila mbështetet që nga bërthama Linux 5.1.

Thelbi i metodës është se, në vend të thirrjeve sistemore të veçanta për qasje në skedarë dhe për të kryer operacione rrjeti (read/write, recv/send/connect/bind/listen), mund të përdoren thirrje të zakonshme sistemore io_uring (io_uring_enter, io_uring_setup, io_uring_register etj.) që 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. Një mundësi që lejon nisjen e proceseve të reja përmes io_uring është në zhvillim.

Për të demonstruar funksionimin e metodës, është përgatitur një prototip i rootkit-it Curing, i cili ekzekuton veprime të tilla si marrja e komandave nga jashtë. serverit dhe transferi/për ndryshimin e skedarëve. Në demonstrimin e bërë u përdor dërgimi i kërkesës në portin TCP 8888 të një hosts të jashtëm dhe dërgimi i përmbajtjes së skedarit "/etc/shadow". Supozohet se pas kompromitimit të suksesshëm të sistemit dhe marrjes së të drejtave root, sulmuesi vendos një rootkit për të konsoliduar praninë e tij në sistemin e shpërthyer.

Në eksperimentin e kryer, aktiviteti i rootkitit Curing nuk u vërejt nga mjetet e monitorimit Falco dhe Tetragon, të cilat përdoren për të identifikuar anomalitë e lidhura me sigurinë në host dhe konteinerë (integrimi me infrastrukturën bazuar në Kubernetes mbështetet). Këto mjete përdorin interceptimin e thirrjeve sistemore për të analizuar ngjarje si fillimi i proceseve, aktiviteti rrjetor dhe interaksioni me skedarët, por nuk marrin parasysh mundësinë e përdorimit të nën-sistemit io_uring për operacione të tilla. Shumica e sistemeve komerciale të zbulimit dhe reagimit ndaj incidenteve të sigurisë në Linux gjithashtu përfshin interceptimin e thirrjeve sistemore.

Për të shmangur parandalimin e mjeteve të gjurmimit të aktiviteve rrjetore dhe të skedarëve, rekomandohet përdorimi i mekanizmit KRSI (Instrumentimi i Sigurisë në Koha Reale të Bërthamës), i shfaqur në bërthamën Linux 5.7, i cili mundëson bashkimin e programeve BPF me çdo kapëse LSM. Për shembull, KRSI në nivelin e kapëseve LSM ofron mundësinë për të gjurmuar operacionet me skedarët, aksesin rrjetor dhe ekzekutimin e proceseve, pavarësisht nëse këto operacione janë iniciuar përmes thirrjeve specifike të sistemit ose përmes io_uring.

Më parë, nënsistemi io_uring ka qenë objekt i kritikave për shkak të shfaqjes së rregullt të dobësive të rënda. Në përgjigje të kërkesave të përdoruesve që dëshironin një mjet të thjeshtë për të çaktivizuar io_uring pa e rindërtuar bërthamën, në bërthamën Linux 6.6 u shtua sysctl io_uring_disabled. Kompania Google ka çaktivizuar për default io_uring në ChromeOS, Android dhe në sistemet e saj serverë, duke shpjeguar se situata e keqe me sigurinë në io_uring përbën më shumë probleme sesa përfitimet e përdorimit të io_uring për përmirësimin e performancës.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster