Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Атаки пропускной полосы

Рубрика: Безопасность -> Уязвимости Linux-сервера
Метки: |
Воскресенье, 25 января 2009 г.
Просмотров: 6888

     SMURF-атака

     Наиболее опасная DoS-атака пропускной полосы - это Smurf-атака. Появилась в 1997г. и приобрела большую популярность. Основана на механизме широковещательной адресации. Однако не все сети позволяют использовать широковещательные адреса, а некоторые сети разрешают их только в локальном сегменте. Но существуют сети, которые позволяют это делать.


     Допустим, хакер отправляет поток ICMP-запросов echo на широковещательный адрес какой-нибудь огромной сети, но меняет адрес отправителя на адрес жертвы. Этот запрос будет получен всеми компьютерами этой сети, и они отправят ответ отправителю - жертве. Огромное количество пакетов от каждого компьютера сети обрушится на компьютер-жертву. Это и будет Smurf-атака.

     Хакеру не нужно взламывать несколько сотен компьютеров, чтобы запустить атаку, в этом и состоит основное отличие от других DDoS-атак. Все, что ему нужно знать, - список сетей, который можно найти в Интернете, и несколько утилит для Smurf-атаки. Список сетей и утилиты можно поискать, набрав запрос по ключевым словам «Smurf amplifier».

     Другой вариант Smurf-атаки - Fraggle-атака. Она рождает широковещательный UDP-трафик.

     Фрагментационные атаки

     Спецификации TCP/IP задают максимальный размер пакета ICMP 64 Кб, хотя можно создать пакет и большего размера. В старых операционных системах получение пакета ICMP размера больше 64 Кб приводило к переполнению буфера, в результате машина получателя такого пакета просто зависала. Такие пакеты назвали «Пинги смерти» (Pings of Death). В современных дистрибутивах эту уязвимость устранили.

     Еще одна фрагментационная UDP-атака – это атака teardrop, подобная «пингу смерти». Создается серия UDP-фрагментов с взаимно накладывающимися полями смещения (offset). Вызывает особую ошибку ядра (т.н. паника ядра), когда ядро получателя собирает исходную дейтаграмму из UDP-фрагментов.

Паника ядра приводит к остановке системы - спасает лишь перезагрузка. Эта ошибка проявлялась в старых Linux-системах с ядрами 2.0 и 2.2.

     SYN-флудинг

     При этой DoS-атаке на систему обрушивают большое количество запросов на открытие соединения, что приводит к невозможности создания нового соединения и истощению системных ресурсов. Основана на механизме создания TCP-соединения между двумя узлами. Сам механизм установки TCP-соединения называют трехшаговым обменом (three-way handshake). О нем можно найти информацию в сети Интернет.

     Если третьего шага не происходит, то сервер некоторое время (обычно 180 секунд) ожидает подтверждения соединения и отказывается от него. Но в это система выделяет память для этого соединения.

     Если отправить поток SYN-пакетов, то это породит большое количество полуоткрытых соединений, для каждого из которых выделяется память. Это может забить всю память у сервера, но это бывает редко, обычно бывает превышен лимит на максимальное число соединений и с сервером невозможно связаться.

     Абсолютное большинство SYN-атак использует подделанный IP-адрес и сервер отправляет пакет SYN-ACK другой машине, чей адрес прописан в поле адреса отправителя SYN-пакета. Чтобы сервер не освобождал память, выделенную для соединения и не закрывал его, указывают адрес несуществующей машины, чтобы некому было отправить пакет RST. С помощью nmap можно узнать эти адреса.