Опубліковано новий спосіб прихованої ідентифікації системи і браузера

2 хв. читання

Дослідники з Технічного університету Ґраца опублікували новий метод аналізу систем через сторонні канали. Він виявляє точну версію браузерів та ОС, архітектуру 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);
      }
      return result;
   }

Наприклад, для Firefox оголошена підтримка 2247 властивостей, а реальна кількість рекурсивно визначених властивостей — 15 709 (у Tor Browser — 15 639). У Chrome мало б бути 2698 властивостей, насправді — 13 570; в Chrome для Android — 13119. Кількість і значення властивостей відрізняються у різних версіях і для різних операційних систем.

Для визначення CPU порівнюється час виконання різних типових блоків коду. Їхнє опрацювання залежить від архітектури набору команд з урахуванням поведінки JIT. Так визначається, скільки буде регістрів CPU та коли JIT згенерує ефективний код з оптимізаціями й розширеними інструкціями.

Якщо ж порівняти час виділення пам'яті для різних структур можна визначити розмір блоків пам'яті, а відтак і тип системи розподілу пам'яті та операційну систему.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація