Linux глазами хакера
Шрифт:
14.6. DoS/DdoS-атаки
Одной из самых страшных является DoS-атака. На мой взгляд, это самое глупое, что могли придумать хакеры. Когда не получается взломать сервер, его делают недоступным различными методами, вплоть до бессмысленного замусоривания канала связи. В этом разделе мы и рассмотрим основные из этих способов.
Существует разновидность DoS-атаки — DDoS (Distributed DoS, распределенная DoS), отличается она тем, что штурм производят сразу множество компьютеров.
Самое страшное заключается в том, что
Давайте разберем основные атаки DoS и DDoS и посмотрим, с какими можно бороться, а с какими — бесполезно. К тому же, нас будут интересовать методы противостояния этим атакам.
14.6.1. Ping of Dead
Мы уже знаем, что с помощью утилиты ping можно проверить соединение с удаленной системой (см. разд. 5.1). Для этого используется ICMP-протокол. Когда сервер получает ICMP-сообщение с кодом Echo Request, то он должен ответить таким же сообщением, с тем же количеством данных.
В некоторых ОС обнаружились ошибки обработки ping-пакетов. Просто программисты, которые реализовывали ICMP-протокол, подразумевали, что пользователи будут применять его правильно и не станут посылать слишком большие пакеты. Надежда на добросовестность пользователей обернулась появлением атаки Ping of Dead (Ping смерти). Хакеры формировали такие пакеты, которые сервер обрабатывал неверно и зависал. Наиболее нашумевшая атака вылилась в посылку пакетов размером более 64 Кбайт. Программисты зарезервировали под принимаемые данные только 64 Кбайта, и этого не хватило для приема пакетов. На сервере это может выглядеть как переполнение буфера.
Борьба с такими атаками может быть реализована только средствами сетевого экрана. Можно запретить получение ICMP-пакетов с кодом Echo Request и атака Ping of Dead на вашу систему не принесет результата. А затем обновите ОС.
14.6.2. ICMP flood
Когда не получается уничтожить сервер интеллектуальными способами, взломщики начинают использовать flood — засыпание сервера ICMP-пакетами. Вот это самый идиотский вид атаки, но легко загружает канал связи. Для его реализации достаточно половины канала штурмуемой системы.
Допустим, что у сервера есть канал связи с пропускной способностью 64 Кбит/с. Вам достаточно половины, чтобы полностью его загрузить. Для этого непрерывно посылаем на сервер ping-запросы с большим размером пакета. Желательно,
Защита от этой атаки такая же, как и от Ping of Dead, а именно запрет ICMP-трафика. Благо этот протокол не очень нужен, особенно входящий из Интернета ICMP-трафик.
14.6.3. TCP SYN
У большинства серверов есть ограничение на количество подключений. В некоторых случаях это связано с используемой технологией, но может быть и лимит, определенный в настройках конкретного сервера.
Из названия атаки можно догадаться, что задача хакера — направить на сервер большое количество TCP-пакетов с установленным флагом
Спрятаться от подобной атаки собственными силами практически невозможно. Вам остается только с помощью сетевого экрана ограничить SYN-пакеты, но от этого защита не станет лучше.
Как временное решение, можно увеличить лимит подключений со стороны клиентов. Нагрузка на сервер от этого не возрастет, ведь хакер только инициализирует свои соединения, но не посылает какие-либо пакеты. Но ограничение в конфигурационном файле существует не всегда. Это может быть следствием используемой программой технологии.
Следующий способ защиты заключается в уменьшении времени действия неактивного соединения. В некоторых программах есть возможность в конфигурационных файлах установить длительность неактивного соединения. Убавив это значение до 10 секунд, сервер не получится загрузить SYN-пакетами. Пока образуется очередь подключений, первые соединения уже будут разрываться. Конечно же, могут возникнуть проблемы и неудобства у добропорядочных пользователей, которым, возможно, придется лишний раз устанавливать соединение с сервером, но, по крайней мере, работа не остановится.
Самая лучшая защита должна быть выполнена программистом. Как минимум, он должен реализовывать в своих программах две возможности: настройку ограничения на количество подключений и разрыв неактивных соединений через указанное в конфигурации время. Необходим запрет на установку нескольких подключений с одного и того же IP-адреса.
14.6.4. TCP flood
Эта атака аналогична ICMP flood. Если не помогает смекалка, и хакер не может найти уязвимого места, то начинается засыпание сервера бессмысленными TCP-пакетами. Их эффективность иногда даже ниже ICMP-пакетов. Если в случае использования ping-запросов сервер обязан вернуть пакет с такими же данными, то в TCP-протоколе это не обязательно. Таким образом, канал связи у хакера должен быть идентичным, а то и больше, чем у атакуемой системы.