DoS и DDoS атаки

ddos.jpg

DoS-атака (атака типа «отказ в обслуживании», от англ. Denial of Service) — атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых легитимные (правомерные) пользователи системы не могут получить доступ к предоставляемым системой ресурсам (серверам), либо этот доступ затруднён. Отказ «вражеской» системы может быть и шагом к овладению системой (если во внештатной ситуации ПО выдаёт какую-либо критическую информацию — например, версию, часть программного кода и т. д.). Но чаще это мера экономического давления: простои службы, приносящей доход, счета от провайдера и меры по уходу от атаки ощутимо бьют «цель» по карману.

646a377134882b63e60303cdb05eb534.jpg

Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от англ. Distributed Denial of Service, распределённая атака типа «отказ в обслуживании»). В некоторых случаях к фактической DDoS-атаке приводит непреднамеренное действие, например, размещение на популярном интернет-ресурсе ссылки на сайт, размещённый на не очень производительном сервере (слэшдот-эффект). Большой наплыв пользователей приводит к превышению допустимой нагрузки на сервер и, следовательно, отказу в обслуживании части из них.

Виды DoS-атак

11291964-ddos-attack-pandawillcom.jpg

Существуют различные причины, из-за которых может возникнуть DoS-условие:

* Ошибка в программном коде, приводящая к обращению к неиспользуемому фрагменту адресного пространства, выполнению недопустимой инструкции или другой необрабатываемой исключительной ситуации, когда происходит аварийное завершение программы-сервера — серверной программы. Классическим примером является обращение по нулевому (англ. null) адресу. Недостаточная проверка данных пользователя, приводящая к бесконечному либо длительному циклу или повышенному длительному потреблению процессорных ресурсов (вплоть до исчерпания процессорных ресурсов) либо выделению большого объёма оперативной памяти (вплоть до исчерпания доступной памяти).

* Флуд (англ. flood — «наводнение», «переполнение») — атака, связанная с большим количеством обычно бессмысленных или сформированных в неправильном формате запросов к компьютерной системе или сетевому оборудованию, имеющая своей целью или приведшая к отказу в работе системы из-за исчерпания системных ресурсов — процессора, памяти или каналов связи.

* Атака второго рода — атака, которая стремится вызвать ложное срабатывание системы защиты и таким образом привести к недоступности ресурса. Если атака (обычно флуд) производится одновременно с большого количества IP-адресов — с нескольких рассредоточенных в сети компьютеров — то в этом случае она называется распределённой атакой на отказ в обслуживании (DDoS).

Виды флуда

pirate-torrent-sites.jpg

Флудом называют огромный поток бессмысленных запросов с разных компьютеров с целью занять «вражескую» систему (процессор, ОЗУ или канал связи) работой и этим временно вывести её из строя. Понятие «DDoS-атака» практически равносильно понятию «флуд», и в обиходе и тот и другой часто взаимозаменяемы («зафлудить сервер» = «заDDoS’ить сервер»).

Для создания флуда могут применяться как обычные сетевые утилиты вроде ping (этим известно, например, интернет-сообщество «Упячка»), так и особые программы. Возможность DDoS’а часто «зашивают» в ботнеты. Если на сайте с высокой посещаемостью будет обнаружена уязвимость типа «межсайтовый скриптинг» или возможность включения картинок с других ресурсов, этот сайт также можно применить для DDoS-атаки.

6d3260947db1e0ce8ad74868919aa94c.jpg

Любой компьютер, имеющий связь с внешним миром по протоколу TCP/IP, подвержен таким типам флуда:

* SYN-флуд — при данном виде флуд-атаки на атакуемый узел направляется большое количество SYN-пакетов по протоколу TCP (запросов на открытие соединения). При этом на атакуемом компьютере через короткое время исчерпывается количество доступных для открытия сокетов (програмных сетевых гнезд, портов) и сервер перестаёт отвечать.

* UDP-флуд — этот тип флуда атакует не компьютер-цель, а его канал связи. Провайдеры резонно предполагают, что UDP-пакеты надо доставить первыми, а TCP- могут подождать. Большим количеством UDP-пакетов разного размера забивают канал связи, и сервер, работающий по протоколу TCP, перестаёт отвечать.

* ICMP-флуд — то же самое, но с помощью ICMP-пакетов.

Многие службы устроены так, что небольшим запросом можно вызвать большой расход вычислительных мощностей на сервере. В таком случае атакуется не канал связи или TCP-подсистема, а непосредственно служба (сервис) — флудом подобных «больных» запросов. Например, веб-серверы уязвимы для HTTP-флуда, — для выведения веб-сервера из строя может применяться как простейшее GET /, так и сложный запрос в базу данных наподобие GET /index.php?search=<случайная строка>.

Выявление DoS-атак

Существует мнение, что специальные средства для выявления DoS-атак не требуются, поскольку факт DoS-атаки невозможно не заметить. Во многих случаях это действительно так. Однако достаточно часто наблюдались удачные DoS-атаки, которые были замечены жертвами лишь спустя 2-3 суток.

Бывало, что негативные последствия атаки (флуд-атаки) выливались в излишние расходы на оплату избыточного Internet-трафика, что выяснялось лишь при получении счёта от Internet-провайдера. Кроме того, многие методы обнаружения атак неэффективны вблизи объекта атаки, но эффективны на сетевых магистральных каналах. В таком случае целесообразно ставить системы обнаружения именно там, а не ждать, пока пользователь, подвергшийся атаке, сам её заметит и обратится за помощью. К тому же, для эффективного противодействия DoS-атакам необходимо знать тип, характер и другие характеристики DoS-атак, а оперативно получить эти сведения как раз и позволяют системы обнаружения.

381495033.jpg

Методы обнаружения DoS-атак можно разделить на несколько больших групп:

* сигнатурные — основанные на качественном анализе трафика,

* статистические — основанные на количественном анализе трафика,

* гибридные (комбинированные) — сочетающие в себе достоинства обоих вышеназванных методов.

Защита от DoS-атак

Меры противодействия DoS-атакам можно разделить на пассивные и активные, а также на превентивные и реакционные. Ниже приведён краткий перечень основных методов.

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

* Фильтрация и блэкхолинг. Блокирование трафика, исходящего от атакующих машин. Эффективность этих методов снижается по мере приближения к объекту атаки и повышается по мере приближения к атакующей машине.

* Устранение уязвимостей. Не работает против флуд-атак, для которых «уязвимостью» является конечность тех или иных системных ресурсов.

* Наращивание ресурсов. Абсолютной защиты естественно не дает, но является хорошим фоном для применения других видов защиты от DoS-атак.

* Рассредоточение. Построение распределённых и дублирование систем, которые не прекратят обслуживать пользователей, даже если некоторые их элементы станут недоступны из-за DoS-атаки.

* Уклонение. Увод непосредственной цели атаки (доменного имени или IP-адреса) подальше от других ресурсов, которые часто также подвергаются воздействию вместе с непосредственной целью атаки.

* Активные ответные меры. Воздействие на источники, организатора или центр управления атакой, как техногенными, так и организационно-правовыми средствами.

* Использование оборудования для отражения DoS-атак. Например DefensePro® (Radware), Периметр (МФИ Софт), Arbor Peakflow® и от других производителей.

* Приобретение сервиса по защите от DoS-атак. Актуально в случае превышения флудом пропускной способности сетевого канала.

Материал: Википедия Страна Советов Скорая помощь от DDos-атак Защита Windows