Simovits

UEFI-rootkits – från PoC till LoJax

UEFI, Unified Extensible Firmware Interface, är en specifikation som definierar gränssnitt mellan operativsystemet och firmware och en ersättare till BIOS, Basic Input/Output System. UEFI ser till att ladda de komponenter som behövs för att din dator ska starta. Rootkit är en annan definition som behöver förtydligas lite inför detta inlägg – ett rootkit fångar och byter ut de inbyggda operativssystemsprocesserna, och på så sätt kan den dölja skadlig aktivitet i det som ser ut som är riktiga processer. Vid infektion av ett rootkit kan du inte längre lita på den information från den infektera enheten, eftersom rootkitet kontrollerar vad vissa processer gör. T.ex. skulle den kunna dölja vissa processer som körs för att kunna dölja sig själv. Ett UEFI-rootkit skulle alltså kunna injicera sig under bootprocessen i operativsystemet – eftersom att UEFI är den som ser till att bland annat operativsystemet laddas. Det kluriga med UEFI, eller även BIOS, rootkits är att de överlever ominstallation av operativsystem och även hårddiskbyte, eftersom den skadliga koden är flashad till SPI flashminnet som sitter på moderkortet.

Hacking Team läcker UEFI rootkit

I januari 2015 publicerade det italienska it-säkerhetsföretaget Hacking Team att de blivit hackade vilket ledde till att ca. 400GB data läcktes. Bland all data fanns bland annat e-post och kundinformation, men även källkod för olika typer av skadlig kod. Bland källkoden fanns ett Remote Command System (RCS) som använder sig av en UEFI rootkit för att hålla sig kvar. Hacking Teams metod kräver att angriparen har fysisk tillgång till systemet och nedan följer ett exempel på hur det skulle kunna gå till:

Den intresserade kan läsa vidare om HackingTeams UEFI rootkit på exempelvis TrendMicros hemsida [2].

Det finns en mängd andra PoC:ar på UEFI/BIOS rootkit, t.ex. NSAs har en mängd olika varianter i sin ”katalog” bl.a. Deitybounce, Ironchef och Jetplow.

LoJax i det vilda

Tidigare har inte ett UEFI rootkit observerats i det vilda (inte heller Hacking Teams UEFI rootkit) – förrän nu. ESET upptäckte att APT-gruppen Sednit (även kända som APT28, FancyBear, Sofacy eller STRONTIUM) har lyckats installera ett UEFI rootkit som fått namnet Lojax. Lojax har fått sitt namn p.g.a. likheter med anti-stöldlösningen LoJack som ser till att kommunicera med en typ av C&C för att kunna hitta enheten. För att LoJack, en anti-stöldlösning, ska kunna fungera även efter att hårddisken har blivit utbytt och operativsystemet har blivit ominstallerat så installerades den som en UEFI/BIOS modul – något som skulle kunna användas av ett rootkit också.

ESET har identifierat LoJax hos organisationer i Balkan och Centrala- och Östeuropa. Kopplingarna till Sednit kunde göras då andra komponenter som är kända att användas av Sednit identifierades, bland annat bakdörrar och proxyverktyg – dock hade inte alla som drabbats av LoJax dessa. Infektionsvektorn för LoJax är okänd, även om misstanke finns att en Sednit bakdörr gjort det möjligt att infektera maskinerna med LoJax. När LoJax har fått fotfäste har angriparen full kontroll över din dator även om du kanske inte märker det – och det är sannolikt svårt att upptäcka det.

Hur kan man skydda sig?

För att skydda sig mot UEFI rootkits så är det första steget att ha ett uppdaterat anti-virus eftersom det kan vara en potentiell infektionsvektor. Secure Boot (som aktiveras i UEFI) bör också användas, det förhindrar att komponenter som inte är godkända eller signerade laddas vid boot. Kontrollen sker dock inte av det som ligger i SPI flashminnet och det skulle inte vara ett skydd LoJax – men det är en bra funktion som bör användas! Vidare gäller att hålla programvara uppdaterad och det gäller även UEFI firmware, något som inte är lika vanligt att hålla uppdaterat.

Det här blogginlägget är endast en mycket kort och o-teknisk presentation av UEFI rootkits och en sammanfattning om LoJax. UEFI rootkits är nu ett realistiskt hot. För den intresserade så vill jag passa på att tipsa om att läsa vidare i ESETs analys för att gräva i mer detaljer om hur LoJax fungerar [3].

Källor och mer läsning:

[1] https://www.blackhat.com/docs/asia-17/materials/asia-17-Matrosov-The-UEFI-Firmware-Rootkits-Myths-And-Reality.pdf – Presentation från BlackHat Asia 2017 om UEFI Rootkits (Alex Matrosov, Eugene Rodionov)
[2] https://blog.trendmicro.com/trendlabs-security-intelligence/hacking-team-uses-uefi-biosrootkit-to-keep-rcs-9-agent-in-target-systems/ – Hacking Teams rootkit
[3] https://www.welivesecurity.com/wp-content/uploads/2018/09/ESET-LoJax.pdf – ESETs analys av LoJax