Атака «людина посередині»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Атака посередника, атака «людина посередині», MITM-атака (англ. Man in the middle) — термін в криптографії, що позначає ситуацію, коли криптоаналітик (атакувальник) здатний читати та видозмінювати за своєю волею повідомлення, якими обмінюються кореспонденти, причому жоден з останніх не може здогадатися про його присутність в каналі.

Метод компрометації[ru] каналу зв'язку, при якому зловмисник, приєднавшись до каналу між контрагентами, здійснює втручання в протокол передачі, видаляючи або змінюючи інформацію.

Принцип атаки[ред.ред. код]

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

Припустимо, об'єкт A планує передати об'єкту B якусь інформацію. Об'єкт C володіє знаннями про структуру та властивості використовуваного методу передачі даних, а також про факт планованої передачі власне інформації, яку С планує перехопити. Для здійснення атаки С «видається» об'єкту А як В, а об'єкту В — як А. Об'єкт А, помилково вважаючи, що він направляє інформацію об'єкту В, посилає її об'єкту С. Об'єкт С, отримавши інформацію, і зробивши з нею деякі дії (наприклад, скопіювавши або модифікувавши у своїх цілях) пересилає дані власне одержувачу — об'єкту В; об'єкт В, в свою чергу, вважає, що інформація була отримана ним безпосередньо від об'єкта А.

Приклад атаки[ред.ред. код]

Атака «людина посередині».

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

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

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

  1. Аліса відправляє Бобу повідомлення, яке перехоплює Мелорі:
    Аліса «Привіт Боб, Це Аліса. Надішли мені свій відкритий ключ» > Мелорі Боб
  2. Мелорі пересилає повідомлення Бобу; Боб не може здогадатися, що це повідомлення не від Аліси:
    Аліса Мелорі «Привіт Боб, Це Аліса. Надішли мені свій відкритий ключ» > Боб
  3. Боб відсилає свій ключ:
    Аліса Мелорі ← [ключ Боба] Боб
  4. Мелорі підмінює ключ Боба своїм та пересилає повідомлення Алісі:
    Аліса ← [ключ Мелорі] Мелорі Боб
  5. Аліса шифрує повідомлення ключем Мелорі, вважаючи що це ключ Боба, і лише він може розшифрувати його:
    Аліса «Зустрінемося на автобусній зупинці!» [зашифровано ключем Мелорі] → Мелорі Боб
  6. Мелорі розшифровує повідомлення, читає його, модифікує його, шифрує ключем Боба і відправляє його:
    Аліса Мелорі «Чекай на мене біля входу в музей в 18:00!» [зашифровано ключем Боба] → Боб
  7. Боб вважає, що це повідомлення Аліси.

Цей приклад демонструє необхідність використання методів для підтвердження того, що обидві сторони використовують правильні відкриті ключі, тобто що у сторони А відкритий ключ сторони Б, а у сторони Б відкритий ключ сторони А. В іншому випадку, канал може бути підданий атаці «Людина посередині».

Сценарії атаки[ред.ред. код]

Обмін відкритими ключами[ред.ред. код]

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

У випадку системи з відкритим ключем, криптоаналітик може перехопити повідомлення обміну відкритими ключами між клієнтом та сервером і змінити їх, як у прикладі вище. Для того, щоб залишатися непоміченим, криптоаналітик повинен перехоплювати всі повідомлення між клієнтом та сервером і шифрувати та розшифровувати їх відповідними ключами. Такі дії можуть здатися занадто складними для проведення атаки, проте вони представляють реальну загрозу для небезпечних мереж (наприклад, інтернет та бездротові мережі).[1]

Впровадження шкідливого коду[ред.ред. код]

Впровадження коду[2] в атаці «людина посередині» головним чином застосовується для захоплення вже авторизованої сесії, виконання власних команд на сервері та відправки помилкових відповідей клієнту.[3]

Атака «людина посередині» дозволяє криптоаналітику вставляти свій код в електронні листи, SQL вирази та веб-сторінки (тобто дозволяє здійснювати SQL-ін'єкції, HTML/script-ін'єкції або XSS-атаки), і навіть модифікувати завантажені користувачем бінарні файли для того, щоб отримати доступ до облікового запису користувача або змінити поведінку програми, завантаженої користувачем з інтернету.[3]

Downgrade Attack[ред.ред. код]

Терміном «Downgrade Attack» називають таку атаку, при якій криптоаналітик змушує користувача використати менш безпечні функції, протоколи, які все ще підтримуються з міркувань сумісності. Такий вид атаки може бути проведений на протоколи SSH, IPsec та PPTP.

SSH V1 замість SSH V2[ред.ред. код]

Атакувальник може спробувати змінити параметри з'єднання між сервером та клієнтом при встановленні між ними з'єднання.[3] Згідно з доповіддю, зробленою на конференції Blackhat Conference Europe 2003, криптоаналітик може «змусити» клієнта почати сесію SSH1 замість SSH2 змінивши номер версії «1.99» для SSH сесії на «1.51», що означає використання SSH V1.[4] Протокол SSH-1 має уразливості, якими може скористатися криптоаналітик.

IPsec[ред.ред. код]

При такому сценарії атаки криптоаналітик вводить свою жертву в оману, змушуючи її думати, що IPsec сесія не може початися на іншому кінці (сервері). Це призводить до того, що повідомлення будуть пересилатися в явному вигляді, у разі якщо хост-машина працює в rollback режимі.[4]

PPTP[ред.ред. код]

На етапі узгодження параметрів PPTP сесії атакувальник може змусити жертву використовувати менш безпечну PAP аутентифікацію, MSCHAP V1 (тобто «відкотитися» з MSCHAP V2 до версії 1), або не використовувати шифрування взагалі.

