Linux zainstalowany na twardym dysku – firmware pomieści też malware

Linux zainstalowany na twardym dysku – firmware pomieści też malware

Linux zainstalowany na twardym dysku – firmware pomieści też malware
19.03.2017 11:59

Linuksa można zainstalować dziś niemal wszędzie, widzieliśmyjuż ten system działający na PlayStation 4, Wielkim ZderzaczuHadronów i dojarkach do krów. Czy jednak można zainstalowaćLinuksa na twardym dysku? To podstępne pytanie znalazło ciekawąodpowiedź dzięki pracy Jeroena Domburga, autora blogaSpritesmods.com. Tak, to możliwe. Linux może działać też natwardym dysku, przy okazji ujawniając nowe, poważnecyberzagrożenie, o którym wcześniej nikt chyba nie myślał. Niejest to nowa praca, ale na tyle nas zaciekawiła, że postanowiliśmyją Wam przybliżyć.

Zastanówmy się, czym jest twardy dysk. Wirujące talerze, nadnimi głowica przeprowadzająca operacje zapisu i odczytu, od stronylogicznej to wszystko podzielone na sektory o rosnącej numeracji,tworzące logiczne bloki adresowe. Nad tym wszystkim abstrakcjasystemu plików. Sterowanie wydawałoby się jest proste. W środkujakiś mikrokontroler, który obsługuje ruch i zachowanie głowicy,rozpędzanie dysków, komunikację z komputerem,

Tak może i było kiedyś. Dzisiaj twarde dyski robią jednakznacznie więcej, oferują zarządzanie uszkodzonymi blokami,raportowanie SMART, niekiedy obsługują szyfrowanie, a i samwykorzystywany dziś interfejs SATA taki prosty nie jest. JeroenDomburg postanowił przyjrzeć się temu aspektowi elektronikisterującej twardego dysku bliżej. Czy można ją zhakować?

Obraz

Jeszcze jak. Na płytce z czipami znajdziemy naprawdę niezłąmoc obliczeniową. W analizowanym przez badacza dysku Western Digitalznalazła się kość pamięci DRAM (czego można się spodziewać –to przecież cache twardego dysku, niekiedy całe 64 MB),mikrokontroler zajmujący się sterowaniem motoru dysku, kośćpamięci flash NAND z firmware, oraz co najciekawsze – sam układkontrolera. Co w nim jest?

Dłubanie w krzemie

Od producentów tego się nie dowiecie. Robione przez Marvella, STi kilka innych firm układy praktycznie pozbawione są jakiejkolwiekdokumentacji, nikt się raczej nie powinien nimi interesować,prawda? A jednak… ktoś się zainteresował i odkrył rozkładpinów złącza JTAG, dającego bezpośredni dostęp do kontrolera.To był obiecujący początek – w ten sposób można modyfikowaćpamięć, ustawiać breakpointy, resetować i restartować. Wystarczypłytka interfejsu do JTAG-a, a potem pozostaje tylko uruchomić nakomputerze OpenOCD – otwartydebugger, który radzi sobie z mnóstwem różnych czipów.

Obraz

Podłączenie tego do kontrolera dysku twardego ujawniło jegociekawą zawartość. W środku są aż trzy rdzenie ARM, w tym dwamocne (Feroceons/arm9) i jeden taki sobie mikrokontrolerowy,Cortex-A9. Pierwszy mocny rdzeń obsługuje fizyczny odczyt i zapis ztalerzy dysku, drugi zaś interfejs SATA, cache oraz translacjęadresów LBA na CHS.

Potem już sporo dłubaniny cierpliwego hobbysty, który odtworzyłmapę pamięci kontrolera i zdisassemblował firmware, przy okazjiodkrywając coś zaskakującego. O ile w normalnych operacjachrdzenie ARM nie wpływają oczywiście na dane sczytywane izapisywane na dysk, to jednak można przechwycić operacje dyskowe,zanim trafią do interfejsu SATA – i zrobić z nimi wszystko.Pierwszy udany hack pokazał, że to całkowicie możliwe, ponadpisaniu własnego kodu sterującego drugim z rdzeni Feroceons, napoczątku każdego odczytywanego z dysku sektora pojawiała sięliczba podana do bufora, liczba której fizycznie na dysku nie było!

  • Slider item
  • Slider item
