Ներկայացրեց թաքնված համակարգի և բրաուզերի նույնականացման նոր տեխնիկա

Գրացի (Ավստրիա) տեխնիկական համալսարանի մի խումբ հետազոտողներ, որոնք նախկինում հայտնի էին հարձակման մեթոդների մշակմամբ MDS, NetSpectre и Նետող մուրճ, բացահայտվեց Տեղեկատվություն երրորդ կողմի ալիքների վերլուծության նոր տեխնիկայի մասին, որը թույլ է տալիս որոշել բրաուզերի ճշգրիտ տարբերակը, օգտագործվող օպերացիոն համակարգը, պրոցեսորի ճարտարապետությունը և հավելումների օգտագործումը թաքնված նույնականացման դեմ պայքարելու համար:

Այս պարամետրերը որոշելու համար բավական է բրաուզերում գործարկել հետազոտողների կողմից պատրաստված JavaScript կոդը։ Գործնականում մեթոդը կարող է օգտագործվել ոչ միայն որպես լրացուցիչ աղբյուր օգտագործողի անուղղակի նույնականացման համար, այլև որոշելու համակարգի միջավայրի պարամետրերը շահագործումների նպատակային օգտագործման համար՝ հաշվի առնելով ՕՀ-ն, ճարտարապետությունը և զննարկիչը: Մեթոդն արդյունավետ է նաև բրաուզերների օգտագործման դեպքում, որոնք իրականացնում են նույնականացման թաքնված արգելափակման մեխանիզմներ, օրինակ՝ Tor Browser-ը: Աղբյուրի կոդի նախատիպը՝ մեթոդի ներդրմամբ հրատարակված MIT լիցենզիայի ներքո:

Որոշումը կատարվում է JavaScript-ում տարբեր բրաուզերներին բնորոշ գույքի վիճակի օրինաչափությունների և գործողությունների կատարման ժամանակի բնութագրերի նույնականացման հիման վրա՝ կախված JIT, CPU և հիշողության բաշխման մեխանիզմների բնութագրերից: Հատկությունների սահմանումը կատարվում է JavaScript-ից հասանելի բոլոր օբյեկտների ցանկի ստեղծմամբ: Ինչպես պարզվեց, օբյեկտների քանակը ուղղակիորեն փոխկապակցված է բրաուզերի շարժիչի և դրա տարբերակի հետ:

ֆունկցիա getProperties(o) {
var արդյունք = [];
մինչդեռ (o !== null) {
արդյունք = result.concat(Reflec.ownKeys(o));
o = Object.getPrototypeOf(o);
}
վերադարձի արդյունք;
}

Օրինակ, Firefox-ի համար փաստաթղթում նշվում է 2247 հատկությունների աջակցություն, մինչդեռ սահմանված հատկությունների իրական թիվը, ներառյալ չփաստաթղթավորվածները, 15709 է (Tor Browser-ում - 15639), Chrome-ի համար հայտարարված են 2698 հատկություններ, բայց իրականում առաջարկվում է 13570 (in Chrome Android-ի համար - 13119) . Հատկությունների քանակը և արժեքները տարբերվում են դիտարկիչի տարբերակից բրաուզերի տարբերակ և տարբեր օպերացիոն համակարգերում:

Որոշակի հատկությունների արժեքները և առկայությունը կարող են օգտագործվել ՕՀ-ի տեսակը որոշելու համար: Օրինակ՝ Kubuntu-ում window.innerWidth հատկությունը սահմանվել է 1000, իսկ Windows 10-ում՝ 1001: Windows.navigator.activeVRDisplays հատկությունը հասանելի է Windows-ում, սակայն այն հասանելի չէ Linux-ում: Android-ի համար նախատեսված են շատ կոնկրետ զանգեր, բայց window.SharedWorker-ը՝ ոչ: Օպերացիոն համակարգը նույնականացնելու համար առաջարկվում է նաև օգտագործել WebGL պարամետրերի վերլուծություն, որի վիճակը կախված է դրայվերներից։ Բացի այդ, WEBGL_debug_renderer_infoextension զանգահարելը թույլ է տալիս տեղեկատվություն ստանալ OpenGL-ի մատուցման շարժիչի մասին, որը տարբեր է յուրաքանչյուր օպերացիոն համակարգի համար:

CPU-ն որոշելու համար օգտագործվում է տարբեր տիպիկ կոդային բլոկների կատարման ժամանակի տարբերությունների գնահատում, որի մշակումը կախված է հրահանգների հավաքածուի ճարտարապետությունից՝ հաշվի առնելով JIT վարքագիծը (որոշվում է, թե քանի պրոցեսորի ռեգիստր է օգտագործվելու։ և որ դեպքերում JIT-ը կստեղծի արդյունավետ կոդ՝ օպտիմալացումներով և ընդլայնված հրահանգների օգտագործմամբ, և երբ ոչ): Հիշողության բաշխման համակարգի և օպերացիոն համակարգի տեսակը որոշելու համար չափվում է նաև տարբեր կառույցների համար հիշողության բաշխման ժամանակի տարբերությունը, որը կարող է օգտագործվել հիշողության բլոկների չափը դատելու համար:

Սցենարների կատարման ընթացքում որոշված ​​պարամետրերը համեմատվում են նախկինում փորձարկված միջավայրերի համար բնորոշ հղման արժեքների հետ: Փորձարկման ընթացքում մշակված տեխնիկան հնարավորություն է տվել ճշգրիտ բացահայտել 40 տարբեր թեստային միջավայրեր՝ նույնականացնելով օգտագործվող բրաուզերների տարբերակները, պրոցեսորի արտադրողին, օգտագործվող օպերացիոն համակարգը և այն փաստը, որ այն աշխատում է իրական ապարատային կամ վիրտուալ մեքենայի վրա:

Առանձին-առանձին նշվում է, որ հնարավոր է սահմանել բրաուզերի հավելումներ և նույնիսկ անհատական ​​հավելումների կարգավորումներ, ներառյալ հավելումները, որոնք նախատեսված են թաքնված նույնականացման մեթոդները կամ զննման մասնավոր ռեժիմի գործունեությունը արգելափակելու համար: Առաջարկվող մեթոդի համատեքստում նման լրացումները դառնում են նույնականացման տվյալների ևս մեկ աղբյուր: Հավելումները որոշվում են հավելումներով ներմուծված սկզբնական միջավայրի պարամետրերի աղավաղումները գնահատելով:

Նույնականացման այլ մեթոդներ ներառում են այնպիսի անուղղակի տվյալների հաշվի առնել, ինչպիսիք են էկրանի լուծում, աջակցվող MIME տեսակների ցանկ, հատուկ պարամետրեր վերնագրերում (HTTP / 2 и HTTPS), տեղադրվածի վերլուծություն պլագիններ և տառատեսակներ, որոշակի վեբ API-ների առկայությունը՝ հատուկ վիդեո քարտերին առանձնահատկությունները մատուցում WebGL-ի միջոցով և Կտավ, մանիպուլյացիա CSS-ով, հետ աշխատելու առանձնահատկությունների վերլուծություն մուկ и ստեղնաշար.

Source: opennet.ru

Добавить комментарий