Spójrz jak pięknie płonie, czyli Spectre mówi światu „buuu”

Z pozornie niepozornej informacji o wykryciu nowej podatności umożliwiającej przeprowadzenie ataku na nasz komputer, zrobiła się afera na miarę cyfrowej apokalipsy. Doniesienia o „dziurze” w procesorach Intela zostały przez nich zbagatelizowane, na co zespół badawczy Google’a udostępnił całość materiałów na temat ataków Meltdown oraz Spectre. Świat zatrząsł się w posadach, gdyż wspomniane przypadłości okazały się być skuteczne również w przypadku procesorów AMD i ARM.

Dzięki temu dziś mamy nieco więcej wglądu na całość zagrożenia. Okazało się, że architektura niemal wszystkich procesorów pozwala programom uruchamianym przez użytkownika dostęp lub odczyt bloków pamięci wykorzystywanych bezpośrednio przez system (kernel). Aby powyższe nabrało odpowiedniej mocy przerażania, należy uświadomić sobie co co można znaleźć w pamięci wykorzystywanej przez system. Hasła, klucze, bufory danych i innych wrażliwych informacji do których żaden proces nie powinien mieć dostępu.

Meltdown

Podatność którą wykazano w procesorach ARM i Intela produkowanych po 1995 i stosujących out-of-order execution. Użytkownicy AMD mogą odetchnąć, gdyż wspomnianego ataku nie udało się skutecznie przeprowadzić na tych procesorach. Sam Linus Torvalds zaproponował poprawkę do kernela wykrywają procesory AMD i tym samem omijające konieczność stosowania obejścia / poprawki (o tym poniżej).

W dużym skrócie (obszerniejsze informacje w pliku PDF powyżej), wykorzystano tutaj niedoskonałość w przewidywaniu przez procesor kolejnej instrukcji jaka będzie wykonana przez program. Pobierane są dla niej (instrukcji) dane i gdy okazuje się, że procesor źle przewidział co nastąpi dalej, niefrasobliwie pozostawia te dane w pamięci. Zatem oczywistym jest, że ktoś może te dane zbierać bajt po bajcie, wymuszając na procesorze tak generowanie i preparowanie danych, że po jakimś czasie atakujący będzie w posiadaniu całkiem bogatej wiedzy o tym, co się przewinęło przez bufory.

Jako, że wszystko się da załatać, to również i na tę dziurę sprzętową (bo to wina procesora) jest sposób. Stosując Kernel Page Table Isolation (KPTI) wystarczy przenieść pamięć kernela w wydzieloną przestrzeń pamięci wirtualnej… I stracić w najgorszym wypadku do 30 – 40% wydajności procesora. Im stare konstrukcje, tym bardziej odczują wspomnianą łatkę.

Na dzień dzisiejszy załatano system Windows 10 (KB4056892) i macOS (10.13.2). W Linuksie poprawki trafiły do kernela 4.15 i trwają prace, aby przenieść je do wcześniejszych wydań.

Spectre

Ponowne uchybienia w architekturze Intela, AMD, ARM. Ponownie umożliwiają wrogiej nam jednostce przejęcie informacji obrabianych lub zgromadzonych przez inny proces. A nawet przez proces w ramach którego dany kod jest wykonywany (kod w Javascript wydłubujący dane z przeglądarki WWW która go uruchomiła).

W tym przypadku sytuacja jest nieco bardziej skomplikowana, gdyż przeprowadzenie samego ataku to dość żmudny proces. Podobnie jak niemal niemożliwym jest wykonanie łatki aby uniknąć wspomnianej sytuacji (patrz PDF powyżej). Na dzień dzisiejszy nie ma zdecydowanego rozwiązania oprócz wymiany procesora. Uwaga – niestety najnowsze Ryzeny również są podatne na atak Spectre.

Zatem, co dalej? Sytuacja jest nieciekawa. Z jednej strony producenci procesorów mają ciężki orzech do zgryzienia. Sprawy nie da się zatuszować. Wymieniać procesorów również raczej nie. Pozostaje namawianie do zakupu nowych konstrukcji, które… Muszą powstać. Od strony użytkownika wygląda to równie smętnie. Trzeba kupić nowy procesor lub pogodzić się ze stratą wydajności (mierzalną). Firmy hostingowe, cloudy i cała ta strona biznesu nie ma raczej wyjścia. Amazon, Microsoft i inni w pośpiechu próbują załagodzić nieco potencjalne zagrożenia. 

