Informatyczne egzorcyzmy: nowy model przepędza widmo Spectre z procesorów

Za luki Spectre i Meltdown przyszło sporo zapłacić, mimo że ztego co wiemy, żadnego realnego ataku za ich pomocą jeszcze nieprzeprowadzono. Wprowadzone w pospiechu do systemów operacyjnychłatki ograniczające spekulatywne wykonywanie instrukcji procesoraznacząco ograniczyły wydajność komputerów. Nie jest tozaskakujące: spekulatywne wykonywanie jest standardową częściąarchitektury komputerowej od niemal 70 lat. Agresywne wykonywanieinstrukcji poza kolejnością, wspierane przez zaawansowanemechanizmy przewidywania rozgałęzień pozwoliło wielokrotnieprzyspieszyć uruchamianie kodu bez szkody dla poprawności działaniaprogramu. Czy z tym wszystkim trzeba się będzie rozstać ze względuna zagrożenia dla bezpieczeństwa? Najwyraźniej nie. Pojawił sięnowy model spekulatywnego wykonywania, który w teorii i praktycekończy z całą klasą zagrożeń Spectre.

Informatyczne egzorcyzmy: nowy model przepędza widmo Spectre z procesorów

18.06.2018 11:05

Amerykańscy informatycy Khaled N. Khasawneh, Esmaeil Koruyeh,Chengyu Song, Dmitrij Jewtjiuszkin, Dmitrij Ponomarew i NaelAbu-Ghazaleh opublikowali artykuł pt. SafeSpec: Banishing theSpectre of a Meltdown with Leakage-Free Speculation, w którymopisują nowy model spekulatywnego wykonywania o nazwie SafeSpec.Znaleźli oni sposób na izolowanie artefaktów pozostawianych wpamięci cache procesora po spekulatywnym wykonywaniu w taki sposób,by nie można było ich wykorzystać do odczytania wrażliwych danychz pamięci innych procesów czy obszaru zarezerwowanego dla kernela.

SafeSpec jest wzorcem projektowym dla procesorów, który wymaga,by spekulatywne stany były przechowywane w tymczasowych strukturach(tzw. shadow states), niedostępnych dla przyjętych dowykonania instrukcji. Zmienia to całą hierarchię pamięci: jakwyjaśniają naukowcy, rozszerzone zostają kolejki load-store tak,by przechowywać wskaźnik do powiązanych z nimi tymczasowychstruktur, przechowujących spekulatywnie wykonane linie cache.

Obraz

Nowa hierarchia cache jest odporna na wszystkie znane wariantywycieku informacji. Przy okazji jednak wykryto nową metodę ataku,Transient Speculation Attacks, będącą efektem ubocznym SafeSpec –wynika ona z tego, że wiele instrukcji startuje jako spekulatywniewykonane przed ich popełnieniem. Zachodzi dla nich okreswspółdzielenia takiej tymczasowej struktury z instrukcjami, którezostaną odrzucone – i w tym okresie można wydobyć informację.By temu zapobiec, konieczne są dalsze modyfikacje spekulatywnieuaktualnianych struktur, w tym predyktora rozgałęzień i buforówDRAM. Niemniej jednak wskazano, co należy w tej kwestii zrobić.

Należy podkreślić, że model SafeSpec został stworzony dlajednowątkowych obciążeń roboczych. Wielowątkowe obciążeniawprowadzają swoje własne problemy z koherencją buforów ispójnością pamięci, otwierające drogę do swoich własnychspecyficznych ataków. I w tym jednak wypadku problemy te sąostatecznie rozwiązywalne. O SafeSpec należy myśleć jako oprototypie, mającym służyć do ustalenia praktyczności takiegorozwiązania.

Rozwiązanie to zostało przeanalizowane pod kątem złożonościi narzutu na wydajność z wykorzystaniem software’owego symulatorardzeni x86 – MarSSx86. Udało się wykazać, że nie tylko ocalonyzostaje wzrost wydajności ze spekulatywnego wykonywania, ale nawetwydajność nieco wzrasta – pomagają dodatkowe bufory w shadowstate.

Zainteresowanych szczegółamidziałania tego wolnego od wycieków spekulatywnego wykonywaniazapraszamy do lekturyartykułu. Pozostałych musimy rozczarować – to nie jest coś,co pojawi się w najbliższych miesiącach dzięki nowym wersjommikrokodu. To raczej wskazanie kierunku, który producenci procesorówpowinni obrać, by nowe generacje czipów stały się wreszcie same zsiebie odporne na próby wydobycia informacji przez nieuprawnioneprocesy.

Możemy być pewni, że Intel,AMD, ARM i inni już się z pracą zapoznali i zapewne ichinżynierowie już zastanawiają się, jak to wdrożyć. Nie będzieto łatwe, sami badacze przyznają, że wymaga to głębokiegoprzeprojektowania CPU, by oddzielić stan spekulatywny odpermanentnego. Od strony sprzętowej, z tego co zrozumieliśmy, napewno konieczne będzie zaś powiększenie cache L1 w procesorach.Czy jest to za duża cena za wyegzorcyzmowanie widma Spectre? Tutajmożemy liczyć tylko na presję konkurencji – głupio byłobyjednemu z wiodących producentów przyznać, że nie wprowadziłformalnie bezpiecznej architektury, podczas gdy zrobili to jegorywale.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (118)