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

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

16.02.2018 15:43

Zalogowani mogą więcej

Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika

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.

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
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Komentarze (73)
Zobacz także