Intel opublikował informacje o nowej klasie luk w swoich procesorach: MDS (próbkowanie danych mikroarchitektury), ZombieLoad między innymi.
Podobnie jak poprzednie ataki klasy Spectre, nowe problemy mogą doprowadzić do wycieku zamkniętych danych z systemu operacyjnego, maszyny wirtualne i procesy zewnętrzne. Twierdzi się, że problemy zostały po raz pierwszy zidentyfikowane przez pracowników i partnerów Intela podczas audytu wewnętrznego.
Na podstawie zidentyfikowanych problemów naukowcy z Politechniki w Grazu (Austria) opracowali kilka praktycznych ataków za pośrednictwem kanałów stron trzecich.
Zidentyfikowane podatności
ZombieLoad (PDF , prototyp exploita dla systemów Linux i Windows): umożliwia wydobywanie poufnych informacji z innych procesów, systemy operacyjne, maszyny wirtualne i chronione enklawy (TEE, Trusted Execution Environment).
Na przykład zademonstrowano możliwość ustalenia historii otwarć stron w przeglądarce Tor uruchomionej na innej maszynie wirtualnej, a także odzyskania kluczy dostępu i haseł używanych w aplikacjach.
RIDL ( PDF , kod do weryfikacji ): pozwala zorganizować wyciek informacji pomiędzy różnymi odizolowanymi obszarami w procesorach Intela, takie jak bufory do napełniania, bufory do przechowywania i porty ładowania.
Przedstawiono przykłady ataku na wyciek orkiestracji innych procesów, systemu operacyjnego, maszyn wirtualnych i chronionych enklaw. Pokazuje na przykład, jak poznać zawartość skrótu hasła roota pliku /etc/shadow podczas okresowych prób uwierzytelnienia (atak trwał 24 godziny).
Ponadto, otwarcie złośliwej strony w silniku SpiderMonkey pokazuje przykład wykonania ataku JavaScript (W pełni nowoczesnych przeglądarkach taki atak jest mało prawdopodobny ze względu na ograniczoną dokładność zegara i środki ochrony przed Spectre.)
Fallout ( PDF ): umożliwia odczytanie danych ostatnio zarejestrowanych przez system operacyjny i określić układ pamięci systemu operacyjnego w celu ułatwienia innych ataków;
Przesyłanie ze sklepu do wycieku: wykorzystuje procesory do optymalizacji bufora pamięci masowej i może być używany do ominięcia mechanizmu randomizacji przestrzeni adresowej jądra (KASLR), monitorowania stanu systemu operacyjnego lub organizowania wycieków w połączeniu z urządzeniami opartymi na Spectre.
CVE-2018-12126 — MSBDS (Microarchitecture Buffer Data Sampling), która przywraca zawartość buforów pamięci masowej. Używany w ataku Fallouta. Nasilenie określa się w 6.5 punktu (CVSS)
CVE-2018-12127 – MLPDS (Microarchitectural Charge Port Data Sampling), która przywraca zawartość portów ładowania. Używany w ataku RIDL. CVSS 6.5
CVE-2018-12130 — MFBDS (Microarchitecture Fill Buffer Data Sampling), która przywraca zawartość buforów wypełniających. Używany w atakach ZombieLoad i RIDL. CVSS 6.5
CVE-2019-11091 — SUMA MDS (Microarchitecture Data Sampling Uncorrectable Memory), która przywraca zawartość pamięci nieprzechowywanej. Używany w ataku RIDL. CVSS 3.8
Istotą zidentyfikowanych problemów jest możliwość zastosowania metod analizy poprzez kanały zewnętrzne do danych w strukturach mikroarchitektonicznych, do których aplikacje nie mają bezpośredniego dostępu.
Rozwiązania zostały już udostępnione
En Jądro Linuksa, ochrona MDS została dodana w dzisiejszych aktualizacjach 5.1.2, 5.0.16, 4.19.43, 4.14.119 i 4.9.176.
Sposób ochrony polega na wyczyszczeniu zawartości buforów mikroarchitektury w momencie powrotu z jądra do przestrzeni użytkownika lub przekazaniu sterowania do systemu hosta, do którego wykorzystywana jest instrukcja VERW.
Aktualizacje pakietów zostały już wydane dla RHEL i Ubuntu, ale nie jest jeszcze dostępny dla Debiana, Fedory i SUSE.
Utworzono poprawkę blokującą wycieki danych z maszyn wirtualnych dla hiperwizora Xen i VMware.
Aby chronić systemy wirtualizacji uruchamiające polecenie L1D_FLUSH przed przekazaniem kontroli do innej maszyny wirtualnej oraz aby chronić enklawy Intel SGX, wystarczy zaktualizować mikrokod.
Dostępne są również łatki dla NetBSD, FreeBSD, ChromeOS, Windows i macOS (nie ma jeszcze poprawek dla OpenBSD).