Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Obejście BitLockera nakładem 50 USD (TPM sniffing)

22 listopada 2021, 08:53 | W biegu | komentarzy 12

Dokładny sposób przeprowadzenia czynności wspomnianej w tytule przedstawiono w tym tekście. Badacze w praktyce zaprezentowali metodę z 2019 roku autorstwa Denisa Andzakovica, o której napisano również na Sekuraku.

BitLocker nie jest całkowicie bezpieczny, jak każde inne rozwiązanie, i można dostać się do zaszyfrowanych danych na różne sposoby, np. poprzez aktualizację systemu Windows czy stosując podejście podobne do opisanego. Wymaga to fizycznego dostępu do urządzenia, natomiast szyfrowanie dysku jest dobrą praktyką, powszechnie stosowaną i obowiązkową w wielu firmach. Sposoby przechwycenia komunikacji TPM są czasochłonne, ale atakujący zapewne będzie zdeterminowany.

Jeśli dysk jest zaszyfrowany mocnym algorytmem, musimy znać hasło, aby uzyskać dostęp do danych. W sytuacji, gdy hasła zapomnimy, BitLocker zapewnia klucz odzyskiwania generowany w trakcie konfiguracji tej funkcji, który przechowujemy na osobnym dysku. Natomiast atakujący niekoniecznie musi znać hasło czy dysponować tym kluczem, dlatego warto zastosować inne podejście, bardziej skupiając się na aspektach związanych ze sprzętem.

Badacze wykorzystali laptop Lenovo ThinkPad L440. Podstawową czynnością jest odnalezienie modułu TPM na płycie głównej, co w tym przypadku wiązało się z zakupem schematu z Western Union, ponieważ diagram znaleziony w Internecie nie dostarczał bardziej szczegółowych danych technicznych. Na początku zdecydowano się jednak na zwykłe „oględziny” płyty głównej.

Układ TPM nazywał się P24JPVSP, w rzeczywistości jednak jego oficjalna nazwa to ST33TPM12LPC. Został oparty na interfejsie LPC, którego prototyp powstał w 1998 roku (autorstwa firmy Intel). Częściowo wyparł go SPI, mimo to wciąż znajduje zastosowanie, właśnie m.in. w modułach TPM.

Należało przeprowadzić analizę sześciu ramek: LAD0, LAD1, LAD2, LAD3, LFRAME i LRESET. Dysponując niezbędnymi narzędziami i mając umiejętności lutowania mikroelementów, można wykonać to poprzez podłączenie pinów, co jest bardzo skomplikowane:

Now, if (1) you have the correct equipment and (2) you’re confident in your micro-soldering skills, you can solder wires directly on these pins to attach the probes, but the space between each pin is only 0.65 millimeters (for our metrically impaired readers, this is 0.4 millionths of a mile).

Wystarczy jednak odnaleźć inne miejsca na płycie głównej połączone odpowiednimi dla ramek pinami:

Sygnał LCLK „przebiegał” w dolnej części płyty, pod modułem Wi-Fi, który był zakryty czarną taśmą. Po jej odklejeniu okazało się, że ukrywała pady służące do debugowania LPC. Nie jest to oczywiście regułą, ale akurat w tym laptopie do ataku wystarczy zdemontować dolną część. Przy użyciu zwykłego miernika ustalono pinouty dla wymienionych padów – oprócz tego odpowiedzialnego za sygnał LCLK i jednego wyglądającego na niepodłączony. Na tym etapie konieczny był zakup pełnego schematu płyty głównej. „Usługa” ta kosztowała 20 USD, badacze uznali ją za próbę scamu, niemniej jednak po 20 minutach od zakupu otrzymali wiadomość z adresu w domenie gmail.com z kilkoma załącznikami w formacie RAR. Zawierały one pliki programu BoardView, jak również oprogramowanie służące do ich odczytu. Tutaj cytat, który zdecydowanie nie prezentuje dobrych praktyk bezpieczeństwa:

Naturally, we opened the archives and ran the software on our production domain controller, and it was actually legit!

