Bierzemy pod lupę błąd w procesorach Intela, AMD i ARM

Bierzemy pod lupę błąd w procesorach Intela, AMD i ARM04.01.2018 12:33

Nie czekając, aż konkurencja wypuści aktualizacje, na łamach bloga Google Project Zero badaczeszczegółowo udokumentowali nagłośniony wczoraj, bardzo poważny błąd w procesorach.

Przypomnijmy, że chodzi o błąd w architekturze niemal wszystkich procesorów, który może pozwolić aplikacjomdziałającym z uprawnieniami użytkownika do odczytania z pamięcinależącej do jądra systemu danych, do których nie powinny miećone dostępu – haseł, kluczy, zawartości plików zbuforowanych zdysku i innych sekretów, normalnie niewidocznych dla aplikacji. Teraz gdy Google ujawniło już szczegółyataków, możemy podsumować stan rzeczy.

Jak się okazuje,mamy właściwie do czynienia z trzema różnymi podatnościami.Pierwsze dwa otrzymały zbiorczą nazwę Spectre Attack, trzeci znanyjest od teraz pod nazwą Meltdown. Co mogą one zrobić Waszymkomputerom – i jaki sprzęt faktycznie jest na atak podatny?

Meltdown, czyli gruby problem

Zacznijmy odnajwiększego z zagrożeń, CVE-2017-5754, rogue data cache load(„złośliwe ładowanie danych z bufora”), które otrzymałonazwę Meltdown („krach”). To właśnie ono było rozważane wewczorajszych spekulacjach, za jego sprawą normalne aplikacje mogąodczytać niedostępną dla nich pamięć kernela. To właśnie onozostało też opisane w artykule Andersa Fogha z lipca zeszłegoroku, do którego linkowaliśmy. Teraz możemy zaprosićzainteresowanych do lektury artykułu*Meltdown *zespołu badaczy zcałego świata, w którym przedstawiono go w detalach.

W dużym uproszczeniu sztuczka polega na wykorzystaniu mechanizmupredykcji procesora, który próbuje zgadnąć, jaka instrukcjabędzie wykonana jako następna i pobiera dla niej dane. Jeśliprocesor zgadnie źle, to musi cofnąć tak uruchomiony kod iuruchomić to, co faktycznie znajdowało się w programie. Jednaknajwyraźniej cofnięcie nie jest doskonałe – w buforach pozostająfragmenty danych. Napastnik próbuje więc w normalnym procesieużytkownika zestawić takie instrukcje, które sprawią, żeprocesor będzie zgadując pobierał dane z obszaru chronionejpamięci, nie przeprowadzając tu żadnej kontroli uprawnieńdostępu.

Gdy więc normalnie próba odczytania bajtu pamięci z pamięcikernela przez zwykły proces powinna zwrócić wyjątek, bezpiecznieobsłużony przez system, to następne po niej instrukcje zostałyjuż wykonane bez takiej kontroli, pozostawiając w buforze zawartośćpobranego bajtu. Teraz sprytne operacje na buforach pozwalająodkryć, gdzie bajt został zachowany i go odczytać. W ten sposóbmożna bajt po bajcie odczytać całą zawartość pamięci kernela.

Komu zagraża Meltdown?

Na ten atak podatne są wszystkie procesory Intel x86wyprodukowane od 1995 roku, stosujące technikę out-of-orderexecution (wykonywania poza kolejnością) – za wyjątkiem starych,32-bitowych procesorów Atom, które jej nie stosowały. Na pewnopodatne są jednak wszystkie 64-bitowe procesory Core. Intel do tejpory nie przedstawił żadnych zaleceń, Google zademonstrowałotymczasem, jak na procesorze Haswell Xeon odczytać dane z pamięcikernela.

Podatne są też procesory ARM, stosowane powszechnie wsmartfonach, ale przecież nie tylko, korzysta z nich mnóstwourządzeń wbudowanych i końcówek Internetu Rzeczy. Atak Meltdownmożna przeprowadzić na czipach ARM z najnowszymi rdzeniamiCortex-A75, ale uwaga: starsze rdzenie, Cortex-A15, Cortex-A57 iCortex-A72 są podatne na odmianę Meltdownu, w której procesyużytkownika mogą uzyskać dostęp nie do pamięci kernela, ale dochronionych rejestrów systemów. ARM opublikowało już biuletynbezpieczeństwa, w której dokładnie opisano, co może się staći jak sobie z tym radzić.

Procesory AMD nie są podatne na ten atak. AMD opublikowało w tejsprawie oficjalnewyjaśnienia. Potwierdził to sam Linus Torvalds, wprowadzającdo linuksowego kernela łatkę – zostaje ona wyłączona, jeślirozpozna procesor czerwonych (X86_VENDOR_AMD).

Meltdown demo - Spying on passwords

Jak się zabezpieczyć przed Meltdown?

Jako że jest to luka sprzętowa, atak można wykonać nawszystkich systemach operacyjnych działających na podatnychprocesorach. Zabezpiecza się przed nim, przenosząc pamięć kernelaw oddzielną przestrzeń pamięci wirtualnej. Technika ta nosi nazwęKernel Page Table Isolation (KPTI) – i niestety wiąże się zesporym (sięgającym nawet 30%) spowolnieniem pracy systemu. Imwięcej oprogramowanie próbuje uzyskać dostępu do zasobówsprzętowych i systemowych, tym większe będzie spowolnienie.Najgorzej mają wszyscy ci, którzy obsługują duże bazy danych.

