Донецкий техникум промышленной автоматики

Все про атаку "Людина посередині" (Man in the Middle, MitM)

  1. Розуміння того, як працює інтернет
  2. Забезпечення безпеки протоколу зв'язку
  3. Атака посередника через HTTP-протокол
  4. Атака посередника на погано реалізований SSL
  5. розуміння SSL
  6. Проблеми центрів сертифікації
  7. криміналістика
  8. висновок

У цій статті ми спробуємо з'ясувати теорію атак посередника і деякі практичні моменти, які допоможуть запобігти цим типи атак. Це допоможе нам зрозуміти той ризик, який несуть подібні вторгнення для нашого особистого життя, так як MitM-атаки дозволяють вторгатися в комунікації і прослуховувати наші розмови.

1. Забезпечення безпеки протоколу зв'язку

2. Атака посередника через HTTP-протокол

3. Атака посередника на погано реалізований SSL

4. Розуміння SSL

5. Проблеми центрів сертифікації

6. Криміналістика

7. Висновок

Розуміння того, як працює інтернет

Щоб зрозуміти принцип атаки посередника, варто спочатку розібратися з тим, як працює сам інтернет. Основні точки взаємодії: клієнти, маршрутизатори, сервери. Найбільш поширений протокол взаємодії між клієнтом і сервером - Hypertext Transfer Protocol (HTTP). Серфінг в інтернеті за допомогою браузера, електронна пошта, обмін миттєвими повідомленнями - все це здійснюється через HTTP.

Коли ви вводите http://www.anti-malware.ru в адресному рядку вашого браузера, то клієнт (ви) відправляє запит на відображення веб-сторінки сервера. Пакет (HTTP GET-запит) передається через кілька маршрутизаторів на сервер. Після цього сервер відповідає веб-сторінкою, яка відправляється клієнту і відображається на його моніторі. HTTP-повідомлення повинні передаватися в безпечному режимі, щоб забезпечити конфіденційність і анонімність.

Малюнок 1. Взаємодія клієнт-сервер

Забезпечення безпеки протоколу зв'язку

Безпечний протокол зв'язку повинен мати кожне з наступних властивостей:

  1. Конфіденційність - тільки передбачуваний одержувач може прочитати повідомлення.
  2. Автентичність - особистість взаємодіючих сторін доведена.
  3. Цілісність - підтвердження того, що повідомлення не було змінено в дорозі.

Якщо хоч одна з цих правил не дотримано, весь протокол скомпрометований.

Атака посередника через HTTP-протокол

Зловмисник може легко здійснити атаку посередника, використовуючи техніку, звану ARP-спуфінга. Будь у вашій мережі Wi-Fi може послати вам підроблений ARP-пакет, через нього ви неусвідомлено будете посилати весь ваш трафік через зловмисника замість маршрутизатора.

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

Малюнок 2. Схема атаки посередника

Для запобігання таких атак була створена захищена версія протоколу HTTP. Transport Layer Security (TLS) і його попередник, Secure Socket Layer (SSL), є криптографічними протоколами, які забезпечують безпеку передачі даних по мережі. Отже, захищений протокол буде називатися HTTPS. Можна подивитися, як працює захищений протокол, набравши в адресному рядку браузера https://www.anti-malware.ru (Зверніть увагу на наявність S в https).

Атака посередника на погано реалізований SSL

Сучасний SSL використовує хороший алгоритм шифрування, але це не має значення, якщо він реалізований неправильно. Якщо хакер може перехопити запит, він може його змінити, видаливши з запитуваної URL «S», тим самим обійшовши SSL.

Такий перехоплення і модифікацію запиту можна помітити. Наприклад, якщо ви запитуєте а у відповідь приходить, це повинно викликати підозри. На момент написання статті така атака дійсно працює на сервісі електронної пошти Yahoo.

Малюнок 3. Перехоплення і модифікація запиту

Щоб запобігти такій атаку, сервери можуть реалізувати HTTP Strict Transport Security (HSTS) - механізм, який активує форсоване захищене з'єднання через протокол HTTPS. В цьому випадку, якщо зловмисник модифікує запит, прибравши з URL «S», сервер все одно перенаправить користувача 302-перенаправленням на сторінку з захищеним протоколом.

Малюнок 4. Схема роботи HSTS

Схема роботи HSTS

Такий спосіб реалізації SSL є вразливим для іншого виду атаки - зловмисник створює SSL-з'єднання з сервером, але різними хитрощами змушує користувача використовувати HTTP.

Малюнок 5. Схема атаки при HSTS

Для запобігання таких атак сучасні браузери на кшталт Chrome, Firefox і Tor відстежують сайти, що використовують HSTS і встановлюють з ними з'єднання з боку клієнта по SSL в примусовому порядку. В цьому випадку зловмисникові, який проводить атаку посередника, доведеться створювати SSL-з'єднання з жертвою.

