Forskare frÄn företaget ARMO har demonstrerat möjligheten att skapa rootkits som inte anvÀnder specifika systemanrop för att utföra typiska operationer, som att lÀsa/skriva filer och ta emot kommandon frÄn en extern server. IstÀllet för systemanrop för att utföra nÀtverks- och filoperationer föreslÄs det att anvÀnda grÀnssnittet för asynkron in-/utdata io_uring, som har stöds sedan Linux-kÀrnan 5.1.
Metodens kÀrna Àr att man istÀllet för separata systemanrop för att fÄ tillgÄng till filer och genomföra nÀtverksoperationer (read/write, recv/send/connect/bind/listen) kan anvÀnda gemensamma systemanrop io_uring (io_uring_enter, io_uring_setup, io_uring_register etc.), som inte analyseras av typiska verktyg för att upptÀcka skadlig aktivitet. GrÀnssnittet io_uring stöder cirka 60 olika operationer. Det utvecklas en funktion som tillÄter att starta nya processer via io_uring.
För att demonstrera metodens funktion har ett prototyp av rootkit kallat Curing tagits fram, som utför handlingar sÄsom att ta emot kommandon frÄn externa servern och överföra/Àndra filer. I demonstrationen anvÀndes en begÀran till TCP-port 8888 pÄ en extern vÀrd samt överföring av innehÄllet i filen "/etc/shadow". Det antas att efter en framgÄngsrik kompromiss av systemet och erhÄllande av root-rÀttigheter installerar angriparen rootkiten för att sÀkra sin nÀrvaro pÄ den hackade systemet.
I det genomförda experimentet var aktiviteten av rootkiten Curing osynlig för övervakningsverktygen Falco och Tetragon, som anvÀnds för att identifiera sÀkerhetsrelaterade anomalier pÄ vÀrdar och i containrar (stöd för integration med Kubernetes-baserad infrastruktur). De nÀmnda verktygen anvÀnder avlyssning av systemanrop för att analysera hÀndelser som processstart, nÀtverksaktivitet och filhantering, men tar inte hÀnsyn till möjligheten att anvÀnda io_uring-subsystemet för sÄdana operationer. Största delen av de kommersiella sÀkerhetssystem som finns för Linux för att upptÀcka och svara pÄ sÀkerhetsincidenter bygger ocksÄ pÄ avlyssning av systemanrop.
För att förhindra att verktyg för att spÄra nÀtverks- och filaktiviteter kringgÄr systemanrop rekommenderas det att anvÀnda mekanismen KRSI (Kernel Runtime Security Instrumentation), som introducerades i Linux-kÀrnan 5.7 och gör det möjligt att fÀsta BPF-program till alla LSM-hakar. Till exempel möjliggör KRSI pÄ LSM-haknivÄ spÄrning av filoperationer, nÀtverksÄtkomst och processstarter, oavsett om dessa operationer initieras genom specifika systemanrop eller genom io_uring.
Tidigare har io_uring-subsystemet varit föremÄl för kritik pÄ grund av regelbundet Äterkommande allvarliga sÄrbarheter. Som svar pÄ anvÀndarnas önskemÄl om ett enkelt verktyg för att stÀnga av io_uring utan att behöva bygga om kÀrnan, har sysctl io_uring_disabled lagts till i Linux-kÀrnan 6.6. Google har som standard inaktiverat io_uring i ChromeOS, Android och pÄ sina servrar, och förklarade att den bedrövliga sÀkerhetssituationen med io_uring vÀger tyngre Àn fördelarna med att anvÀnda io_uring för att förbÀttra prestanda.
KĂ€lla: opennet.ru
