Атаки отказа в обслуживании

Атаки отказа в обслуживании (Denial of Service, DoS) направляются обычно на информационные серверы предприятия, функционирование которых является критически важным условием для работоспособности всего предприятия. Чаще всего объектами DOS-атак становятся основные веб-серверы, файловые и почтовые серверы предприятия, а также корневые серверы системы DNS.

Для проведения DoS-атак злоумышленники часто координируют «работу» нескольких компьютеров (как правило, без ведома пользователей этих компьютеров). Говорят, что в таких случаях имеет место распределенная атака отказа в обслуживании (Distributed Denial of Service, DDoS). Злоумышленник, захватив управление над группой удаленных компьютеров, «заставляет» их посылать пакеты в адрес узла-жертвы (рис. 1). Получившийся в результате мощный суммарный поток «затопляет» атакуемый компьютер, вызывая его перегрузку и, в конечном счете, делает его недоступным. Блокировка происходит в результате исчерпания ресурсов либо процессора, либо операционной системы, либо канала связи (полосы пропускания).

Рис. 1. Схема DDoS-атаки

А теперь рассмотрим более конкретный пример проведения DoS-атаки, в которой используются особенности протокола TCP. Для установления логического соединения по протоколу TCP узлы должны обменяться тремя пакетами (рис. 2, а): сначала инициатор соединения посылает пакет с флагом SYN, на который сервер отвечает пакетом с установленными флагами ASK и SYN. Завершает процедуру пакет от узла-инициатора с флагом SYN.

Для выполнения атаки злоумышленник организует передачу на сервер массированного потока пакетов с флагом SYN, каждый из которых инициирует создание нового ТСР-соединения (рис. 2, б). Получив пакет с флагом SYN, сервер выделяет для нового соединения необходимые ресурсы и в полном соответствии с протоколом отвечает клиенту пакетом с флагами ASK и SYN. После этого, установив тайм-аут, он начинает ждать от клиента завершающий пакет с флагом ASK, который, увы, так и не приходит. Аналогичным образом создается множество других «недоустановленных» соединений. В результате возникает перегрузка сервера, все его ресурсы идут на поддержание множества соединений, процедуры установления которых остались незавершенными. В таком состоянии сервер уже не способен отвечать на запросы, посылаемые приложениями легальных пользователей, в результате злоумышленник достигает своей цели.

Рис. 2. Проведение DoS-атаки, в которой используются особенности протокола TCP:
а — нормальный порядок установления TCP-соединения; б — DDoS-атака за счет создания множества незакрытых ТСР-соединений

Подобный подход носит универсальный характер. Например, атака может быть осуществлена путем передачи уязвимому приложению потока запросов, синтаксически правильных, но специально сконструированных, так, чтобы вызвать перегрузку. Так, для некоторых версий веб-сервера Apache губительным оказывается поток запросов, каждый из которых содержит большое количество заголовков HTTP или символов «/».