Vedci z spoločnosť ARMO Pred pár dňami vydali publikáciu, v ktorej uviedli vyjadril znepokojenie v rastúcom trende vývoja malvéru: schopnosť vytvárať plne funkčné rootkity, ktoré sa vyhýbajú tradičným metódam detekcie.
Výskumníci vo svojej publikácii uvádzajú, že ústredným bodom tejto stratégie je použitie io_uring, asynchrónneho vstupno-výstupného rozhrania linuxového jadra, ktoré umožňuje vykonávanie bežných operácií, ako je čítanie a zápis súborov alebo nadväzovanie sieťových pripojení, bez použitia systémových volaní, ktoré sú zvyčajne monitorované bezpečnostnými nástrojmi.
Pred dvoma rokmi náš tím v ARMO skúmal, ako obísť a manipulovať s monitorovacími nástrojmi založenými na eBPF. Medzi najzaujímavejšie techniky, ktoré sme skúmali, patrila manipulácia s mapou eBPF a útoky TOC-TOU.
Toto vyšetrovanie nás priviedlo k zaujímavému blogovému príspevku zo 6. júna 2022. Vo svojom blogu Daniel Teixeira, vedúci operátor Red Teamu, demonštroval, ako môže io_uring obísť monitorovanie systémových volaní v systémoch Linux. Túto metódu sme považovali za veľmi zaujímavú, ale nebola úplne preskúmaná, preto sme pozorne sledovali jej vývoj.
Čo je to io_uring a prečo predstavuje zmenu paradigmy?
Predstavené v Linuxe 5.1, io_uring Je to API určené pre asynchrónne I/O operácie vysoký výkon. Jeho prevádzka Je založený na dvoch zdieľaných kruhových vyrovnávacích pamätiach medzi používateľským priestorom a priestorom jadra. Táto štruktúra umožňuje aplikáciám odosielať viacero I/O požiadaviek, ktoré sa spracujú bez blokovania volajúceho vlákna, čím sa eliminuje potreba viacerých systémových volaní.
Na rozdiel od tradičných UNIXových I/O API, kde každá operácia (čítanie, zápis, pripojenie atď.) vyžaduje explicitné systémové volanie, io_uring ponúka efektívnejšie a flexibilnejšie rozhranie. Medzi jeho výhody patrí zníženie režijných nákladov tým, že sa zabráni neustálemu kopírovaniu údajov medzi jadrom a používateľským priestorom.
Ale táto tá istá efektívnosť sa teraz považuje za slabinu. Z bezpečnostného hľadiska sa mnohé nástroje určené na detekciu škodlivého správania spoliehajú výlučne na sledovanie systémových volaní. Ak rootkit koná bez ich použitia, tieto nástroje sa stanú slepými.
Liečba: Tajný rootkit
Na demonštráciu tejto techniky, Spoločnosť ARMO vyvinula funkčný prototyp s názvom Curing, rootkit, ktorý funguje výhradne prostredníctvom io_uring. Jeho účel: prijímať pokyny zo vzdialeného servera a vykonávať operácie, ako je prenos alebo zmena systémových súborov. V demonštrácii sa Curingovi podarilo získať prístup k súboru /etc/shadow cez TCP pripojenie na porte 8888 bez toho, aby jeho aktivitu detekovali nástroje Falco alebo Tetragon.
Obe riešenia zlyhali, pretože nezohľadnili použitie io_uring ako komunikačný kanál. To isté platí pre väčšinu komerčných nástrojov na detekciu a reakciu na incidenty v prostrediach Linuxu, ktoré sa spoliehajú na zachytávanie systémových volaní ako na svoj primárny prostriedok monitorovania.
Čo sa dá robiť?
Tvárou v tvár tejto hrozbe, Výskumníci odporúčajú prijať hlbšie monitorovacie mechanizmy, ako napríklad KRSI (Kernel Runtime Security Instrumentation). KRSI, zavedené od jadra 5.7, umožňuje priame pripojenie programov BPF (eBPF) k hookom LSM (Linux Security Module), čím poskytuje prehľad aj v prípade, že operácie negenerujú systémové volania.
S touto technikou, Je možné sledovať prístup k súborom, sieťové pripojenia a dokonca aj vykonávanie procesov spustených prostredníctvom io_uring. Integrácia KRSI do bezpečnostných riešení by umožnila spoľahlivejšie monitorovanie prispôsobené moderným technikám obchádzania.
A Toto nie je prvýkrát, čo io_uring spôsobil problémy., pretože v posledných rokoch bol v centre niekoľkých kritických zraniteľností. Kvôli týmto bezpečnostným problémom, Google sa rozhodol túto funkciu zakázať. štandardne v prostrediach ako ChromeOS, Android a ich vlastných serverových infraštruktúrach. V tomto duchu bol od jadra Linuxu 6.6 zavedený nový parameter sysctl s názvom io_uring_disabled, ktorý umožňuje administrátorom úplne zakázať io_uring bez nutnosti prekompilovať jadro.
Nakoniec, ak máte záujem dozvedieť sa viac o tom, môžete si prečítať podrobnosti v nasledujúci odkaz.