SQUIP to atak na procesory AMD, który prowadzi do wycieku danych kanałami stron trzecich

Zespół badaczy z Politechniki w Grazu (Austria), znany wcześniej z opracowywania ataków MDS, NetSpectre, Throwhammer i ZombieLoad, ujawnił informacje o nowej metodzie ataku kanałem bocznym (CVE-2021-46778) na procesor AMD kolejka harmonogramu, używana do planowania wykonywania instrukcji w różnych jednostkach wykonawczych procesora. Atak o nazwie SQUIP pozwala na ustalenie danych wykorzystywanych w obliczeniach w innym procesie lub maszynie wirtualnej lub zorganizowanie ukrytego kanału komunikacji pomiędzy procesami lub maszynami wirtualnymi, umożliwiając wymianę danych z pominięciem systemowych mechanizmów kontroli dostępu.

Problem dotyczy procesorów AMD opartych na mikroarchitekturach Zen pierwszej, drugiej i trzeciej generacji (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) podczas korzystania z technologii jednoczesnej wielowątkowości (SMT). Procesory Intel nie są podatne na ataki, ponieważ korzystają z pojedynczej kolejki programu planującego, podczas gdy podatne na ataki procesory AMD korzystają z oddzielnych kolejek dla każdej jednostki wykonawczej. Aby zapobiec wyciekom informacji, AMD zaleciło programistom stosowanie algorytmów, w których obliczenia matematyczne są zawsze wykonywane w stałym czasie, niezależnie od charakteru przetwarzanych danych, a także unikanie rozgałęzień w oparciu o tajne dane.

Atak polega na ocenie poziomu rywalizacji w różnych kolejkach harmonogramu i przeprowadza się poprzez pomiar opóźnień podczas uruchamiania operacji weryfikacyjnych wykonywanych w innym wątku SMT na tym samym fizycznym procesorze. Do analizy treści wykorzystano metodę Prime+Probe, która polega na wypełnieniu kolejki standardowym zestawem wartości i wykryciu zmian poprzez pomiar czasu dostępu do nich podczas ich uzupełniania.

Podczas eksperymentu badaczom udało się całkowicie odtworzyć prywatny 4096-bitowy klucz RSA używany do tworzenia podpisów cyfrowych przy użyciu biblioteki kryptograficznej mbedTLS 3.0, która wykorzystuje algorytm Montgomery'ego do podnoszenia liczby modulo. Ustalenie klucza wymagało 50500 38 śladów. Całkowity czas ataku trwał 0.89 minut. Pokazano warianty ataku, które zapewniają wyciek pomiędzy różnymi procesami i maszynami wirtualnymi zarządzanymi przez hiperwizor KVM. Pokazano również, że metodą można organizować ukryty transfer danych pomiędzy maszynami wirtualnymi z szybkością 2.70 Mbit/s oraz pomiędzy procesami z szybkością 0.8 Mbit/s przy poziomie błędów mniejszym niż XNUMX%.

Źródło: opennet.ru

Dodaj komentarz