Атаки канального рівня

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

Атаки канального рівня — атаки на протоколи другого рівня моделі OSI, відомого також як канальний рівень.

Введення

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

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

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

В залежності від результату успішної атаки, можна виділити кілька типів загроз:

  1. Спуфінг з метою прозорого перехоплення інформації;
  2. Відмова в обслуговуванні якогось ресурсу системи;
  3. Несанкціонований доступ до ділянок мережі;
  4. Порушення правильної роботи мережі або її ділянок.

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

Статистика атак

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

Згідно з доповіддю компанії Qrator за 2015 рік більшість сучасних мережевих атак поєднують в собі атаки на канальний і прикладний рівні. Компанія Arbor Networks[en] у своїй щорічній доповіді за 2016 рік відзначає зростання DDoS атак такого роду на 14 % від загальної кількості DDoS атак, з 42 % до 56 %. Незважаючи на те, що зовнішні напади виключно на канальний рівень втратили свою актуальність, вони продовжують бути ключовою складовою більшості мережевих атак. Також необхідно враховувати, що значна частина внутрішніх нападів заснована саме на атаки на протоколи канального рівня.

Атаки проти комутатора

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

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

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

Атака на дерево STP

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

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

Топологія комутації для ілюстрації STP атаки

Нехай спочатку в мережі було два комутатора: Root (кореневий) та Switch1. Потім зловмисник підключив контрольований ним комутатор Rogue, налаштований так, щоб стати кореневим вузлом дерева STP.

  1. Тепер весь легітимний трафік може бути перехоплений атакуючим, що є реалізацією атаки «людина посередині».
  2. З'явилася можливість вивести всю мережу з ладу, періодично включаючи/вимикаючи Rogue комутатор. З точки зору його сусідів буде відбуватися зміна топології, тобто виникне необхідність у запуску STP, хоча ніякої «реальної» зміни мережі не відбулося. Внаслідок інерційності протоколу, мережа стане недоступною для користувача трафіку на деякий час, що означає успішність атаки на порушення правильної роботи.

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

Атака на таблиці MAC-адрес

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

Підміна MAC-адрес є однією з найбільш простих атак. Крім реалізації «людина посередині», вона дозволяє також вивести з ладу мережу через порушення зв'язності, що може призвести до відмови в обслуговуванні для ряду клієнтів.

Рішень даної проблеми декілька. Просте, але погано масштабоване — вручну або статично прив'язати адреси до порту. Незважаючи на недоліки даного рішення, воно активно застосовується внаслідок передбачуваності поведінки пристроїв і рідкісного зміни фізичної топології мережі. Інший підхід передбачає використання протоколів аутентифікації з виділеними серверами автентифікація, наприклад, протокол 802.1 X.

Підміна DHCP сервера

[ред. | ред. код]
Spoofing DHCP сервера

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

Перше повідомлення DHCP Discover від клієнта Host є широкомовним, тобто його отримають всі користувачі мережі, в тому числі сервер DHCP_server і зловмисник Rogue. Вони відправлять свої відповіді DHCP Offer клієнту, з яких він повинен вибрати те, що його «влаштує». За замовчуванням у більшості систем клієнт вибирає перше що прийшло пропозицію, ігноруючи інші. Таким чином, відкривається пролом: якщо відповідь від Rogue прийде раніше, атака виявиться успішною. Сервер може бути фізично більш віддалений від клієнта, ніж зловмисник, а також бути менш швидким, тому ймовірність успішної реалізації атаки досить висока.

Наслідки:

  1. Зловмисник може у своїй відповіді клієнту вказати неправильні дані про мережі, що призведе до неможливості його подальшої роботи, тобто буде реалізований відмова в обслуговуванні.
  2. У більшості випадків протокол DHCP надає клієнту інформацію про шлюзу за замовчуванням. Таким чином, зловмисник має можливість вказати себе у якості шлюзу, що є реалізацією атаки «людина посередині» на мережному рівні.

