Niewykrywalny rootkit dla czipów Intela. Wykorzystano lukę tkwiącą w x86 od 18 lat Strona główna Aktualności10.08.2015 13:49 Udostępnij: O autorze Adam Golański @eimi Tegorocznej konferencji BlackHat nie można uznać za nudną. Jednym z najciekawszych jej punktów była prezentacja Christophera Domasa z Battelle Memorial Institute, który pokazał, jak można wykorzystać funkcję wprowadzoną 18 lat temu do mikroprocesorów Intela, by zainstalować w BIOS-ie rootkit, a nawet zdalnie zniszczyć komputer. Tego typu malware jest praktycznie niewykrywalne dla narzędzi antywirusowych. Zagrożenie kryje się w System Management Mode (SMM), który zadebiutował w specjalnych wersjach procesorów Intel 80386. To tryb działania, w którym wszystkie normalne operacje (włącznie z aktywnością systemu operacyjnego) zostają zawieszone, podczas gdy uruchomione zostaje specjalne oprogramowanie, będące częścią firmware lub np. sprzętowych debuggerów. Jego główną zaletą miało być zapewnienie producentom sprzętu łatwego do izolacji środowiska, niezależnego od systemu operacyjnego i dającego pełny dostęp do hardware. Przez SMM mamy dostęp do wszystkich zdarzeń systemowych, możemy kontrolować zarządzanie energią i parametry chłodzenia, zarządzać uśpieniem, emulować urządzenia zewnętrzne, kontrolować flashowanie BIOS-a itp. Po raz pierwszy metodę wykorzystania SMM do uruchomienia rootkitu pokazano siedem lat temu, też na konferencji BlackHat. Zaprezentowany wówczas szkodnik potrafił działać poza systemem operacyjnym, łącząc się bezpośrednio z interfejsem karty sieciowej, by potajemnie komunikować się ze światem, był jednak zależny od konkretnego modelu sprzętu, tak że uznano go raczej za ciekawostkę akademicką, niż za uniwersalne zagrożenie. A jak jest teraz? Według Christophera Domasa, odkryty przez niego atak jest znacznie bardziej uniwersalny. W swojej pracy pt. The Memory Sinkhole pisze: W świecie x86, poza pierścieniem 0 leżą bardziej uprzywilejowane domeny uruchomieniowe, gdzie kod jest niewidzialny dla antywirusów, gdzie mamy nieograniczony dostęp do sprzętu, gdzie modyfikowanie z wyprzedzeniem zachowań systemu jest trywialnie łatwe. Architektura ta nagromadziła całe warstwy zabezpieczeń na tych „negatywnych” pierścieniach, lecz 40 lat ewolucji x86 pozostawiło w nich labirynt zapomnianych furtek, prowadzących do ultrauprzywilejowanych furtek. Zagubiony w bizantyjskiej konstrukcji z mających dziesiątki lat usprawnień i łatek spoczywa błąd projektowy, którego nie zauważono przez 20 lat. Wykorzystując ogromne, niezbadane pustkowia zapomnianych funkcji x86 pokazujemy, jak wyprowadzić złośliwy kod z pierścienia 0 w najgłębsze, najciemniejsze zakamarki procesora. Atak przeprowadzony jest poprzez lukę 0-day tkwiącą w samym krzemie, przeciwko podatnemu oprogramowaniu powszechnie używanemu na współczesnych systemach. Przedstawiony kod pozwalać ma na przeniesienie złośliwego ładunku z pierścienia 0 (trybu kernela) niżej, do pierścieni -1 i -2 (SMM), oddając napastnikowi całkowitą kontrolę nad maszyną. Wykorzystuje w tym celu sztuczkę związaną z kontrolerem przerwań x86 (APIC), który kiedyś, by rozwiązać starą usterkę, otrzymał możliwość odwzorowania rejestrów do innego obszaru pamięci. Niespodziewanie dla Intela, pozwoliło to na uzyskanie dostępu do bezpiecznego obszaru pamięci System Management RAM, gdzie znajdować się ma kod SMM. Nie jest to łatwe, nie ma możliwości bezpośredniego kontrolowania danych APIC, ale w końcu badaczowi udało się znaleźć sposób na „zanurzenie” kodu działającego w pierścieniu 0 głębiej, za pomocą takich operacji relokacji rejestrów. Taki atak jest w stanie obejść wszelkie zabezpieczenia typu SecureBoot, gdyż są one zależne w swoim działaniu od SMM. Nawet kernel nie ma takich przywilejów, jak kod realizowany w pierścieniu -2 (źródło: Wikimedia) Na atak ma być podatnych ponad 100 mln maszyn, choć jego przeprowadzenie nie jest łatwe – najpierw należy uruchomić na komputerze ofiary kod z uprawnieniami kernela. Uważa się, że taki atak mógłby być stosowany przez mających wsparcie instytucji państwowych hakerów, mogących skorzystać z operacji w terenie, włamania do domu ofiary i uruchomienia na jej komputerze szpiegowskiego oprogramowania. Intel jest świadomy problemu, i jak stwierdził Domas, w najnowszych jego procesorach atak już nie działa. Niektóre starsze modele czipów, które będzie można załatać, otrzymają aktualizację firmware. A co z procesorami AMD? Tu badacz przyznaje, że jego exploit nie został na nich przetestowany. Uważa jednak, że czipy x86 zrobione przez „czerwonych” też powinny być na atak podatne. Użytkownikom pozostaje jedynie pilnować się, by czasem nie dostać złośliwego oprogramowania działającego na poziomie jądra – bo jeśli napastnikom uda się zastosować atak opisany przez Domasa, to już malware takiego nie usuną. Oprogramowanie Udostępnij: © dobreprogramy Zgłoś błąd w publikacji Zobacz także Luka Spectre dała dostęp do najbardziej chronionego trybu działania procesora 21 maj 2018 Adam Golański Bezpieczeństwo 30 Miliony smartfonów z Androidem podatne na ataki. Google po roku wypatrzył lukę 4 mar 2020 Jakub Krawczyński Oprogramowanie Bezpieczeństwo 45 Zhaoxin rozpocznie sprzedaż konsumenckiego procesora x86 "dla entuzjastów" 30 sty 2020 Piotr Urbaniak Sprzęt Biznes 60 Intel Core i5-L15G7 Lakefield dostrzeżony w benchmarku. Szału nie ma 23 mar 2020 Piotr Urbaniak Sprzęt 13
Udostępnij: O autorze Adam Golański @eimi Tegorocznej konferencji BlackHat nie można uznać za nudną. Jednym z najciekawszych jej punktów była prezentacja Christophera Domasa z Battelle Memorial Institute, który pokazał, jak można wykorzystać funkcję wprowadzoną 18 lat temu do mikroprocesorów Intela, by zainstalować w BIOS-ie rootkit, a nawet zdalnie zniszczyć komputer. Tego typu malware jest praktycznie niewykrywalne dla narzędzi antywirusowych. Zagrożenie kryje się w System Management Mode (SMM), który zadebiutował w specjalnych wersjach procesorów Intel 80386. To tryb działania, w którym wszystkie normalne operacje (włącznie z aktywnością systemu operacyjnego) zostają zawieszone, podczas gdy uruchomione zostaje specjalne oprogramowanie, będące częścią firmware lub np. sprzętowych debuggerów. Jego główną zaletą miało być zapewnienie producentom sprzętu łatwego do izolacji środowiska, niezależnego od systemu operacyjnego i dającego pełny dostęp do hardware. Przez SMM mamy dostęp do wszystkich zdarzeń systemowych, możemy kontrolować zarządzanie energią i parametry chłodzenia, zarządzać uśpieniem, emulować urządzenia zewnętrzne, kontrolować flashowanie BIOS-a itp. Po raz pierwszy metodę wykorzystania SMM do uruchomienia rootkitu pokazano siedem lat temu, też na konferencji BlackHat. Zaprezentowany wówczas szkodnik potrafił działać poza systemem operacyjnym, łącząc się bezpośrednio z interfejsem karty sieciowej, by potajemnie komunikować się ze światem, był jednak zależny od konkretnego modelu sprzętu, tak że uznano go raczej za ciekawostkę akademicką, niż za uniwersalne zagrożenie. A jak jest teraz? Według Christophera Domasa, odkryty przez niego atak jest znacznie bardziej uniwersalny. W swojej pracy pt. The Memory Sinkhole pisze: W świecie x86, poza pierścieniem 0 leżą bardziej uprzywilejowane domeny uruchomieniowe, gdzie kod jest niewidzialny dla antywirusów, gdzie mamy nieograniczony dostęp do sprzętu, gdzie modyfikowanie z wyprzedzeniem zachowań systemu jest trywialnie łatwe. Architektura ta nagromadziła całe warstwy zabezpieczeń na tych „negatywnych” pierścieniach, lecz 40 lat ewolucji x86 pozostawiło w nich labirynt zapomnianych furtek, prowadzących do ultrauprzywilejowanych furtek. Zagubiony w bizantyjskiej konstrukcji z mających dziesiątki lat usprawnień i łatek spoczywa błąd projektowy, którego nie zauważono przez 20 lat. Wykorzystując ogromne, niezbadane pustkowia zapomnianych funkcji x86 pokazujemy, jak wyprowadzić złośliwy kod z pierścienia 0 w najgłębsze, najciemniejsze zakamarki procesora. Atak przeprowadzony jest poprzez lukę 0-day tkwiącą w samym krzemie, przeciwko podatnemu oprogramowaniu powszechnie używanemu na współczesnych systemach. Przedstawiony kod pozwalać ma na przeniesienie złośliwego ładunku z pierścienia 0 (trybu kernela) niżej, do pierścieni -1 i -2 (SMM), oddając napastnikowi całkowitą kontrolę nad maszyną. Wykorzystuje w tym celu sztuczkę związaną z kontrolerem przerwań x86 (APIC), który kiedyś, by rozwiązać starą usterkę, otrzymał możliwość odwzorowania rejestrów do innego obszaru pamięci. Niespodziewanie dla Intela, pozwoliło to na uzyskanie dostępu do bezpiecznego obszaru pamięci System Management RAM, gdzie znajdować się ma kod SMM. Nie jest to łatwe, nie ma możliwości bezpośredniego kontrolowania danych APIC, ale w końcu badaczowi udało się znaleźć sposób na „zanurzenie” kodu działającego w pierścieniu 0 głębiej, za pomocą takich operacji relokacji rejestrów. Taki atak jest w stanie obejść wszelkie zabezpieczenia typu SecureBoot, gdyż są one zależne w swoim działaniu od SMM. Nawet kernel nie ma takich przywilejów, jak kod realizowany w pierścieniu -2 (źródło: Wikimedia) Na atak ma być podatnych ponad 100 mln maszyn, choć jego przeprowadzenie nie jest łatwe – najpierw należy uruchomić na komputerze ofiary kod z uprawnieniami kernela. Uważa się, że taki atak mógłby być stosowany przez mających wsparcie instytucji państwowych hakerów, mogących skorzystać z operacji w terenie, włamania do domu ofiary i uruchomienia na jej komputerze szpiegowskiego oprogramowania. Intel jest świadomy problemu, i jak stwierdził Domas, w najnowszych jego procesorach atak już nie działa. Niektóre starsze modele czipów, które będzie można załatać, otrzymają aktualizację firmware. A co z procesorami AMD? Tu badacz przyznaje, że jego exploit nie został na nich przetestowany. Uważa jednak, że czipy x86 zrobione przez „czerwonych” też powinny być na atak podatne. Użytkownikom pozostaje jedynie pilnować się, by czasem nie dostać złośliwego oprogramowania działającego na poziomie jądra – bo jeśli napastnikom uda się zastosować atak opisany przez Domasa, to już malware takiego nie usuną. Oprogramowanie Udostępnij: © dobreprogramy Zgłoś błąd w publikacji