Апублікаваны інструментар для вызначэння дапаўненняў, устаноўленых у Chrome

Апублікаваны інструментар з рэалізацыяй метаду вызначэння дадаткаў, усталяваных у браўзэры Chrome. Атрыманы спіс дадаткаў можа выкарыстоўвацца для павелічэння дакладнасці пасіўнай ідэнтыфікацыі канкрэтнага асобніка браўзэра, у спалучэнні з іншымі ўскоснымі прыкметамі, такімі як дазвол экрана, асаблівасцяў WebGL, спісы ўсталяваных убудоў і шрыфтоў. Прапанаваная рэалізацыя правярае ўстаноўку больш за 1000 дапаўненняў. Для праверкі сваёй сістэмы прапанавана online-дэманстрацыя.

Вызначэнне дапаўненняў ажыццяўляецца праз аналіз рэсурсаў, якія прадстаўляюцца дапаўненнямі, даступных для знешніх запытаў. Як правіла, дадаткі ўключаюць розныя спадарожныя файлы, такія як выявы, якія вызначаюцца ў маніфесце дапаўненні уласцівасцю web_accessible_resources. У першай версіі маніфесту Chrome доступ да рэсурсаў не абмяжоўваўся і любы сайт мог загрузіць якія прадстаўляюцца рэсурсы. У другой версіі маніфеста доступ да падобных рэсурсаў па змаўчанні быў дазволены толькі для самога дадатку. У трэцяй версіі маніфеста была дадзена магчымасць вызначыць, якія рэсурсы можна аддаваць якім дапаўненням, даменам і старонкам.

Web-старонкі могуць запытваць пастаўляемыя ў дадатку рэсурсы пры дапамозе метаду fetch (напрыклад "fetch('chrome-extension://okb….nd5/test.png')"), вяртанне якім значэння "false" звычайна сведчыць аб тым, што дадатак не ўстаноўлена. Для блакавання вызначэння дадатку па наяўнасці рэсурсаў некаторыя дадаткі генеруюць праверачны токен, неабходны для доступу да рэсурсу. Выклік fetch без указання токена заўсёды завяршаецца няўдачай.

Як аказалася, абарону доступу да рэсурсаў дапаўненняў можна абысці, ацэньваючы час выканання аперацыі. Нягледзячы на ​​тое, што fetch пры запыце без токена, заўсёды вяртае памылку, час выканання аперацыі пры наяўнасці і адсутнасці дадатку адрозніваецца - калі дадатак прысутнічае, то запыт запатрабуе больш часу, чым калі дадатак не ўстаноўлена. Ацэньваючы час рэакцыі можна дастаткова дакладна вызначыць наяўнасць дапаўнення.

Некаторыя дапаўненні, якія не ўключаюць даступныя з-за рэсурсы, можна вызначыць па дадатковых уласцівасцях. Напрыклад, дадатак MetaMask можна вызначыць праз адзнаку вызначэння ўласцівасці window.ethereum (калі дадатак не ўсталявана «typeof window.ethereum» верне значэнне «undefined»).

Крыніца: opennet.ru

Дадаць каментар