
Apple Silicon jest podatny na SLAP attack (Speculative Load Address Prediction), niedawno odkryta podatnosc w procesorach Apple wykorzystujaca mechanizmy spekulacyjnego wykonania do wycieku wrazliwych danych. Wspolczesne procesory (CPU) wykorzystuja mechanizmy spekulacji (ang. speculative execution) oraz przewidywania (ang. prediction) w celu zwiekszenia wydajnosci. Niestety optymalizacje te wprowadzaja nowe podatnosci zwiazane z bezpieczenstwem. Zrodlo podatnosci: predictors.fail/SLAP.pdf.
Oprocz SLAP attack, badacze zidentyfikowali rowniez atak FLOP (False Load Output Predictions), ktory wykorzystuje podobne mechanizmy predykcyjne Apple Silicon. W tym artykule omowimy oba ataki, ich konsekwencje oraz mozliwe metody ich ograniczania. Milej lektury.
Czym Jest SLAP Attack na Apple Silicon i Jak Dziala?
SLAP attack wykorzystuje mechanizm przewidywania adresow ladowania (ang. Load Address Predictor, LAP) w procesorach Apple Silicon, ktory przewiduje adresy pamieci dla instrukcji zaladowania na podstawie wczesniejszych wzorcow dostepu. Jesli przewidziany adres znajduje sie w pamieci podrecznej (cache), procesor spekuluje i laduje dane z tego adresu, zanim zweryfikuje rzeczywisty adres pamieci.
Odkrycie mechanizmu Load Address Predictor w Apple Silicon
Badacze z Georgia Institute of Technology oraz Ruhr University Bochum zidentyfikowali istnienie mechanizmu LAP na procesorach Apple M2, M3 oraz serii A (A15 i nowsze). Przeprowadzili eksperymenty, ktore wykazaly znaczace przyspieszenie wykonywania kodu podczas ladowania danych w schemacie sekwencyjnym (ang. striding pattern, czyli wzrastajace adresy pamieci w uporzadkowany sposob). To przyspieszenie wskazuje, ze LAP spekulacyjnie laduje przewidywane adresy jeszcze przed ich rzeczywista weryfikacja.

Zrodlo: http://predictors.fail/files/SLAP.pdf
Jak dziala eksploitacja SLAP Attack
- Odczyty poza zakresem pamieci: Manipulujac mechanizmem LAP, atakujacy moze oszukac CPU Apple Silicon, aby spekulacyjnie zaladowalo wrazliwe dane spoza przydzielonego obszaru pamieci.
- Omijanie ASLR (Losowe Rozmieszczenie Przestrzeni Adresowej, ang. Address Space Layout Randomization): Spekulacyjne wykonanie LAP ujawnia informacje o ukladzie pamieci, co pozwala ominac mechanizmy ASLR.
- Ataki na przegladarke (ang. Browser Attacks): Atak SLAP wykorzystujacy JavaScript pozwala na wyciaganie wrazliwych danych ze stron internetowych, wykorzystujac sposob, w jaki Safari zarzadza obiektami JavaScript.
Rzeczywiste skutki SLAP Attack
SLAP attack moze byc uzyty do wykradania poufnych danych z sesji przegladarki uzytkownika Apple Silicon, takich jak e-maile z Gmaila czy dane logowania do stron internetowych. Atak jest trudny do wykrycia i dziala wewnatrz zamknietego srodowiska pracy przegladarki (ang. browser sandbox).
FLOP Attack: Drugi atak na Apple Silicon
FLOP attack (False Load Output Predictions) atakuje mechanizm przewidywania wartosci zaladowania (ang. Load Value Predictor, LVP) w procesorach Apple Silicon, ktory przewiduje wartosci danych ladowanych z pamieci, aby przyspieszyc wykonywanie kodu. Gdy LVP blednie przewidzi wartosc, CPU moze operowac na nieprawidlowych danych, co potencjalnie prowadzi do wycieku wrazliwych informacji.
Odkrycie wykorzystania mechanizmu Load Value Predictor
Badacze zaobserwowali, ze procesory Apple Silicon optymalizuja zaleznosci typu Read-After-Write (RAW) za pomoca mechanizmu LVP. LVP uaktywnia sie, gdy ta sama wartosc jest wielokrotnie ladowana z pamieci, co pozwala na spekulacyjne wykonanie kolejnych operacji z przewidywana wartoscia.

Eksploitacja LVP w FLOP Attack
- Zamiana typow w Safari: Manipulujac LVP, atakujacy moze oszukac silnik JavaScript przegladarki Safari, aby uzywal przewidywanej wartosci jako wskaznika, co prowadzi do dowolnego dostepu do pamieci.
- Przejecie wykonywania WebAssembly w Chrome: W Chrome, FLOP moze blednie przewidziec wywolania funkcji WebAssembly, prowadzac do spekulacyjnego wykonania niepozadanych funkcji.
- Ataki na poziomie jadra: Jesli atakujacy znajda odpowiednie mechanizmy w jadrze systemu, FLOP moze zostac wykorzystany do obejscia zabezpieczen jadra, zwiekszajac zakres ataku.
Rzeczywiste skutki FLOP Attack
FLOP attack umozliwia atakujacym wyciaganie prywatnych danych z sesji przegladarki, takich jak historia przegladania, tokeny uwierzytelniajace, a nawet dane kart kredytowych przechowywane w aplikacjach webowych (podobnie jak SLAP attack). Mozliwosc spekulacyjnego wykonywania dowolnych funkcji czyni go powaznym wektorem ataku na Apple Silicon.
Roznice miedzy SLAP Attack i FLOP Attack

