Microcode Decryptor, narzędzie umożliwiające dekodowanie mikrokodu procesorów Intel

Grupa Zwolnieni analitycy bezpieczeństwa z zespołu uCode wydanie kodu źródłowego projektu deszyfrator mikrokodu a to pozwala zrobić dokładnie to, co sugeruje nazwa: jest to narzędzie, które składa się z trzech skryptów Pythona i jest dostępne na GitHubie.

Deszyfrator mikrokodów umożliwia dekodowanie mikrokodu niektórych procesorów Intel takie jak Atom, Pentium i Celeron oparte na mikroarchitekturach Goldmont i Goldmont Plus, które otwierają drzwi do różnych scenariuszy, takich jak zrozumienie, w jaki sposób Intel zaimplementował określone funkcje procesora lub wdrożył różne funkcje i poprawki bezpieczeństwa.

Opracowano technikę Red Unlock przez tych samych badaczy w 2020 roku może być użyty do wyodrębnienia zaszyfrowanego mikrokodu. Zaproponowana możliwość rozszyfrowania mikrokodu pozwala zbadać wewnętrzną strukturę mikrokodu oraz metody implementacji instrukcji maszynowych x86. Ponadto naukowcy odzyskali format aktualizacji oprogramowania układowego, algorytm szyfrowania i klucz używany do ochrony mikrokodu (RC4).

Aby określić, którego klucza szyfrowania użyć, luka w Intel TXE została wykorzystana do włączenia nieudokumentowanego trybu debugowania, o nazwie kodowej „Red Unlock” przez badaczy. W trybie debugowania udało nam się załadować zrzut z działającym mikrokodem bezpośrednio z procesora i wyodrębnić z niego algorytm i klucze.

Deszyfrator mikrokodów pozwala tylko na odszyfrowanie mikrokodu, ale nie pozwala na jego zmianę, ponieważ integralność mikrokodu jest dodatkowo weryfikowana podpisem cyfrowym opartym na algorytmie RSA.

Jeśli chodzi o to, jak rozwój Microcode Decryptor był możliwy, wspominają, że stało się to trzy lata temu, kiedy Goryachy i Ermolov znaleźli krytyczną lukę, indeksowaną jako Intel SA-00086, która pozwoliła im wykonać wybrany przez nich kod w niezależnym od chipu kernel, który zawierał podsystem znany jako Intel Management Engine.

Intel naprawił błąd i wydał łatkę, ale ponieważ chipy zawsze można przywrócić do poprzedniej wersji oprogramowania, a następnie wykorzystać, nie ma sposobu na skuteczne usunięcie luki.

Następnie (pięć miesięcy temu) trójka naukowców była w stanie wykorzystać tę lukę, aby uzyskać dostęp do trybu serwisowego wbudowanego w układy Intela, w ukłonie w stronę filmu Matrix, naukowcy nazwali swoje narzędzie, aby uzyskać dostęp do tego debuggera wcześniej nieudokumentowanego Chip Red Pigułka, ponieważ pozwala naukowcom doświadczyć wewnętrznego działania chipa, który zwykle jest niedostępny.

Rzecznik Intela powiedział, że:

„Nie powinno być żadnego zagrożenia bezpieczeństwa” w wyniku dostępności narzędzia. W rzeczywistości firma powiedziała, że ​​umożliwienie większej liczbie osób przeglądu mikrokodu Intela może pomóc producentowi chipów zidentyfikować więcej luk w zabezpieczeniach w przyszłości. Dla każdego, kto odniesie w tym sukces, oznacza to potencjalne zarobienie pieniędzy dzięki programowi bug bounty firmy Intel.

„Zdolność naukowców do analizy mikrokodu może umożliwić odkrycie nowych luk w zabezpieczeniach. Ponieważ ten mikrokod został ujawniony, Intel zaprasza naukowców do udziału w programie nagród za błędy mikrokodu w przypadku wykrycia jakichkolwiek problemów” – powiedzieli nam.

Ze swojej strony twórcy tego narzędzia skomentowali to

„Możliwość odczytania mikrokodu procesora może pomóc zrozumieć, w jaki sposób Intel wdrożył technologie, takie jak Intel Trusted Execution Technology (TXT) lub złagodził poważne luki, takie jak Meltdown i Spectre”.

Jermołow, jeden z pozostałych naukowców, dodał, że dostępność narzędzia oznacza że ludzie teraz możesz odkrywać XuCode, wariant kodu x86 w trybie 64-bitowym używany do implementacji części Intel SGX, który jest pobierany jako aktualizacja mikrokodu. SGX to technologia firmy Intel do tworzenia bezpiecznych enklaw pamięci: są to chronione obszary, w które inne programy i użytkownicy, w tym system operacyjny lub hiperwizor, nie mogą ingerować.

XuCode jest dość interesujący: specyficzne dla x86 instrukcje do zarządzania enklawami SGX są tak złożone, że są podzielone na sekwencje instrukcji XuCode, które wykonują niezbędne operacje.

Te instrukcje XuCode są standardowe dla 86-bitowej architektury x64 z pewnymi rozszerzeniami i są podzielone przez procesor na zwykłe mikrooperacje x86. Gdy aplikacja używa wysokopoziomowej instrukcji SGX, procesor może przeskoczyć do swojego XuCode, aby działać.

Te sekwencje XuCode są przechowywane w mikrokodzie i można je teraz wyodrębnić za pomocą powyższych skryptów Pythona i analizować za pomocą standardowych zestawów do inżynierii wstecznej x86.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat O narzędziu możesz sprawdzić szczegóły na poniższy link.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.