captcha image

A password will be e-mailed to you.

Meltdown i Spectre – 3 stycznia świat obiegła wiadomość, że praktycznie każdy procesor w komputerze, tablecie czy telefonie może otworzyć cyberprzestępcom drogę do naszych danych. Czy przebijająca z tych informacji wizja totalnego kataklizmu to tylko internetowy clickbait? Co to oznacza dla każdego z nas?

Poznajcie wrogów, których niemal na pewno macie na pokładzie

3 stycznia Project Zero, czyli zespół ekspertów bezpieczeństwa Google’a podał do publicznej wiadomości informację, że większość komputerów i urządzeń mobilnych jest potencjalnie narażona na atak hakerów. Nie byłoby w tym nic zaskakującego, gdyby nie informacja, że dziura (a właściwie dwie luki) prowadząca do tej możliwości znajduje się nie w oprogramowaniu, ale w procesorze. Co najistotniejsze: w każdym procesorze! System czy aplikacje można przecież zaktualizować, ale jak np. w telefonie wymienić „dziurawy” procesor?

Przy takim postawieniu sprawy trudno się nawet dziwić tytułom kolejnych artykułów, które jako totalny kataklizm przedstawiały zagrożenie niesione przez Meltdown i Spectre, jak te luki nazwali eksperci.

Czy jestem zagrożony? Niestety tak…

Pierwsze doniesienia mówiły tylko o procesorach Intela i ARM, wykorzystywanych w tabletach i smartfonach. Dziś właściwie mówi się, że to co odkrył zespół Project Zero dotyczy praktycznie każdego procesora (tu możecie sprawdzić jak do problemu podchodzą poszczególni producenci sprzętu i CPU). Bo to, co odkrył Google jest, jak to ładnie nazywa Matt Weinberger na łamach Buisness Insiderera, czymś takim, jak znalezieniem słabego punktu w planie Gwiazdy Śmierci. Wiadomo co trzeba zrobić – Google pokazał nawet, że potrafi tego dokonać. Luka jest poważna, bo powszechna, ale jak na razie działa tylko w warunkach laboratoryjnych. Pytanie tylko czy na pewno?

Meltdown w działaniu (zdjęcie: Google)

Co prawda do tej pory nie pojawiły się żadne dowody, by luki zostały wykorzystane przez jakikolwiek złośliwy kod znajdujący się „na wolności”. Tyle tylko, że Project Zero na pytanie „Czy Meltdown lub Spectre są używany na wolności?” odpowiada: „Nie wiemy”. Eksperci przyznają również, że te zagrożenia nie pozostawiają właściwie żadnych śladów…

Ta dziura ma już 23 lata

Meltdown (od angielskiego słówka topić) to luka, której mechanizm dosłownie topi zabezpieczenia, które do tej pory, jak sądzono, są gwarantowane przez sprzęt. Do czasu odkrycia tej dziury wydawało nam się, że dzięki różnego rodzaju mechanizmom programowa warstwa systemu komputerowego jest bardzo dobrze odseparowana od warstwy sprzętowej. Odkrycie luki Meltdown wykazało jednak, że aplikacje mogę uzyskać dostęp do, wydawałoby się, pilnie zastrzeżonych rejonów sprzętowej pamięci.

Słabością procesorów okazało się tzw. spekulatywne wykonywanie instrukcji, które Intel w swoich procesorach wprowadził w 1995 roku. Ale samo speculative execution jest mechanizmem powszechnie wykorzystywanym zarówno przez AMD jak i procesory ARM.

Spekulatywne wykonywanie instrukcji w wielkim uproszczeniu polega na tym, że przetwarzający równolegle wiele instrukcji jednocześnie procesor zgaduje, które z nich zostaną wykonane w najbliższej przyszłości. Jeśli w toku działania programu okazuje się, że zgadł dobrze, to dzięki temu działaniu wykonanie programu zostanie przyspieszone, bowiem część programu została zrealizowana z wyprzedzeniem. Gdy prognoza jest błędna, zbędne w tym momencie obliczenia zostają odrzucone.