[1/2]

Kontrola i złośliwość

Co najważniejsze, te wszystkie zmiany można utrwalić. Dostaniesię do kości pamięci flash z firmware było łatwiejsze, niż dokontrolera. Kod co prawda był skompresowany nieznanym algorytmem,ale badacz dopisał po prostu swoje polecenia (tworząc poręcznenarzędzie do zapisu i odczytu), modyfikując adres, od któregofirmware było wywoływane. Coś takiego zresztą oferują częstoproducenci, tj. narzędzia do aktualizacji firmware urządzenia, sąteż ich opensource’owe odpowiedniki.

Na tym etapie nie było już trudno zrobić najbardziej złośliwąrzecz na świecie. Chwila fizycznego dostępu do komputera pozwalasflashować firmware dysku twardego. Nawet jeśli administratorodkryje, że ktoś uzyskał nieupoważniony dostęp i w imiębezpieczeństwa wyzeruje dysk, instalując na nim system na nowo, nicmu to nie pomoże. Zmodyfikowane firmware czeka na sygnał, a gdysygnał (np. określony ciąg danych zaszyty w pliku) zostaniezapisany na dysku, to nagle malware odczyta sobie zawartość pliku zhasłami (/etc/shadow) i na bieżąco zmodyfikuje jego zawartość,tak by pojawiły się tam wartości wcześniej przygotowane przeznapastnika. Potem tylko zdalny login i root już jest – w końcukontroler dopilnował, by hasło zostało porównane ze zmodyfikowanąwartością.

Linux ante portas

Proste malware jest proste, ale potencjał kontrolera twardegodysku jest znacznie większy. Domburg zdołał zainstalować na nimcałego Linuksa. Działa to w minimalnym stopniu, obsługuje jedynieport szeregowy, nie działa nic z przestrzeni użytkownika (kontrolernie ma jednostki zarządzania pamięcią, więc trzeba specjalnie muprzygotować taką przestrzeń) – ale sztuka jest: kernel i systeminicjalizacji zostały podzielone na paczki o rozmiarach jednegosektora – odczytanie pliku wypełnia cache dysku, podaniemagicznego ciągu znaków zmusza zmodyfikowane firmware doprzeszukania bufora, złączenia obrazu kernela i uruchomienia go.

To oczywiście tylko ciekawostka, ale badacz wskazał zarazeminne, bardziej praktyczne, obronne zastosowanie. Odpowiedniozmodyfikowane firmware twardego dysku mogłoby rozpoznawać sposóbdostępu do jego zawartości – czy jest raczej losowy, tak jak wwypadku normalnego działania systemu operacyjnego, czy teżsekwencyjny, jak robiłoby to narzędzie do klonowania dysków. Takidysk mógłby wszystkim narzędziom wykorzystywanym w informatyceśledczej zwracać same śmieci, a przy tym normalnie by pracował.

Zainteresowani Czytelnicy zapytają się pewnie teraz, a co zdyskami półprzewodnikowymi (SSD)? No cóż, tam dopiero jestmożliwa impreza: wiele takich pamięci masowych ma dziśczterordzeniowe kontrolery ARM, taktowane zegarami 800 MHz i więcej,z buforami 256 MB i więcej. Faktem jest, że ich producenci szyfrujądziś swoje firmware… ale wydaje się, że w rękachdoświadczonych, dysponujących dużymi zasobami napastników niejest to problem.

Historia ta zarazem pokazuje, jak bardzo konieczne jest dlaelementarnego bezpieczeństwa całodyskowe szyfrowanie, i to nie zapomocą funkcji kryptograficznych wbudowanych w kontroler, ale napoziomie systemu operacyjnego, za pomocą narzędzi takich jak np.VeraCrypt.Tylko w ten sposób możemy zabezpieczyć się przed malware tkwiącymw firmware.

Artykuł pana Domburga znajdziecie na bloguSpritesmods.com, gdzie opisano też hakowanie wielu innychciekawych urządzeń.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (75)