03.08.2013 | 12:04

Adam Haertle

Praktyczna implementacja tylnej furtki w pamięci flash dysku twardego

Wyobraźcie sobie tylną furtkę, która może być instalowania zdalnie, aktywowana na żądanie, daje dostęp do konta root, jest nie do wykrycia podczas analizy systemu plików i przetrwa pełną reinstalację systemu operacyjnego. Science fiction? Nie.

Bardzo ciekawą koncepcję tylnej furtki, ukrytej w pamięci flash dysku twardego serwera, przedstawił w swoim artykule Jeroen Domburg, twórca serwisu SpritesMods.com. Najważniejsze  jednak jest to, że nie poprzestał na koncepcji, tylko udowodnił, że można ją także wdrożyć.

Jeroen poważnie potraktował zadanie stworzenia idealnej tylnej furtki. Zaczął od zgromadzenia sterty starych dysków twardych.  Rozebrał je, przeanalizował układy scalone obecne w obudowie i skoncentrował się na kontrolerze dysku. Co prawda producenci kontrolerów nie udostępniają ich dokumentacji, ale od czego jest Google i potęga internetu. Na jednym z forów znalazł informację, że kontroler posiada działający port szeregowy, port JTAG (interfejs diagnostyczny) oraz poznał ich konfigurację. Podłączył się do obu portów i znalazł w kontrolerze swojego dysku trzy rdzenie ARM – dwa Feroceony i jednego Cortex-M3.

Laboratorium Jeroena

Laboratorium Jeroena

Kolejnym krokiem analizy było ustalenie, w jaki sposób można zmodyfikować w locie treść odczytywaną z dysku. Co prawda CPU  nie bierze udziału w odczycie danych z dysku, jednak testy wykazały, że posiada dostęp do pamięci cache, przez którą przekazywane są dane do interfejsu SATA. Aby nie musieć przeszukiwać całych 64MB RAMu za każdym razem, kiedy chce coś zmodyfikować, Jeroen przeanalizował fragment oprogramowania odpowiedzialny za zarządzanie pamięcią cache. Po odkryciu tablicy indeksującej zawartość pamięci napisał krótki fragment kodu, podmieniający wybrany ciąg po jego zapisaniu co cache, a przed przesłaniem do interfejsu SATA.

Kolejnym etapem było już „tylko” napisanie narzędzia służącego do modyfikacji zawartości pamięci flash oraz wykorzystanie fragmentów znanych wcześniej narzędzi, by umożliwić zapisywanie nowego oprogramowania bezpośrednio w pamięci flash dysku podłączonego do danego komputera. Jak wyglądał efekt końcowy jego eksperymentów?

Jeroen wprowadził następujące modyfikacje do pamięci flash dysku twardego. Po pierwsze, dysk analizuje treść, która jest na nim zapisywana, w poszukiwaniu tajnego ciągu aktywującego ukrytą funkcjonalność. Funkcja ta umożliwia np. zdalne aktywowanie tylnej furtki poprzez wywołanie na serwerze adresu www, zawierającego tajne hasło (które zostanie zapisane w logach httpd). Po aktywacji furtki, dysk czeka na próbę odczytu pliku /etc/shadow i podmienia w locie hasz hasła konta root, umożliwiając atakującemu zalogowanie się własnym hasłem (nie zmieniając jednocześnie na stałe oryginalnego hasła). Po zalogowaniu wystarczy, że atakujący wyłączy furtkę a stare hasło roota znowu będzie działało prawidłowo. Jedyną trudnością (oprócz oczywiście stworzenia samej tylnej furtki) jest zmuszenie dysku do ponownego odczytania pliku /etc/shadow, który może znajdować się w pamięci cache – wystarczy w tym celu albo poczekać, albo zmusić dysk do intensywniejszej pracy przez kilka sekund.

Jeroenowi udało się także inaczej wykorzystać architekturę ARM – uruchomił na niej odpowiednio skompilowanego Linuxa. Niestety z braku interfejsów użytkownika (oprócz portu szeregowego) nie dało się z niego korzystać, ale może teraz twierdzić, że odpalił Linuxa na samym dysku. Opublikował również kod źródłowy opisanej powyżej tylnej furtki – wyciął z niej jedynie ze względów etycznych fragment podmieniający zawartość /etc/shadow.

Trzeba przyznać, że zarówno koncepcja jak i jej implementacja wyglądają niepokojąco – ile jest na świecie firm i instytucji, które nie tylko potrafią przeanalizować wbudowane oprogramowanie dysku twardego, ale także wpadną na pomysł, by to zrobić, albo przynajmniej regularnie sprawdzać sumy kontrolne?

Powrót

