Forskare vid en rad amerikanska universitet har upptäckt en allvarlig säkerhetsbrist som möjliggör en så kallad side channel-attack mot Apples systemkretsar för Mac-datorer – M1-, M2- och M3-familjerna av kretsar. Attacken har fått namnet Gofetch, rapporterar Ars Technica.

Bristen ligger i en funktion kallad data memory-dependent prefetcher (DMP), ett relativt nytt sätt att snabba upp program genom att ladda data från arbetsminnet som ser ut att behövas snart. Äldre prefetcher-tekniker tittar bara bara minnesadresser, men en DMP tittar även på innehållet i minnet. Om den ser något som ser ut som en minnesadress kan den ladda minnet från den adressen redan innan processorn får reda på om det verkligen är en minnesadress.

Problemet gäller vad som händer när den har fel och det som såg ut som en minnesadress är något annat: En bit av en krypteringsnyckel. Genom att manipulera indata till krypteringen visar forskarna att de kan lura Apples DMP att undan för undan avslöja en krypteringsnyckel. Det här gäller även för algoritmer som är utvecklade särskilt i syfte att stoppa tidigare side channel-attacker och framtida attacker med kvantdatorer.

Apple är inte ensamt om att använda DMP, då även Intel har det i Raptor Lake-familjen, men Intels implementation är inte sårbar för Gofetch-attacken.

Apple kan så klart inte fixa en sårbarhet som ligger i själva kretsarna, och mjukvarufixar kan innebära en kraftigt försämrad prestanda för kryptering och dekryptering. Hur stor effekten blir kommer variera mellan olika algoritmer. På M3-kretsen har Apple lagt till en funktion som stänger av DMP, något som även Intel har, men forskarna har inte kunnat testa vilken effekt det har på prestandan i krypteringsalgoritmer. I M1- och M2-familjerna finns ingen sådan funktion.

Forskarna har flera förslag på tillfälliga försvar mot attacken. Utvecklare kan till exempel använda en teknik kallad chiffertextbländning som går ut på att förställa den data som ska krypteras. En annan möjlighet är att enbart köra kryptoalgoritmer på E-kärnorna som inte har någon DMP.