• CopyKat hittar 122 byggstenar som kan förvandla små minnesfel till rootåtkomst

    Ett begränsat minnesfel i Linuxkärnan behöver inte ge en angripare särskilt stor kontroll. Men säkerhetsverktyget CopyKat visar hur till synes oskyldiga kärnobjekt kan användas som förstärkare – och hjälpa angriparen att ta kontroll över hela systemet.

    Forskare vid IBM Research Europe och Vrije Universiteit Amsterdam har utvecklat CopyKat, ett automatiserat system som letar efter användbara byggstenar för avancerade attacker mot Linuxkärnan.

    Under en 32 dagar lång analys hittade systemet 122 verifierade kärnobjekt som forskarna kallar Controllable-Copy Objects, förkortat CCO. Gemensamt för objekten är att de under rätt omständigheter kan förvandla ett begränsat minnesfel till en betydligt kraftfullare skrivoperation.

    Forskarna visade att metoden fungerar i praktiken genom att konstruera åtta fullständiga attacker som gav rootbehörighet. Attackerna utgick från redan kända sårbarheter, bland annat use-after-free-fel, dubbla frigörningar av minne och skrivningar utanför ett tilldelat minnesområde. Resultaten presenterades vid USENIX Security ’26.

    Från ett litet fel till full kontroll

    Ett minnesfel i Linuxkärnan innebär inte automatiskt att en angripare kan skriva vad som helst var som helst. Felet kanske bara gör det möjligt att ändra några få byte, skriva utanför kanten på ett objekt eller använda ett minnesområde som redan har frigjorts.

    För att nå rootåtkomst behöver angriparen därför ofta hitta en metod som förstärker den begränsade möjligheten.

    Det är här de objekt som CopyKat letar efter kommer in i bilden.

    Ett CCO är en datastruktur som har skapats i kärnans dynamiska minne och innehåller en pekare till ett annat minnesområde. Pekaren används senare av exempelvis memcpy eller memmove för att bestämma vart information ska kopieras.

    Om en angripare kan ändra pekaren kan kärnans egen kopieringsfunktion luras att skriva angriparens data till en annan plats.

    Det kan jämföras med att någon bara har möjlighet att ändra adressfältet på en fraktsedel. Personen kan inte själv flytta varorna, men genom att skriva dit en annan adress får den legitima transportören att leverera lasten till fel plats.

    I Linuxkärnan kan den nya destinationen exempelvis vara en struktur som innehåller användarens UID och GID. Om dessa värden ändras till noll kan angriparens process få samma behörigheter som root.

    Angrepp utan att kapa programmets väg

    Traditionella attacker mot operativsystemets kärna försöker ofta ändra programmets kontrollflöde. Angriparen manipulerar exempelvis en funktionspekare eller returadress så att processorn börjar köra kod som angriparen har valt.

    Moderna skydd som Control-Flow Integrity gör sådana angrepp svårare. De kontrollerar att programmet följer tillåtna vägar genom koden.

    Dataorienterade attacker fungerar annorlunda. Kärnan fortsätter att köra sina vanliga funktioner i rätt ordning, men funktionerna arbetar med manipulerade uppgifter. Eftersom kontrollflödet inte behöver kapas kan attacken passera skydd som huvudsakligen övervakar vilka kodvägar som används.

    CopyKat söker därför efter legitima kärnobjekt som kan missbrukas för att flytta data till en plats som angriparen väljer.

    Tre analyssteg sållade fram objekten

    Forskarna byggde CopyKat som en kedja av tre analyser.

    I det första steget användes en modifierad version av fuzzverktyget Syzkaller tillsammans med en instrumenterad Linuxkärna. Systemet följde hur information från användarutrymmet flyttades genom kärnan och letade efter kopieringar där måladressen påverkades av en pekare lagrad i ett kärnobjekt.

    Fuzzningen hittade 434 intressanta operationer. Av dessa var 386 anrop till memcpy, medan resterande huvudsakligen bestod av memmove och enklare skrivoperationer.

    Den snabba analysen kunde även rapportera falska träffar. Kandidaterna granskades därför i ett andra steg med PANDA, en analysplattform som kan spela in och upprepa körningen av ett helt system. Där kontrollerades att data verkligen kom från användaren och att måladressen verkligen hämtades från det misstänkta objektet.

    Slutligen användes plattformen S2E för så kallad concolic exekvering, en kombination av konkret och symbolisk programkörning. CopyKat ändrade objektets pekare och undersökte vilka villkor som måste vara uppfyllda för att kärnan fortfarande skulle nå fram till kopieringsoperationen.

    Efter den stegvisa sållningen återstod 122 verifierade CCO-objekt. Av dessa fanns 52 i nätverkskoden, 31 i filsystemen och 12 bland drivrutinerna. Övriga hittades bland annat i kryptografi-, ljud-, minnes- och säkerhetskod. Analysen genomfördes på Linux 6.4.1, enligt forskarnas fullständiga rapport.

    Åtta attacker slutade med rootåtkomst

    För att visa att objekten inte bara var teoretiskt intressanta byggde forskarna åtta kompletta privilegieattacker utifrån fyra tidigare kända sårbarheter.

    I demonstrationerna användes CCO-objekten för att styra skrivningar mot säkerhetskritiska delar av kärnminnet. Forskarna kunde bland annat ändra användaruppgifter eller manipulera inställningarna modprobe_path och core_pattern, vilka under vissa förutsättningar kan få kärnan att starta ett program med förhöjda rättigheter.

    Sju av attackerna använde separata systemanrop för att skapa objektet och aktivera kopieringen. I det åttonde fallet skedde båda momenten inom samma systemanrop. Angriparen behövde då träffa ett mycket kort tidsfönster, vilket forskarna lyckades göra med flera trådar och en blockeringsmekanism baserad på FUSE.

    Forskarna uppger samtidigt att exploateringen fortfarande krävde flera manuella och tekniskt avancerade moment. CopyKat skapar alltså inte automatiskt ett färdigt rootangrepp, men systemet kan minska det arbete som krävs för att hitta lämpliga objekt och förstå hur de måste manipuleras.

    Inte 122 nya Linuxsårbarheter

    Resultatet betyder inte att forskarna har hittat 122 nya säkerhetshål. CCO-objekten är vanliga delar av kärnan som normalt utför legitima uppgifter.

    För att missbruka ett sådant objekt behöver angriparen redan ha tillgång till ett användbart minnesfel. Angriparen måste dessutom kunna placera ett lämpligt CCO nära det sårbara minnesområdet, ändra rätt pekare, uppfylla objektets övriga villkor och aktivera kopieringen vid rätt tidpunkt.

    Undersökningen gjordes på Linux 6.4.1. Den visar därför inte att samtliga 122 objekt finns kvar eller fungerar på exakt samma sätt i alla nyare kärnversioner och distributioner.

    Linuxanvändare behöver inte installera någon särskild nöduppdatering på grund av CopyKat. Däremot understryker forskningen betydelsen av att installera vanliga säkerhetsuppdateringar, eftersom ett till synes begränsat minnesfel kan vara mer användbart för en angripare än en första bedömning visar.

    Kan påvhttps://www.usenix.org/conference/usenixsecurity26/technical-sessionserka hur kärnfel bedöms

    Den viktigaste följden av CopyKat kan bli hur säkerhetsforskare, distributioner och kärnutvecklare bedömer nya minnessårbarheter.

    Ett fel som tidigare har klassats som svårt att utnyttja kan bli betydligt allvarligare om det går att kombinera med ett lämpligt CCO. Databasen över objekten kan därför användas för att prioritera sårbarheter och utveckla nya skydd mot dataorienterade attacker.

    Forskarna inforhttps://www.usenix.org/conference/usenixsecurity26/technical-sessionsmerade Linuxutvecklaren Greg Kroah-Hartman före publiceringen. Bedömningen var att forskningen kunde publiceras utan embargo eftersom CopyKat beskriver en exploateringsteknik och inte en ny direkt sårbarhet. De åtta färdiga attackerna har inte offentliggjorts i vapenfärdig form.

    CopyKat visar därmed hur säkerhetskapplöpningen förändras. När skydden mot traditionell kapning av kontrollflödet blir bättre söker angripare efter andra vägar. I stället för att få kärnan att köra främmande kod kan det räcka att lura dess befintliga kod att flytta rätt data till fel plats.

    https://www.usenix.org/conference/usenixsecurity26/technical-sessions

    Rapporten är på ca 7000 sidor.

Etikett: IBM Research

  • CopyKat hittar 122 byggstenar som kan förvandla små minnesfel till rootåtkomst

    Ett begränsat minnesfel i Linuxkärnan behöver inte ge en angripare särskilt stor kontroll. Men säkerhetsverktyget CopyKat visar hur till synes oskyldiga kärnobjekt kan användas som förstärkare – och hjälpa angriparen att ta kontroll över hela systemet. Forskare vid IBM Research Europe och Vrije Universiteit Amsterdam har utvecklat CopyKat, ett automatiserat system som letar efter användbara…