Jak chronic Apple Silicon przed SLAP Attack i FLOP Attack
Strategie lagodzenia na poziomie oprogramowania
- Wylaczenie spekulacji w JavaScript: Przegladarki moga wdrozyc scisle sprawdzanie typow, aby zapobiec spekulacyjnym bledom typow.
- Wymuszenie izolacji pamieci: Przegladarki internetowe powinny izolowac obszary pamieci, aby zapobiegac spekulacyjnym wyciekom danych miedzy domenami.
- Wykorzystanie Data-Independent Timing (DIT): Ustawienie bitu DIT w architekturze ARM ISA wylacza LVP, zapobiegajac blednym przewidywaniom.
Strategie lagodzenia na poziomie sprzetu Apple Silicon
- Bariery spekulacyjne: Apple moze wprowadzic mikroarchitektoniczne bariery ograniczajace spekulacyjne dostepy do pamieci.
- Ograniczenie LVP i LAP: Redukcja okna predykcji lub wdrozenie kontroli integralnosci dla przewidywanych adresow i wartosci moze zlagodzic te podatnosci.
- Latki naprawiajace: Apple moze wydac aktualizacje firmware modyfikujace zachowanie spekulacyjnego wykonania, zmniejszajac podatnosc na ataki.
Podsumowanie: zagrozenie SLAP Attack dla uzytkownikow Apple Silicon
Ataki FLOP i SLAP stanowia powazne zagrozenie, poniewaz umozliwiaja zdalne wykorzystanie podatnosci sprzetowych Apple Silicon bez koniecznosci fizycznego dostepu do urzadzenia. Wystarczy odwiedzenie zlosliwej strony internetowej, aby uruchomic atak i wyjsc poza zamkniete srodowisko pracy przegladarki (ang. browser sandbox), ASLR oraz konwencjonalne zabezpieczenia pamieci.
Tymczasowe rozwiazanie polega na wylaczeniu JavaScript w Safari i Chrome, jednak moze to zaklocic dzialanie wielu stron internetowych.
Wiecej szczegolow mozna znalezc w pelnych publikacjach badawczych:
Dodatkowe informacje, demonstracje i FAQ dostepne sa na stronie: https://predictors.fail/.
Jesli interesuje Cie system macOS i chcesz zglebic tematyke Apple Silicon security, warto zajrzec do powiazanych analiz: macos apple, null pointer dereference, macos opis oraz apple kod.
Jesli interesuje Cie tematyka Apple Security, warto dodac do zakladek repozytorium Snake_Apple, gdzie znajdziesz wszystkie moje artykuly na ten temat.
Najczesciej zadawane pytania
Czym jest SLAP attack w procesorach Apple Silicon?
SLAP attack (Speculative Load Address Prediction) to podatnosc w procesorach Apple Silicon wykorzystujaca mechanizm Load Address Predictor (LAP). LAP przewiduje adresy ladowania na podstawie wczesniejszych wzorcow dostepu, a procesor spekulacyjnie laduje dane z tego adresu. Atakujacy manipulujac LAP moze wymusic spekulacyjne czytanie danych poza przydzielonym obszarem pamieci, co pozwala omijac ASLR i wyciekac dane z Safari.
Ktore procesory Apple Silicon sa podatne na SLAP attack?
Podatnosc zostala potwierdzona na procesorach Apple M2, M3 oraz serii A (A15 i nowsze). Badacze z Georgia Institute of Technology i Ruhr University Bochum wykazali przyspieszenie wykonania kodu przy ladowaniu danych w schemacie sekwencyjnym, co potwierdza obecnosc mechanizmu LAP na tych ukladach Apple Silicon.
Czym rozni sie FLOP attack od SLAP attack?
SLAP atakuje Load Address Predictor (LAP) i dotyczy przewidywania adresow pamieci. FLOP atakuje Load Value Predictor (LVP) i dotyczy przewidywania wartosci danych ladowanych z pamieci. W Safari FLOP pozwala na zamiane typow JavaScript, w Chrome na blednie przewidziane wywolania WebAssembly. Oba wykorzystuja spekulacje procesorow Apple Silicon do wycieku prywatnych danych z sesji przegladarki.
Jak chronic sie przed SLAP attack na Apple Silicon?
Na poziomie oprogramowania: scisle sprawdzanie typow w silnikach JavaScript, izolacja pamieci miedzy domenami w przegladarkach oraz ustawienie bitu Data-Independent Timing (DIT) w architekturze ARM ISA, ktory wylacza LVP. Na poziomie sprzetu Apple Silicon: mikroarchitektoniczne bariery spekulacyjne, redukcja okna predykcji LVP i LAP, kontrole integralnosci oraz aktualizacje firmware. Tymczasowo - wylaczenie JavaScript w Safari i Chrome.
Czy SLAP attack wymaga fizycznego dostepu do urzadzenia Apple Silicon?
Nie. SLAP attack i FLOP attack dzialaja zdalnie - wystarczy odwiedzenie zlosliwej strony internetowej, ktora uruchomi odpowiednio spreparowany kod JavaScript lub WebAssembly. Atak wychodzi poza zamkniete srodowisko pracy przegladarki (browser sandbox), omija ASLR oraz konwencjonalne zabezpieczenia pamieci bez interakcji z uzytkownikiem Apple Silicon.
Jakie dane moze wykrasc SLAP attack?
SLAP attack pozwala wyciagac wrazliwe dane z sesji przegladarki uzytkownika Apple Silicon, na przyklad e-maile z Gmaila, dane logowania do stron internetowych, tokeny uwierzytelniajace oraz dane kart kredytowych przechowywane w aplikacjach webowych. Atak jest trudny do wykrycia i dziala wewnatrz sandboxa przegladarki, co czyni go powaznym wektorem ataku na ekosystem Apple Silicon.




