СЕМЕЙСТВО DoS

Спецвыпуск Xakep, номер #021, стр. 021-040-3


SYN Flood

Уязвимы: все, кроме Linux и Solaris

Тип: полоса пропускания + ошибки программирования

Вот и обещанное зло без хитростей и левостей. В этой атаке главное оружие - самые обыкновенные пакеты синхронизации, о которых мы только что вспоминали (TCP SYN). Чтобы понять все прелести этого DoS'a, углубимся в его техническую сторону. После получения первого пакета из цепочки (SYN) комп должен послать отправителю подтверждение на прием данных (пакет SYN-ACK), мол, готов к труду и обороне. Главная бага в том, что, послав злосчастное подтверждение, жертва будет ждать на него ответа (пакет ACK) довольно долго и прервет процесс установки связи только тогда, когда пройдет отведенный на коннект промежуток времени. Как ты, видимо, уже догадался, ответ не придет никогда :), потому что в пакетах кулхацкера стоит инвалидный обратный адрес, то есть айпишник отключенного от сети компа. Помимо основного эффекта - переполнения буфера из-за огромного числа "полуоткрытых" соединений, которые место занимают, а данные не передают - можно запросто зафлудить канал определенного протокола. Этим часто пользуются, чтобы прикрыть доступ к чужому сайту, фтпшнику или клиенту peer2peer: система будет заниматься ложными соединениями, а на реальные у нее не хватит места и времени. Против линуха такая атака принципиально не прокатит - он не сохраняет статусы соединения с одним и тем же компом в таблице, а просто отвечает на запросы. В итоге реальные соединения проходят без проблем, а леваки отсеиваются сами :). Винды же можно защитить только одним способом - ограничить количество соединений файрволом (это спасет от DoS'a, но не от флуда канала).

WinNuke

Уязвимы: Win9x+WinNT

Тип: ошибки программирования

После распространения ВинНюка цифра 139 стала даже более известной, чем 31337 :). Уж что-что, а нюкер держал в руках каждый. Но при этом многие хаксоры, успешно применявшие нюк, не знают элементарных принципов его работы :(. Будем разбираться. Nuke пользуется страшной нелюбовью 139 порта NetBIOS к нестандартному содержанию пакетов (кто же знал при проектировке, что нехорошие люди будут совать туда всякий мусор?). На уровне сети все пакеты вполне ожидаемы, и система спокойно принимает ответы на свои запросы. Если же пакет пришел сам по себе, да еще и забит какой-то мурью, компу придется несладко. Помимо уже известных тебе TCP-пакетов SYN и ACK, существуют пакеты URGENT - срочные данные о работе сети. Нюкер генерирует URGENT-пакеты с произвольным содержанием (изначально в них лежала фраза "nuke me" :)), помеченные как сообщение OoB (out of band, превышение пропускной способности сети). Получив такой пакетик, жертва не врубается (какое на хрен переполнение? все ж нормально!) и, в силу кривизны рук программеров MS, умирает с демонстрацией BSoD. Кстати, история борьбы MS vs Nuke до жути забавна: первая заплатка просто фильтровала пакеты, содержащие "nuke me". На что кулхацкеры ответили новой версией нюкера, в которой фразу для посылки можно было задать вручную :). Только после этого появился нормальный апдейт, проверяющий правильность пакетов, приходящих на 139 порт.

Назад на стр. 021-040-2  Содержание  Вперед на стр. 021-040-4