Wyciek danych przez magistralę pierścieniową procesora Intel

Zespół naukowców z Uniwersytetu Illinois opracował nową technikę ataku z kanałem bocznym, która manipuluje wyciekiem informacji przez połączenie pierścieniowe procesorów Intel. Atak umożliwia wyróżnienie informacji o wykorzystaniu pamięci w innej aplikacji i śledzenie informacji o czasie naciśnięcia klawiszy. Badacze opublikowali narzędzia do wykonywania powiązanych pomiarów i kilka prototypowych exploitów.

Zaproponowano trzy exploity, które pozwolą:

  • Odzyskaj pojedyncze bity kluczy szyfrowania podczas korzystania z implementacji RSA i EdDSA, które są podatne na ataki typu side-channel (jeśli opóźnienia obliczeniowe zależą od przetwarzanych danych). Przykładowo wyciek pojedynczych bitów z informacją o wektorze inicjującym (nonce) EdDSA wystarczy, aby za pomocą ataków odzyskać sekwencyjnie cały klucz prywatny. Atak jest trudny do zrealizowania w praktyce i można go przeprowadzić z dużą liczbą zastrzeżeń. Na przykład pomyślna operacja jest pokazywana, gdy funkcja SMT (HyperThreading) jest wyłączona, a pamięć podręczna LLC jest podzielona na segmenty pomiędzy rdzeniami procesora.
  • Zdefiniuj parametry dotyczące opóźnień między naciśnięciami klawiszy. Opóźnienia zależą od położenia klawiszy i pozwalają, poprzez analizę statystyczną, z określonym prawdopodobieństwem odtworzyć dane wprowadzone z klawiatury (przykładowo większość osób zazwyczaj wpisuje „s” po „a” znacznie szybciej niż „g” po "S").
  • Zorganizuj ukryty kanał komunikacyjny, aby przesyłać dane między procesami z szybkością około 4 megabitów na sekundę, który nie wykorzystuje pamięci współdzielonej, pamięci podręcznej procesora oraz zasobów i struktur procesora specyficznych dla rdzenia procesora. Należy zauważyć, że proponowaną metodę tworzenia ukrytego kanału bardzo trudno jest zablokować przy użyciu istniejących metod ochrony przed atakami z kanału bocznego.

Exploity nie wymagają wyższych uprawnień i mogą być wykorzystywane przez zwykłych, nieuprzywilejowanych użytkowników. Należy zauważyć, że atak mógłby potencjalnie zostać przystosowany do zorganizowania wycieku danych pomiędzy maszynami wirtualnymi, jednak kwestia ta wykraczała poza zakres badań i nie przeprowadzono testów systemów wirtualizacji. Proponowany kod został przetestowany na procesorze Intel i7-9700 w systemie Ubuntu 16.04. Generalnie metoda ataku została przetestowana na procesorach do komputerów stacjonarnych z rodziny Intel Coffee Lake i Skylake, a potencjalnie ma zastosowanie również w procesorach serwerowych Xeon z rodziny Broadwell.

Technologia Ring Interconnect pojawiła się w procesorach opartych na mikroarchitekturze Sandy Bridge i składa się z kilku zapętlonych magistral służących do łączenia rdzeni obliczeniowych i graficznych, mostka serwerowego oraz pamięci podręcznej. Istota metody ataku polega na tym, że ze względu na ograniczenie przepustowości magistrali pierścieniowej operacje pamięciowe w jednym procesie opóźniają dostęp do pamięci innego procesu. Identyfikując szczegóły implementacji za pomocą inżynierii wstecznej, osoba atakująca może wygenerować obciążenie powodujące opóźnienia w dostępie do pamięci w innym procesie i wykorzystać te opóźnienia jako kanał boczny w celu uzyskania informacji.

Ataki na wewnętrzne magistrale procesora utrudnia brak informacji o architekturze i sposobie działania magistrali, a także wysoki poziom szumu, który utrudnia wyizolowanie przydatnych danych. Zrozumienie zasad działania magistrali możliwe było dzięki inżynierii wstecznej protokołów stosowanych przy przesyłaniu danych magistralą. Do oddzielenia przydatnych informacji od szumu wykorzystano model klasyfikacji danych oparty na metodach uczenia maszynowego. Zaproponowany model umożliwił organizację monitorowania opóźnień obliczeń w konkretnym procesie, w warunkach jednoczesnego dostępu do pamięci kilku procesów i zwracania pewnej części danych z pamięci podręcznej procesora.

Dodatkowo możemy odnotować identyfikację śladów wykorzystania exploita dla pierwszego wariantu luki Spectre (CVE-2017-5753) podczas ataków na systemy Linux. Exploit wykorzystuje wyciek informacji przez kanał boczny, aby znaleźć superblok w pamięci, określić i-węzeł pliku /etc/shadow i obliczyć adres strony pamięci w celu pobrania pliku z pamięci podręcznej dysku.

Źródło: opennet.ru

Dodaj komentarz