Одне з рішень — функція комутатора, звана DHCP Snooping, яка полягає в наступному:

  1. Всі порти комутатора діляться на довірені (trusted), до яких підключені DHCP сервера, і ненадійні (untrusted);
  2. Повідомлення, що відправляються DHCP серверами (DHCP Offer, Ack, Nack, LeaseQuery) і приходять на ненадійні порти, відкидаються;
  3. Повідомлення DHCP, що приходять на ненадійні порти, які містять MAC-адресу, неспівпадаючий з MAC-адресою відправника, відкидаються;
  4. Повідомлення DHCP, що приходять на ненадійний порт і містять опцію 82, відкидаються;
  5. Повідомлення DHCP Discover розсилаються тільки за довіреною портів.

Атака на ARP

[ред. | ред. код]
Докладніше: ARP spoofing

Протокол ARP за своєю природою не є захищеним, так як не має можливості перевірити справжність ARP-відповіді. Ситуацію ускладнює наявність gratuitous ARP (ARP-відповідь у відсутність відповідного ARP-запиту), відмовитися від використання якого непросто, тому що на ньому ґрунтується ряд технологій мережного рівня.

А відправляє ARP-запит в B, але замість нього відповідає Rogue

Нехай A відправляє B ARP-запит. Може вийти так, що запит буде розіслано широкомовно, тобто зловмисник Rogue також отримає запит від А. В цьому випадку він отримує можливість відіслати ARP-відповідь від особи B, реалізуючи атаки «людина посередині». Оскільки клієнт A збереже самий пізній ARP-відповідь, атакуючому достатньо надіслати свій пакет дещо пізніше клієнта B. Якщо в якості клієнта B виступає маршрутизатор, який виконує функції шлюзу за замовчуванням, зловмисник отримує можливість перехоплювати трафік між внутрішньою та зовнішньою мережею, а також відкидати його, що є реалізацією відмови в обслуговуванні.

Оскільки в більшості мереж клієнти отримують IP адреси допомогою DHCP, а не ручного налаштування, стає можливою захист від такої атаки за допомогою DHCP Snooping і Dynamic ARP Inspection на рівні комутаторів. Перша функція реалізує прив'язку MAC-адреси до отриманого через DHCP IP-адресою. Друга перевіряє відповідність MAC-адреси відправника і змісту ARP-відповіді; у разі їх незбігу кадр з ARP-відповіддю відкидається.

Атака на VLAN

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

Для передачі трафіка різних VLAN між комутаторами зазвичай використовуються магістральні канали, або trunk канали, при проходженні через які фрейми певним чином маркуються. Самим поширеним протоколом маркування для магістрального каналу є 802.1 q. Він використовує поняття native VLAN, кадри якого не тегируются. При неправильному налаштуванні комутатора зловмисник може отримати можливість пересилати трафік в інші VLAN, заздалегідь маркуючи кадри, що в загальному випадку не є очікуваною поведінкою мережі.

Ілюстрація скачування VLAN Rogue додає заголовок, що сидять у рідній VLAN, таким чином спілкуючись безпосередньо з іншими локальними мережами

Розглянемо топологію, зображену на малюнку. Нехай native VLAN має номер 1 (за замовчуванням). Router виконує роль  Router on a stick для всієї мережі, в тому числі розмежовує доступ одних VLAN до інших. Нехай VLAN10 може пересилати інформацію в будь-яку іншу VLAN, але зворотний потік заборонений. Нехай Host — легітимний користувач, а Rogue — зловмисник. Нехай атакуючий посилає кадр, маркований як той що  належить VLAN10. Комутатор SW1, отримавши кадр з порту, належить native VLAN, не маркує його, а пересилає далі через trunk. Однак комутатор SW2 на іншому кінці, отримавши кадр, зауважує, що він маркований, з'ясовує, якому VLAN він належить, прибирає маркування і пересилає кадр далі під VLAN10. Як видно на малюнку, кадри зловмисника виглядають так само, як і кадри легітимного користувача для SW2. Таким чином, атакуючий зміг обійти обмеження, забезпечувані маршрутизатором Router, і переслати інформацію безпосередньо між різними VLAN.

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

Див. також

[ред. | ред. код]
  1. IP-спуфінг
  2. Широкомовний шторм
  3. MAC-flooding[en]
  4. MAC-spoofing
  5. xgu.ru [Архівовано 3 травня 2018 у Wayback Machine.]

Примітки

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