Прадстаўлена новая тэхніка ўтоенай ідэнтыфікацыі сістэмы і браўзэра

Група даследнікаў з Грацкага тэхнічнага ўніверсітэта (Аўстрыя), раней вядомая распрацоўкай метадаў нападаў МДС, NetSpectre и Throwhammer, раскрыла звесткі аб новай тэхніцы аналізу па іншых каналах, якая дазваляе вызначыць дакладную версію браўзэра, выкарыстоўваную аперацыйную сістэму, архітэктуру CPU і ўжыванне дадаткаў для дужання са ўтоенай ідэнтыфікацыяй.

Для вызначэння ўказаных параметраў дастаткова выканання ў браўзэры падрыхтаванага даследчыкамі JavaScript кода. На практыцы метад можа прымяняцца не толькі ў якасці дадатковай крыніцы для ўскоснай ідэнтыфікацыі карыстальніка, але і для вызначэння параметраў сістэмнага асяроддзя для мэтавага прымянення эксплоітаў з улікам АС, архітэктуры і браўзэра. Метад эфектыўны ў тым ліку пры ўжыванні браўзэраў з рэалізацыяй механізмаў блакавання ўтоенай ідэнтыфікацыі, такіх як Tor Browser. Зыходныя тэксты прататыпа кода з рэалізацыяй метаду апублікаваныя пад ліцэнзіяй MIT.

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

function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
вярнуць вынік;
}

Напрыклад, для Firefox у дакументацыі заяўлена падтрымка 2247 уласцівасцяў, у той час як рэальная колькасць пэўных уласцівасцяў з улікам недакументаваных складае 15709 (у Tor Browser - 15639), для Chrome заяўлена 2698 уласцівасцяў, а рэальна прапануецца 13570 (у Chrome для Android - 13119 . Лік і значэнні ўласцівасцяў змяняюцца ад версіі да версіі браўзэра і пры ўжыванні розных аперацыйных сістэм.

Значэнні і наяўнасць тых ці іншых уласцівасцяў можна выкарыстоўваць для вызначэння тыпу АС. Напрыклад, у Kubuntu уласцівасць window.innerWidth выстаўляецца ў значэнне 1000, а ў Windows 10 – у 1001. У Windows даступна ўласцівасць window.navigator.activeVRDisplays, а ў Linux яго няма. Для Android прадастаўляецца мноства спецыфічных выклікаў, але няма window.SharedWorker. Для ідэнтыфікацыі аперацыйнай сістэмы таксама прапануецца выкарыстоўваць аналіз параметраў WebGL, стан якіх залежыць ад драйвераў. Акрамя таго, выклік WEBGL_debug_renderer_infoextension дазваляе атрымаць інфармацыю аб рухавічку адмалёўкі OpenGL, які для кожнай аперацыйнай сістэмы розны.

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

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

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

З іншых метадаў ідэнтыфікацыі можна адзначыць улік такіх ускосных дадзеных, як дазвол экрана, спіс падтрымліваемых MIME-тыпаў, спецыфічныя параметры ў загалоўках (HTTP / 2 и HTTPS), аналіз устаноўленых плагінаў і шрыфтоў, даступнасць пэўных Web API, спецыфічныя для відэакарт асаблівасці адмалёўкі пры дапамозе WebGL і Палатно, маніпуляцыі з CSS, аналіз асаблівасцяў працы з мышшу и клавіятурай.

Крыніца: opennet.ru

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