Na tym również opiera się zabezpieczenie wrażliwych danych. Instrukcje odnoszące się do pobierania danych z zastrzeżonych obszarów pamięci, gdzie tymczasowo przechowywane są np. nasze hasła, są odrzucane, bo ich wykonanie jest zastrzeżone.

Procesor dostaje się do tych danych zazwyczaj wcześniej na drodze właśnie spekulatywnego wykonywania instrukcji, bo rozpatrywanie warunków i wyjątków przetwarzane jest znacznie wolniej. Finalnie, polecenie odczytania wrażliwych danych zostanie odrzucone, ale same dane na jakiś czas zostaną w pamięci podręcznej, bo przecież zostały wcześniej pobrane poprzez mechanizm speculative execution!

Tu dochodzimy do odkrycia ekspertów Google’a, którzy pokazali, że są w stanie wykorzystać tę zależność i odczytać dane z pamięci zanim zostaną wyczyszczone. Zobaczcie jak to się dzieje w praktyce. Pierwszy film pokazuje to, czego normalnie nie widzimy (odczyt pamięci), a drugi to co się dzieje po stronie interfejsu.

Druga dziura, Spectre również wykorzystuje schemat działania spekulatywnego wykonywania instrukcji, ale działanie tej luki przełamuje granice pomiędzy różnymi programami działającymi na naszym komputerze. Paradoksalnie im programy będęą lepiej zabezpieczone, tym mogą być bardziej podatne na atak. Tak przynajmniej twierdzi Google. Eksperci pokazują, że do zrobienia „złego” wystarczy nawet coś tak prostego jak JavaScript. Podkreślają jednak, że Spectre jest bardziej skomplikowana do wykorzystania ale równocześnie znacznie trudniejsza do zabezpieczenia i jak pisze Google „będzie nas prześladować jeszcze przez jakiś czas”.

Po technikalia odsyłam do prac naukowych poświęconych obu dziurom (Meltdown, Spectre) i do wpisu na blogu Project Zero.

Spowolnienie: cena za przywrócenie bezpieczeństwa

Specjaliści Google’a twierdzą, że przed Meltdownem i Spectre nie uchroni nas żaden program antywirusowy. Problem w tym, że „złe” programy są bardzo trudne do odróżnienia od tych „dobrych”. Przynajmniej do chwili kiedy nie nastąpi pierwszy atak. Wtedy antywirusy będą wstanie oznaczyć złośliwy kod aplikacji tak by trafił do bazy sygnatur programu zabezpieczającego.

Co gorsza problem dziur w procesorze dotyczy nie tylko komputerów czy telefonów, ale również serwerów, na których działa internetowa chmura.

Jedynym ratunkiem jest wprowadzenie do systemów operacyjnych działających na wszystkich urządzeniach ich poprawionych wersji, które odetną drogę przestępcom. Niestety ceną za bezpieczeństwo jest spowolnienie systemu. Jak duże? To zależy od rodzaju wykonywanych operacji, wieku sprzętu czy systemu operacyjnego. Może być niezauważalnie wolniej (o 2-3%), ale pojawiły się też doniesienia o 30% spadku wydajności!

Potwierdziły to już pierwsze testy przeprowadzone przez serwis Phronix dla systemu Linux. Najbardziej ucierpiał w nich transfer danych pomiędzy procesorem a dyskiem SDD, ale miało to miejsce w bardzo konkretnych przypadkach.
Redakcja amerykańskiego PC Worda zauważa, że syntetyczne testy pokazują w Windows spadek nawet na poziomie 39%. W bardziej „życiowych” badaniach, takich jak sprawdzenie wydajności przeglądarki, ogólny spadek szybkości był już na poziomie 2,5%. To znacznie lepszy rezultat niż to (5-10%) co podał w swoich tabelkach Intel.

 

