Удар з минулого: DdoS-атака RIPv1, або чим небезпечні старі роутери

Атаки, що використовують застарілий протокол маршрутизації RIPv1, знову були помічені з 16 травня 2015 року, після більш ніж річного забуття. Їх зафіксувала першою компанія Akamai, а через пару днів - і DDoS-GUARD.

RIPv1 вперше був представлений в «історичному» RFC1045 (оригінальна специфікація більше не підтримується). Протокол підтримує тільки класову маршрутизацію. Таким чином, якщо мережа, анонсована за RIPv1, відноситься до класу «A» (наприклад, 10.1.2.0/24), то реально анонс буде виглядати, як 10.0.0.0/8. Це, серед іншого, значно обмежує застосування RIPv1 внутрішніми мережами, він малопридатний для Інтернету.

Основні характеристики розглянутої атаки

  • обсяг трафіку: до 12,8 Гбіт
  • пакетів на секунду: до 3,2 млн
  • вектор атаки: ампліфікація RIPv1
  • вихідний порт: UDP:520
  • вхідний порт: випадковий

Протокол RIPv1 (Routing Information Protocol, версія 1) існує вже багато років і вважається швидким і легким способом обміну інформацією про маршрути в невеликій мережі з кількома маршрутизаторами.

Маршрутизатор, який підтримує RIP, надсилає запит при початковому налаштуванні або при включенні живлення. Будь-який інший пристрій, що приймає такі запити, відповість списком маршрутів. Оновлення таблиці маршрутів періодично розсилаються широкомовно (broadcast).

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

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

На нижченаведеному лістингу RIP-відповіді взято з реальної атаки. З боку атакуючого видно тільки відповіді на запити RIPv1, які він, зрозуміло, не робив.

Приклади навантаження

Типовий запит RIPv1 містить 24 байти. Наведена відповідь містить 504 байти. Цей конкретний маршрутизатор відповідає десятьма відповідями по 504 байти і одним у 164 байти.

При обчисленні коефіцієнта посилення за вищенаведеними запитами, враховуючи заголовки Ipv4 [IP (IP (10) UDP10) UDP (8)], остаточне посилення для одиночного запиту RIPv1 становить 131,24 (більше 13 000%). Коефіцієнт змінюватиметься залежно від кількості маршрутів у таблиці роутера. Під час першої атаки, велика частина роутерів відповідала множинними 504-байтовими відповідями на кожен запит.

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

«Отруєння» RIPv1

Чи може зловмисник додатково підвищити коефіцієнт посилення, змусивши маршрутизатор дізнатися нові маршрути? Ідея здається реалізованою. АЛЕ є три основні фактори, що заважають ефективному використанню такого сценарію в DdoS-атаках.

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

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

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

Третя проблема полягає в тому, що відповіді RIPv1, що приходять з мереж, не пов'язаних з маршрутизатором безпосередньо, будуть проігноровані. Отже, адреса джерела оновлень має бути підроблена так, щоб потрапляти в мережу, безпосередньо пов'язану з «отруйним» маршрутизатором, щоб оновлення було хоча б просто прийнято.

Все це разом робить спроби отруєння таблиць маршрутів RIPv1 невигідними і непривабливими для зловмисника.

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

Атака, яку розглядають

Атака 16 травня 2015 року, з піковим навантаженням 12,81Гбіт і 3,2 млн пакетів на секунду. У нижченаведеній таблиці навантаження, розбитої за географічним розташуванням джерел трафіку, видно, що найбільший трафік прийшов з Європи. Лондон і Франкфурт зафіксували, в сумі, до 4,75Гбіт.

Результати сканування RIPv1 в інтернеті

За даними Akamai, загалом на запити RIPv1 в інтернеті відгукнулося 53 693 пристрої. Хоча багато з них непридатні як підсилювачі DdoS, вони все одно вразливі для відбиття та інших атак, через низьку захищеність протоколу. Взагалі, було ідентифіковано близько 500 унікальних джерел, які послали 504-байтові відповіді.

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

Розглядаючи розміри відповідей RIPv1, отриманих в інтернеті, видно досить велику кількість пристроїв, що забезпечують хоча б невеликий коефіцієнт посилення. Вдалося ідентифікувати 24 212 пристроїв, що забезпечують посилення не менше 83%. У таблиці нижче наведено 5 найбільш поширених довжин пакетів, отриманих при тестуванні.

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

Виявлені адреси були розсортовані для визначення моделей пристроїв. З 53 693 пристроїв, що відгукнулися на запит, понад 20 000 так само слухали порт TCP:80 (найчастіше використовуваний веб-інтерфейсом адміністратора). Було зроблено спробу витягти і записати результати запитів у пошуках витоку інформації про моделі (запити автентифікації, заголовки HTTP, номери моделей на початкових сторінках тощо). Нижче представлені три найбільш поширених пристрої (серед виявлених), що підтримують RIPv1. Пристрої Netopia, ймовірно, старе обладнання, що отримало поширення за часів буму ADSL.

Наступний малюнок показує розподіл провайдерів (на основі відповідей whois) адрес виявлених пристроїв Netopia. Більшість з них використовується клієнтами AT & T.

Більшість пристроїв географічно знаходяться в США, як показано на наступному малюнку. Як згадувалося вище, джерела шкідливого трафіку, зафіксовані при недавніх атаках, в основному знаходилися в Європі. Це означає, що існує значний потенційний (поки незадіяний) ресурс, який може бути використаний для атак з посиленням і відображенням.

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

Рекомендовані заходи захисту

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

Перехід на RIPv2 або більше позній, з використанням автентифікації.

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

Доступ до RIP можна також обмежити за допомогою ACL, дозволивши доступ тільки відомим маршрутизаторам.

Об'єкти атаки відбитим трафіком RIPv1 можуть використовувати ACL для заборони трафіку з вихідного порту UDP:520 в інтернеті. Якщо атака занадто потужна, то можуть знадобитися послуги провайдера захисту від DdoS.

Висновки

Список можливих векторів атаки чимав, і деякі контролювати складніше інших з огляду на їх повсюдне поширення (наприклад, DNS, SSDP). Як вже було сказано, у RIPv1 є певні можливості залишатися привабливим ресурсом для організації DDoS-атак. Більшість джерел цього ресурсу - застарілі маршрутизатори, які роками працюють у житлових будинках або домашніх офісах.

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

Таким чином, у строю залишаються пристрої, що підтримують застарілі протоколи і містять відомі вразливості в програмному забезпеченні. На цю ситуацію найбільший вплив будуть чинити провайдери. Перш за все, слід закривати порт UDP:520 з боку інтернет. Це значно зменшить можливість реалізації описаних DDoS-атак. Інший варіант, більш дорогий, полягає в організації апгрейду клієнтського обладнання, його заміни на нові маршрутизатори (з коректними конфігураціями); це буде особливо актуально для пристроїв, які більше не підтримуються виробниками.

Адаптований переклад підготвлений технічними фахівцями компанії DDoS-GUARD