СЕМЕЙСТВО DoS

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


CPUHog

Уязвимы: WinNT

Тип: недостаток ресурсов

Все гениальное просто. Взглянув на CPUHog, начинаешь понимать всю глубину этой фразы, ибо атака эта родилась от криворукого программера и бажной операционки :). Всем известно, что под NT у процессов пользователя есть 16 уровней приоритета, и задавать эти уровни можно прямо из прог. То есть злобный хацкер может создать прогу, которая выделяла бы себе наивысший приоритет (16) и не отдавала процессорное время никому. Даже диспетчеру задач :). Самый простой вариант такой проги:

SetThreadPriority(GetCurrentThread(), thread_priority_time_critical);

while(1);

Выставили высший приоритет и пошли мучить проц бесконечным циклом :). Снять задачу нельзя, можно только ребутнуться. Учитывая возможность установления шестнадцатого приоритета из апплета ActiveX или модуля Нетскапы, а также из cgi-скриптов, есть только одна рекомендация - юзать связку w2k-Opera. Особые извращенцы могут запускать диспетчер задач с высшим приоритетом, это поможет вытащить CPUHog из памяти. Хотя все это не избавляет Hog'a от его гениальной простоты ;).

Jolt2

Уязвимы: ВСЕ винды, BeOs, большинство маршрутизаторов

Тип: недостаток ресурсов

Побродив по экзотике стандартных атак, мы все равно вернулись к старой доброй фрагментации пакетов. Jolt позволяет мучить мощные машины, сидящие на широких каналах, с обычного модема, в этом его большое преимущество перед другими фрагментными атаками. При помощи маленького эксплойта на жертву обрушивается поток одинаковых фрагментов пакетов, собрать которые невозможно. Но система этого не знает, поэтому раз за разом наступает на одни и те же грабли, отбирая у процессора тучу ресурсов. Детально атака выглядит так: каждый из посланных фрагментов пакета имеет длину в 29 байт, однако в заголовке указано, что длина его - 68. Так как 20 байт - это служебная информация, получается, что данных во фрагменте лежит 48 байт (хотя реально их всего 9). Каждый из фрагментов нахально заявляет, что он последний в цепочке, а перед ним прошло уже 65520 байт инфы. На самом деле, все вполне законно, пакеты длиной в 65529 байт вполне легальны, но система оперирует не реальными данными, а данными из заголовка. Поэтому для нее общий размер большого пакета, который ей надо было бы собрать, будет равен 65520+48=65568, а это превышает максимальную длину IP-пакета. Вот такой хитровымученный глюк. Тратя все процессорное время на анализ таких пакетов, комп будет не в состоянии заниматься чем-то еще. Несмотря на то, что некоторые файрволы ловят такие битые пакеты, атака на непропатченные системы может быть вполне успешна.

RPC Locator

Уязвимы: WinNT

Тип: недостаток ресурсов

Было время, когда этой атакой скромные дайлапщики валили мегатонные сервера на NT. Простейшим способом (о нем ниже) убивались RPC, ISS и DNS службы, а процессор оставался перегруженным до ребута. Метод простой - прителнетиться к порту службы (135 - RPC, 1031 - ISS, 53 - DNS) и прогнать туда любую пургу объемом больше 10 символов. Все, служба напрягает проц в попытках узнать, что же у нее спрашивают, сервак тормозит, админ жмет Reset %). А используя мелкие утилиты с говорящими именами типа PortFuck, можно повторять этот процесс раз за разом. В итоге один маленький, но злобный чел с коннектом в 19200 мог убить сервак на все время своего сидения в Инете - просто в фоне у него раз в пять минут кидался глючный запрос серверу. И тот либо тормозил, либо постоянно ребутался админом.

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