Microsoft na swoim blogu Secure również nie ukrywa, że możemy odczuć zmianę szybkości działania swoich maszyn. Dotyczy to komputerów z procesorami Intel Haswell (wprowadzone na rynek w 2013 roku) lub starszymi. W przypadku kombinacji Windows 10 + Intel Haswell producent pisze, że „część użytkowników zauważy spadek wydajności”. Haswell i jeszcze starsze procesory w połączeniu z Windows 8 i 7 mają działać jeszcze gorzej. W ich przypadku padło stwierdzenie, że „większość użytkowników zauważy spadek wydajności”.

 

Microsoft i inni producenci sprzętu wiedzieli o tych lukach znacznie wcześniej. Nad aktualizacjami oprogramowania pracowali już od dłuższego czasu, tak by było gotowe na początek 2018 rku, kiedy upublicznione zostały informacje o dziurach. Okazuje się jednak, że mimo to, łatanie dziur jest wciąż dużym problemem i nie chodzi tutaj tylko o pogorszenie wydajności.

By skutecznie zablokować Spectre konieczna jest aktualizacja mikrokodu procesora. Intel przygotował na czas stosowną poprawkę, ale po jej wypuszczeniu w świat pojawiły się doniesienia o problemach ze stabilnością ich pracy. O wielkich problemach z resetowaniem się procesorów w systemach przemysłowych informowała np. firma Rockwell Automation. W efekcie Intel zalecił wstrzymanie się z instalowaniem poprawionego mikrokodu.

Z kolei poprawka Microsoftu w przypadku starych procesorów AMD Athlon, Opteron spowodowała kompletne zablokowanie bazujących na nich komputerów. W efekcie czego Microsoft wstrzymał przeznaczone dla nich aktualizacje i pracuje wspólnie z AMD nad rozwiązaniem problemu. Sam „zielony” producent procesorów zresztą wciąż pracuje nad poprawkami mikrokodu dla swoich CPU, bo od tej strony wciąż nie są one należycie zabezpieczone.

Podsumowanie: czyli czy jestem zagrożony w pigułce

Intel (czyli PC, komputery Apple’a, urządzenia z Androidem) – wszystkie procesory są podatne na obydwie luki. Część problemów rozwiązywana jest przez aktualizacje systemu, część poprzez wgranie nowego mikrokodu dla mikroprocesora. Niestety z tą drugą poprawką na ten moment są problemy – np. resetowanie, wieszanie się komputerów – i trwają pracą nad ich wyeliminowaniem.

AMD ze względu na swoją architekturę nie jest podatne na atak Meltdown, ale Spectre zagraża również i tym procesorom. Pojawiały się pierwsze poprawki wprowadzane przez aktualizację Windows, ale jak pisałem nie sprawdziły się w przypadku starszych procesorów. Trwają również prace nad aktualizacją mikrokodu CPU.

ARM (iPhone, większość urządzeń z Androidem) – Firma Arm poinformowała, że atakiem Meltdown zagrożony jest tylko ich jeden procesor (Cortex-A75), a Spectre grozi takim modelom jak (Cortex-R7, R8, A8, A9, A15, A17, A57, A72, A73 i A75).
Apple wie o problemie i zapewnia bezpieczeństwo smartfonom i tabletom działającym pod kontrolą najnowszego iOS-a 11 (od iPhone 5S w zwyż). Z kolei Google twierdzi, że wszystkie urządzenia z wgraną najnowszą aktualizacją bezpieczeństwa nie są zagrożone. Pytanie tylko co z wciąż używanymi starszym telefonami, które nie otrzymują już żadnych aktualizacji (np. Galaxy S3, S4, S5). Tu możecie bardzo wygodnie sprawdzić też inne modele telefonów.

Nvidia uważa, że jej karty graficzne są bezpieczne, jednak procesory wymagają aktualizacji oprogramowania.

Nie pozostaje nam nic innego jak tylko czekać i nie odkładać aktualizacji naszych komputerów.

Grafika otwierająca: Google/Natascha Eibl; (CC0)

Nie ma więcej wpisów