44 komentarze

  1. Co robić, jak żyć? Została mi butelka szkockiej w Nowego Roku, myślę że wspólnie rozwiążemy problem! 🙂

  2. Jak byłem młody to dr bo coś było tl było powodem do wstydu dla kogoś, kto takie deklaracje składał. Czasy się zmieniły i wychodzi, że wstydzić się ma ten, kto pisze teksty składające się więcej niż ze 130 znaków wliczając emotki… W sumie to czasem się ciesze, ze jestem stary i mam raczej z górki, bo zmiany w społeczeństwie idą zdecydowanie w złym kierunku 🙂

  3. To teraz szukam laptopa z procesorem ARM typu Open Source, dawać namiary. Nie chce szpiega IME intel.

  4. jakiś rosyjski haker o pseudonimie kaspersk’y mówił o jakimś cyfrowym 9.11 o zabezpieczeniach dzisiejszych komputerów. umarł w 2007 jak dobrze pamiętam w dziwnych okolicznościach.

  5. ten problem nie da się rozwiązać mozna go obejść poprzez łatki ( reloaded cache) ale to w 100% nie rozwiązuje problemu . trzeba na nowo wszystkie platformy (nowy rodzaj zadządzania i działania komputerów) robić nie tylko cpu

  6. Wytknąłem błędy (w tym jeden bardzo istotny) i komentarz został usunięty.

    Bardzo gówniarska praktyka autorze.

  7. Uwierz mi, mam lepsze zajęcia niż usuwanie komentarzy, a szczególnie tych merytorycznych. Niestety, nie widzę Twojego komentarza w spamie, nie wiem gdzie się podział.

  8. W każdym bądź razie lunuksowa poprawka była już od kilku dni dostępna wraz z wydaniem 4.14.11, a nie tak jak napisałeś, że dopiero trwają jakieś prace w 4.15

  9. Raczej ogłoszone.
    stable: 4.14.11 2018-01-02 (kernel.org)
    Ale to nie aż tak istotne.

    Pozdrawiam.

  10. “ARM typu Open Source”

    Architektura ARM jest w pełni własnościowa i w zależności od implementacji zawiera wiele zabawek w stylu ARM Trustzone, verified boot, zarządzanie energią w osobnym, odizolowanym rdzeniu (co nie przeszkadza temu rdzeniu, aby miał dostęp do pamięci przez DMA) itd…

    Z tego co wiem, to jest jakiś otwartoźródłowy procesor oparty na architekturze RISC-V. Tam szukaj tropu.

  11. Twoja postawa to arogancja w czystej formie, traktujesz ludzi z góry i surowo oceniasz wyłącznie pod kątem swojej wąskiej perspektywy, każdy kto przeczyta skrót informacji, zamiast pełnego tekstu to nieuk i prostak, bo oczywiście nie może być innego powodu, jak brak czasu, a jednocześnie chęć zapoznania się z tematem żeby np. dodać sobie zakładkę żeby przeczytać wieczorem, albo setki innych powodów…

  12. Jak wspomniał @Xyzz, ARM jest własnościową architekturą, RISC-V jest otwarty, ale jak na razie można kupić jedynie płytki prototypowe, a wydajność tych maszyn to w porywach to co oferuje Raspberry Pi 1, Na desktop się nie nadaje. Na desktop dobrym rozwiązaniem będzie procesor Power9 (od IBM), na początku tego roku nawet ma pojawić się komputer na otwartej platformie – Talos II, ale przygotuj się na to że ta maszyna kosztuje tyle co mały samochód.

  13. Taka postawa jest charakterystyczna dla wielu osób, nie ma co nakręcać emocji. Czasy się zmieniają i zmienia się również sposób podawania informacji. Dzisiaj czytamy bardzo dużo, myślę, że nawet więcej niż dawniej a to właśnie dzięki komputerom i smartfonom.

    Ogromna dostępność informacji w necie powoduje niestety u nas takie samo zjawisko jak u dzieci w pokoju pełnym zabawek. Powierzchowność. Dotknę, pobawię się, wezmę coś innego. Problemy z koncentracją u dzieci występują częściej niż kiedyś (informację czerpię z relacji znajomych pedagogów), myślę że nie tylko na skutek przestymulowania, ale również pod wpływem obserwowanych zachowań u innych członków rodziny.

    Kiedyś o informację trzeba było się postarać, kupić, pożyczyć, poczytać w czytelni. To kształtowało szacunek do treści. Było też mniej krążących narracji bo i koszty ich produkcji były spore.

    Teraz ilość tekstów dostępnych za darmo, które w kilka sekund mogą pojawić się przed naszymi oczami jest ogromna. Za kilka lat teksty zacznie pisać AI i ich ilość wzrośnie niewspółmiernie. W naszym kraju mamy n.p. dwie główne narracje i coraz trudniej się porozumieć z drugim człowiekiem bo okazuje się, że niewiele jest punktów zbieżnych.

    W takim kontekście można zacząć się bać współczesności i najbliższej przyszłości.
    Ja się nie boję 🙂

  14. Dziękuje za rzeczowe, obiektywne i z szerokiej perspektywy widziane obrzucenie mnie inwektywami tylko z tego powodu, że mam inne przekonania a ty nie jesteś w stanie zrozumieć tego, co napisałem. Zrobiłeś dokładnie to, co mi zarzucasz, ale oczywiście tobie wolno, bo twoje przekonania i twoja perspektyw jest jak najbardziej uzasadniona, bo jest twojsza od każdej innej.
    Wytłumaczę ci zatem to, czego nie rozumiesz. TL;DR jest skrótem od Too Long; Didn’t Read, co po polsku oznacza ‘zbyt długie, nie czytałem’. I teraz skup się – NIE CZYTAŁEM. Czyli – nie wiem, co jest w informacji, mam w doopie pracę autora, nie przeczytałem – ale mam w moim pewnym wyzwań i napiętych grafików życiu czas, aby poinformować wszystkich i każdego, że nie czytam, ale i tak skomentuję. To jest szczeniactwo i głupota w czystej postaci. To NIE JEST przeczytanie skrótu czy streszczenia i pominięcie tekstu głównego – nie, to jest NIEPRZECZYTANE i pochwalenie się swoją arogancją. Gdyby ta osoba przeczytała skrót (którego Autor nie zamieścił, bo ma inne zasady na JEGO blogu – i już to samo czyni twój zarzut wobec mnie kompletnie bezpodstawnym) i nie tknęła rozwinięcia – nikt by nie miał do niej pretensji. Sam czytam bardzo dużo i często czytam tylko abstract (po to on jest, tak na marginesie), lekturę całej pracy zostawiając na iny czas, którego akurat nie mam w nadmiarze. Tyle, że po tym heroicznym wyczynie przeczytania jednostronicowego skrótu zamiast kilkuset stron pracy nie piszę maila do autora tej pracy by poinformować go o tym fakcie i skomentować objętość jego dzieła, jako zbyt obszerną (choć nie znam jej treści).
    Teksty Autora na tym blogu są mniej więcej tej samej długości, mają zbliżoną strukturę. Jeśli są dla kogoś zbyt długie – wystarczy tu nie zaglądać, jest wszak Tweeter, tam piszą krócej. Albo paski w TVP. Nieczytanie i chwalenie się tym wraz z zarzutem, że te kilkanaście zdań jest zbyt długie – to głupota, goowniarstwo i szczeniactwo w jednym.

  15. Należy też wspomnieć, że w wielu przypadkach trzeba także zakupić nową płytę główną i pamięć operacyjną… spory wydatek.

  16. Masz sporo racji, oczywiście. Tyle, że mamy tu dwa odrębne zjawiska – Ty piszesz o zalewie śmieciową i niewiele wartą papką informacyjną, która się konsumuje bezrefleksyjnie i jest to powszechne (oraz samo w sobie zasługuje na długą i obszerną dyskusję). Ja zaś zareagowałem na zwykłe chamstwo polegające na ‘olaniu’ darmowej i wartościowej pracy Autora tego bloga tylko z tego powodu, że jakiegoś chłoptasia przerasta przeczytanie ze zrozumieniem kilku czy kilkunastu zdań. I samo w sobie to nie byłoby jeszcze powodem do wk…urzenia się, ale to, że koleś uznał za stosowne poinformować cały świat o swojej arogancji z wyrzutem ‘dziękując’ Autorowi, że chciało mu się, ale niestety nie w formie serii emotek – to zwyczajnie zasługuje na taką reakcję, jaką niegdyś dojrzali ludzie wykazywali wobec wszelkich szczeniackich wybryków.

  17. “tl;dr” to częste określenia na krótkie streszczenie tematu i podejrzewam, że o to właśnie znaczenie tutaj chodziło (“dzięki za świetne streszczenie tematu” ma więcej sensu niż “dzięki za nie przeczytałem bo za długie”). Odrobina pokory oszczędziłaby ci ataku na bogu ducha winnego człowieka i groteskowych przytyków o czytaniu ze zrozumieniem dłuższych tekstów, podczas gdy sam nie zrozumiałeś komentarza składającego się z 4 słów. 😀

  18. Tak, oczywiście… ‘Zbyt długie, nie czytałem’ (bo to jest polskie tłumaczenie tl;dr) oznacza ‘dzięki za świetne streszczenie tematu’… Natomiast ‘za..bię cię ty sku..synu’ oznacza tak naprawdę, jak się dobrze wczytać – ‘chodź, postawię ci piwo’… A jeśli ktoś to odbiera inaczej to ‘atakuje bogu ducha winnego człowieka’ okazując brak pokory. Naprawdę tak myślisz, czy sobie jaja robisz?
    Bo jeśli naprawdę, to Twój wpis potwierdza jedynie moje obawy co do kondycji intelektualnej znacznych rzesz społeczeństwa obecnie, niestety… Jeśli ktoś ci napisze – ‘rob, jesteś skończonym idiotą i zapewne seryjnym mordercą’ – to z pokorą zakładasz, ze chciał wyrazić podziw dla twego intelektu, tylko nie rozumiał jakich słów używa?!

  19. Potwierdzasz tylko jak marnie u ciebie z czytaniem ze zrozumieniem, zahaczając wręcz o trolling. Radzę poczytać dokładniej jakie jest dokładne znaczenie tego zwrotu i w jakich sytuacjach jest używane. Choćby na wiki.
    Zresztą ciężko będąc względnie aktywnym w internecie tego nie zauważyć – niektóre artykuły mają nawet specjalną sekcją ze streszczeniem, które są właśnie tak zatytułowane. Jeśli je też odczytujesz dosłownie, to nie wróże sukcesów. Ale szczerze wierzę że problem jest gdzieś indziej – aroganckim ludziom ciężko przyznać się do błędu. 🙂

  20. Wiem co znaczy ‘too long; DIDN’T read’. Wiem, że gdy trollowi w dyskusji brakuje kontrargumentów by odpowiedzieć rzeczowo – ‘tl;dr’ jest w jego rozumieniu świetnym wybiegiem, by uciec od przyznania racji lub dalszej dyskusji, którą często sam zaczął. Jakie jeszcze znaczenia w szybko zmieniającym się świecie papki informacyjnej w mediach społecznościowych ludzie przypisują temu akronimowi od prostego i jednoznacznego zdania – nie wiem. Nauczono mnie rozumieć przekaz wprost.
    A skoro powołujesz się na Wiki, to proszę bardzo, cytat z angielskiej, pierwsze zdanie:
    ‘TL;DR, short for “too long; didn’t read”, is Internet slang to say that some text being replied to has been ignored because of its length.’
    Podkreślam słowo IGNORED – mam nadzieję, ze wiesz,c o znaczy w takim tradycyjnym brzemieniu, bo może w kulturze fajsbuka znaczy ‘docenić’, nie wiem… Tak czy inaczej w pierwotnym brzmieniu, podanym przez twoją wyrocznię, Wikipedię, ten skrót oznacz ZIGNOROWANIE wpisu TYLKO z tego powodu, że w opinii ignorującego jest za długi. Nie – błędny, nie na temat czy wulgarny – zwyczajnie zbyt długi. I to mnie właśnie oburzyło, że koleś wchodzi na cudzy blog, widzi fajnie i rzeczowo napisany wpis o ważnym w świecie IT wydarzeniu i zadaje sobie trud poinformowania świata, ze nie przeczytał, bo za dużo literek. To jest właśnie klasyczny, podręcznikowy trolling (nawet, jeśli koleś chciał napisać, że jest ‘tylko’ zbyt leniwy, by czytać’ – kogo to? Co to wnosi?). A ty dorabiasz do tego ideologię wmawiając mi, że to jestem agresywnym trollem, bo nie rozumiem, że napisane słowa znaczą coś innego tak naprawdę. Powtórzę – wisi mi, co autor w aktualnej wersji slangu małolatów rozumie przez tl;dr. Używając terminu to ON musi być świadom wszystkich jego znaczeń i użyć go tak, żeby być zrozumianym jednoznacznie, bez samowolnych adwokatów internetowych. Tak robią ludzie inteligentni – no ale to wymaga czasem kilku słów więcej, a to trudne, prawda?
    Zakładam, ze jak ktoś wejdzie do twojego domu i nazwie twoją matkę, żonę czy siostrę ‘fajną lochą’, to też uznasz, że jest okay, bo ‘tak się mówi na Fejsie na kobiety’. Nie mój problem, życzę miłego wieczoru…

  21. To ja proponuję poprosić Van’a o wykładnię i wstrzymać się z wszelkimi szerszymi przemyśleniami na jego temat. Życie to nie książka, jedni widzą kapelusz, a inni węża który połknął słonia. Lepiej się zapytać, niż próbować się domyślać. Choć by po to warto, żeby wiedzieć, czy on to w ogóle przeczyta.

    Napisał chłopak cztery słowa i słuch po nim zaginął. Poświęcił na to może 10 sekund, no powiedzmy, maksymalnie minutę jeśli pisał jednym palcem. W czasie gdy Wy tu rozprawiacie na jego temat to on mógł zdążyć już z 50 podobnych komentarzy strzelić w różnych miejscach w sieci i przejść się na piwko nie przejmując się, że takie emocje wzbudził.

    Szkoda czasu na taki offtop.

  22. A skoro powołujesz się na Wiki, to proszę bardzo, cytat z angielskiej, pierwsze zdanie:
    ‘TL;DR, short for “too long; didn’t read”, is Internet slang to say that some text being replied to has been ignored because of its length.’

    Zdanie później w tym samym akapicie tego samego artykułu:
    “It is also used as a signifier for a summary of an online post or news article.”

    Nie chciało ci się doczytać akapitu do końca? On ma 3 zdania! I ty robisz przytyki ludziom, że nie chce im się czytać dłuższych tekstów…

    Podsumowując: “TL;DR” ma 2 znaczenia, z czego tylko jedno ma sens w kontekście komentarza, który krytykujesz. Mimo to ty kompletnie ignorujesz fakt istnienia tego znaczenia, bo wtedy wychodzi na to że naskoczyłeś niepotrzebnie na człowieka.

  23. Nie interesuje mnie, co jest zdanie później. Interesuje mnie pierwotne i najczęściej używane znaczenie tego terminu, podane przez Wikipedię anglojęzyczną (czyli redagowana przez ludzi raczej znających ŻYWY angielski), na którą się powołałeś. Zresztą – zdanie, które cytujesz (i które czytałem, zapewniam) stwierdza jedynie fakt, że akronim jest używany jako znacznik do podsumowania postu czy tekstu on-line. Co to znaczy? Ano znaczy to, że twórcy Wikipedii są świadomi, ze ludzie wpisują to pod tekstami on-line. I tylko tyle. Redaktorzy Wiki stwierdzają fakt, ale nie dają najmniejszego argumentu przeciwko moim poglądom, ale za to wspierających twoje. Nie wynika z tego zdania na Wiki, ze ludzie oznaczający czyjeś wpisy tl;dr nie postępują głupio i każdy ma wpaść w zachwyt widząc taki bzdet pod rzeczowym, inteligentnym tekstem. Ta sama Wikipedia, tyle że w wersji polskiej w artykule poświęconym słowu ‘ku.wa’ stwierdza, że używa go ośmiu na dziesięciu dorosłych Polaków, wraz z innymi wulgaryzmami. I co – to według ciebie nobilituje prostaków rzucających mięsem na prawo i lewo? Słowo ‘kut.as’ ma swoje niewinne znaczenie w polszczyźnie, oznacza frędzel, ozdobę przy ubiorze. ‘Maciora’ była kiedyś synonimem matki, zaś ‘srom’ oznaczał wstyd. Dziś każde z tych słów jest odbierane w całkiem innym znaczeniu i osoby tych słów używające muszą być tego świadome, bo mogą zostać źle zrozumiane. Tl;dr znaczy ‘too long; didn’t read’ i jeśli ktoś tego używa – musi być świadom znaczenia. Czytelnik nie ma obowiązku dochodzić, co autor miał pod tym terminem naprawdę na myśli akurat dzisiaj.
    Odesłałeś mnie do Wiki bym sprawdził znaczenie akronimu tl;dr. Sprawdziłem. Jest dokładnie takie, jakie znałem… W zdaniu, o które ci obecnie chodzi znalazłem jedynie potwierdzenie mojej obserwacji – ludzie oznaczają tak teksty w sieci całkowicie bezmyślnie, potwierdzając swoją ignorancję. O tym właśnie od początku piszę…

  24. Nie interesuje mnie, co jest zdanie później.

    A mnie nie interesuje reszta twojego komentarza. Jeśli najpierw oburzasz się że ludzie nie czytają dłuższych tekstów, a później sam przyznajesz że nie interesuje cię pełna definicja danego stwierdzenia, bo wystarczy ci półwiedza żeby kogoś skrytykować, to ja nie mam pytań. Bez odbioru…

  25. Szybciej wygrasz pojedynek kopania się z koniem, albo opluwania się z hydrantem, niż przekonasz do czegokolwiek @Aspa:disqus.
    Logika czy jakieś tam fakty nie mają tu zastosowania. Jak onegdaj zauważył tu kiedyś @Pseudodrummer:disqus: on uważa że im więcej pisze tym bardziej ma rację (cytuję z pamięci).

    Aha, “Bez odbioru…” zawsze tłumaczy się u niego – “musisz mieć ostatnie słowo”. 😀

    Ale daj znać gdyby udało ci się przekonać do czegokolwiek naszą “Szczekaczkę Internetową”. 😀

  26. Na stację roboczą to znowu nie wiadomo jaki kosmos nie jest, z uwagi na wydajność klocków i istniejące oprogramowanie. Masakra za to jest z ceną tego rozwiązania.

  27. Zgadzam się z kolegą interem – szkoda czasu, choć z drugiej strony nieźle się ubawiłem, pobieżnie przeczesując powyższe komentarze ; D

    A co się tyka “Dzięki za świetne tl;dr!” – Van nie napisał wyłącznie gołego “tl;dr”, tylko podziękowanie z użyciem tego skrótowca, co we właściwym tłumaczeniu oznacza “Dzięki za świetne podsumowanie / streszczenie tematu”.

    W internecie pełno jest blogów, gdzie ludzie podsumowują dłuższe zagadnienia, tak aby inni mogli się z nimi szybko zapoznać, bez czytania długich i zawiłych analiz. Tego typu “posty” są często kwitowane skrótowcem “tl;dr”, który wskazuje, że jest to zwięzłe podejście do tematu, o którym w innym wypadku wielu napisałoby “zbyt długie, nie czytałem…” – tak jak pisano wcześniej, “tl;dr” ma również to drugie, pozytywne znaczenie : )

    Pozdrawiam Autora “przystajnika” oraz wszystkich czytelników. Dzięki za ten zaciszny, zaginiony przystanek na bezmiarze wszelkiej maści treści, zalewających nas w globalnej sieci.

  28. z tego co widzę to Rockchip producent procesora daje jedynie drivery Open Source – znaczy to i tak super, ale jednak nie jest to Open Hardware

Dodaj komentarz

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

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.