Time Attack міфи та реальність

6 травня 2023 1 хвилина Автор: D2-R2

Time Attack

У цьому розділі ви дізнаєтеся, що таке Time Attack. На прикладі ми розберемо як зловмисник може виявити уразливі місця у безпеці комп’ютера чи мережі Інтернет. Ви дізнаєтесь, що це за експлойт безпеки. Ця тема досить мало освітлена на просторах інтернету, а тим більше об’єктивно, зараз ми з вами і розберемо що це і як працює простою мовою з прикладами. Ми обіграли ситуацію, в якій ви співробітник спецслужби, і ваше завдання – вирахувати особливо небезпечного злочинця, який займається шантажем і періодично з’являється в мережі і тільки для передачі даних. Покажемо сервіс, який допомагає перевірити чи використовувалася IP-адреса як вузол для передачі трафіку в Tor; Розкажемо, як перевірити, чи налаштований браузер TOR для роботи; Як перевірити, чи людина використовує проксі, VPN чи TOR; Що може стати на заваді проведенню таймінг-атаки? Як захиститися від Time Attack; Як убезпечити свій месенджер ви дізнаєтесь нижче у статті; Також розглянемо приклади векторів Time Attack; Clock Leak Attack; Захист від вектор витоку годин; Контр-заходи атаки на отримання TCP ISN CPU інформації; TCP тимчасові мітки (TCP timestamp), kernel sysctl; iptables для обмеження (блокування) вхідних ICMP-повідомлень та трафіку; Як видалити функцію виведення таймера з коду лінукса TCP ISN Після прочитання цієї статті – у вас буде розуміння, що таке і які бувають Time Attack і як захиститься від Time Attack. Якщо у вашому месенджері можна сховати дані про ваш статус, використайте цю інформацію для вашої безпеки.

Атака з визначенням часу — це експлойт безпеки, який дозволяє зловмиснику виявити вразливі місця в безпеці комп’ютера або мережевої системи, вивчаючи, скільки часу потрібно системі, щоб реагувати на різні вхідні дані. Характеристики часу будуть відрізнятися залежно від ключа шифрування, оскільки різні системи займають дещо різну кількість часу для обробки різних введених даних. Змінні включають оптимізацію продуктивності, розгалуження та умовні оператори, інструкції процесора, оперативну пам’ять та звернення до кешу. Атака часу розглядає, скільки часу потрібно системі, щоб щось зробити, і використовує статистичний аналіз, щоб знайти правильний ключ дешифрування та отримати доступ.

Ми знаємо, що ціль, яку необхідно деанонімізувати, підключилася 11.04.2022 об 11:07 та відключилася о 12:30. У ці тимчасові точки (+/- 5 хвилин) біля країни підключилися до мережі Tor і відключилися від неї 3000 людей. Ми беремо ці 3000 і дивимося, хто з них знову підключився о 14:17 та відключився о 16:54, як думаєте, скільки людей залишиться? Так, крок за кроком, коло звужується, і в результаті вам вдасться визначити місце виходу в мережу вашої жертви або злочинця. Чим частіше він заходить у мережу і чим менше в цей час інших користувачів, тим швидше спрацює таймінг-атака.

Тепер на руках у вас є лог його активності за кілька днів, настав час скористатися системою ОРМ (оперативно-розшукових заходів). Подібні системи є у розпорядженні спецслужб більшості країн, у Росії це СОРМ. Потрібно з’ясувати, хто в ці часові рамки +/- 5 хвилин у вашій країні підключався до мережі Tor. Ми знаємо, що ціль, яку необхідно деанонімізувати, підключилася 11.04.2022 об 11:07 та відключилася о 12:30. У ці тимчасові точки (+/- 5 хвилин) біля країни підключилися до мережі Tor і відключилися від неї 3000 людей. Ми беремо ці 3000 і дивимося, хто з них знову підключився о 14:17 та відключився о 16:54, як думаєте, скільки людей залишиться? Так, крок за кроком, коло звужується, і в результаті вам вдасться визначити місце виходу в мережу вашої жертви або злочинця. Чим частіше він заходить у мережу і чим менше в цей час інших користувачів, тим швидше спрацює таймінг-атака.

Приклади

metrics.torproject.org

Перевіряє чи використовувалась IP-адреса як вузол у мережу лукоподібних.

натиснути тут

check.torproject.org

Перевіряє, чи налаштований для роботи браузер Tor.


натиснути тут

ipqualityscore.com

Дізнається, чи людина використовує проксі, VPN або TOR.