Wyglądający na niepodłączony pad okazał się tym poszukiwanym. Wystarczyło jeszcze utworzyć mostek pomiędzy modułem a padem służącym do debugowania. Kolejny krok to już podłączenie przewodów i podsłuchiwanie komunikacji:

Ekstrakcja istotnych danych wiązała się z użyciem zmodyfikowanej wersji LPC Sniffer:

After flashing the device, the read_serial.py python script can be used to retrieve the LPC frames. The following command is executed on the sniffing computer, then the target laptop was turned on in order to let the TPM check PCR registers, release the VMK and transmit it over the LPC bus.

Do wyodrębnienia Volume Master Key, służącego do odszyfrowania, z zebranych danych użyto polecenia:

cut -f 2 -d\’ log6 | grep ’24..00$’ | perl -pe 's/.{8}(..)..\n/$1/’ | grep -Po „2c0000000100000003200000(..){32}”

Kluczowe odczytywane wartości nie były jednakowe, co mogło być spowodowane nie do końca idealnym połączeniem. Wystarczyło przeprowadzić porównanie danych z różnych sekwencji uruchamiania, aby znaleźć wszystkie błędy i ostatecznie otrzymać w pełni poprawny zapis. Posiadając Volume Master Key, na tym etapie należało użyć dislockera:

$ hexdump -C vmk

00000000  5a f9 49 09 16 01 3a 0b  c1 27 b3 30 1d 41 50 8c  

00000010  4a f8 ab b8 58 3d e5 e4  c6 0b bb ab cf ad 8a 3a

$ sudo dislocker -v -V /dev/sdb3 –vmk vmk — /media/bl

$ sudo mount -o ro,loop /media/bl/dislocker-file /media/blm

$ ls /media/blm

’$RECYCLE.BIN’             ESD            pagefile.sys    'Program Files (x86)’         Users

’$SysReset’                hiberfil.sys   PerfLogs         Recovery                     Windows

 Chocolatey                install        ProgramData      swapfile.sys

’Documents and Settings’   Intel         'Program Files’  'System Volume Information’

Oczom badaczy ukazała się zawartość głównego dysku systemowego Windows.

W celu uniknięcia tego typu ataku zaleca się ustawienie PIN-u, który należałoby wpisać przed uruchomieniem. Poza tym Windows 11 wymaga modułu TPM 2.0, używającego zaszyfrowanej komunikacji, więc być może warto rozważyć zakup nowego urządzenia. BitLocker ma tę „przewagę”, że jest w pełni zintegrowany z Windowsem, tzn. w przypadku aktualizacji teoretycznie nie powinny wystąpić żadne błędy związane z uszkodzeniem danych. Na przykład VeraCrypt nie może tego zagwarantować (dlatego polecam wykonywać regularne backupy i odszyfrowywać dysk przed aktualizacją), ale w żadnym stopniu nie wykorzystuje TPM.

Myślę, że każdy musi samodzielnie przeprowadzić analizę ryzyka, dokonując wyboru tego typu sprzętu. Osobiście BitLocker stosowałbym w sytuacji, kiedy dany użytkownik nie jest zaawansowany technicznie, a istotne jest zapewnienie bezpieczeństwa bez utraty wygody korzystania. Warto zadbać też o bezpieczeństwo fizyczne, starać się nie pozostawiać urządzeń bez opieki; można ponadto zainwestować w Kensington Lock.

