Π’ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° скриСн систСм ΠΈ прСлистувач

Π“Ρ€ΡƒΠΏΠ° истраТувачи ΠΎΠ΄ Π’Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈΠΎΡ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·ΠΈΡ‚Π΅Ρ‚ Π²ΠΎ Π“Ρ€Π°Ρ† (ΠΠ²ΡΡ‚Ρ€ΠΈΡ˜Π°), ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΏΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π½Π°ΠΏΠ°Π΄ MDS, 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), Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΡƒΡ‚Π²Ρ€Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ ΠΈ Ρ„ΠΎΠ½Ρ‚ΠΎΠ²ΠΈ, достапност Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ Π²Π΅Π± API спСцифични Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΡ‡ΠΊΠΈ ΠšΠ°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΡΡ‚ΠΈΠΊΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ со помош Π½Π° WebGL ΠΈ ΠŸΠ»Π°Ρ‚Π½ΠΎ, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π° со CSS, Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° карактСристикитС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° со Π³Π»ΡƒΠ²Ρ‡Π΅Ρ‚ΠΎ ΠΈ тастатура.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€