Дослідники з Технічного університету Ґраца опублікували новий метод аналізу систем через сторонні канали. Він виявляє точну версію браузерів та ОС, архітектуру 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 згенерує ефективний код з оптимізаціями й розширеними інструкціями.
Якщо ж порівняти час виділення пам'яті для різних структур можна визначити розмір блоків пам'яті, а відтак і тип системи розподілу пам'яті та операційну систему.
Ще немає коментарів