Ідэнтыфікацыя праз аналіз вонкавых апрацоўшчыкаў пратаколаў у браўзэры

Распрацоўнікі бібліятэкі fingerprintjs, якая дазваляе генераваць ідэнтыфікатары браўзэра ў пасіўным рэжыме на аснове ўскосных прыкмет, такіх як дазвол экрана, асаблівасцяў WebGL, спісы ўсталяваных убудоў і шрыфтоў, прадставілі новы метад ідэнтыфікацыі, заснаваны на адзнацы ўсталяваных у карыстача тыпавых прыкладанняў і праца дадатковых апрацоўшчыкаў пратаколаў. Код скрыпту з рэалізацыяй метаду апублікаваны пад ліцэнзій MIT.

Праверка ажыццяўляецца на аснове аналізу прывязкі апрацоўшчыкаў да 32 папулярным прыкладаннямі. Напрыклад, вызначыўшы наяўнасць у браўзэры апрацоўшчыкаў схем URL telegram://, slack:// і skype:// можна зрабіць выснову аб наяўнасці ў сістэме прыкладанняў telegram, slack і skype, і выкарыстоўваць дадзеную інфармацыю ў якасці прыкметы пры генерацыі ідэнтыфікатара сістэмы. Бо спіс апрацоўшчыкаў аднолькавы для ўсіх браўзэраў у сістэме ідэнтыфікатар не змяняецца пры змене браўзэра і можа прымяняцца ў Chrome, Firefox, Safari, Brave, Yandex Browser, Edge і нават у Tor Browser.

Метад дазваляе генераваць 32-бітныя ідэнтыфікатары, г.зн. па-асобнасці не дазваляе дамагчыся вялікай дакладнасці, але мае сэнс як дадатковую прыкмету ў спалучэнні з іншымі параметрамі. Адчувальным мінусам метаду з'яўляецца прыкметнасць спробы ідэнтыфікацыі для карыстача - пры генерацыі ідэнтыфікатара на прапанаванай дэманстрацыйнай старонцы ў правым ніжнім куце адчыняецца невялікае, але відавочна прыкметнае акно ў якім досыць доўга перабіраюцца апрацоўшчыкі. Дадзены мінус не выяўляецца ў Tor Browser, у якім ідэнтыфікатар можа быць вылічаны неўзаметку.

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

У Chrome 90 для Linux метад не спрацаваў і браўзэр на ўсе спробы праверкі апрацоўшчыка вывеў тыпавы дыялог пацверджанне аперацыі (у Chromе для Windows і macOS метад працуе). У Firefox 88 для Linux, як у звычайным рэжыме, так і ў рэжыме інкогніта, скрыпт вызначыў наяўнасць усталяваных дадатковых прыкладанняў са спісу, а дакладнасць ідэнтыфікацыі ацэнена ў 99.87% (35 падобных супадзенняў з 26 тысяч праведзеных тэстаў). У запушчаным на той жа сістэме Tor Browser быў згенераваны ідэнтыфікатар, які супадае з тэстам у Firefox.

Цікава, што дадатковая абарона ў Tor Browser згуляла злы жарт і абярнулася магчымасцю правесці ідэнтыфікацыю неўзаметку для карыстача. З-за адключэння ў Tor Browser дыялогаў пацверджання выкарыстання знешніх апрацоўшчыкаў праверачныя запыты аказалася можна адкрываць у iframe, а не ў popup-акне (для падзелу наяўнасці і адсутнасці апрацоўшчыкаў выкарыстоўваецца тое, што правілы same-origin блакуюць доступ да старонак з памылкай і дазваляюць да старонкам about:blank). З-за абароны ад флуду праверка ў Tor Browser займае прыкметна даўжэй часу (10 секунд на дадатак).

Крыніца: opennet.ru

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