Малюнок 6. Схема атаки, де зловмисник встановлює SSL-з'єднання з жертвою

Схема атаки, де зловмисник встановлює SSL-з'єднання з жертвою

Для того щоб забезпечити SLL-з'єднання з користувачем, зловмисник повинен знати, як діяти в якості сервера. Давайте розберемося в технічних аспектах SSL.

розуміння SSL

З точки зору хакера, компрометації будь-якого протоколу зв'язку зводиться до того, щоб знайти слабку ланку серед перерахованих вище компонентів (приватність, автентичність і цілісність).

SSL використовує асиметричний алгоритм шифрування. У симетричному шифруванні проблема полягає в тому, що для шифрування і дешифрування даних використовується один і той же ключ, такий підхід неприпустимий для інтернет-протоколів, оскільки зловмисник може простежити цей ключ.

Асиметричне ж шифрування включає в себе 2 ключа для кожної сторони: відкритий ключ, який використовується для шифрування, і конфіденційний ключ, який використовується для дешифрування даних.

Малюнок 7. Робота публічного та конфіденційного ключів

Робота публічного та конфіденційного ключів

Як SSL забезпечує три властивості, необхідні для безпечного зв'язку?

  1. Оскільки для шифрування даних використовується асиметрична криптографія, SSL забезпечує приватне з'єднання. Це шифрування не так вже й легко зламати і залишитися непоміченим.
  2. Сервер підтверджує свою легітимність, посилаючи клієнтові SSL-сертифікат, виданий центром сертифікації - довіреною третьою стороною.

Якщо зловмисникові якимось чином вдасться роздобути сертифікат, він може створити умови для атаки посередника. Таким чином, він створить 2 з'єднання - з сервером і з жертвою. Сервер в цьому випадку думає, що зловмисник - це звичайний клієнт, а у жертви немає можливості ідентифікувати зловмисника, оскільки той надав сертифікат, який доводить, що він сервер.

Ваші повідомлення доходять і приходять в зашифрованому вигляді, проте проходять по ланцюжку через комп'ютер кіберзлочинця, де у нього є повний контроль.

Малюнок 8. Схема атаки при наявності у зловмисника сертифіката

Сертифікат не обов'язково повинен бути підроблений, якщо у зловмисника є можливість скомпрометувати браузер жертви. У цьому випадку він може вставити самостійно підписаний сертифікат, який буде довіреною за замовчуванням. Так і реалізовуються більшість атак посередника. У більш складних випадках хакер повинен піти іншим шляхом - підробити сертифікат.

Проблеми центрів сертифікації

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

Сертифікати та центри сертифікації завжди були найслабшою ланкою HTTPS-з'єднання. Навіть якщо все було реалізовано правильно і кожен центр сертифікації має солідний авторитет, все одно складно змиритися з фактом, що доводиться довіряти безлічі третіх сторін.

На сьогоднішній день існує більше 650 організацій, здатних видавати сертифікати. Якщо зловмисник зламає будь-яку з них, він роздобуде будь сертифікати, які забажає.

Навіть коли існував всього один центр сертифікації, VeriSign, побутувала проблема - люди, які повинні були запобігати атакам посередника, продавали послуги перехоплення.

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

криміналістика

Оскільки зловмисник відправляє підроблені пакети ARP, не можна побачити його IP-адресу. Замість цього потрібно звертати увагу на MAC-адресу, який є специфічним для кожного пристрою в мережі. Якщо ви знаєте MAC-адресу вашого маршрутизатора, ви можете порівняти його з МАС-адресою шлюзу, щоб з'ясувати, чи дійсно це ваш маршрутизатор або зловмисник.

Наприклад, на ОС Windows ви можете скористатися командою ipconfig у командному рядку (CMD), щоб побачити IP-адресу вашого шлюзу (останній рядок):

Малюнок 9. Використання команди ipconfig

Потім використовуйте команду arp -a для того, щоб дізнатися MAC-адресу цього шлюзу:

Малюнок 10. Використання команди arp -a

Використання команди arp -a

Але є й інший спосіб помітити атаку - якщо ви відстежували мережеву активність в той час, коли вона почалася, і спостерігали за пакетами ARP. Наприклад, можна використовувати Wireshark для цих цілей, ця програма буде повідомляти, якщо MAC-адресу шлюзу змінився.

Примітка: якщо атакуючий буде правильно підміняти MAC-адреси, відстежити його стане великою проблемою.

висновок

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

Завдання користувача полягає в тому, щоб захистити свій браузер і комп'ютер, щоб запобігти вставку підробленого сертифіката (дуже поширена техніка). Також варто звернути увагу на список довірених сертифікатів і видалити ті, кому ви не довіряєте.