DoS (аббр. «отказ в обслуживании») — хакерская атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых добросовестные пользователи системы не смогут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ будет затруднён. Отказ «вражеской» системы может быть и шагом к овладению системой (если в нештатной ситуации ПО выдаёт какую-либо критическую информацию — например, версию, часть программного кода и т. д.). Но чаще это мера экономического давления: потеря простой службы, приносящей доход, счета от провайдера и меры по уходу от атаки наносят ощутимый финансовый урон «цели».
В настоящее время DoS и DDoS-атаки наиболее популярны, так как позволяют довести до отказа практически любую плохо написанную систему, не оставляя юридически значимых улик. Все DDoS-атаки являются DoS-атаками. Среди DoS-атак большинство — это DDoS-атаки.
Распределённая DoS-атака Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от , распределённая атака типа «отказ в обслуживании»). Такая атака проводится в том случае, если требуется вызвать отказ в обслуживании хорошо защищённой крупной компании или правительственной организации.
Первым делом злоумышленник сканирует крупную сеть с помощью специально подготовленных сценариев, которые выявляют потенциально слабые узлы. Выбранные узлы подвергаются нападению, и злоумышленник получает на них права администратора. На захваченные узлы устанавливаются троянские программы, которые работают в фоновом режиме. Теперь эти компьютеры называются компьютерами-зомби, их пользователи даже не подозревают, что являются потенциальными участниками DDoS-атаки. Далее злоумышленник отправляет определённые команды захваченным компьютерам и те, в свою очередь осуществляют коллективную DoS-атаку на целевой компьютер.
Существуют также программы для добровольного участия в DDoS-атаках.
В некоторых случаях к фактической DDoS-атаке приводит непреднамеренное действие, например, размещение на популярном интернет-ресурсе ссылки на сайт, размещённый на не очень производительном сервере (слэшдот-эффект). Большой наплыв пользователей приводит к превышению допустимой нагрузки на сервер и, следовательно, отказу в обслуживании части из них.
Защита от DDoS атак Для защиты от сетевых атак применяется ряд фильтров, подключённых к интернет-каналу с большой пропускной способностью. Фильтры действуют таким образом, что последовательно анализируют проходящий трафик, выявляя нестандартную сетевую активность и ошибки. В число анализируемых шаблонов нестандартного трафика входят все известные на сегодняшний день методы атак, в том числе реализуемые и при помощи распределённых бот-сетей. Фильтры могут реализовываться как на уровне маршрутизаторов, управляемых свитчей, так и специализированными аппаратными средствами.
Причины использования DDoS-атак
Специалисты в области защиты информации выделяют несколько причин использования DDoS-атак.
Личная неприязнь Эта причина нередко служит поводом для атак на крупные коммерческие и правительственные организации и компании. Так в 1999 году были атакованы Web-узлы ФБР, которые впоследствии были недоступны в течение нескольких недель. Мотивом послужил недавний рейд ФБР против хакеров.
Развлечение В настоящее время всё больше людей интересуются DoS-атаками, и все хотят попробовать себя в этом деле. Поэтому многие начинающие злоумышленники осуществляют DoS-атаки ради развлечения. После успешно проведённого нападения они смотрят масштабы своих разрушений.
Политический протест
Наиболее известными DDoS-атаками с целью политического протеста были акции в поддержку Памятника Воину-освободителю в Эстонии (2007), Грузии (2008), Wikileaks (2011), Megaupload (2012) и EX.UA (2012).
Недобросовестная конкуренция DDoS-атаки могут осуществляться по заказу недобросовестного конкурента.
Вымогательство или шантаж DDoS-атаки могут осуществляться с целью вымогательства или шантажа, в этом случае злоумышленник предварительно связывается с владельцем сайта.
Классификация DoS-атак
Хакерам гораздо легче осуществить DoS-атаку на систему, чем получить полный доступ к ней. Существуют различные причины, из-за которых может возникнуть DoS-условие, то есть такая ситуация, при которой пользователи не могут получить доступ к ресурсам, которые предоставляет сервер, либо доступ к ним существенно затруднён:
Насыщение полосы пропускания
В настоящее время практически каждый компьютер подключён к сети Internet либо к локальной сети. Это служит отличным поводом для осуществления DoS-атаки за счёт переполнения полосы пропускания. Обычно злоумышленники пользуются флудом ( — «наводнение», «переполнение») — атака, связанная с большим количеством обычно бессмысленных или сформированных в неправильном формате запросов к компьютерной системе или сетевому оборудованию, имеющая своей целью или приведшая к отказу в работе системы из-за исчерпания системных ресурсов — процессора, памяти или каналов связи. Есть несколько разновидностей флуда.
HTTP-флуд и ping-флуд
Это самый примитивный вид DoS-атаки. Насыщение полосы пропускания можно осуществить с помощью обычных ping-запросов только в том случае, если канал атакующего намного шире канала компьютера-жертвы. Но такая атака бесполезна против сервера, так как тот, в свою очередь, обладает довольно широкой полосой пропускания. Для атаки на сервер обычно применяется HTTP-флуд. Атакующий шлёт маленький по объёму HTTP-пакет, но такой, чтобы сервер ответил на него пакетом, размер которого в сотни раз больше. Даже если канал сервера в десять раз шире канала атакующего, то все равно есть большой шанс насытить полосу пропускания жертвы. А для того, чтобы ответные HTTP-пакеты не вызвали отказ в обслуживании у злоумышленника, он каждый раз подменяет свой ip-адрес на ip-адреса узлов в сети.
Spoof атака Spoof атака — тип Dos/DDoS атаки, включающий в себя атаку с подменой ip адреса атакующего пользователя на любой иной.
Smurf-атака (ICMP-флуд)
Атака Smurf или ICMP-флуд — один из самых опасных видов DoS-атак, так как у компьютера-жертвы после такой атаки произойдёт отказ в обслуживании практически со 100 % гарантией. Злоумышленник использует широковещательную рассылку для проверки работающих узлов в системе, отправляя ping-запрос. Очевидно, атакующий в одиночку не сможет вывести из строя компьютер-жертву, поэтому требуется ещё один участник — это усиливающая сеть. В ней по широковещательному адресу злоумышленник отправляет поддельный ICMP пакет. Затем адрес атакующего меняется на адрес жертвы. Все узлы пришлют ей ответ на ping-запрос. Поэтому ICMP-пакет, отправленный злоумышленником через усиливающую сеть, содержащую 200 узлов, будет усилен в 200 раз. Для такой атаки обычно выбирается большая сеть, чтобы у компьютера-жертвы не было никаких шансов.
Атака Fraggle (UDP-флуд)
(атака осколочной гранатой) является полным аналогом Smurf-атаки, где вместо ICMP пакетов используются пакеты UDP, поэтому её ещё называют UDP-флуд. Принцип действия этой атаки простой: на седьмой порт жертвы отправляются echo-команды по широковещательному запросу. Затем подменяется ip-адрес злоумышленника на ip-адрес жертвы, которая вскоре получает множество ответных сообщений. Их количество зависит от числа узлов в сети. Эта атака приводит к насыщению полосы пропускания и полному отказу в обслуживании жертвы. При этом, если служба echo отключена, то будут сгенерированы ICMP-сообщения, что также приведёт к насыщению полосы.
Атака с помощью переполнения пакетами SYN (SYN-флуд)
До появления атаки Smurf была широко распространена атака с помощью переполнения пакетами SYN, также известная под названием SYN-флуд. Для описания её действия можно остановиться на рассмотрении двух систем А и В, которые хотят установить между собой TCP соединение, после которого они смогут обмениваться между собой данными. На установку соединения выделяется некоторое количество ресурсов, этим и пользуются DoS-атаки. Отправив несколько ложных запросов, можно израсходовать все ресурсы системы, отведённые на установление соединения. Рассмотрим подробнее, как это происходит. Хакер с системы А отправляет пакет SYN системе В, но предварительно поменяв свой IP-адрес на несуществующий. Затем, ничего не подозревая, компьютер В отправляет ответ SYN/ACK на несуществующий IP-адрес и переходит в состояние SYN-RECEIVED. Так как сообщение SYN/ACK не дойдёт до системы А, то компьютер В никогда не получит пакет с флагом ACK. Данное потенциальное соединение будет помещено в очередь. Из очереди оно выйдет только по истечении 75 секунд. Этим пользуются злоумышленники и отправляют сразу несколько пакетов SYN на компьютер жертвы с интервалом в 10 секунд, чтобы полностью исчерпать ресурсы системы. Определить источник нападения очень непросто, так как злоумышленник постоянно меняет исходный IP-адрес.
Недостаток ресурсов Злоумышленники прибегают к данному виду DoS-атаки для захвата системных ресурсов, таких как оперативная и физическая память, процессорное время и другие. Обычно такие атаки проводятся с учётом того, что хакер уже обладает некоторым количеством ресурсов системы. Целью атаки является захват дополнительных ресурсов. Для этого не обязательно насыщать полосу пропускания, а достаточно просто перегрузить процессор жертвы, то есть занять всё допустимое процессорное время.
Отправка «тяжёлых» запросов Атакующий посылает серверу пакеты, которые не насыщают полосу пропускания (канал обычно довольно широкий), но тратят всё его процессорное время. Процессор сервера, когда будет их обрабатывать, может не справиться со сложными вычислениями. Из-за этого произойдёт сбой, и пользователи не смогут получить доступ к необходимым ресурсам.
Переполнение сервера лог-файлами
Лог-файлы сервера — это файлы, в которых записываются действия пользователей сети или программы. Неквалифицированный администратор может неправильно настроить систему на своём сервере, не установив определённый лимит. Хакер воспользуется этой ошибкой и будет отправлять большие по объёму пакеты, которые вскоре займут всё свободное место на жёстком диске сервера. Но эта атака сработает только в случае с неопытным администратором, квалифицированные хранят лог-файлы на отдельном системном диске.
Плохая система квотирования
На некоторых серверах есть так называемая CGI-программа, которая связывает внешнюю программу с Web-сервером. Если хакер получит доступ к CGI, то он сможет написать скрипт (), который задействует немало ресурсов сервера, таких как оперативная память и процессорное время. К примеру, скрипт CGI может содержать в себе циклическое создание больших массивов или вычисления сложных математических формул. При этом центральный процессор может обращаться к такому скрипту несколько тысяч раз. Отсюда вывод: если система квотирования настроена неправильно, то такой скрипт за малое время отнимет все системные ресурсы у сервера. Конечно, выход из этой ситуации очевиден — поставить определённый лимит на доступ к памяти, но и в этом случае процесс скрипта, достигнув этого лимита, будет находиться в ожидании до тех пор, пока не выгрузит из памяти все старые данные. Поэтому пользователи будут испытывать недостаток в системных ресурсах.
Недостаточная проверка данных пользователя Недостаточная проверка данных пользователя также приводит к бесконечному либо длительному циклу или повышенному длительному потреблению процессорных ресурсов (вплоть до исчерпания процессорных ресурсов) либо выделению большого объёма оперативной памяти (вплоть до исчерпания доступной памяти).
Атака второго рода
Это атака, которая стремится вызвать ложное срабатывание системы защиты и таким образом привести к недоступности ресурса.
Ошибки программирования