натиснути тут

Що може стати на заваді проведенню таймінг-атаки

  • Постійна зміна точок виходу в мережу робить подібну атаку безглуздою. Якщо мета періодично змінює точки виходу, це може утруднити пошук, але є заздалегідь допустимим варіантом і не здатне заплутати систему.

  • Сподіваюся, що наш читач не відносится до злочинців, що розшукуються, і йому не доведеться кочувати з одного кафе з публічним Wi-Fi в інше. Однак другою порадою проти таймінг-атаки варто скористатися кожному. Йдеться про відключення на рівні месенджера передачі про статус чи встановлення постійного статусу «офлайн». Більшість месенджерів надають одну з таких можливостей. Що стосується тематичних форумів логіка така сама.

Якщо у вашому месенджері можна приховати дані про ваш статус, приховайте цю інформацію.

  • Додатковим інструментом захисту від таймінг-атаки може стати припинення увімкнення месенджера разом із підключенням до мережі. Як ви можете зрозуміти з опису атаки, звіряється час входу/виходу в мережу та поява на зв’язку/вихід в офлайн у месенджері. З форумами ви зробили заздалегідь вхід/вихід, тим самим уникли таймінг-атаки.

  • Допускається похибка, але вона має бути дуже великою. Якщо ціль атаки підключиться до Tor і лише за годину запустить месенджер, дуже складно буде зв’язати вхід у мережу і статус у месенджері, аналогічно і в форумі.

Будь-який аналіз, збирання інформації в Osint – це логіка не забувайте про це ні коли!

Також є вектор витоку годин
(Clock Leak Attack)

  • ICMP Timestamps

  • NTP Clients

  • TCP Initial Sequence Numbers (ISNs)

  • TCP Timestamps

 

Приклади

  • Application-level Traffic

  • Denial of Service

  • Locating Onion Services

  • Remote Code Execution

  • Remote Device Fingerprinting

  • Replay Attacks

Захист від вектору витоку годин

Докладно для механізмів синхронізації часу є матеріал (https://www.whonix.org/wiki/Dev/TimeSync) у whonix. Найцікавіше, що захист від нього є, про нього піде далі. Для боротьби здебільшого використовують sdwdate Докладніше прочитаєте тут:

kicksecure.com/wiki/Sdwdate github.com/Whonix/sdwdate у зв’язці з ПЗ, яке переміщає годинник на кілька секунд і наносекунд у минуле або майбутнє під час завантаження (boot time) випадковим чином (не рідко псевдовипадковим) або по-іншому називається Boot Clock Randomization, хоч і sdwdate виконує схожу функцію (в якійсь мірі). У такий спосіб можна впевнено захищатися від зняття time-base фінгерпринту і від встановлення часу підключення, про який писав вище. Головне використовувати sdwdate (яке теж рандомізує системний годинник), до речі, це буде набагато безпечніше ніж використання програм для синхронізації та встановлення системного часу:

Але, як показала практика, sdwdate може неправильно рандомізувати годинник, тому краще використовувати у зв’язці з вищезгаданим

Контр-заходи атаки на отримання TCP ISN CPU інформації були розроблені

Tirdad https://github.com/Whonix/tirdad

Також краще ще:

  • відключати TCP тимчасові мітки (TCP timestamp) за допомогою kernel sysctl

  • не забувати працювати з iptables для обмеження(блокування) вхідних ICMP-повідомлень та трафіку.

  • видалити функцію виведення таймер з коду лінукса TCP ISN (вище приводив tirdad, але можна і ручками)

Так що, в принципі, можливо захиститися від Time Attack, причому успішно, тільки багато що залежатиме від вашої пильності, бажання закопатися в технічну документацію інструментів вище, закопатися загалом у матчасть, пов’язану з синхронізацією часу, атаки та контр-заходи. Та й у підсумку, це буде вже вважай один з останніх масивів векторів атак, які будуть застосовані для встановлення особистості після подій, в яких ви будете обвинуваченим (що атакує та спричинить будь-які збитки, у разі зі спробою скоєння злочину рідко застосовується таке). Та й зрозуміло в аспекті вашого ІБ грає велику роль у виборі операційної системи, звичайно якщо ви на windows або MacOS – все вже погано.

Всі ці тулзи та надбудови, вже є в whonix (https://www.whonix.org/) та кубику QubeOs (https://www.qubes-os.org/). Ми з вами розібрали як вектори атак, так і можливість захисту, а головне ви зрозуміли логіку цього вектора атаки.

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.