Den forrige kjente BootROM-sårbarheten, checkm8 (2019), rammet enheter med A5 til A11-brikker. usbliter8 forlenger dette problemet til neste generasjon .
Pekermismatch i ringbuffer: Kontrolleren lagrer opptil tre USB Setup-pakker i en DMA-buffer. Etter hver skriving øker en maskinvarepeker med datastørrelsen. Etter den tredje pakken nullstilles pekeren ved å trekke fra faste 24 byte .
Triks med undersizede pakker: Kontrolleren godtar pakker som er mindre enn standard 8 byte, men lagrer dem alltid i 4-byte-justerte blokker. Når en liten pakke mottas, vil pekerøkningen (faktisk skrevet data) ikke stemme overens med den faste nedgangen på 24 byte. Dette skaper en 12-byte buffer underflow – pekeren beveger seg bakover i minnet .
Minneoverskriving: Dette gjør at angriperen kan overskrive SRAM-områder som normalt er utilgjengelige under oppstart, inkludert stabeldata og heap-metadata .
Kjøring av vilkårlig kode: På A12 kan angriperen overskrive et lagret LR-register på USB-oppgavens stabel og dermed ta kontroll over programtelleren (PC). På A13 er Pointer Authentication Codes (PAC) aktivert, noe som kompliserer angrepet. Her kreves en flertrinns teknikk som også må omgå heap-sjekksummer og panic-tellere .
BootROM (SecureROM) er den aller første koden en brikke kjører når strømmen slås på. Koden er brent inn i skrivebeskyttet minne (ROM) under produksjonen og kan ikke endres etter at enheten har forlatt fabrikken . Siden årsaken er en maskinvarefeil i USB-kontrolleren og ikke en programvarefeil, kan Apple aldri rette den med en oppdatering
. Eneste effektive mottiltak er å bytte til en enhet med nyere brikke (A14 eller nyere)
.
Angrepet er ikke trådløst; det krever fysisk tilgang til enheten via en USB-kabel når den er i DFU-modus (Device Firmware Update) . Det utgjør dermed først og fremst en risiko i situasjoner der en angriper har fysisk tilgang til telefonen, for eksempel hos tollvesenet, politiet eller tyver. For de fleste vanlige brukere vil det ikke være en umiddelbar trussel i daglig bruk. Likevel er det viktig å være klar over at enheten aldri kan gjøres helt sikker igjen på maskinvarenivå.
Comments
0 comments