Elektroda.pl
Elektroda.pl
X
Servizza
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Procesor w procesorze Intela, który może przejąć kontrolę nad CPU

ghost666 20 Cze 2016 18:40 6105 12
  • Procesor w procesorze Intela, który może przejąć kontrolę nad CPU
    W najnowszych procesorach Intela z rodziny x86 zaimplementowano niejawny i bardzo potężny mechanizm, który zapewniać ma ochronę procesora przed atakami. System ten działa na osobnym procesorze, który ukryty jest w strukturze krzemowej CPU. Jeśli informacje na temat budowy tego układu wyjdą na jaw, to wyposażone weń komputery mogą być podatne na zasadniczo niezwalczalne i niewykrywalne ataki typu rootkit. Autor poniższego artykułu wziął sobie za zadanie analizę tego układu, aby możliwe było stworzenie nowej, darmowej i otwartej alternatywy dla tego systemu, zanim nie będzie za późno.

    Tak zwany Intel Management Engine (ME) jest podsystemem, który działa na specjalnym 32-bitowym mikroprocesorze ARC, fizycznie znajdującym się wewnątrz chipsetu komputera. Zasadniczo jest to mikrokomputer, pracujący z dedykowanym firmware i często wykorzystywany jest w systemach zarządzania komputerem przez duże firmy konfigurujące jednocześnie wiele maszyn.

    Gdy kupujesz komputer z procesorem Intel x86 i odpowiednim chipsetem kupujesz także wewnętrzną maszynę, której zadaniem jest kontrola głównego CPU. Działa on zupełnie niezależnie od procesora x86, co oznacza na przykład, że pracuje on też gdy komputer jest, np. w stanie wstrzymania (S3).

    W niektórych chipsetach, firmware pracujący na ME wykorzystuje coś co nazywa się Active Management Technology (AMT). Jest to stworzony przez Intela system, który jest zupełnie niewidoczny dla systemu operacyjnego, co oznacza, że system ten może działać niezależnie od tego, jaki system jest zainstalowany i uruchomiony na komputerze.

    AMT służy do zdalnego zarządzania komputerem - jest w swoim działaniu podobny do starszego systemu nazywającego się Intelligent Platform Management Interface (IPMI), ale ma o wiele większe możliwości. Aby było to możliwe, ME ma możliwość dostępu do wszystkich rejonów pamięci przy pominięciu procesora x86 w systemie. Układ ten także obsługuje serwer TCP/IP, działający na interfejsie sieciowym komputera, dzięki czemu pewne porty interfejsu sieciowego pozwalają na wysyłanie pakietów bezpośrednio do tego systemu z pominięciem m.in. firewalla pracującego na komputerze.

    Zasadniczo system AMT jest świetnym dodatkiem do komputera, jednakże ma istotną wadę. Jest bardzo niebezpieczny, jeśli skutecznie zaatakowany przez np. hakerów. Badacze zajmujący się bezpieczeństwem komputerów klasyfikują go jako poziom (pierścień) -3. Pierścienie czy poziomy zagrożenia klasyfikowane są jako warstwy systemu, zależnie od tego, co zostało zaatakowane i jak blisko sprzętu się znajduje (im mniejsza liczba, tym bliżej). Zagrożenia poziomu 3 to ataki, które manifestują się na poziomie interfejsu użytkownika. Ataki na poziomie 0 to ataki na jądro systemu, a -1 odbywają się na poziomie hyperwizora. Do zagrożeń na poziomie -2 klasyfikuje się przejście procesora do trybu System-Management-Mode (SMM) - specjalnego trybu, w którym procesor wykonuje zdefiniowany fragment kodu - jeśli atakujący ma możliwość podmiany kodu SMM i przejście do tego trybu, to może on zmusić CPU do wykonania dowolnego programu.





    Firmware systemu ME zaszyfrowany jest z pomocą RSA 2048, ale niektóre, wczesne modele systemu ME podatne były na pewne rodzaje ataków, jak dowiedli tego badacze. Pozwalało to na przejęcie częściowej kontroli nad ME i czyniło z niego poważną "dziurę" w zabezpieczeniach systemu, umożliwiającą realizację ataków typu rootkit, niepostrzeżenie zdobywając prawa administratora komputera i w niewykrywalny sposób atakując maszynę w zasadzie w dowolny sposób.

    W komputerach z procesorem Core2 i nowszymi systemu ME nie da się wyłączyć. Systemy zaprojektowane przez Intela zostały tak, że nie uruchomią się bez ME z sprawnym firmware lub uruchomią się tylko na chwilę, aby wyłączyć maszynę - nie jest fizycznie możliwe, aby procesor x86 działał w takiej sytuacji z wyłączonym ME.

    Z poziomu CPU i systemu operacyjnego nie jest możliwe wykrycie, czy ktoś grzebał w ME, ani nie ma sposobu, aby je naprawić lub przywrócić do stanu domyślnego. Nie wiadomo nawet, czy nikomu już nie udało się złamać zabezpieczeń tego systemu i zainfekować komputera.

    Intel utajnił większość detali dotyczących ME. Jest to jeden ze sposobów zabezpieczania się przed atakiem, ale jak zgodnie twierdzi środowisko naukowe - najgorszy sposób. W końcu ktoś zdobędzie te dane - przestępcy albo naukowcy - i wszystkie zabezpieczenia na nic się nie zdadzą. Pozwoli to na stworzenie rootkitów tak potężnych, jak nigdy dotąd.

    Około roku 2013 udało się zanalizować częściowo w jaki sposób firmware systemu ME jest umieszczony w systemie. Jest ono weryfikowane przez sekretny boot ROM w chipsecie, który najpierw sprawdza sumę kontrolną SHA256 klucza publicznego, a potem weryfikuje sygnaturę RSA paczki z firmware - wylicza ją dla przesyłanego firmware i porównuje z zapisanymi danymi. Oznacza to, że nie istnieje prosta droga na ominięcie tego zabezpieczenia, ponieważ wszystkie te operacje realizowane są sprzętowo przez ROM i nawet mając sygnaturę i klucz publiczny, niewiele jesteśmy w stanie zrobić. Mimo to, nie można wykluczyć, że w ROMowym bootloaderze znajduje się jakiś bug.

    Innym istotnym odkryciem był fakt, że krytyczne elementy firmware ME przesyłane są w niestandardowej skompresowanej formie, która zostaje odpakowana sprzętowym dekompresorem. Próby bruteforce'owej analizy systemu dekompresji skończyły się niepowodzeniem, ale nie w przypadku wszystkich badaczy - pewne grupy badaczy zabezpieczeń już umieją przeprowadzać operację dekompresji tych danych dla ME we wszystkich wersjach poniżej 11.

    Celem autora artykułu jest stworzenie kompletnego oprogramowania, które miałoby zastąpić system ME. W momencie, gdy tak krytyczny element bezpieczeństwa dostępny będzie publicznie, może on zostać sprawdzony przez wiele osób, co zazwyczaj przekłada się na wyższy poziom bezpieczeństwa. Niestety, z uwagi na to, że oprogramowanie omawianego systemu zabezpieczone jest poprzez RSA 2048 nie jest możliwe odpalanie własnego kodu, ponieważ nie przechodzi on procedury walidacji. Zasadniczo zamyka to jedną z dróg rozwoju tego projektu.

    I to jest przerażające. Większość "cyfrowych kajdan" zakładanych użytkownikom jest tak łatwa do złamania, że nikt nie trudzi się jak to zrobić, a jedynie czasami martwi się, jakie są kary związane z ich zdjęciem. W tym przypadku nie jest to takie trywialne - nikt na świecie nie ma możliwości sprzętowych, aby złamać zabezpieczenia RSA 2048 - nawet najszybsze komputery świata nie są w stanie poddać faktoryzacji liczby półpierwsze mające po 600 cyfr w reprezentacji dziesiętnej w czasie krótszym od ludzkiego życia.

    Podsumowując, Intel dotychczas powstrzymuje dosyć skutecznie wszystkich próbujących zmieniać cokolwiek w ME. Nie oznacza to jednak , że możemy ufać ME, gdyż jest to dedykowane oprogramowanie i nie wiemy, co w środku jest. Cofamy się trochę do czasów Sony Playstation, jeśli chodzi o blokady w systemach, a ma iść to dalej w tym kierunku, zważywszy, że Intel planuje spakować wszystkie swoje elementy - m.in. CPU, chipset, ME w pojedynczy układu typu System-na-Chipie. W ten sposób wszystkie komponenty - zaufane i niezaufane - znajdować się będą fizycznie obok siebie.

    Najlepszym rozwiązaniem byłoby, aby system ME zajmował się jedynie podstawowymi zadaniami związanymi z np. ustawianiem timingów czy częstotliwości taktowania poszczególnych elementów komputera PC podczas rozruchu, a potem się wyłączał. W ten sposób nie miałby możliwości np. komunikować się poprzez kartę sieciową i wysyłać danych wrażliwych poza nasz komputer.

    Źródło: http://boingboing.net/2016/06/15/intel-x86-processors-ship-with.html

  • Servizza
  • #2 20 Cze 2016 20:23
    winio42
    Poziom 18  

    Coś mi się zdaje, że tu chodzi o szpiegowanie użytkowników...
    Chyba się przerzucę na ruski rocesor Bajkał :P

  • Servizza
  • #3 20 Cze 2016 21:19
    leonow32

    Poziom 29  

    Burza w szklance wody. Nie od dziś wiadomo, że w komputerze siedzi cała masa małych procesorów a nie tylko jeden wielki CPU. Stare Peniumy miały na pokładzie 8051, a procki typu 286, 386 i inne dinozaury miały zaszyty 8048. Służyły one do wystartowania procesora głównego, czyszczenia pamięci, sprawdzania różnych rzeczy, itp.

    Najważniejsze pytanie jeśli chodzi o bezpieczeństwo - jak i czy w ogóle jest możliwa zmiana kodu procesora wspomagającego i czy program z poziomu OS może cokolwiek w nim zmieniać? Jeśli nie to nie ma tematu.

  • #4 20 Cze 2016 22:53
    Milek79
    Poziom 14  

    leonow32 napisał:
    Najważniejsze pytanie jeśli chodzi o bezpieczeństwo - jak i czy w ogóle jest możliwa zmiana kodu procesora wspomagającego i czy program z poziomu OS może cokolwiek w nim zmieniać? Jeśli nie to nie ma tematu.

    AFAIK można to zaktualizować.
    Jest bezpiecznie, pod warunkiem że:
    - z intela nigdy nie wycieknie klucz do podpisywania firmwaru
    - nikt nigdy nie znajdzie w tym buga
    - intel nie stanie się zły i nie zacznie wykorzystywać tego do zbierania danych albo współpracy z agencjami rządowymi

  • #5 21 Cze 2016 00:40
    japko1024
    Poziom 17  

    Milek79 napisał:
    - intel nie stanie się zły i nie zacznie wykorzystywać tego do zbierania danych albo współpracy z agencjami rządowymi
    A skąd wiesz, że już tego nie robi?

  • #6 21 Cze 2016 01:23
    jnk0le
    Poziom 18  

    Tego typu backdoory nie służą do prowadzenia aktywnego szpiegowania, w celu "personalizacji reklam". One mają czekać w ukryciu do momentu kiedy otrzymają określoną komendę do działania - najbardziej prawdopodobny scenariusz to właśnie wykradanie kluczy szyfrujących wszelką komunikację. (w tym momencie wszystkie kalkulacje ile to lat zajmie łamanie RSA8192 tracą racje bytu, gdy klucze szyfrujące są znane)

    Nie zdziwił bym się, gdyby okazało się że te słynne "luki" TORa, których to FBI nie chce ujawnić, to właśnie jest zasługa tego układu.

  • #7 21 Cze 2016 08:57
    kitor
    Poziom 34  

    O, widzę że tu też trafił ten stronniczy artykuł który odkrył istnienie ME po 10 latach.
    Intel się nigdy z tym nie krył, tu specyfikacja mojego i5:
    http://ark.intel.com/products/52229/Intel-Core-i5-2520M-Processor-3M-Cache-up-to-3_20-GHz
    Ostatnia tabela, ME/AMT to część technologi vPro
    A tu oficjalna strona tego super-ultra-tajnego układu:
    http://www.intel.com/content/www/us/en/archit...ology/intel-active-management-technology.html

    Intel ME, czy też AMT (Active Management Technology) wprowadzono w czasach Core 2 Duo i służy do zdalnej administracji komputerem. Dzięki temu że działa równolegle do właściwego procesora, support IT w firmie możne nawet zdalnie odpalić wyłączony komputer, zrobić cuda typu podpięcie wirtualnego dysku przez sieć i pełną instalację systemu. A, wszystko po szyfrowanym połączeniu, którego się nie da spoofować jak Wake On Lan.

    Firnware od ME można zaorać np instalując OpenBoota zamiast BIOS/UEFI. Zresztą większość konsumenckich urządzeń zwyczajnie nie ma FW i obsługi AMT.

    O czymś takim jak trym SMM nikt co ciekawe nie wspomina, a istnieje w procesorach od czasów 386. To specjalny tryb CPU w którym wykonanie kodu jest zawieszone, a kontrolę przejmuje np. debugger. W ten sposób jest realizowana przykładowo emulacja klawiatury USB w BIOSach.
    Tego trybu również nie widzi system operacyjny i znane są jego podatności na np rootkity:
    https://en.wikipedia.org/wiki/System_Management_Mode

    A jak by się zastanowić ile różnych CPU siedzi w komputerze, tu przykład gościa który na kontrolerze wbudowanym w dysk twardy... odpalił linuxa. Bo kontroler ma w sobie trzy rdzenie ARM. Kontroler pośredniczy oczywiście w wymianie danych między talerzami a komputerem. A, i dostęp do DMA... wiecie gdzie to dąży?
    http://spritesmods.com/?art=hddhack&page=1

    Technologia bardzo podobna do tej stosowanej do zdalnego zarządzania serwerami. Inne, podobne technologie to np. IPMI. Więcej na Wiki:
    https://en.wikipedia.org/wiki/Intel_Active_Management_Technology
    https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface

    Także sumując: burza w szklance wody i szukanie sensacji.

  • #9 22 Cze 2016 15:51
    Quarro
    Poziom 12  

    W sumie artykuł nic przełomowego nie wnosi. Fakt braku kontroli nad tym wszechpotężnym narzędziem dla mnie jest przerażający. Ciekawe czy istnieje odpowiednik na AMD?

    Cóż, mnie pozostaje się cieszyć, że pracuję na lapku z Pentium M, gdzie takich cudów nie ma.

    EDIT: Kontroli rozumianej przezemnie, jako skuteczne wyłączenie tego ustroistwa. Nie chodzi mi o robienie jakiś otwartych implementacji.

  • #10 22 Cze 2016 16:44
    Tommy82
    Poziom 39  

    @leonow32
    Będzie jak z IPMI. Zrobili i zapomnieli aktualizować ktoś się w końcu do tego dobrał i były dosy w gigabitach. Po co interfejsowi IPMI gigabitowe łącze naprawdę nie wiem.Tam jest stos tcpip może się okazać ze da się na przykład zrobić kuku jakimś pakietem albo wymusić odpowiedź na spreparowany i to objętościowo większa i już mamy droge do multiplikacji ataku DoS.
    Jak nie z poziomu systemu to może da sie spreparować oprogramowanie jakiegoś urządzenia pokładowego i je zmusić do przeprogramowania.

    @Milek79
    Ad3 Obawiam się ze taki mógł być wymóg aby coś się mogło stać lub coś innego nie stało.

    @kitor
    With the Intel® vPro™ technology module for Microsoft Windows PowerShell*, IT has direct access to Intel AMT and can use Windows PowerShell scripts to take advantage of features not available in their existing management console—for example, remotely configuring alarm clock settings.
    A to już powoduje że jest to podatne na ataki jak każde ipmi.

    Co do tego linuxa na kontrolerze to idea jest stara na spektrum system cp/m był odpalany na procesorze stacji dyskietek a spektruś służył jako terminal.

  • #11 23 Cze 2016 17:33
    japko1024
    Poziom 17  

    Zbytnie komplikowanie budowy komputerów (oczywiście nie chodzi mi o ulepszanie ich parametrów) i tworzenie zamkniętych standardów nie przynosi nic dobrego, przynajmniej użytkownikom. Na nowszych urządzeniach, sprzedawanych z zainstalowanym fabrycznie Windowsem, często są problemy z prawidłowym działaniem Linuxa (wciąż nie udało mi się rozwiązać problemu z migającym ekranem Asus X55VD), bo brakuje odpowiednich sterowników. Przypomnijmy sobie, jaka była idea komputera: to miała być maszyna, którą użytkownik mógłby zaprogramować w dowolny sposób.

  • #13 24 Sie 2016 01:14
    iagre
    Poziom 35  

    Tommy82 napisał:

    Co do tego linuxa na kontrolerze to idea jest stara na spektrum system cp/m był odpalany na procesorze stacji dyskietek a spektruś służył jako terminal.

    Podobne rozwiązanie funkcjonowało też na Atari Xe/Xl - system DOS był uruchamiany na procesorze stacji dyskietek, a Atari pełniło tylko rolę terminala.