Onderzoekers hebben een kwetsbaarheid ontdekt in Apples M-cpu's waarmee het theoretisch mogelijk is encryptiesleutels uit te lezen. De sidechannelaanval is niet op te lossen met een update, maar uitbuiting is praktisch ingewikkeld.
De kwetsbaarheid werd ontdekt door een team van wetenschappers van verschillende internationale universiteiten. Die noemen de kwetsbaarheid GoFetch. Het gaat om een sidechannelexploit die in de zogenaamde data memory-dependent prefetchers of DMP's van Apples Silicon-cpu's zitten. De onderzoekers tonen in een demo aan dat de kwetsbaarheid kan worden uitgebuit op de M1. Ze zeggen daarnaast dat de M2 en M3 soortgelijke patronen vertonen. De onderzoekers hebben de exploit niet getest op varianten van de M-processors zoals de M2 Pro, maar vermoeden dat ook die kwetsbaar zijn omdat die dezelfde soort microarchitectuur bevatten die zij wisten uit te buiten. De onderzoekers hebben proof-of-conceptcode gemaakt en zijn van plan dat 'binnenkort' openbaar te maken.
Het probleem zit in de data memory-dependent prefetchers. Dat is een functionaliteit in onder andere Apples Silicon-chips, maar DMP zit ook in Intel-chips vanaf de derde generatie. DMP's zijn een manier waarop socs bepaalde stukken data al uit de cache halen voordat een berekening wordt uitgevoerd. Daarmee kunnen bepaalde operaties sneller worden uitgevoerd.
In het geval van Apples Silicon-chips bleek het mogelijk bepaalde data af te lezen die direct uit het geheugen werd gehaald die er als een pointer uit zag. Dergelijke operaties zitten in de meeste chips en Apple heeft daar dan ook waarborgen voor ingebouwd zodat die informatie niet zomaar kan worden afgelezen. Dat gebeurt met een zogenaamd 'constant time'-algoritme waarbij iedere operatie dezelfde tijdsduur krijgt, waardoor een aanvaller niet zomaar kan zien welke data een bepaalde handeling verwerkt. De onderzoekers ontdekten echter een kwetsbaarheid in de manier waarop Silicon-chips daarmee omgaan. Daarbij is het mogelijk om in bepaalde gevallen te achterhalen of informatie uit het geheugen komt en de pointerwaardes daarvan te achterhalen. Daardoor is het mogelijk te achterhalen wanneer de cpu specifiek geheime data, zoals een encryptiesleutel, verstuurt. Die is vervolgens door de aanvallers te achterhalen.
De onderzoekers zeggen op die manier relatief snel een encryptiesleutel te achterhalen. Bij een aanval op afstand kon dat enkele minuten duren, maar bij een lokale aanval ging dat nog sneller. Volgens de onderzoekers is het door de structuur van de cpu's niet zomaar mogelijk de kwetsbaarheid op te lossen, ook niet met een microcodepatch. Het is wel mogelijk op sommige socs zoals de M3 de DMP uit te zetten, maar dat lukt niet op de M1 en M2. Bovendien betekent dat dat de prestaties van de chip ver dalen. Apple heeft in een ondersteuningsdocument maar informatie geplaatst over de kwetsbaarheid en hoe gebruikers data-independent timing in kunnen schakelen als mitigatie.
Source: Tweakers.net