W systemach Windows 10 taka izolacja zostaje wprowadzona przezpaczkę KB4056892– załatany zostaje też podsystem Windowsa dla Linuksa. Sam Linuxdostał aktualizacje do kernela4.15, trwają prace nad backportowaniem jej do wspieranychkerneli, wasze dystrybucje dostarczą je tak szybko jak to możliwe.macOS został zabezpieczony już w grudniu w wydaniu systemuoznaczonym numerem 10.13.2.

Uważajcie na wszelkiego rodzaju chmury i hostingi. Amazon właśniezakończył w pospiechu aktualizację chmury EC2, ale Microsoftdopiero wprowadza poprawki do Azure. Jak będzie z różnymipomniejszymi firmami – to się dopiero okaże.

Spectre, czyli drugi problem

Drugi z opisanych ataków na procesory obejmuje dwie podatności: CVE-2017-575, bounds checkbypass, oraz CVE-2017-5715, branch target injection. Podobnie jakatak Meltdown, wynikają one z błędów w architekturze procesora.Spectre jest trudnym do przeprowadzenia atakiem, zarazem wydaje sięteż bardzo trudny do załatania – tak naprawdę to trzeba byłobytutaj przekompilowywać wszystkie aplikacje. Samo izolowanie pamięcikernela nic tu nie da.

Spectre pozwala bowiem napastnikowi, który uruchomił swójproces z uprawnieniami zwykłego użytkownika na wydobycie informacjiz innych procesów działających w systemie, ale też wydobycieinformacji z własnego procesu. Ma to sens choćby w wypadkuprzeglądarek, gdzie kod w JavaScripcie może nagle zacząćodczytywać ciasteczka logowania z pamięci. Szczegóły zostałyprzedstawione w artykulept. Spectre Attacks: Exploiting Speculative Execution.

Komu zagraża Spectre?

Na atak na pewno podatne są procesory Intela. Badacze odkryli, żena procesorach Haswell Xeon są w stanie odczytać zawartośćpamięci innych procesów. Co ciekawe, za pomocą tych ataków udałosię też odczytać z poziomu maszyny wirtualnej-gościa zawartośćpamięci linuksowego kernela na hoście w obszarze 4 GB. Atak byłjednak dość skomplikowany (wymagał trwającej od 10 do 30 minutinicjalizacji) i powolny (1500 bajtów na sekundę).

Procesory AMD też są podatne na atak Spectre i odczytaniepamięci z innych procesów. Na pewno działa on na rdzeniach warchitekturach wywodzących się z Bulldozera, w czipach AMD FX-8320oraz AMD PRO A8-9600. Dodatkowo jeśli czip AMD PRO działa wniestandardowej konfiguracji z włączoną optymalizacją JIT, zwykłyużytkownik może odczytać pamięć kernela. A co z czipami Ryzen?Niestety mamy złą wiadomość – badacze twierdzą, że Spectredziała też na Ryzenach.

Tak samo fatalnie wygląda sytuacja z procesorami ARM: podatne sąrdzenie Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A17, Cortex-A57,Cortex-A72, Cortex-A73 i Cortex-A75, a także specjalistyczne rdzeniez serii R.

Jak się zabezpieczyć przed Spectre?

Tu sprawa robi się dość skomplikowana. Google twierdzi,że smartfony z Androidem i najnowszym zestawem łatek są w praktyceodporne na próby exploitowania Spectre, poprzez zablokowanie dostępudo precyzyjnych timerów, potrzebnych do przeprowadzenia takiegoataku. Podobne zabezpieczenia zostaną wprowadzone do przeglądarkiChrome od wersji 63 oraz chromebooków.

Badacze stawiają jednak pod znakiem zapytania skutecznośćtakich działań, pisząc, że choć można wprowadzić z poziomukompilatora instrukcje blokujące spekulatywne wykonywanie kodu, toznacząco to obniży wydajność. Trzeba to też zrobić zewszystkimi aplikacjami – a co, jeśli są stare i niewspierane?Wątpliwa jest także praktyczna wartość uaktualnień mikrokoduwydanych dla procesorów, w najlepszym razie można to uznać zatymczasową łatkę.

Być może najlepszym zabezpieczeniem jest… śmietnik.Amerykański CERT wydał oficjalnykomunikat, w którym przedstawia swoje rozwiązanie: należywymienić podatny na atak procesor. Ale które są niepodatne? Wostatnim czasie predykcyjne wykonywanie kodu bardzo się rozpleniło,w Ryzenach AMD chwaliło się wręcz jakąś sztuczną inteligencjądo przewidywania kolejnych instrukcji. Czy takie rozwiązania w ogólesą bezpieczne?

Niewykluczone, że w najbliższych latachsporo utracimy po prostu z wydajności procesorów. Branżapółprzewodnikowa całe lata ścigała się jedynie na wydajność ienergooszczędność. Jak widać, popełniono przy tym błędy, którenas wszystkich mogą drogo kosztować.

Podsumowanie

Meltdown(Rogue Data Cache Load)Spectre I(Bounds Check Bypass)Spectre II(Branch Target Injection)ReakcjaIntelpodatne modele od 1995 roku poza 32-bitowymi AtomamipodatnepodatnekomunikatprasowyAMDodpornepodatneznikome prawdopodobieństwo atakuobjaśnienie stanuzagrożeńARMCortex A-75 podatny, A-15, A-72 podatne na osłabioną wersjępodatne Cortex-A8 do A-75podatne Cortex-A8 do A-75biuletynbezpieczeństwa

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.