Wczoraj opublikowano informację o odkryciu podatności sprzętowej w procesorach M1. Może ona zostać użyta do komunikacji między dwiema „zwykłymi” aplikacjami pracującymi pod kontrolą systemu operacyjnego, bez jego wiedzy.
M1RACLES
Tak nazwano podatność oznaczoną oficjalnym numerem CVE-2021-30747.
W procesorach M1 odkryto tajemniczy rejestr ukryty pod nazwą kodową s3_5_c15_c10_1. Jest to rejestr systemowy dostępny dla wszystkich rdzeni w klastrze, na których pracują wątki poziomu EL0, czyli typowe programy uruchamianie pod kontrolą systemu operacyjnego np. macOS, iPadOS, czy Linux.
Tajemniczy rejestr ma dwa bity, które można zapisywać i odczytywać. Ponieważ może to robić każda aplikacja pracująca na danym klastrze rdzeni, to rejestr może być wykorzystany do komunikacji między nimi poza kontrolą systemu operacyjnego.
Dwie spreparowane odpowiednio aplikacje, mogą między sobą wymieniać dane. Choć dostępne są tylko dwa bity, bo można osiągnąć prędkość ponad 1 MB/s. I jak już wcześniej napisałem, te dane wymieniane są poza kontrolą systemu. Takie samo działanie rejestru s3_5_c15_c10_1 zostało potwierdzone w procesorach A14. Być może jest też w innych opracowanych przez Apple.
Odkrywca podatności sprzętowej M1RACLES, twierdzi, że nie pozwala ona na wymianę danych między aplikacjami uruchomionymi w systemach wirtualizacji i głównym.
Wg odkrywcy podatność nie może być uważana za krytyczną i wynika raczej z błędu projektowego. Takie błędy zdarzają się w większości procesorów i są publikowane w erratach (lub nie, jak słusznie zauważył autor odkrycia).
Powinniśmy się martwić? M1RACLES jest groźny?
Użyję cytatu ze strony opisującej podatność:
Naprawdę, nikt nie znajdzie nikczemnego zastosowania dla tej wady w praktycznych okolicznościach. Poza tym, w każdym systemie istnieje już milion kanałów bocznych, których można użyć do współpracy w komunikacji międzyprocesowej (np. rzeczy związane z cache). Potajemne kanały nie mogą wykradać danych z nie współpracujących aplikacji lub systemów.
Właściwie, to warto powtórzyć: Tajne kanały są całkowicie bezużyteczne, chyba że twój system jest już skompromitowany.
Czyli wspomnianą podatność należy traktować w kategoriach ciekawostek.
A jak było niedawno z czipem T2, który odpowiadał za bezpieczeństwo w kompach Apple z Intelem? Też okazał się być nienaprawialną oprogramowaniem furtką dla potencjalnych złośliwych ataków.
Wyjaśniło się już w ogóle coś z tym Silver Sparrow? Skąd się wziął i dlaczego co godzinę komunikował się z jakimś serwerem?