Komentarze

  • 2013.08.03 13:29 Ugh

    Ja sprawdzam.

    Odpowiedz
    • 2013.08.03 14:46 Adam

      Powiesz nam coś więcej? Jakimi narzędziami, jak często, co jeszcze oprócz HDD?

      Odpowiedz
    • 2013.08.09 21:16 Mroczny Kobziarz

      Pewnie numery seryjne ;)

      Odpowiedz
  • 2013.08.03 15:28 W04M

    Jeszcze trochę i komputery (zwykłe laptopy albo inne workstacje) będą potrzebowały certyfikatu bezpieczeństwa. Dobry artykuł. Czytałem go wcześniej i nie za wiele zrozumiałem (po angielsku), a teraz raczej wszystko jasne. Dobra robota !

    Odpowiedz
  • 2013.08.03 18:46 Michał Białek

    O masz, pierwsze słyszę. Houston mamy problem. Jestem ciekaw ile administratorów sprawdza sumy kontrolne? 0,01%?

    Odpowiedz
  • 2013.08.03 20:47 gonti

    Co z dyskami SSD ? :)

    Odpowiedz
    • 2013.08.03 22:38 Adam

      Pewnie nie ma różnicy, tak samo posiadają kontroler, który da się zaprogramować.

      Odpowiedz
  • 2013.08.03 21:23 Zenon

    Autor artykułu zapomniał tylko napisać że pamięć flash dysku została zmieniona przez interfejs JTAG, co wymaga dostępu fizycznego do dysku. Po tej zmianie dopiero dysk zaczął obsługiwać backdoor.
    Niemniej czytało się przyjemnie. Miło poczytać o ludziach którzy myślą nietuzinkowo, miło poczytać artykuł który zachęca żeby samemu zrobić coś ciekawego.
    Dziękuję.

    Odpowiedz
    • 2013.08.03 22:39 Adam

      Nie zapomniał – w pierwszym etapie Jeroen modyfikował pamięć korzystając z JTAG, a potem napisał narzędzie, które umożliwia zapisywanie pamięci flash z poziomu komputera, bezpośrednio korzystając z interfejsu dysku.

      Odpowiedz
      • 2013.08.03 23:03 Zenon

        No tak, rzeczywiście. Jakoś tak nie rzuciło mi się w oczy.

        Odpowiedz
  • 2013.08.03 23:29 ja

    to mam pytanie,skro popsuł mi się dysk (walneła elektronika) ta płytka gdzie są te kabelki podpięte na głównym zdjęciu to da się to jakoś obejść tanim kosztem i odzyskać dane?

    Odpowiedz
  • 2013.08.04 02:11 Jurgen

    Jeśli padł kontroler, to wystarczy przełożyć dobry z innego, takiego samego dysku

    Odpowiedz
    • 2013.08.04 17:25 MK

      To może z 10 lat temu tak było można.

      Odpowiedz
    • 2013.08.08 14:16 DM

      Nie tak szybko kolego. Gostek mial uszkodzona elektronike w dysku WD, przelozyl z identycznego modelu i klapa. Okazalo sie ze dwa identyczne modele ale w obydwu inne uklady kontrolera. Poszukaj na forum elektrody…

      Odpowiedz
  • 2013.08.04 23:54 oscarr

    Ciekawi mnie jak się zachowa taka furtka w macierzy RAID 1 w której zhackowany byłby tylko jeden z dysków. Pozostałe odmiany RAID są raczej odporne na taki atak ze względu na sposób zapisu danych.

    Tak czy inaczej, zagrożenie realnie istnieje. Nie spodziewałbym się jednak ataku domorosłego hackera amatora. Już prędzej spodziewałbym się, że producenci dysków sami umieszczają lub umieszczaliby takie furtki w produkowanych dyskach.

    Nie wiem, czy w świetle obecnych dowodów, klienci są w stanie zmusić producentów dysków do udostępnienia źródeł firmware dysków, ale nawet jeśli będzie inaczej, to można się spodziewać, że na taką furtkę programiści linuxa znajdą jakąś łatę.

    Ja już mam w głowie jedno roziązanie, ale trochę dużo byłoby do pisania, a w końcu to tylko teoretyczne rozważania, bo dla przeciętnego zjadacza chleba całe to zagrożenie to abstrakcja.

    Odpowiedz
    • 2013.08.11 20:04 Daniel Kukula

      Wystarczy szyfrować dysk. Jesli kontroler nie zna hasła to co prawda może podmienić dane ale przy próbie rozszyfrowania dostaniemy błąd

      Odpowiedz
  • 2013.08.05 15:04 Zbrojmistrz

    Myślę, że producenci sprzętu komputerowego wpadli na ten pomysł wcześniej…

    Odpowiedz

Zostaw odpowiedź do DM

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Praktyczna implementacja tylnej furtki w pamięci flash dysku twardego

Komentarze