Naukowcy z Centrum Bezpieczeństwa Informacji Helmholtza (CISPA) opublikowali wyniki badania zabezpieczeń procesorów opartych na architekturze RISC-V, ujawniając informacje o podatności o kodowej nazwie GhostWrite. Podatność ta dotyczy procesorów RISC-V XuanTie C910 produkowanych przez chińską firmę T-Head (oddział Alibaba) i rozwijanych w formie projektów otwartych. Podatność ta umożliwia atakującemu, posiadającemu ograniczony dostęp do systemu, odczyt i zapis w dowolne obszary fizycznej pamięci, a także uzyskanie dostępu do zarządzania urządzeniami peryferyjnymi, takimi jak karty sieciowe, wykorzystujące MMIO (Memory-Mapped Input/Output).
Podatność jest spowodowana niedociągnięciami w architekturze procesora związanymi z izolacją dodatkowych instrukcji procesorowych dodawanych przez producenta, które rozszerzają architekturę zestawu instrukcji RISC-V i umożliwiają bezpośredni dostęp do DRAM, omijając mechanizmy pamięci wirtualnej. Działanie niektórych rozszerzonych instrukcji bezpośrednio z fizyczną pamięcią zamiast pamięci wirtualnej umożliwia ominięcie izolacji pamięci między procesami.
Opracowana technika przeprowadzenia ataku jest w 100% powtarzalna i wymaga wykonania własnego kodu w przeciągu zaledwie kilku mikrosekund. Metody izolacji oprogramowania, takie jak kontenery i środowiska sandboxowe, nie przeszkadzają w wykorzystaniu podatności. Aby zablokować podatność, konieczne jest całkowite wyłączenie wsparcia dla rozszerzeń wektora, co prowadzi do spadku wydajności w testach rvv-bench o 33% (w streszczeniu raportu podano 77%, a na stronie zbiorczej — 33%, przy czym w szczegółach wspomniano o spadku wydajności memcpy o 33%, a memset o 8%), a także w przybliżeniu podwaja zestaw instrukcji procesora dostępnych dla aplikacji.
Procesory CPU XuanTie C910 są jednymi z najbardziej wydajnych chipów RISC-V dostępnych na rynku i są już aktywnie wykorzystywane w serwerach systemach chmurowych i notebookach. Na przykład problem występuje w serwerach Scaleway Elastic Metal RV1, klastrach Lichee Cluster 4A, notebooku Lichee Book 4A, konsoli do gier Lichee Console 4A, przenośnym komputerze Lichee Pocket 4A, jednopłytowych PC Sipeed Lichee Pi 4A, Milk-V Meles oraz BeagleV-Ahead.
Jako przykład badacze przygotowali exploit, który pozwala nieuprzywilejowanemu użytkownikowi uzyskać uprawnienia root w systemie Linux. Exploit zmienia zawartość tablicy stron w pamięci, używanej do tłumaczenia adresów wirtualnych na fizyczne, aby uzyskać adresy wirtualne powiązane z dowolnymi adresami fizycznymi. Przygotowano także przykład exploita do odczytu zawartości pamięci jądra i innych procesów, co pozwala na wydobycie przechowywanych w pamięci kluczy szyfrowania i haseł.
Dodatkowo badacze zidentyfikowali jeszcze dwie mniej niebezpieczne architektoniczne luki — jedna dotyczy procesorów T-Head XuanTie C906, a druga T-Head XuanTie C908. Obie luki ograniczają się do wywołania odmowy usługi z powodu zatrzymania pracy CPU. Luki mogą stanowić zagrożenie dla platform chmurowych opartych na chipach T-Head XuanTie, ponieważ przy dostępie do wykonywania kodu w środowisku chmurowym możliwe jest zatrzymanie pracy innych użytkowników obsługiwanych na tym samym serwerze.
Problemy zostały wykryte za pomocą frameworka RISCVuzz, stworzonego do testowania fuzzingowego CPU. Framework ujawnia różnice w implementacji tych samych rozszerzonych instrukcji na różnych CPU, zgodnie z założeniem, że z powodu braku jednolitego rejestru rozszerzeń zestawu instrukcji RISC-V, instrukcje kodowane w ten sam sposób na chipach różnych producentów mogą prowadzić do wykonywania różnych działań. Weryfikacja polegała na porównaniu zachowań przy przetwarzaniu instrukcji procesora na różnych CPU RISC-V oraz analizie potencjalnych luk w sytuacjach, w których zaobserwowano rozbieżność w zachowaniu.
Źródło: opennet.ru
