Ulepszone wersje ataków na procesory zignorują sprzętowe zabezpieczenia

Podejmowane ostatnio próby zneutralizowania luk Meltdown iSpectre na poziomie architekturysprzętowej, mogą okazać się nic nie warte. Informatycy zNvidii i Princeton University zdołali ulepszyć te słynne ataki naprocesory, wychodząc poza to, co zaprezentowano w zaprezentowanych wstyczniu przykładowych exploitach. Wygląda na to, że jeśli Intelchce naprawdę stworzyć procesory odporne na te ataki, to będziemusiał ograniczyć liczbę stosowanych w nich rdzeni. Najlepiej dojednego. Niemożliwe? Oczywiście. Dlatego do końca światawspółczesnych architektur mikroprocesorowych będziemy korzystaćze szkodzących wydajności I/O łatek software’owych.

Ulepszone wersje ataków na procesory zignorują sprzętowe zabezpieczenia

16.02.2018 15:43

Udostępniony na łamach serwisu arXiv.org artykułpt. MeltdownPrime and SpectrePrime: Automatically-SynthesizedAttacks Exploiting Invalidation-Based Coherence Protocolsprzedstawia nowe podejście do wydobywania wrażliwych danychprzetwarzanych przez oprogramowanie działające na podatnych naMeltdown i Spectre ataków. Powstało ono na drodze, można bypowiedzieć, eksperymentalnej.

Naukowcy stworzyli specjalistyczny symulator, na którym formalniemodelowane są mikroarchitektury procesorów, by analizować na nichokreślone wzorce uruchomieniowe, w tym towarzyszące wywołaniomataków Meltdown i Spectre poprzez analizę opóźnień odczytu cacheprocesora. Na tych modelach testowano nowe metody wykorzystaniabłędów w architekturze do odczytu wrażliwych danych. Ostatecznieopracowano w ten sposób dwie ulepszone techniki, które otrzymałynazwy MeltdownPrime i SpectrePrime.

Formalny schemat ataku Spectre
Formalny schemat ataku Spectre

Tak samo jak w poprzednich wariantach, mamy do czynienia znadużyciem pamięci cache w procesorze. Jak interesujący siętematem Czytelnic zapewne wiedzą, problem z Meltdown i Spectre wziałsię z przetwarzania instrukcji poza kolejnością (out-of-order),pozwalającego efektywniej wykorzystać dostępne zasobyobliczeniowe, oraz spekulatywnego wykonywania rozkazów, w którychprocesor próbuje przewidzieć ścieżki rozgałęzień kodu,zyskując niezły przyrost wydajności, jeśli zgadywanie okaże sięudane.

Formalny schemat ataku Spectre Prime z użyciem dwóch rdzeni procesora przeciwko sobie
Formalny schemat ataku Spectre Prime z użyciem dwóch rdzeni procesora przeciwko sobie

Wszystkie te operacje wykonywane są na wielu rdzeniach, zwykorzystaniem całej hierarchii pamięci cache, różniących sięszybkością i pojemnością – a to prowadzi regularnie dosytuacji, w której w systemie mamy wiele kopii tych samych danych.By nad tym zapanować, stosowane są protokoły koherencji(spójności) cache, mające zapewnić, że wszystkie rdzenie mająpewien uwspólniony widok stanu zbuforowanych w tych hierarchiachpamięci cache danych. Protokoły regulują więc stany cache,określając ich ważność i prawa dostępu.

I właśnie tutaj zostają wykorzystane nowe ataki MeltdownPrime iSpectrePrime. Wykorzystują one metody unieważnienia protokołówkoherencji w precyzyjnie kontrolowanym czasowo ataku, dając wglądw to jak ofiara korzysta z cache procesora. Jak wyjaśniają badacze,chodzi tu o atak typu Prime+Probe, który ma zapewnić taki sampoziom dokładności jak wcześniej stosowany ataku Flush+Reload,udostępniając te same informacje.

Różnica polega na tym, że o ile ataki Meltdown i Spectre sąmożliwe wskutek zanieczyszczania cache podczas spekulacji nadrozgałęzieniami kodu, do MeltdownPrime i SpectrePrime dochodziwskutek spekulatywnego wysyłania żądań zapisu w systemach, którewykorzystują bazujący na unieważnieniach protokół koherencjipamięci cache. Protokół ten może unieważnić linie cache (czylijednostki danych przekazywane między cache i pamięcią operacyjną)dla współdzielonych rdzeni w wyniku spekulatywnych żądań zapisu,nawet jeśli dana operacja zostaje później porzucona – tłumaczątwórcy nowej wersji ataków. Wykorzystuje się tutaj przeciwko sobieposzczególne rdzenie, próbujące uzyskać wyłączność na zapisdanych pod dany adres.

Opracowane dla Meltdowna i Spectre zabezpieczenia programowepowinny być wystarczające, by zneutralizować zagrożenie ze stronyMeltdownPrime i SpectrePrime. Według badaczy próby neutralizacjizagrożeń poprzez zmiany w architekturze sprzętowej będą jednaknieskuteczne.

Jak na razie MeltdownPrime istnieje tylko teoretycznie. Udało sięjednak napisać w języku C exploita dla SpectrePrime. Został on zpowodzeniem uruchomiony na MacBooku Pro z procesorem Intel Core i7,działającym pod kontrolą systemu macOS Sierra 10.12.16 (a więcjeszcze bez wprowadzonych przez Apple software’owych łatek naSpectre). W serii stu uruchomień przyniósł on praktycznie taki sampoziom skuteczności (97,9%), jaki osiągnęło Spectre (99,95%).

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (73)