Жашыруун системаны жана браузерди идентификациялоонун жаңы ыкмасын киргизди

Мурда кол салуу ыкмаларын иштеп чыгуу менен белгилүү болгон Грац технологиялык университетинин (Австрия) изилдөөчүлөр тобу MDS, NetSpectre и Throwhammer, аныкталган браузердин так версиясын, колдонулган операциялык системаны, CPU архитектурасын жана жашыруун идентификация менен күрөшүү үчүн кошумчаларды колдонууну аныктоого мүмкүндүк берген жаңы үчүнчү тараптын талдоо ыкмасы жөнүндө маалымат.

Бул параметрлерди аныктоо үчүн браузерде изилдөөчүлөр тарабынан даярдалган JavaScript кодун аткаруу жетиштүү. Иш жүзүндө бул ыкманы кыйыр колдонуучуну идентификациялоо үчүн кошумча булак катары гана эмес, ОС, архитектура жана браузерди эске алуу менен эксплоиттерди максаттуу пайдалануу үчүн тутум чөйрөнүн параметрлерин аныктоо үчүн да колдонсо болот. Метод Tor Browser сыяктуу жашыруун идентификацияны бөгөттөө механизмдери бар браузерлерди колдонууда да эффективдүү. Методду ишке ашыруу менен булак коду прототип коду жарыяланган MIT лицензиясы боюнча.

Аныктоо JIT, CPU жана эстутум бөлүштүрүү механизмдеринин өзгөчөлүктөрүнө жараша JavaScript ар кандай браузерлерге мүнөздүү касиеттердин абалынын үлгүлөрүн бөлүштүрүүнүн жана операцияларды аткаруу убакытынын мүнөздөмөлөрүнүн негизинде жүргүзүлөт. касиеттерин аныктоо JavaScript жеткиликтүү бардык объекттердин тизмесин түзүү аркылуу жүзөгө ашырылат. Маалым болгондой, объекттердин саны браузердин кыймылдаткычына жана анын версиясына түздөн-түз байланыштуу.

getProperties(o) функциясы
varresult = [];
while (o!== null) {
натыйжа = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
натыйжаны кайтаруу;
}

Мисалы, Firefox үчүн 2247 касиеттин колдоосу документтерде жарыяланган, ал эми документтештирилбегендерди эске алуу менен айрым касиеттердин иш жүзүндөгү саны 15709 (Tor Браузеринде - 15639), Chrome үчүн 2698 касиет жарыяланган, бирок 13570 иш жүзүндө сунушталат (Android үчүн Chrome-до - 13119). Мүлктөрдүн саны жана маанилери браузердин версиясынан версиясына жана ар кандай операциялык системаларда өзгөрүп турат.

Белгилүү касиеттердин баалуулуктары жана болушу OS түрүн аныктоо үчүн колдонулушу мүмкүн. Мисалы, Kubuntuда window.innerWidth касиети 1000, ал эми Windows 10до 1001 деп коюлган. Windowsдо window.navigator.activeVRDisplays касиети бар, ал эми Linuxда андай эмес. Көптөгөн конкреттүү чалуулар Android үчүн каралган, бирок window.SharedWorker жок. Иштөө тутумун аныктоо үчүн WebGL параметрлеринин анализин колдонуу сунушталат, анын абалы драйверлерден көз каранды. Кошумчалай кетсек, WEBGL_debug_renderer_infoextension чакырылышы ар бир операциялык система үчүн ар башка болгон OpenGL рендеринг кыймылдаткычы жөнүндө маалымат алууга мүмкүндүк берет.

Процессорду аныктоо үчүн ар кандай типтүү код блокторун аткаруу убакытындагы айырмачылыктарды баалоо колдонулат, аларды иштетүү JITтин жүрүм-турумун эске алуу менен инструкциялар комплексинин архитектурасына көз каранды (канча CPU регистрлери аныкталат) катышат жана кайсы учурларда JIT оптималдаштыруу жана кеңейтилген нускамаларды камтыган эффективдүү кодду жаратат жана качан ). Эстутум бөлүштүрүү тутумунун жана операциялык системанын түрүн аныктоо үчүн ар кандай структуралар үчүн эстутум бөлүштүрүү убактысынын айырмасы да өлчөнөт, анын жардамы менен эс блокторунун өлчөмүн аныктоого болот.

Сценарийди аткарууда аныкталган параметрлер алдын ала сыналган чөйрөлөр үчүн типтүү маалымдама маанилери менен салыштырылат. Сыноо учурунда иштелип чыккан техника колдонулган браузерлердин версияларын, CPU өндүрүүчүсүн, колдонулган операциялык системаны жана анын реалдуу аппараттык жабдыкта же виртуалдык машинада иштеп жатканын аныктоо менен 40 түрдүү тест чөйрөсүн так аныктоого мүмкүндүк берди.

Серепчи кошумчаларын жана ал тургай жеке кошумча жөндөөлөрдү, анын ичинде жашырылган идентификациялык ыкмаларды же жеке серептөө аракетин бөгөттөө үчүн иштелип чыккан кошумчаларды аныктоо мүмкүнчүлүгү өзүнчө белгиленет. Сунушталган ыкманын контекстинде мындай толуктоолор идентификациялоо үчүн дагы бир маалымат булагы болуп калат. Кошумчалар кошумчалар менен киргизилген баштапкы чөйрөнүн параметрлеринин бурмаланышына баа берүү аркылуу аныкталат.

Идентификациялоонун башка ыкмаларынын катарында кыйыр маалыматтардын каралышын белгилесе болот экран токтому, колдоого алынган MIME түрлөрүнүн тизмеси, аталышка тиешелүү параметрлер (HTTP / 2 и HTTPS), талдоо белгиленген плагиндер жана шрифттер, видео карталарга мүнөздүү айрым Web API'лердин болушу өзгөчөлүктөрү WebGL менен көрсөтүү жана сүрөт, манипуляция CSS менен иштөөнүн өзгөчөлүктөрүн талдоо чычкан и клавиатура.

Source: opennet.ru

Комментарий кошуу