Атака «людина посередині»
Атака посередника, атака «людина посередині», MITM-атака (англ. Man in the middle) — термін в криптографії, що позначає ситуацію, коли криптоаналітик (атакувальник) здатний читати та видозмінювати за своєю волею повідомлення, якими обмінюються кореспонденти, причому жоден з останніх не може здогадатися про його присутність в каналі.
Метод компрометації каналу зв'язку, при якому зловмисник, приєднавшись до каналу між контрагентами, здійснює втручання в протокол передачі, видаляючи або змінюючи інформацію.
Атака зазвичай починається з прослуховування каналу зв'язку та закінчується тим, що криптоаналітик намагається підмінити перехоплене повідомлення, витягти з нього корисну інформацію, перенаправити його на який-небудь зовнішній ресурс.
Припустимо, об'єкт A планує передати об'єкту B якусь інформацію. Об'єкт C володіє знаннями про структуру та властивості використовуваного методу передачі даних, а також про факт планованої передачі власне інформації, яку С планує перехопити. Для здійснення атаки С «видається» об'єкту А як В, а об'єкту В — як А. Об'єкт А, помилково вважаючи, що він направляє інформацію об'єкту В, посилає її об'єкту С. Об'єкт С, отримавши інформацію, і зробивши з нею деякі дії (наприклад, скопіювавши або модифікувавши у своїх цілях) пересилає дані власне одержувачу — об'єкту В; об'єкт В, в свою чергу, вважає, що інформація була отримана ним безпосередньо від об'єкта А.
Припустимо, що Аліса хоче передати Бобу деяку інформацію. Мелорі хоче перехопити повідомлення і, можливо, змінити його так, що Боб отримає невірну інформацію.
Мелорі починає свою атаку з того, що встановлює з'єднання з Бобом та Алісою, при цьому вони не можуть здогадатися про те, що хтось третій є присутнім в їх каналі зв'язку. Всі повідомлення, які посилають Боб і Аліса, отримує Мелорі.
Аліса просить у Боба його відкритий ключ. Мелорі представляється Алісі Бобом та відправляє їй свій відкритий ключ. Аліса, вважаючи, що це ключ Боба, шифрує ним повідомлення та відправляє його Бобу. Мелорі отримує повідомлення, розшифровує, потім змінює його, якщо потрібно, шифрує його відкритим ключем Боба і відправляє його йому. Боб отримує повідомлення та думає, що воно прийшло від Аліси:
- Аліса відправляє Бобу повідомлення, яке перехоплює Мелорі:
- Аліса «Привіт Боб, Це Аліса. Надішли мені свій відкритий ключ» > Мелорі Боб
- Мелорі пересилає повідомлення Бобу; Боб може не здогадатися, що це повідомлення не від Аліси:
- Аліса Мелорі «Привіт Боб, Це Аліса. Надішли мені свій відкритий ключ» > Боб
- Боб відсилає свій ключ:
- Аліса Мелорі ← [ключ Боба] Боб
- Мелорі підмінює ключ Боба своїм та пересилає повідомлення Алісі:
- Аліса ← [ключ Мелорі] Мелорі Боб
- Аліса шифрує повідомлення ключем Мелорі, вважаючи що це ключ Боба, і що лише він може розшифрувати його:
- Аліса «Зустрінемося на автобусній зупинці!» [зашифровано ключем Мелорі] → Мелорі Боб
- Мелорі розшифровує повідомлення, читає його, модифікує його, шифрує ключем Боба і відправляє його:
- Аліса Мелорі «Чекай на мене біля входу в музей в 18:00!» [зашифровано ключем Боба] → Боб
- Боб вважає, що це повідомлення Аліси.
Цей приклад демонструє необхідність використання методів для підтвердження того, що обидві сторони використовують правильні відкриті ключі, тобто що у сторони А відкритий ключ сторони Б, а у сторони Б відкритий ключ сторони А. В іншому випадку, канал може бути підданий атаці «Людина посередині».
Атаки «людина посередині» становлять загрозу для систем, що здійснюють фінансові операції через інтернет — наприклад, електронний бізнес, інтернет-банкінг, платіжний шлюз. Застосовуючи цей вид атаки, зловмисник може отримати доступ до облікового запису користувача та здійснювати різні фінансові махінації.
У випадку системи з відкритим ключем, криптоаналітик може перехопити повідомлення обміну відкритими ключами між клієнтом та сервером і змінити їх, як у прикладі вище. Для того, щоб залишатися непоміченим, криптоаналітик повинен перехоплювати всі повідомлення між клієнтом та сервером і шифрувати та розшифровувати їх відповідними ключами. Такі дії можуть здатися занадто складними для проведення атаки, проте вони представляють реальну загрозу для небезпечних мереж (наприклад, інтернет та бездротові мережі).[1]
Впровадження коду[2] в атаці «людина посередині» головним чином застосовується для захоплення вже авторизованої сесії, виконання власних команд на сервері та відправки помилкових відповідей клієнту.[3]
Атака «людина посередині» дозволяє криптоаналітику вставляти свій код в електронні листи, SQL вирази та вебсторінки (тобто дозволяє здійснювати SQL-ін'єкції, HTML/script-ін'єкції або XSS-атаки), і навіть модифікувати завантажені користувачем бінарні файли для того, щоб отримати доступ до облікового запису користувача або змінити поведінку програми, завантаженої користувачем з інтернету.[3]
Терміном «Downgrade Attack» називають таку атаку, при якій криптоаналітик змушує користувача використати менш безпечні функції, протоколи, які все ще підтримуються з міркувань сумісності. Такий вид атаки може бути проведений на протоколи SSH, IPsec та PPTP.
Атакувальник може спробувати змінити параметри з'єднання між сервером та клієнтом при встановленні між ними з'єднання.[3] Згідно з доповіддю, зробленою на конференції Blackhat Conference Europe 2003, криптоаналітик може «змусити» клієнта почати сесію SSH1 замість SSH2 змінивши номер версії «1.99» для SSH сесії на «1.51», що означає використання SSH V1.[4] Протокол SSH-1 має уразливості, якими може скористатися криптоаналітик.
При такому сценарії атаки криптоаналітик вводить свою жертву в оману, змушуючи її думати, що IPsec сесія не може початися на іншому кінці (сервері). Це призводить до того, що повідомлення будуть пересилатися в явному вигляді, у разі якщо хост-машина працює в rollback режимі.[4]
На етапі узгодження параметрів PPTP сесії атакувальник може змусити жертву використовувати менш безпечну PAP аутентифікацію, MSCHAP V1 (тобто «відкотитися» з MSCHAP V2 до версії 1), або не використовувати шифрування взагалі.
Атакувальник може змусити свою жертву повторити етап узгодження параметрів PPTP сесії (послати пакет LCP з запитом), викрасти пароль з існуючого тунелю та повторити атаку.
Найбільш поширеними засобами комунікацій цієї групи є соціальна мережа, публічний сервіс електронної пошти та система миттєвого обміну повідомленнями. Власник ресурсу, що забезпечує сервіс комунікацій має повний контроль над інформацією, якою обмінюються кореспонденти і, на свій розсуд, в будь-який момент часу безперешкодно може здійснити атаку.
На відміну від попередніх сценаріїв, заснованих на технічних та технологічних аспектах засобів комунікацій, в цьому випадку атака заснована на ментальних аспектах, а саме на укоріненні в свідомості користувачів концепції ігнорування вимог інформаційної безпеки.
Розглянемо випадок стандартної HTTP-транзакції. В цьому випадку зловмисник достатньо легко може розбити оригінальне TCP-з'єднання на два нових: одне між собою та клієнтом, інше між собою та сервером. Це досить просто зробити, оскільки дуже рідко клієнт та сервер з'єднуються безпосередньо. У більшості випадків вони пов'язані через деяку кількість проміжних серверів і MITM-атаку можна провести на будь-якому з них.
Якщо клієнт та сервер спілкуються по HTTPS — протоколу, що підтримує шифрування — атака «людина посередині» теж може бути здійснена. При такому вигляді з'єднання використовується TLS або SSL для шифрування запитів, що, здавалося б, робить канал захищеним від сніффінга та MITM-атак. Проте атакувальник може для кожного TCP-з'єднання створити дві незалежні SSL-сесії. Клієнт встановлює SSL-з'єднання з атакувальником, той у свою чергу створює з'єднання з сервером. Браузер в таких випадках зазвичай попереджає про те, що сертифікат не підписаний довіреним центром сертифікації, але пересічний користувач звично ігнорує таке попередження. До того ж, у зловмисника може бути сертифікат, підписаний центром сертифікації (наприклад, такі сертифікати іноді використовуються для запобігання витоків інформації[5]). Крім того, існує ряд атак на HTTPS.[6] Таким чином, HTTPS протокол не можна вважати захищеним від MITM-атак на рядових користувачів.
Для виявлення атаки «людина посередині» необхідно аналізувати мережевий трафік. Наприклад, для детектування атаки по SSL слід звернути увагу на такі параметри:[7]
- IP-адреса сервера
- DNS-сервер
- X.509-сертифікат сервера
- Чи підписано сертифікат самостійно?
- Чи підписано сертифікат центром сертифікації?
- Чи був сертифікат анульований?
- Чи змінювався сертифікат нещодавно?
- Чи отримували інші клієнти в Інтернеті такий самий сертифікат ?
- dsniff [Архівовано 29 жовтня 2014 у Wayback Machine.] — інструмент для SSH і SSL атак
- Cain — інструмент для проведення атаки «людина посередині». Має графічний інтерфейс. Підтримує сніффінг та ARP spoofing.
- Ettercap [Архівовано 25 жовтня 2014 у Wayback Machine.] — інструмент для проведення атак в локальній мережі
- Karma [Архівовано 12 листопада 2014 у Wayback Machine.] — використовує атаку злий двійник (Evil Twin) для проведення MITM-атак
- AirJack [Архівовано 30 жовтня 2014 у Wayback Machine.] — програма демонструє засновані на стандарті 802.11 MITM-атаки
- SSLStrip[недоступне посилання] — інструмент для MITM-атаки на SSL
- SSLSniff[недоступне посилання] — інструмент для MITM-атаки на SSL. Спочатку був створений для виявлення вразливостей в Internet Explorer.[8]
- Mallory — прозорий проксі-сервер, який здійснює TCP-і UDP-MITM-атаки. Може бути також використаний для атаки на протоколи SSL, SSH та багато інших
- wsniff — інструмент для проведення атак на 802.11 HTTP/HTTPS протокол
Перераховані програми можуть бути використані для здійснення атак «людина посередині», а також для їх виявлення та тестування системи на уразливості.
Наочний літературний приклад можна побачити в Казці про царя Салтана А. С. Пушкіна, де як «людина посередині» виступають Ткаля, Кухарка та Бабариха. Вони підміняють листи, адресовані царю, та його відповіді.
Також атака посередника описана в романі А. Дюма «Граф Монте-Крісто», де повідомлення, яке передається за допомогою оптичного телеграфу, підмінюється на одній з ретрансляційних станцій.
- ↑ Асиметричні алгоритми шифрування
- ↑ Techtarget Search Security Channel: Common injection attacks. Архів оригіналу за 18 лютого 2012. Процитовано 29 жовтня 2014.
- ↑ а б в Alberto Ornaghi, Marco Valleri, "Man In The Middle Attacks," BlackHat Conference Europe 2003. Архів оригіналу за 18 лютого 2012. Процитовано 29 жовтня 2014.
- ↑ а б Alberto Ornaghi, Marco Valleri, "Man In The Middle Attacks Demos," BlackHat Conference Europe 2003. Архів оригіналу за 18 лютого 2012. Процитовано 29 жовтня 2014.
- ↑ http://blog.spiderlabs.com/2012/02/clarifying-the-trustwave-ca-policy-update.html [Архівовано 30 жовтня 2014 у Wayback Machine.] «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.»
- ↑ ATTACKS ON SSL. A COMPREHENSIVE STUDY OF BEAST, CRIME, TIME, BREACH, LUCKY 13 & RC4 BIASES [Архівовано 30 жовтня 2014 у Wayback Machine.], August 15, 2013
- ↑ Network Forensic Analysis of SSL MITM Attacks. NETRESEC Network Security Blog. Архів оригіналу за 18 лютого 2012. Процитовано 27 березня 2011.
- ↑ Goodin, Dan (1 жовтня 2009). SSL spoof bug still haunts IE, Safari, Chrome; Thanks to Microsoft. The Register.co.uk. Архів оригіналу за 18 лютого 2012. Процитовано 17 липня 2010.
- Aspidistra[en]nbsp;— британський радіопередавач, який використовували під час Другої світової війни «вторгнення», варіант MITM-атаки.
- Змова Бабінгтона — змова проти Єлизавети I, кореспонденція, яка містила цей опис була перехоплена Френсісом Уолсингемом.
- Інші атаки
- «Людина-в-браузері» (англ. Man in the Browser) — вид атаки, при якій зловмисник отримує можливість миттєво міняти параметри транзакції, міняти сторінки абсолютно прозоро для жертви.
- «Зустріч посередині» (Метод зустрічі посередині) — криптографічна атака, яка, як і атака «днів народження», використовує компроміс між часом та пам'яттю.
- «Втрата посередині» (Miss in the middle attack[en]) — ефективний метод так званого криптоаналізу неможливих диференціалів[en].
- Relay attack[en] — варіант MITM-атаки, заснований на пересилці перехопленого повідомлення допустимому одержувачу, але не тому, якому це повідомлення призначалося.
- Руткіт — програма, призначена для приховування слідів присутності зловмисника.
- ARP spoofing
- Криптосистема з відкритим ключем
- TCP hijacking
- http://www.all.net/CID/Attack/Attack74.html [Архівовано 27 січня 2014 у Wayback Machine.]
- http://www.nag.ru/2003/0405/0405.shtml [Архівовано 4 травня 2009 у Wayback Machine.]
- http://www.schneier.com/blog/archives/2006/04/rfid_cards_and.html [Архівовано 30 жовтня 2014 у Wayback Machine.]