Атакувальник може змусити свою жертву повторити етап узгодження параметрів PPTP сесії (послати пакет LCP з запитом), викрасти пароль з існуючого тунелю та повторити атаку.

Публічні засоби комунікацій без захисту[ред.ред. код]

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

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

Чи врятує шифрування?[ред.ред. код]

Розглянемо випадок стандартної HTTP-транзакції. В цьому випадку зловмисник достатньо легко може розбити оригінальне TCP-з'єднання на два нових: одне між собою та клієнтом, інше між собою та сервером. Це достатньо просто зробити, оскільки дуже рідко з'єднання між клієнтом та сервером пряме, і в більшості випадків вони пов'язані через деяку кількість проміжних серверів. MITM-атаку можна проводити на будь-якому з цих серверів.

Однак у випадку, якщо клієнт та сервер спілкуються по HTTPS — протоколу, що підтримує шифрування — теж може бути проведена атака «людина посередині». При такому вигляді з'єднання використовується TLS або SSL для шифрування запитів, що, здавалося б, робить канал захищеним від сніффінга та MITM-атак. Атакувальник може для кожного TCP-з'єднання створити дві незалежні SSL-сесії. Клієнт встановлює SSL-з'єднання з атакувальником, той у свою чергу створює з'єднання з сервером. Браузер в таких випадках зазвичай попереджає про те, що сертифікат не підписаний довіреною центром сертифікації, але пересічний користувач з легкістю ігнорує дане попередження. До того ж, у зловмисника може виявитися сертифікат, підписаний центром сертифікації (наприклад, такі сертифікати іноді використовуються для запобігання витоків інформації[5]). Крім того, існує ряд атак на HTTPS.[6] Таким чином, HTTPS протокол не можна вважати захищеним від MITM-атак у рядових користувачів.

Виявлення MITM-атаки[ред.ред. код]

Для виявлення атаки «людина посередині» необхідно проаналізувати мережевий трафік. Наприклад, для детектування атаки по SSL слід звернути увагу на такі параметри:[7]

  • IP-адреса сервера
  • DNS-сервер
  • X.509-сертифікат сервера
    • Чи підписано сертифікат самостійно?
    • Чи підписано сертифікат центром сертифікації?
    • Чи був сертифікат анульований?
    • Чи змінювався сертифікат нещодавно?
    • Чи отримували інші клієнти в Інтернеті такий самий сертифікат ?

Реалізації MITM-атаки[ред.ред. код]

  • dsniff — інструмент для SSH і SSL атак
  • Cain — інструмент для проведення атаки «людина посередині». Має графічний інтерфейс. Підтримує сніффінг та ARP spoofing.
  • Ettercap — інструмент для проведення атак в локальній мережі
  • Karma — використовує атаку злий двійник (Evil Twin) для проведення MITM-атак
  • AirJack — програма демонструє засновані на стандарті 802.11 MITM-атаки
  • SSLStrip — інструмент для MITM-атаки на SSL
  • SSLSniff — інструмент для MITM-атаки на SSL. Спочатку був створений для виявлення вразливостей в Internet Explorer.[8]
  • Mallory — прозорий проксі-сервер, який здійснює TCPUDP-MITM-атаки. Може бути також використаний для атаки на протоколи SSL, SSH та багато інших
  • wsniff — інструмент для проведення атак на 802.11 HTTP/HTTPS протокол

Перераховані програми можуть бути використані для здійснення атак «людина посередині», а також для їх виявлення та тестування системи на уразливості.

Приклад в літературі[ред.ред. код]

Наочний літературний приклад можна побачити в Казці про царя Салтана[ru] А. С. Пушкіна, де фігурують три «людини посередині» (криптоаналітика): ткаля, кухарка та Бабаріха. Саме вони підміняють листи, адресовані царю, і його відповідну кореспонденцію.

Також атака посередника описана в романі А. Дюма «Граф Монте-Крісто», де повідомлення, передане за допомогою оптичного телеграфу, підміняється на одній з ретрансляційних станцій.

Примітки[ред.ред. код]

  1. Асиметричні алгоритми шифрування
  2. Techtarget Search Security Channel: Common injection attacks. Архів оригіналу за 2012-02-18. 
  3. а б в Alberto Ornaghi, Marco Valleri, "Man In The Middle Attacks," BlackHat Conference Europe 2003. Архів оригіналу за 2012-02-18. 
  4. а б Alberto Ornaghi, Marco Valleri, "Man In The Middle Attacks Demos," BlackHat Conference Europe 2003. Архів оригіналу за 2012-02-18. 
  5. http://blog.spiderlabs.com/2012/02/clarifying-the-trustwave-ca-policy-update.html «subordinate root… This single certificate was issued for an internal corporate network customer and not to a 'government', 'ISP' or to 'law enforcement'. It was to be used within a private network within a data loss prevention (DLP) system.»
  6. ATTACKS ON SSL. A COMPREHENSIVE STUDY OF BEAST, CRIME, TIME, BREACH, LUCKY 13 & RC4 BIASES, August 15, 2013
  7. Network Forensic Analysis of SSL MITM Attacks. NETRESEC Network Security Blog. Архів оригіналу за 2012-02-18. Процитовано March 27, 2011. 
  8. Goodin, Dan (October 1, 2009). SSL spoof bug still haunts IE, Safari, Chrome; Thanks to Microsoft. The Register.co.uk. Архів оригіналу за 2012-02-18. Процитовано July 17, 2010. 

Див. також[ред.ред. код]

Інші атаки

Посилання[ред.ред. код]