A fost publicat un instrument care implementează metoda de determinare a extensiilor instalate în browserul Chrome. Lista de extensii obținută poate fi folosită pentru a crește precizia identificării pasive a unei instanțe specifice a browserului, împreună cu alte semne indirecte, cum ar fi rezoluția ecranului, caracteristicile WebGL, listele de pluginuri și fonturi instalate. Implementarea propusă verifică instalarea a peste 1000 de extensii. Pentru a verifica sistemul tău, este disponibilă o demonstrație online.
Determinarea extensiilor se face prin analiza resurselor furnizate de aceste extensii, accesibile pentru solicitări externe. În general, extensiile includ diferite fișiere adiționale, cum ar fi imagini, care sunt definite în manifestul extensiei prin proprietatea web_accessible_resources. În prima versiune a manifestului Chrome, accesul la resurse nu era restricționat, iar orice site putea să încarce resursele furnizate. În a doua versiune a manifestului, accesul la astfel de resurse a fost permis în mod implicit doar pentru extensia însăși. În a treia versiune a manifestului, s-a oferit posibilitatea de a determina care resurse pot fi furnizate anumitor extensii, domenii și pagini.
Pagini web pot solicita resursele furnizate de extensie prin metoda fetch (de exemplu, „fetch('chrome-extension://okb….nd5/test.png')”), întoarcerea valorii „false” indicând de obicei că extensia nu este instalată. Pentru a bloca detectarea extinderii prin prezența resurselor, unele extensii generează un token de verificare necesar pentru accesul la resursă. Apelul fetch fără specificarea token-ului se finalizează întotdeauna cu eșec.
Se pare că protecția accesului la resursele extensiilor poate fi ocolită evaluând timpul de execuție al operației. Deși fetch, atunci când este solicitat fără token, nu returnează decât erori, timpul de execuție al operației variază în funcție de prezența sau absența extensiei — dacă extensia este prezentă, solicitarea va necesita mai mult timp decât dacă extensia nu este instalată. Evaluând timpul de reacție, se poate determina cu o precizie destul de mare prezența extensiei.
Unele extensii care nu includ resurse externe pot fi identificate prin proprietăți suplimentare. De exemplu, extensia MetaMask poate fi identificată prin evaluarea proprietății window.ethereum (dacă extensia nu este instalată, «typeof window.ethereum» va returna valoarea «undefined»).
Sursa: opennet.ro
