Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Отказ в обслуживании(DoS)

Рубрика: Безопасность -> Уязвимости Linux-сервера
Метки: | | |
Среда, 21 января 2009 г.
Просмотров: 10610
Подписаться на комментарии по RSS

DoS-атака. Цель - захватить все ресурсы компьютера-жертвы, чтобы другие пользователи не смогли использовать этот компьютер. К ресурсам относятся: память, процессорное время, дисковое пространство, пропускная полоса и др.


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

     Если другой пользователь или другая программа попытаются создать процесс, они получат отказ - Cannot create fork (Нельзя создать процесс). Если же будет заполнена вся виртуальная память (физическая + подкачка), то сами понимаете, что произойдет.

     Третий наиболее характерный пример DoS-атаки - это перегрузка канала сервера, когда пропускная полоса может сузиться практически до нуля. Один компьютер не может переполнить канал сервера, поэтому для этого используются распределенные атаки (DDoS). Так, с помощью DDoS-атак были успешно атакованы компании Yahoo! и eBay.

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

    Самой примитивной формой такой атаки является пинг-флуд (ping flood), когда жертва «бомбардируется» ICMP-запросами echo, сужая пропускную полосу в обоих направлениях и перегружая стек TCP/IP, поскольку машина постоянно отвечает на ICMP-запросы.

     Наши серверы не будут перегружены эхо-запросами, если на машине установлен брандмауэре, и на них не придется отвечать, но канал от провайдера до брандмауэра, где они будут отсекаться, все равно будет «бомбардироваться» эхо-пакетами. Поэтому блокировка ICMP-пакетов на брандмауэре - это не очень эффективное решение. Если наш канал от провайдера до брандмауэра будет полностью перегружен ICMP-пакетами, то весь входящий трафик тоже будет блокирован.

     Это покажется неразумным, но DoS-атака основана на надежности протокола TCP. Его надежность заключается в том, что все полученные данные должны быть подтверждены получателем при их получении (в противном случае считается, что данные были потеряны и требуют повторной отправки).

     В любом TCP-соединении данные должны передаваться в обоих направлениях. Протоколы UDP и ICMP не предоставляют никаких гарантий передачи данных, но все еще остаются двунаправленными протоколами, поэтому они также могут быть использованы при атаке.

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

     Злоумышленнику нужно «зафлудить» канал жертвы - канал какой-нибудь компании. Как правило, корпоративная сеть подключается к Интернету по выделенной линии (пропускная полоса как минимум 2 Мб/с). А у обычного пользователя в распоряжении только коммутируемое (dial-up) или DSL-соединение.

     В первом случае теоретический максимум составляет 56 Кбит/с, а во втором - как правило, 64 Кбит/с, 128 Кбит/с или 256 Кбит/с. Как видите, пропускная полоса атакующего значительно меньше полосы жертвы, поэтому непосредственно со своего компьютера злоумышленник атаковать жертву не будет: нет смысла, ведь больше чем 256 Кбит/с он отправить не сможет, а это не покроет даже и половину (1 Мб) канала жертвы.

     Единственное, что может сделать злоумышленник со своего компьютера, -это управлять распределенной DoS-атакой. Он разместит модули распределенной атаки на скомпрометированных машинах, подключенных к Интернету по высокоскоростному каналу, а со своего компьютера лишь отправит команду модулям о начале атаки. Если одна машина может породить 100 Кбит/с трафика, то сколько трафика будет создано 10 или 20 машинами!

     Кроме ICMP-флудинга, часто используется UDP-флудинг. В этом случае, так же как и при ICMP-флудинге, жертве отправляется огромное количество UDP-дейтаграмм. К тому же UDP- и IСМР-атаки довольно трудно обнаружить, поскольку легко изменить адрес отправителя (это называется IP-спуфинг), не говоря уже о распределенных UDP- и ICМР-атаках.

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

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)