Naukowcy z Politechniki w Grazu (Austria) ujawniły informacje o nowej metodzie atak przez Obciążenie zombie 2.0 (CVE-2019-11135), który pozwala na wydobycie poufnych informacji z innych procesów, system operacyjny, maszyny wirtualne i bezpieczne enklawy (TEE, Trusted Execution Environment). Problem dotyczy tylko procesorów Intel. Komponenty blokujące problem zostały zaproponowane we wczorajszej aktualizacji mikrokodu.
Problem należy do klasy MDS (Microarchitectural Data Sampling) i jest zmodernizowaną wersją ataku ZombieLoad, uruchomionego w maju. Obciążenie zombie 2.0, a także inne ataki klasy MDS, opierają się na zastosowaniu metod analizy firm trzecich do danych w strukturach mikroarchitekturalnych (na przykład w buforach Line Fill Buffer i Store, w których dane używane w procesie są tymczasowo przechowywane w celu wykonania operacji ładowania i przechowywania).
Ten nowy wariant przez Zombieload opiera się na wycieku, który pojawia się po wdrożeniu mechanizmu TSA Asynchroniczne przerwanie (TSA) w rozszerzeniu TSX (Transactional Synchronization Extensions), który zapewnia środki do pracy z pamięcią transakcyjną, co pozwala na zwiększenie wydajności aplikacji wielowątkowych dzięki dynamicznemu wykluczeniu zbędnych operacji synchronizacji (obsługiwane są transakcje atomowe, które można zaakceptować lub przerwać).
W przypadku awarii operacje wykonywane na transakcyjnym obszarze pamięci są wycofywane. Anulowanie transakcji odbywa się asynchronicznie, w którym to momencie inne wątki mogą uzyskać dostęp do pamięci podręcznej, która jest również używana w odrzuconym regionie pamięci transakcji.
Od początku do faktycznego zakończenia przerwania transakcja asynchroniczna iMogą wystąpić sytuacje, w których podmiot przetwarzający, podczas spekulacyjnego wykonywania operacji, potrafi czytać dane z wewnętrznych buforów mikroarchitektonicznych i przesyłać je do spekulacyjnie wykonanej operacji.
Konflikt zostanie następnie wykryty, a operacja spekulacyjna zostanie odrzucona, ale dane pozostaną w pamięci podręcznej i można je wyodrębnić za pomocą metod przywracania pamięci podręcznej za pośrednictwem kanałów innych firm.
Atak sprowadza się do otwarcia transakcji TSX i stworzenia warunków do ich asynchronicznego przerwania, w których warunkach wycieku zawartości buforów wewnętrznych spekulatywnie pełnych danych z operacji odczytu pamięci wykonywanych w samym rdzeniu procesora.
Wyciek jest ograniczony do aktualnego fizycznego rdzenia procesora (na którym działa kod atakującego), ale ponieważ bufory mikroarchitektury są współdzielone przez różne wątki w trybie Hyper-Threading, wykonywane operacje pamięci mogą przeciekać na innych wątkach procesora.
Zostały wydane niektóre modele Intel, na których zostały przetestowane atakują ósmą, dziewiątą i dziesiątą generację procesorów Intel Core i Pentium, Intel Celeron 5000, Intel Xeon E, Intel Xeon W. oraz druga generacja skalowalnych procesorów Intel Xeon.
W tym nowe procesory Intel są również oparte na mikroarchitekturze Cascade Lake złożone w kwietniu, które początkowo nie było podatne na ataki RIDL i Fallout.
Oprócz Zombieload 2.0, Naukowcy odkryli również, że można obejść proponowane wcześniej metody ochrony przeciwko atakom MDS opartym na użyciu instrukcji VERW w celu usunięcia zawartości buforów mikroarchitektury, gdy powracają one z jądra do przestrzeni użytkownika lub gdy sterowanie jest przekazywane do systemu gościa.
Rozwiązania blokujące lukę są zawarte w podstawa kodu jądro Linuksa i są zawarte w wersje 5.3.11, 4.19.84, 4.14.154, 4.9.201 i 4.4.201. również zostały wydane aktualizacje jądra i mikrokod dla głównych dystrybucji (Debian, SUSE / openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Problem został zidentyfikowany w kwietniu, a rozwiązanie było koordynowane przez firmę Intel z twórcami systemów operacyjnych.
Najprostszą metodą zablokowania Zombieload 2.0 jest wyłączenie obsługi TSX na CPU. Rozwiązanie jądra Linuksa zawiera kilka opcji bezpieczeństwa.