–Michał Giza

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. eRIZ

    Problem z VeraCryptem jest jeszcze jeden: poważnie obniża wydajność napędów NVMe (zamiast kilu GiB/s na I/O, jest ledwo pół). Jest otwarte zgłoszenie na Githubie, z którym nikt nic nie robi od paru lat. Dlatego jak już, to DiskCryptor, chyba że komuś nie robi różnica prędkość transmisji danych. Natomiast z DiskCryptorem były — o ile pamiętam — problemy z UEFI, więc to trochę proteza. Koniec końców, nie ma wyjścia, trzeba użyć Bitlockera.

    Odpowiedz
  2. Maciej

    A co z opal, nie warty był wspomnienia w artykule? Chyba ciut lepsze od bitlocker i TPM?

    Odpowiedz
    • Maciej

      niewarty* lol :D

      Odpowiedz
    • MrvPro

      OPAL ma zastosowanie do dysków samoszyfrujących (gdzie szyfrowanie realizuje sam kontroler dysku SSD). Bitlocker szyfruje dowolny dysk. Bitlocker może wykorzystywać OPAL do samej szyfracji jeśli w kontrolerze dysku jest włączona funkcja eDrive (zdecydowana większość producentów SSD ja domyślnie wyłącza, i musisz włączyć ją narzędziem producenta do zarządzania dyskiem SED SSD). Ale zarządzanie dostępem ( odblokowanie dysku) dalej jest realizowane przez Bitlocker, który może mieć w policy ustawiony TPM, jako potwierdzenie powiedzmy „tożsamości danego komputera”.

      Standard OPAL się nie przyjął i coraz mniej dysków go implementuje ( w dyskach do serwerów jest nieco inaczej).
      #iamintel

      Odpowiedz
  3. abc

    „W celu uniknięcia tego typu ataku zaleca się ustawienie PIN-u, który należałoby wpisać przed uruchomieniem.”

    Przed uruchomieniem czego? Laptopa? Windowsa? Szyfrowania?

    Odpowiedz
    • Michał

      Przed uruchomieniem systemu.

      Odpowiedz
      • abc

        @Michał

        Że tak jeszcze dopytam: PIN w sensie hasła do BIOS/UEFI czy może TPM ma swój własny PIN?

        Odpowiedz
    • Krzysztof

      Laptopa

      Odpowiedz
  4. Dominik

    To jak to jest z tym bitlockerem i TPM 2.0 są jakieś możliwości złamania takiej konfiguracji no. Właśnie przez podsłuchanie VMK czy mogę go na spokojnie używać do zabezpieczenia danych?

    Odpowiedz
    • Michał

      Jak wspomniano w tekście, TPM 2.0 stosuje szyfrowanie, więc ten konkretny atak go nie dotyczy. Autorzy dodają jednak:

      „Note, however, that this change would technically prevent TPM sniffing but not other physical attacks”

      Odpowiedz
      • Mr vPro

        O ironio, tzw. Firmware TPM np. Intel Platform Trust Technology uważane za gorsze/uboższe implementację modułu TPM 2.0 niż dyskretne ( osobne uklady) TPM są odporniejsze na ataki typu physical access tego typu bo… nie mają żadnych pinow/sygnałów wyprowadzonych na zewnątrz chipsetu ( implementacja w przypadku Intel PTT jest w mikrokontrolerze Intel CSME/ME wewnątrz chipsetu (PCH) i ME FW, a bitlocker czy OS komunikują się przez ogólny interface ME HECI i Intel MEI SW/Driver.

        Intel PTT jest dostępne w każdym komputerze od 5tej generacji Intel Core z ME FW 9.1 i 9.5 aczkolwiek OEM BIOS może wyłączyć Intel PTT na rzecz dTPM.
        #iamintel

        Odpowiedz
  5. Krzysiek

    > Należało przeprowadzić analizę sześciu ramek: LAD0, LAD1, LAD2, LAD3, LFRAME i LRESET.
    Nie chodzi o ramki, tylko o sygnały. Te 6 sygnałów pozwala na przesyłanie ramek.

    > To jak to jest z tym bitlockerem i TPM 2.0 są jakieś możliwości złamania takiej konfiguracji no
    Używaj dodatkowo PIN. Szansa że atakujący zna pin i może podłączyć się z analizatorem do płyty laptopa jest raczej niewielka (o ile pin jest rozsądny). Zostaje zawsze sprzętowy keyloger albo wbudowany w taki sposób analizator w laptopa/komputer, żebyś go mógł nie zauważyć podczas wpisywania hasła.

    Odpowiedz

Odpowiedz