Safari har en inbyggd spårningsblockeringsfunktion som Apple kallar Intelligent tracking prevention (ITP). Grundfunktionen går ut på att upptäcka domäner som ofta kontaktas av andra sajter, spara dessa i en lista, och begränsa informationen som skickas när en sida hämtar information från dem.

Artur Janc, Krzysztof Kotowicz, Lukas Weichselbaum och Roberto Clapis, säkerhetsforskare på Google, har hittat flera brister i ITP som kan utnyttjas för att spåra användare. Du kan läsa deras fullständiga rapport här.

Eftersom ITP sparar en unik lista över domäner som räknas som spårare och beter sig olika beroende på om en domän ligger på den listan eller inte kan en utvecklare testa vilka domäner som finns på en viss besökares lista. På så vis går det att spåra besökare med hjälp av funktionen som var tänkt att hindra spårning.

Google-forskarna visar en möjlig attack som går ut på att skicka förfrågningar till tredjepartssajter med extremt långa referer-fält. De flesta servrar svarar inte på http-förfrågningar med ett referer-fält större än någonstans mellan 8 och 128 kilobyte.

Genom att testa vilka domäner som svarar på sådana förfrågningar går det att se huruvida den domänen ligger på Safaris ITP-lista. En förfrågan till en domän som inte ligger på listan släpps igenom och då vägrar servern svara. En förfrågan till en domän som ligger på listan kapas i syfte att hindra spårning, och därför kommer ett svar från servern.

En annan attack går ut på att testa efter hur många försök att hämta data från en viss domän den hamnar på ITP-listan. Det kan utnyttjas för att ta reda på om besökaren tidigare har varit på en webbplats som använder en unik tredjepartsdomän för visst innehåll, som normalt aldrig används av någon annan sajt.

Forskarna visar ytterligare tre attacker, som kan utnyttjas för att skapa ett fingeravtryck av en viss användare, störa funktionen på andras webbappar, och skaffa sig information om besökaren via sökningar.

Flera av bristerna fixades i Safari 13.0.4 i IOS 13.3 som släpptes i december, men enligt Google-utvecklaren Justin Schuh har grundproblemet med ITP:s användarspecifika domänlista inte åtgärdats.