Rok 2017 pod względem zagrożeń i (kolejnych) luk w oprogramowaniu i sprzęcie na pewno nie był nudny. Wystarczy wspomnieć choćby podatność w WordPressie związaną z REST API, Cloudbleed, czyli podatność w usłudze Cloudflare, błąd CVE-2016-10229, pozwalający na wykonanie w Linuksie kodu z uprawnieniami jądra, ataki oprogramowania typu WannaCry (szyfrowanie danych), możliwość zdalnego wykonania kodu na komputerze za pomocą… napisów do filmu, „bonusowe oprogramowanie” w aplikacji CCleaner, podatność w protokole Bluetooth (BlueBorne), podatność w Intel Managment Engine, czy też KRAK, czyli zbiorze podatności w protokole WPA2 (WiFi), o czym wprawdzie „nie zdążyłem” napisać, ale na szczęście świat się nie zawalił… ;-)

Ale już wygląda na to, że to była tylko rozgrzewka, bo początek roku to właściwie globalna podatność w procesorach – głównie Intela, ale też i AMD, oraz ARM (urządzenia mobilne).

Meltdown i Spectre

Wczoraj (lub przedwczoraj) zaczęły pojawiać się publicznie pierwsze informacje o „jakiejś podatności dotyczącej procesorów”. Oczywiście spowodowało to od razu wysyp spekulacji i kolejnych artykułów na kolejnych stronach, choć tak naprawdę poza spekulacjami nie bardzo było o czym pisać. W efekcie sam „musiałem” odbyć rozmowę na ten temat z przynajmniej kilkoma znajomymi.

Sytuacji nie rozjaśniło też oświadczenie wydane przez Intela, z którego tak naprawdę niewiele wynika(ło). Nie rozjaśniło przynajmniej bezpośrednio, bo wszystko wskazuje na to, że mogło zainspirować ekipę z Google Project Zero do być może szybszego niż planowano opublikowania szczegółów podatności.

Oczywiście od razu powstała też strona internetowa i loga, co od jakiegoś już czasu jest chyba standardem:

I to jest dopiero ten moment, gdy – uzbrojeni w dedykowaną stronę w stronę oraz loga – możemy coś więcej napisać na ten temat… ;-)

Nie tylko Intel

Największy problem (potencjalnie) mają użytkownicy procesorów Intela (i niektórych układów ARM), których dotyczą 2 podatności (2 nazwy, bo mamy tu już przynajmniej kilka wariantów). W przypadku procesorów AMD sytuacja wygląda (dużo) lepiej, bo groźny jest tylko jeden z błędów.

Meltdown

Podatność umożliwia odczytanie nieuprawnionemu procesowi zawartości całej pamięci systemowej, i dotyczy praktycznie wszystkich procesorów Intela wyprodukowanych po 1995 roku (poza Atomami i Itanium produkowanymi przed 2013 rokiem):

Which systems are affected by Meltdown?

Desktop, Laptop, and Cloud computers may be affected by Meltdown. More technically, every Intel processor which implements out-of-order execution is potentially affected, which is effectively every processor since 1995 (except Intel Itanium and Intel Atom before 2013). We successfully tested Meltdown on Intel processor generations released as early as 2011. Currently, we have only verified Meltdown on Intel processors. At the moment, it is unclear whether ARM and AMD processors are also affected by Meltdown.

Podatność dotyczy również niektórych układów mobilnym, produkowanych przez ARM.

Spectre

Podatność umożliwia (przynajmniej w teorii) odczytanie nieuprawnionemu procesowi odczytanie pamięci wykorzystywanej przez inne procesy. W tym przypadku mamy do czynienia z podatnością dotyczącą zarówno procesorów Intel, AMD i ARM. Przy czym procesory AMD są prawdopodobnie odporne na jeden z wariantów Spectre (Spectre II).

What is the difference between Meltdown and Spectre?

Meltdown breaks the mechanism that keeps applications from accessing arbitrary system memory. Consequently, applications can access system memory. Spectre tricks other applications into accessing arbitrary locations in their memory. Both attacks use side channels to obtain the information from the accessed memory location.

Bardziej szczegółowe informacje znajdziecie na tej stronie, oraz w plikach PDF – Meltdown i Spectre.

Czy mój procesor jest podatny?

Jeśli chodzi o Meltdown, to jeśli korzystamy z procesora firmy Intel (lub jeden z podatnych procesorów ARM), to najprawdopodobniej podatność nas dotyczy:

Am I affected by the bug?

Most certainly, yes.

A dodatkowo atak ten jest właściwie nie do wykrycia:

Can I detect if someone has exploited Meltdown or Spectre against me?

Probably not. The exploitation does not leave any traces in traditional log files.

Pikanterii dodaje fakt, że błąd w podobnym czasie wykryła więcej niż jedna grupa, a tym samym nie można wykluczyć, że ktoś wcześniej już na niego trafił, i od kilku lat z niego korzysta.

W przypadku drugiego błędu podatne są zarówno procesory Intel, AMD i ARM, przy czym procesory AMD podatne są tylko na jeden z 2 znanych wariantów Spectre (w teorii drugi wariant też ma szansę zadziałać, ale tylko w bardzo specyficznych warunkach).

Spadek wydajności procesora

Sytuacja jest oczywiście poważna, ale na szczęście na większości systemów operacyjnych (Windows, Linux, Mac OS X, Android) pojawiły się już stosowne łatki, więc wystarczy zaktualizować system (KPTI/KAISER). Przynajmniej jeśli chodzi o Meltdown, bo w przypadku Spectre relatywnie (!) skuteczna poprawka powinna zostać wdrożona w każdym programie indywidualnie.

Mniej różowo wygląda to w przypadku telefonów z systemem Android, na którego łatka się pojawiła, ale zapewne większość jego użytkowników o aktualizacji może tylko pomarzyć…

Nie zmienia to faktu, że podczas zbierania informacji do tego artykułu, przeglądając różne strony i fora w internecie odniosłem wrażenie, że dla wielu większym problemem jest potencjalny spadek wydajności procesora, niż ewentualne ryzyko wycieku/kradzieży danych.

Nie znaczy to, że nie byłby to problem, zwłaszcza, gdyby spadek wydajności związany z programową naprawą usterki sprzętowej w procesorach wiązał się ze spadkiem wydajności tak jak to podawano w pierwszych informacjach – 30 do nawet 70%.

W serwisie Computer Base pojawiło się takie zestawienie dla kilku popularnych zadań:

Oraz dla gry Assassin’s Creed: Origins:

Jak widać na powyższych wykresach spadek wydajności w większości przypadków jeśli występuje, to jest minimalny (mowa o zwykłych zadaniach, wykonywanych na „domowych komputerach”).

Serwery (VPS) i chmury

Chyba większy problem mamy w przypadku serwerów VPS i rozwiązań chmurowych (wirtualizacja, cloud), gdzie z informacji jakie się pojawiają, w niektórych przypadkach może dojść do wykradnięcia informacji z innych maszyn wirtualnych. A to jednak budzi moje większe obawy, niż podatność w „domowym komputerze” (choć oczywiście i ta jest groźna).

Niektórzy dostawcy rozwiązań tego typu już łatają (będą pewnie automatyczne restarty maszyn), inni… mam nadzieję, że mimo braku informacji na ten temat również jak najszybciej podejmą stosowne kroki.

W tego typu rozwiązaniach ponoć możemy spodziewać się najwyższego spadku wydajności. Chyba gdzieś mi mignęło, że tak może być np. w przypadku baz danych.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk