вторник, 25 февраля 2014 г.

Введение в DDoS Часть 2

И так, это вторая часть статьи, посвященная DDoS Атакам. Первая часть Тут. В этой части я расскажу о том, какие типы DDoS Атак существуют и с помощью чего их можно провести.
И так, какие есть типы Ддоса.
Ну во первых, это Флуд, то есть перенасыщение пропускной полосы. Проще говоря, засорение пропускного канала жертвы. На сервер жертвы посылается огромное количество запросов, на столько большое, что в пропускном канале просто не остается места для обычных пользователей и они не могут получить доступ к  сайту. Флуд тоже бывает разный, самый простой и примитивный, это HTTP-Флуд и ping-флуд. Вы посылаете множество запросов на сервер, а он пытается их обработать. Толк от такой атаки может быть только в двух случаях, когда ваш канал интернет соединения в разы больше, чем канал соединения жертвы, либо вы используете Ботнет с тысячами зараженных компьютеров.
Другой тип атаки, это Атака Fraggle или по другому UDP-флуд. Суть в следующем, на седьмой порт жертвы отправляются echo-команды по широковещательному запросу. Затем подменяется ip-адрес злоумышленника на ip-адрес жертвы, которая вскоре получает множество ответных сообщений. Их количество зависит от числа узлов в сети. Эта атака приводит к насыщению полосы пропускания и полному отказу в обслуживании жертвы. Если все же служба echo отключена, то будут сгенерированы ICMP-сообщения, что так же приведет к насыщению полосы.

Следующие типы атак связанны с недостатком серверных ресурсов.
Злоумышленники прибегают к данному виду DoS атаки для захвата системных ресурсов, таких как оперативная и физическая память, процессорное время и другие. Обычно такие атаки проводятся с учетом того, что хакер уже обладает некоторым количеством ресурсов системы. Целью атаки является захват дополнительных ресурсов. Для этого не обязательно насыщать полосу пропускания, а достаточно просто перегрузить процессор жертвы, то есть занять все допустимое процессорное время.
Отправка «тяжелых» пакетов:
Атакующий посылает пакеты серверу, которые не насыщают полосу пропускания (канал обычно довольно широкий), но тратят все его процессорное время. Процессор сервера, когда будет их обрабатывать, может не справиться со сложными вычислениями. Из-за этого произойдет сбой и пользователи не смогут получить доступ к необходимым ресурсам.
Переполнение сервера лог-файлами:
Лог-файлы сервера-это файлы, в которых записываются действия пользователей сети или программы. Неквалифицированный администратор может неправильно настроить систему логирования на своем сервере, не установив определенный лимит. Хакер воспользуется этой ошибкой и будет отправлять большие по объему пакеты, которые вскоре займут все свободное место на жестком диске сервера. Но эта атака сработает только в случае с неопытным администратором, квалифицированные хранят лог-файлы на отдельном системном диске.
Плохая система квотирования:
На каждом сервере есть так называемая CGI-программа, которая связывает внешнюю программу с Web-сервером. Если хакер получит доступ к CGI, то он сможет написать скрипт (англ. scripting language), который задействует немало ресурсов сервера, таких как оперативная память и процессорное время. К примеру, скрипт CGI может содержать в себе циклическое создание больших массивов или вычисления сложных математических формул. При этом центральный процессор может обращаться к такому скрипту несколько тысяч раз. Отсюда вывод: если система квотирования настроена неправильно, то такой скрипт за малое время отнимет все системные ресурсы у сервера. Конечно, выход из этой ситуации очевиден — поставить определенный лимит на доступ к памяти, но и в этом случае процесс скрипта, достигнув этого лимита, будет находиться в ожидании до тех пор, пока не выгрузит из памяти все старые данные. Поэтому пользователи будут испытывать недостаток в системных ресурсах.
Недостаточная проверка данных пользователя:
Недостаточная проверка данных пользователя также приводит к бесконечному либо длительному циклу или повышенному длительному потреблению процессорных ресурсов (вплоть до исчерпания процессорных ресурсов) либо выделению большого объёма оперативной памяти (вплоть до исчерпания доступной памяти).
Атака второго рода:
Это атака, которая стремится вызвать ложное срабатывание системы защиты и таким образом привести к недоступности ресурса.

Дальше мы поговорим об ошибках программирования, которые позволяют применить DoS атаку.
Профессиональные реализаторы DoS-атак не используют такой примитивный способ атаки, как насыщение полосы пропускания. Полностью разобравшись в структуре системы жертвы, они пишут программы (эксплойты), которые помогают атаковать сложные системы коммерческих предприятий или организаций. Чаще всего это ошибки в программном коде, приводящие к обращению к неиспользуемому фрагменту адресного пространства, выполнению недопустимой инструкции или другой необрабатываемой исключительной ситуации, когда происходит аварийное завершение программы-сервера — серверной программы. Классическим примером является обращение по нулевому (англ. null) адресу.
Недостатки в программном коде:
Обработка исключительных ситуаций всегда была головной болью для создателей операционных систем. Злоумышленники ищут ошибки в программном коде какой-либо программы либо операционной системы, заставляют ее обрабатывать такие исключительные ситуации, которые она обрабатывать не умеет. За счет этого возникают ошибки. Простым примером может служить частая передача пакетов, в которой не учитываются спецификации и стандарты RFC-документов. Злоумышленники наблюдают за тем, справляется ли сетевой стек с обработкой исключительных ситуаций. Если нет — то передача таких пакетов приведет к панике ядра (kernel panic) или даже к краху всей системы в целом.
К этому классу относится ошибка Ping of death, распространённая в 1990-е годы. Длина пакета IPv4 по стандарту RFC 791 IPv4 не может превышать 65 535 байт; компьютеру-жертве посылается ICMP-пакет большей длины, предварительно разбитый на части; у жертвы от такого пакета переполняется буфер. Другая ошибка тех времён — WinNuke (Windows 95 неправильно обрабатывала редкий бит TCP-пакета URG).
Переполнение буфера:
Переполнение буфера возникает в том случае, если программа из-за ошибки программиста записывает данные за пределами буфера. Допустим, программист написал приложение для обмена данными по сети, которое работает по какому-либо протоколу. В этом протоколе строго указано, что определенное поле пакета максимум может содержать 65536 бит данных. Но после тестирования приложения оказалось, что в ее клиентской части в это поле нет необходимости помещать данные, размер которых больше 255 бит. Поэтому и серверная часть примет не более 255 бит. Далее злоумышленник изменяет код приложения так, что теперь клиентская часть отправляет все допустимые по протоколу 65536 бит, но сервер к их приему не готов. Из-за этого возникает переполнение буфера, и пользователи не могут получить доступ к приложению.
И так, в этой статье я привел пожалуй основные типы DDoS Атак. Самые простые атаки вы можете совершить сами, используя специальные программы или скрипты. Наиболее популярная программа для этого Loic. Она очень многим известна и в свое время наделала много шума, вы можете бесплатно и свободно найти ее на просторах интернета. Правда, если вы будите использовать ее в одного, большого толка от нее не будет.
Можете попробовать организовать свой ботнет, об этом мы поговорим в другой раз.
Удачи в работе всем)

Комментариев нет:

Отправить комментарий