Скрипти

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

Атака «Посередник» (Man in the Middle)

Головною метою атаки є перенаправлення трафіку між двома машинами. Це потрібно для перехоплення, модифікації або знищення даних, якими обмінюються системи. Ця атака, швидше концептуальна, ніж практична. Існує безліч типів атак, які реалізують принцип «Посередника», як «посередник» у DNS, що використовує підміну DNS для перенаправлення трафіку між веб-сервером і клієнтом. Нещодавно створені програми для перенаправлення SSH-трафіку.

Відмова в обслуговуванні

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

Атаки, засновані на IP-фрагментації

Дана атака спрямована на обладнання, що знаходиться за захистом IP фільтруючого обладнання. Для її реалізації зловмисники використовують два різних методи: «микрофрагменты» (Tiny Fragments) і «перекриття фрагментів» (Fragment Overlapping). Ці атаки стають надбанням історії, оскільки сучасні міжмережеві екрани давно успішно з ними справляються.

Відмова в обслуговуванні додатки

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

Мережевий відмова в обслуговуванні

Існує кілька типів атак «відмова в обслуговуванні», які ґрунтуються на особливостях стека протоколів TCP/IP.

SYN-повінь

Ми вже розглядали механізм встановлення TCP-з’єднання (механізм потрійного квитування). SYN-повінь використовує цей механізм. Як ви пам’ятаєте, є три стани: посилка SYN-пакет, отримання пакета SYN-ACK і посилка ACK-пакет. Ідея атаки полягає у створенні великої кількості не до кінця встановлених TCP-з’єднань. Для реалізації цього, зловмисник посилає безліч запитів на встановлення з’єднання (пакети, з виставленим прапором SYN), цільова машина відповідає пакетами SYN-ACK. Зловмисник же не завершує процес установки з’єднання, а залишає їх на підлозі-відкритому стані. Отже, для кожного отриманого SYN-пакет сервер виділяє ресурси і незабаром вони вичерпуються. В результаті, нові сполуки не можуть бути відкриті. Цей тип відмови в обслуговуванні спрямований тільки на цільову машину.

Для реалізації атаки SYN-повені зловмисник може використовувати програму synk4, передаючи їй як параметр цільової хост, порт і випадковий адреса джерела. Останнє ускладнює визначення машини зловмисника.

UDP-повінь

Цей тип атаки «відмова в обслуговуванні» використовує бессеансовый режим протоколу UDP. Зловмисник генерує велику кількість UDP-пакетів («шторм UDP-пакетів») спрямованих на одну або дві машини. В результаті відбувається перевантаження мережі і цільових машин. Ефективність даної атаки особливо висока, оскільки UDP-трафік пріоритетніше TCP трафіку. У протоколі TCP є механізми запобігання перевантажень, якщо підтвердження прийому пакетів приходять із значною затримкою, передавальна сторона уповільнює швидкість передачі TCP-пакетів. У протоколі UDP такий механізм відсутній, і після початку атаки, UDP-трафік швидко захопить всю доступну смугу пропускання, і TCP трафіку залишиться лише мала її частина.

Найбільш відомий приклад UDP-повені це атака на сервіс chargen. Реалізація цієї атаки проста: достатньо встановити зв’язок між сервісами chargen на одній машині і сервісом echo на інший. Сервіс chargen генерує символи, а сервіс echo дублює отримані дані. Зловмисник посилає UDP-пакети на порт 19 (chargen) однієї з машин-жертв, підроблюючи IP-адресу і порт джерела. В даному випадку, портом джерела буде UDP-порт 7 (echo). Атака UDP-повінь призводить до перевантаження мережі на відрізку між двома машинами. В результаті, може постраждати вся мережа.

Пакетна фрагментація

Відмова в обслуговуванні, що досягається за допомогою пакетної фрагментації використовує уразливості деяких стеків TCP/IP, пов’язаних з дефрагментацией пакетів (складанням IP-фрагментів).

Відома атака, яка використовує цей підхід — це Teardrop. Фрагментарне зміщення другого сегмента менше розміру першого сегмента. Це означає, що при складанні фрагментів перший сегмент повинен буде містити дані другого сегмента, відбувається перекриття фрагментів. Під час складання таких пакетів, деякі системи не можуть обробити ситуацію, що призводить до відмови в обслуговуванні. Існують різні варіанти цієї атаки, наприклад bonk, boink і newtear. Атака на відмову в обслуговуванні «пінг смерті» використовує некоректну обробку ICMP-фрагментів, посилаючи більше даних, ніж максимальний розмір IP-пакета. Різні типи атак «відмова в обслуговуванні» ведуть до відмов цільової системи.

Smurfing

Дана атака використовує ICMP-протокол. При посилці ping-пакету (повідомлення ICMP ECHO) по широкомовній адресою (наприклад, 10.255.255.255), він доставляється кожній машині в цій мережі. Принцип атаки полягає в посилці пакет ICMP ECHO REQUEST з адресою-джерелом машини-жертви. Зловмисник шле постійний потік ping-пакетів по мережевому широкомовній адресою. Всі машини, отримавши запит, відповідають джерелу пакетом ICMP ECHO REPLY. Відповідно, розмір відповідного потоку пакетів зростає в пропорційне кількості хостів число раз. У результаті, вся мережа піддається відмови в обслуговуванні через перевантаження.