DDoS-атака — ещё один распространённый, но не до конца объяснённый, термин из области кибербезопасности, даром, что его используют уже много лет.
Что такое атака «отказ в обслуживании» (denial of service?) Существуют две её разновидности: «простая» и распределённая. В чём разница?
Представьте себе, что вы разговариваете с кем-то, и вдруг он без предупреждения начинает на вас орать, причём ещё на дикой скорости — 1274 слова в минуту, например, что вдвое превышает текущий рекорд Гиннесса.
Скорее всего, вы оглохнете, и определённо не разберёте ни слова и не сможете ответить.
Примерно так и выглядит «обычная» DoS-атака; заметьте, что нападающий — один.
Теперь — распределённая DoS-атака: вот, представьте себе, что вы выступаете перед значительной аудиторией — более 1000 человек. И вдруг они все — каждый из них — начинает беседовать лично с вами, задавать вопросы, требовать немедленных ответов. Они могут даже говорить в обычном темпе и на обычной громкости. Но — все разом, одновременно.
И в этом случае, опять же, вы, вероятно, оглохнете, — и уж совсем точно — не сможете ответить ни на один вопрос. Никто не услышит то, что вы говорите, даже при наличии микрофона и системы звукоусиления.
Это — распределённая DoS-атака.
Естественно, серверы (а именно они обычно и оказываются целью нападения) не люди. Их не так просто перегрузить объёмами информации. Но тем не менее, и у них самих, и у их коммуникационных линий — есть свои лимиты.
Этим злоумышленники и пользуются.
DDoS: Представьте, что с вами разом заговорили 1000 человек.
Tweet
Наиболее распространённым типом атак является флуд. Самые простые случаи — Ping Flood или UDP Flood: злоумышленники бомбят мишень огромным количеством пакетов ICMP Echo Request (ping) или User Datagram Protocol (UDP), загружая ими всю линию соединения, в то время как сервер-мишень добросовестно пытается обработать каждый пакует.
В случае с UDP-флудом, злоумышленник посылает огромное количество UDP-пакетов на рандомные порты удалённого хоста, который проверяет в ответ наличие приложения, «слушающего» данные с этого порта, не находит его и отвечает пакетом отказа: ICMP Destination Unreachable. Атакующий, скорее всего, фальсифицирует исходящий IP, так что возвратные пакеты идут в никуда.
Другой пример — Smurf Attack («Смурф-атака»; получила название от исходного кода программы для проведения атак smurf.c, опубликованного ещё в 1997 году).
При подобных атаках большое количество широковещательных ICMP-пакетов (ICMP — Internet Control Message Protocol, протокол передачи контрольных сообщений в интернете) от имени жертвы засылаются в крупную компьютерную сеть. Ответы от компьютеров в этой сети перегружают канал связи; машина, пытающаяся ответить на все эти запросы, замедляется до производительности старого калькулятора.
Естественно, все эти пакеты будут бессмысленным мусором.
SYN-флуд — ещё одна атака сходного характера. В этом случае атакующие злоупотребляют TCP-соединением, нарушая типовой трёхсторонний обмен данными. В начале TCP-соединения клиет отправляет серверу команду SYN (синхронизация), на что сервер отвечает SYN-ACK (синхронизация, принято), затем клиент отвечает своим ACK (принято) и соединение устанавливается.
Для проведения DDoS-атак используются крупные ботнеты
Tweet
При SYN-флуде атакующий (вредоносный клиент) либо не посылает ожидаемого ACK и продолжает слать SYN, увеличивая количество «полуоткрытых» соединений, либо отправляет серверу фальсифицированный IP, куда и уходят SYN-ACK. При этом, поскольку с того IP команды SYN не отправлялось, то и ACK не поступит.
Через некоторое время весь канал оказывается забит.
Существует ряд и других DDoS-атак, но в целом все они базируются на одном и том же принципе: подготовьте большое количество заражённых компьютеров (ботнет с DDoS-функциональностью), отправьте им команду, они начнут бомбить мишени мусорными пакетами.
В последние несколько месяцев эксперты по безопасности обнаружили некоторое количество «экзотических» DDoS-атак, использовавших уязвимые NTP-серверы для усиления мусорного трафика. И поскольку таких серверов очень много, атаки подобного рода оказываются весьма проблематичным делом.
Преступники используют DDoS для вымогательства: плати или лишишься бизнеса. Каждый час простоя означает большие потери, так что иногда коммерсанты предпочитают платить.
DDoS также активно используют «хактивисты» — в качестве сетевого аналога уличных протестов (по крайней мере, так говорит Ричард Столлман). Нередко встречаются и политически-мотивированные атаки, нацеленные на подавление тех или иных СМИ и т.д.
Ну, и в качестве «грязного» оружия в конкурентной борьбе в коммерческой сфере такие атаки тоже иногда используются.
Так выглядит проблема. А решение?
Оборона от DDoS-атак обычно состоит из выявления и классификации вредоносного трафика, а также из инструментов для фильтрации и блокировки нелегитимного трафика, так чтобы мог проходить трафик легитимный. Другими словами: выяви DDoS-трафки, его отправителя, заблокируй или или перенаправь в ближайшую «Чёрную дыру» (нулевой интерфейс или несуществующий сервер). Просто. К сожалению, проще сказать, чем сделать.
Сегодняшние атаки весьма сложны, их легко организовать (вот как раз в новостях прошла информация о том, что в Норвегии арестовали 17-летнего юнца за массивную DDoS-атаку против крупнейших финансовых учреждений и коммерческих предприятий), и очень нелегко отбить, особенно в силу того, что для DDoS-атак используются колоссальные ботнеты, ликвидировать которые тоже очень непросто.
Для борьбы с DDoS приходится привлекать экспертов со стороны и иногда даже переносить всю инфраструктуру под защиту специализированных сервисов.
Очень важным элементом борьбы с DDoS-атаками (которые сейчас происходят с частотой 28 атак в час) — это ликвидация самих ботнетов. В одном из наших следующих постов речь пойдёт как раз об этом.