3. По условию начала осуществления воздействия




Скачать 361.74 Kb.
Название3. По условию начала осуществления воздействия
страница1/5
Дата публикации28.04.2013
Размер361.74 Kb.
ТипДокументы
vbibl.ru > Информатика > Документы
  1   2   3   4   5
Классификация атак

1. По характеру воздействия


  • пассивное

  • активное

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

Пассивное удаленное воздействие практически невозможно обнаружить.

Пример: прослушивание канала связи в сети.

Активное воздействие на распределенную вычислительную систему - воздействие, оказывающее непосредственное влияние на работу системы (изменение конфигурации РВС, нарушение работоспособности и т. д.) и нарушающее принятую в ней политику безопасности.

Практически все типы удаленных атак являются активными воздействиями. Особенностью активного воздействия по сравнению с пассивным является принципиальная возможность его обнаружения, так как в результате его осуществления в системе происходят определенные изменения. В отличие от активного, при пассивном воздействии не остается никаких следов.
^

2. По цели воздействия


  • нарушение конфиденциальности информации

  • нарушение целостности информации

  • нарушение работоспособности (доступности) системы

При перехвате информации нарушается её конфиденциальность.

Пример: прослушивание канала в сети.

При искажении информации нарушается её целостность.

Пример: внедрение ложного объекта в РВС.

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

Пример: отказ в обслуживании (DoS).
^

3. По условию начала осуществления воздействия


  • Атака по запросу от атакуемого объекта

  • Атака по наступлению ожидаемого события на атакуемом объекте

  • Безусловная атака

В случае запроса атакующий ожидает передачи от потенциальной цели атаки запроса определенного типа, который и будет условием начала осуществления воздействия.

Инициатором осуществления начала атаки является атакуемый объект.

Пример: DNS- и ARP-запросы в стеке TCP/IP.

В случае наступления события, атакующий осуществляет постоянное наблюдение за состоянием операционной системы удаленной цели атаки и при возникновении определенного события в этой системе начинает воздействие.

Инициатором осуществления начала атаки является атакуемый объект.

Пример: прерывание сеанса работы пользователя с сервером в сетевых ОС без выдачи команды LOGOUT.

В случае безусловной атаки начало её осуществления безусловно по отношению к цели атаки, то есть атака осуществляется немедленно и безотносительно к состоянию системы и атакуемого объекта. Следовательно, в этом случае атакующий является инициатором начала осуществления атаки.
^

4. По наличию обратной связи с атакуемым объектом


  • с обратной связью

  • без обратной связи (однонаправленная атака)

Атака с обратной связью - атака, во время которой атакующий получает ответ от атакуемого объекта на часть своих действий. Эти ответы нужны, чтобы иметь возможность продолжить атаку и/или осуществлять её более эффективно, реагируя на изменения, происходящие на атакуемой системе.

Атака без обратной связи - атака, происходящая без реакции на поведение атакуемой системы.

Пример: отказ в обслуживании (DoS).
^

5. По расположению атакующего относительно атакуемого объекта


  • внутрисегментное

  • межсегментное

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

Межсегментная атака - атака, при которой субъект и объект атаки находятся в разных сегментах сети.
^

6. По количеству атакующих


  • распределённая

  • нераспределённая

Распределённая атака - атака, производимая двумя или более атакующими на одну и ту же вычислительную систему, объединёнными единым замыслом и во времени.

Нераспределённая атака проводится одним атакующим.
^

7. По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие


  • физический

  • канальный

  • сетевой

  • транспортный

  • сеансовый

  • представительный

  • прикладной

Модели атак
Атаки на переполнение буфера
Переполнение буфера (buffer overflows) - название самой распространенной уязвимости в области безопасности программного обеспечения. Первая атака с применением данной уязвимости использовалась в вирусе-черве Морриса в 1988 году. В настоящее время можно говорить, что уязвимости, связанные с переполнение буфера являются доминирующими при удаленных атаках, где обычный пользователь сети получает частичный или полный контроль над атакуемым хостом.
Основа атак с использованием этой уязвимости - принцип функционирования операционных систем, где программа получает привилегии и права запустившего ее пользователя или процесса. Таким образом, менее привилегированный пользователь или процесс, который взаимодействует с данной программой может использовать ее права в своих целях.

Использование данной уязвимости подразумевает изменение хода выполнения привилегированной программы, например, запуск командной оболочки с правами администратора. Реализации атаки требует решения двух подзадач.

  • Подготовка кода, который будет выполнятся в контексте привилегированной программы.

  • Изменение последовательности выполнения программы с передачей управления подготовленному коду.

Методы решения этих двух подзадач могут служить основой классификации атак, связанных с переполнением буфера.

^ 1. Пути решения подзадачи подготовки кода:

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

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

  • Если параметризированный код уже присутствует в адресном пространстве программы, то подготовки кода не требуется.

^ 2. Способы передачи управления подготовленному коду:

Искажение адреса возврата из функции

Так как вызову функции сопутствует занесение адреса возврата в стек, то при его подмене атакующим, управление передается по заданному им адресу. Здесь используется переполнение буфера локальных переменных функции, которые также создаются в стеке. Простым примером служит следующий фрагмент программы на Си.

int namelen (void) {

char name[21];

gets(name);

return strlen(name);

}

Из примера видно, что при вводе имени размером более 20 символов частью строки будет замещен адрес возврата из функции. Далее, при выполнении инструкции возврата из подпрограммы, управление будет передано по адресу, который образуют соответствующие позиции введенной строки и в обычной ситуации будет получено сообщение об ошибке операционной системы. Описанный процесс изображен на рисунке 1.



Рисунок 1. Схема атаки “срыв стека”

Такие атаки на переполнение буфера получили название “атаки срыва стека” (stack smashing attack)

Искажение указателя функции

В данном случае атаке подвергаются переменные, содержащие указатели на функции. Эти переменные могут располагаться в любой области памяти, не только в стеке но и в области динамически и статически выделяемых данных. Атакующий организовывает переполнение буфера, которое искажает данные указатели, и далее при вызове функций по этим указателям управление передается подготовленному коду. Приведем пример уязвимости указателей в виде следующего фрагмента программы на Си.

void dummy(void) {

printf("Hello world!\n");

}

int main(int argc, char **argv) {

void (*dummyptr)();

char buffer[100];

dummyptr=dummy;

strcpy(buffer, argv[1]); // Уязвимость

(*dummyptr)();

}

Здесь переполнение буфера buffer приводит к подмене указателя dummyptr и последующему изменению хода выполнения программы.

Искажение таблиц переходов

В результате компиляции часто создаются так называемые таблицы переходов, которые могут использоваться в целях оптимизации, динамического связывания кода, обработки исключений и т.п. Искажение таких таблиц вызванное переполнением буфера позволяет передать управление подготовленному коду.

Искажение указателей данных

Данный способ не предусматривает явной передачи управления подготовленному коду, но предполагает, что передача происходит на основании оригинального алгоритма программы. Другими словами, подготовленный код запускается в ходе обычной, не искаженной, последовательности исполнения программы.

Рассмотрим следующий фрагмент программы на C.

foo(char * arg) {

char * p = arg; // уязвимый указатель

char a[40]; // переполняемый буфер

gets(a); // применение gets() реализует уязвимость

gets(p); // искажение кода

}

Здесь переполнение буфера a вызывает подмену указателя p и последующую запись строки по адресу искаженного указателя. Вводимая строка содержит код атакующего. Такая схема атаки часто используется для корректировки (patch) части кода программы или кода динамических и статических библиотек, располагающихся в памяти по фиксированным адресам. Например, корректировка-подмена системных функции выхода из программы или запуска процесса.

Другой пример атаки подобного рода - искажение указателя кадра стека локальных переменных (frame pointer overwrite attack). Эта атака основана на стандартных операциях пролога и эпилога подпрограмм, в результате чего подменяется указатель базы кадра локальных переменных.

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

Таблица 1. Классификация атак по переполнению буфера

^ Подготовка кода

Цель переполнения

Внедрение кода

Внедрение параметров

Не требуется

^ Искажение адреса возврата из функции

Атака “срыв стека”

Атака “срыв стека” с параметризацией

Атака “срыв стека” с передачей управления

^ Искажение указателей функций

Атака на указатели функций

Атака на указатели функций с параметризацией

Атака на указатели функций с передачей управления

^ Искажение таблиц переходов

Атака на таблицы переходов

Атака на таблицы переходов с параметризацией

Атака на таблицы переходов с передачей управления

^ Искажение указателей данных

Атака с искажением указателей данных

Атака с искажением указателей данных с параметризацией

Атака с искажением указателей данных с оригинальным кодом



^ Реальные примеры:

В программе rdist из BSD в одном из вызовов отсутствовала проверка на размер параметра, передаваемой из командной строки. Существует программа, которая формирует требуемый код и вызывает /usr/bin/rdist, передавая код в качестве параметра. Поскольку rdist выполняется с привилегиями суперпользователя (setuid bit), переданный код также выполнялся с привилегиями root и в распоряжении хакера оказывался shell с правами root.

struct namelist * lookup(name, action, value)

char *name;

int action;

struct namelist *value;

{

register unsigned n;

register char *cp;

register struct syment *s;

char buf[256];
. . .

if (action != INSERT || s->s_type != CONST) {

/* !!! */ (void)sprintf(buf, "%s redefined", name);

yyerror(buf);
В одной из версий POP-сервера проверка длины строки присутствовала, но не была до конца корректной - не отлавливалось переполнение при вызове sprintf(). Что это означает? Была написана программа, которая соединялась с 110-м портом (pop3-сервис) и передавала ему сформированный код, после чего pop-сервер сообщал о неверной команде sprintf() и "вываливался" в shell после return(), причем с правами суперпользователя root. Причем в данном случае хакеру даже не требовалось иметь свой раздел на машине, чтобы прорваться на нее, да еще и с правами root.

Пресловутый вирус Морриса использовал аналогичную неточность в широко распространенной программе finger, и доказал свою работоспособность, разойдясь за несколько часов на огромное количество компьютеров в научных и военных сетях США.

Программы, написанные под X-Window, как правило, передают параметр "-display " на обработку X-библиотеке. В ранних версиях X-Window размеры displayname не проверялись, соответственно был написан код для получения root-привилегий через /usr/X11R6/bin/xterm.

В 1996 году в списке рассылки freebsd-security была опубликована информация об ошибке - отсутствие проверки размера буфера – в подсистеме печати, являющейся фактическим стандартом и использующейся во всех семействах BSD, SunOS, а также входящей в состав остальных операционных систем (для совместимости).

В sendmail версии ниже 8.7.5 также обнаружена дыра. Код передается в GECOS-поле, которое в семействе ОС BSD пользователь может менять с помощью программ chfn, chsh и chpass. Удобная, казалось бы, возможность: смена имени, информации о телефоне/офисе и плюс неточность в sendmail обернулись лазейкой для хакера.

^ FORMAT STRINGS

Как известно, в Языке Си имеется возможность описания функций с переменным числом аргументов. Во время вызова, один фиксированный аргумент показывает функции сколько аргументов передано. К этим функциям относятся fprintf(), printf(), sprintf(), snprintf(), vfrintf(), vsprintf(), vsnprintf(), setproctitle() и syslog(). У этих функций есть две общих черты:

  • Фиксированным по порядку аргументом в этих функциях является форматная строка.

  • Они конвертируют переданные им аргументы в соответствии с форматной строкой.

Форматная строка выполняет следующие задачи:

  • Указывает сколько аргументов передано функции.

  • Как интерпретировать переданные аргументы и конвертировать их в строку символов.

Но что же произойдёт, если функции передано аргументов меньше, чем их описано в форматной строке? Давайте взглянем на содержимое стека после вызова функции:

| переменные, сохр регистры, | рост

| активационные записи вызова других функций | стека

|--------------------------------------------------------------------|

| параметры, переданные в функцию; |

| адрес возврата из функции; |

|--------------------------------------------------------------------|

| сохранённые регистры; |

| локальные переменные функции; |
Итак, при вызове функция printf() думает, что в стеке содержится достаточное количество аргументов и потому читает из него столько, сколько указано в форматной строке. Таким образом, злоумышленник, имея возможность сформировать форматную строку получает возможность читать информацию из стека.

Среди спецификаторов, которые могут использоваться в формировании форматной строки стоит выделить %n, который записывает в указанную целую переменную количество уже записанных сиволов, т.е побочным результатом вызова printf(“1234%n”, &i) будет запись значения 4 в переменную i.

То есть получается ,что, подготовив специальным образом форматную строку, злоумышленник может записать по нужному адресу требуемое значение.

Данная уязвимость была найдена во многих программных продуктах, в частности были написаны эксплойты:

Remote exploits: wu-ftpd, BSD ftpd, proftpd, rpc.statd, PHP 3 и 4, TIS Firewall Toolkit

Local exploits: lpr, LPRng, ypbind, BSD chpass и fstat, libc with localization.

Червь ramen использовал данную уяывимость в wu-ftpd, rpc.statd, LPRng.

Dos атаки

NUKE

Нередко различные DOS-атаки называют общим термином "нюк" (NUKE). Одна из самых известных программ так и называется WINNUKE (см. ниже по тексту). Восстановим истину в этом вопросе. Существует метод атаки, называемый просто NUKE. Строго говоря, классический NUKE нельзя называть DOS-атакой. Идея основана целиком на документированных стандартах, а не на ошибках в конкретной реализации TCP/IP.

Суть классического NUKE в следующем. Для служебных целей в IP-сетях используется протокол ICMP (Internet CONTROL MESSAGE PROTOCOL, описание можно найти в RFC-1122). С этим протоколом мы встречаемся, например, когда используем программы PING и TRACEROUTE. Одной из возможностей ICMP является проверка наличия определенного адреса в Сети. В случае возникновения ошибки соединения возвращается достаточно подробная диагностика ситуации. Например: "Сеть недоступна", "Адрес недоступен", "Ошибка маршрутизации" и другие. Стандартные реализации TCP/IP-стека по приходе ICMP-пакета с извещением об ошибке производят определенные действия, в первую очередь перестройку таблицы маршрутизации и т.п. При этом, как побочный эффект, разрываются все установленные соединения с машиной, имеющей адрес, о котором стало известно, что он недостижим. На использовании этого эффекта и строятся диверсии.

Действительно, если знать, что компьютер с адресом X установил соединение с компьютером Y, и послать ICMP-сообщение об ошибке на компьютер X с исходящим адресом компьютера Y, то безусловной реакцией будет разрыв вышеупомянутого соединения. Для осуществления подобной атаки необходимо работать с IP на более низком уровне, нежели стандартные функции операционной системы. Подмена адресов в IP-пакетах имеет устоявшееся название "спуфинг" (от англ. SPOOFING - мистификация, обман). Практический эффект такого рода атаки невелик. Для ее осуществления необходимо знать, что два компьютера установили между собой соединение.

WINNUKE

Наряду с обычными данными, пересылаемыми по TCP-соединению, стандарт предусматривает также передачу срочных (OUT OF BAND, OOB) данных. Предназначаются они для передачи различной срочной информации по соединению, используемому для передачи обычных данных. На уровне форматов TCP-пакетов это выражается в ненулевом URGENT POINTER. На большинстве компьютеров с операционной системой WINDOWS, установленных в локальной сети, присутствует сетевой протокол NETBIOS, который использует для своих нужд три IP-порта: 137, 138, 139. Как выяснилось, если соединиться с WINDOWS-машиной через 139-й порт и послать туда несколько байтов OOB-данных, то первоначальная реализация NETBIOS, не зная, что делать с этими данными, попросту подвешивает или перезагружает машину. Для WINDOWS 95 это обычно выглядит как синий текстовый экран, сообщающий об ошибке в драйвере TCP/IP и невозможности работы с сетью до перезагрузки операционной системы. WINDOWS NT 4.0 без установленных SERVICE PACK перезагружается, NT 4.0 со вторым SERVICE PACK выпадает в синий экран.

ICMP

Следующая широко известная ошибка обнаружилась буквально через месяц после нашумевшего WINNUKE (хотя атаки, основанные на схожей идее, были известны еще годом раньше). Объектом атаки на сей раз стал ICMP-протокол, точнее - его реализация. ICMP-протокол издавна привлекал любителей различных сетевых диверсий. Поскольку он является внутренним механизмом поддержки работоспособности IP-сетей, то, с точки зрения злоумышленника, является очевидным объектом атаки. В качестве одного из методов можно упомянуть PING с большим размером пакета, так называемый PING-FLOOD. Поскольку ICMP-пакеты имеют определенные привилегии в обработке, то PING большого размера может абсолютно парализовать работу конкретного компьютера или даже целой сети, IP-каналы которых будут передавать только ICMP-пакеты. Такой способ часто используется людьми, имеющими мощные каналы связи, против людей, располагающих более слабыми каналами. Метод этот, основанный на грубой силе, очевидно, не требует большого ума (точнее сказать, не требует никакого ума и, видимо поэтому, так любим молодыми сотрудниками различных провайдерских организаций). Защиты от него в общем случае не существует, самый распространенный метод реакции - установив адрес злоумышленника, написать жалобы куда только можно.

Следующим объектом нашего исследования будет более хитроумный метод, называемый SPING (JOLT, SSPING, ICENUKE, ICEPING, ICENUKE, PING OF DEATH...) Множество названий вовсе не означает наличия множества различных модификаций. Просто почему-то разные люди назвали один метод разными именами, и встретить программу можно под всеми вышеперечисленными названиями. Как выяснилось, WINDOWS-системы неадекватно реагируют на получение сильно фрагментированного ICMP-пакета (кусочками до одного килобайта) большого размера (на пару байт больше 64 килобайт). Реакция заключается в безоговорочном "повисании". В конце июня 1997 года жертвой SPING пал многострадальный сервер компании MICROSOFT, после чего его окончательно закрыли каким-то хитрым экраном.

В отличие от WINNUKE, жертвами SPING могут стать не только WINDOWS-системы, но и MAC OS и некоторые версии UNIX (заплатки, к счастью, имеются уже для всего).

LAND

Следующий метод атаки, называемый LAND (по слухам, фамилия первооткрывателя была LAND), замечателен в первую очередь огромным количеством поражаемых систем. Кроме любимой народом (за наличие MINESWEEPER) WINDOWS NT, здесь и MAC OS, и множество UNIX (от бесплатных до серьезных), и такие экзотические системы, как QNX и BEOS, и даже многие аппаратные маршрутизаторы (в том числе и продукция фирм CISCO и 3COM). Практически для всех систем уже имеются исправления, хотя, конечно же, далеко не все установили их в систему.

В начале создания TCP-соединения посылается пакет с установленным флагом SYN. Нормальной реакцией на получение SYN-пакета является подготовка необходимых ресурсов для нового соединения, посылка SYN-ACK пакета (подтверждение) и ожидание реакции с другой стороны. В случае, когда реакция отсутствует определенное время, SYN-ACK пакет передается повторно несколько раз, как правило, с увеличивающимся периодом задержки. Очевидным методом атаки, использующим вышеописанный механизм, является классический SYN-FLOOD, заключающийся в следующем. На компьютер-жертву посылается множество SYN-пакетов с искаженными адресами отправителя. Компьютер-жертва тратит массу своих вычислительных ресурсов на попытки подтвердить соединения с абсолютно ничего не подозревающими или даже с несуществующими компьютерами. При достаточно большом количестве фальшивых запросов ресурсы компьютера-жертвы могут быть исчерпаны, а все другие процессы в системе будут просто заморожены, либо аварийно завершены, либо будут "сброшены" все имеющиеся TCP-соединения. Но это очень старый метод, основанный на грубой силе. Механизм работы LAND хитрее: посылается SYN-пакет с адресом отправителя, совпадающим с адресом получателя, жертвы. Пакет посылается на любой открытый порт. Для WINDOWS-систем это почти всегда может быть 139-й порт (старый знакомый по WINNUKE). Для других систем это может быть любой известный порт (21-й, 80-й и др.). Реакцией WINDOWS-компьютера на LAND является абсолютное "зависание".

TEARDROP

Метод атаки TEARDROP основан на ошибках в реализации TCP/IP-стека. Подверженными такой атаке оказались WINDOWS-системы, а также компьютеры с установленным LINUX.

Поскольку передача данных в IP-сетях производится не в идеальной среде, а по вполне реальным каналам различного качества, то естественно, что в стандарт заложили возможность передачи больших пакетов фрагментами, которые на принимающей стороне преобразуются в исходный пакет. Речь идет о том, что некий единый пакет на уровне TCP- или UDP-протоколов может быть фрагментирован на уровне IP - протокола более низкого уровня. При этом каждый фрагмент будет характеризоваться смещением от начала исходного пакета и своей длиной. Драйвер TCP/IP-стека собирает все фрагменты на принимающей стороне до тех пор, пока не получит их все (или, во всяком случае, пока не решит, что принял их все). Безусловно, при передаче возможны различные ситуации, которые "умная" реализация TCP/IP должна понимать. В частности, может оказаться, что несколько полученных фрагментов будут пересекаться. Нас интересует ситуация, когда очередной фрагмент имеет смещение, лежащее внутри уже полученного фрагмента. Что же происходит в этом случае? Прежде всего вычисляется размер пересечения. А затем в буфер копируется только та часть нового фрагмента, которая "выступает за границу" старого фрагмента. Все просто и очевидно, за исключением того, что возможна еще одна нестандартная ситуация. А именно - когда новый фрагмент не только начинается внутри старого, но и оканчивается в нем же. По идее, такой фрагмент должен быть просто пропущен, но как раз такую возможность программисты, писавшие WINDOWS NT и LINUX, и не предусмотрели. Что же происходит в результате? Пусть у нас есть уже полученный фрагмент A, начинающийся с A_OFFS и имеющий длину A_LEN. Затем пришел новый фрагмент B, начинающийся с B_OFFS и с длиной B_LEN. Причем A_OFFS (A_OFFS + A_LEN), то есть фрагмент B лежит внутри фрагмента A. проследим действия принимающей стороны по шагам. начало нового фрагмента лежит внутри имеющегося. хорошо! пересекающаяся часть: ((A_OFFS + A_LEN) - B_OFFS). а тот кусочек, что нужно добавить в буфер, начинается с (A_OFFS + A_LEN) и имеет длину ((B_OFFS + B_LEN) - (A_OFFS + A_LEN)). о-ля-ля! длина-то меньше нуля! если вспомнить о машинной зацикленной арифметике, легко понять, что в результате будет скопирован очень большой блок памяти. при этом будет уничтожено все попадавшееся на пути (обычно на пути попадается операционная система). собственно, вышеописанное и есть TEARDROP ("слезинка", англ.). объяснение, приведенное выше, абсолютно верно для LINUX, поскольку его исходный код открыт. но, вероятно, аналогичный механизм делает и WINDOWS NT потенциальной жертвой для TEARDROP-атаки.

Позже возникло несколько модификаций TEARDROP, которые были способны пробивать WINDOWS NT с установленной против обычного TEARDROP "заплаткой". Известность получили BONK (BOINK), NEWTEAR, SYNDROP. Все эти атаки закрываются одной "заплаткой".

BACKORIFICE

Данная атака не влечет за собой фатальных последствий типа "зависания" или перезагрузки, но способна вызвать существенную загрузку процессора и повышенный сетевой трафик. На сей раз объектом нападок стала реализация RPC-протокола в WINDOWS NT. Идея чрезвычайно проста: в 135-й порт посылается некая "левая" датаграмма с адресом отправителя, измененным на адрес другой NT-машины. Реакцией атакуемой машины будет посылка REJECT-пакета на подмененный адрес.

Другая NT-машина ответит не менее гневным REJECT-пакетом, после чего такой пинг-понг будет продолжаться некоторое время, до тех пор, пока неправильный пакет не будет уничтожен как устаревший. Понятно, что посылая совсем небольшой поток фальшивых датаграмм, можно практически парализовать работу сети и заставить компьютеры тратить значительную долю своих вычислительных ресурсов на обработку RPC-ошибок. Изощренный злодейский ум может легко додуматься до простой модификации метода, при которой на несколько компьютеров посылаются поддельные UDP-пакеты с одинаковым адресом отправителя. В этом случае пинг-понг превращается в массированную артиллерийскую атаку несчастной жертвы.

---------

135-й порт довольно давно зарекомендовал себя в качестве слабого места NT-платформы. Известна очень старая атака, заключавшаяся в посылке в этот порт нескольких строчек текста, что приводило к постоянной стопроцентной загрузке процессора. Спасал только перезапуск операционной системы. К счастью, эта "дырка" была закрыта в SERVICE PACK 3.

^ BOTNET and DDOS

Ботнет - это N-ое количество компьютеров зараженных специальным трояном, который объединяет этот компьютер и остальные зараженные компьютеры в одну единую сеть, которой управляет "хозяин". Бот - это компьютер, на котором установлена бот-программа, при помощи которой "хозяин" может управлять этим компьютером. Боты применяются чаще в хакерских целях, чем в вычислительных. В основном из зараженной машины бот-программа делает "DoS-зомби" которая подчиняется своими хозяину. Ботнетом можно управлять 3 видами: HTTP/IRC/MAIL. На сегодняшний день, самые популярные виды - это HTTP и IRC.

Некоторые боты-черви используют технологию самораспространения, благодаря нашумевшим дырам в Windows, например брешь в службе RPC. Боты способны сами распространяться по сети, заражая ежедневно тысячи компьютеров.

Существует множество "public" ботов которые может скачать любой желающий и создать свою бот-сеть. Вот обзор самых популярных паблик-ботов:

  • AgoBot - Пожалуй самый известный/лучший/с большими возможностями, такими как: DoS/Граббинг паролей/Стелс/Обход фаерволлов и множество других возможностей. К сожалению автор этого бота сейчас сидит в тюрьме, но исходники его творения ушли в сеть, и в данный момент насчитывается около 100(!!) модификация этого бота.

  • PhatBot - Нашумевшая модификация AgoBot'a с кучей возможностей, отличительная черта: самораспространение через баги в RPC, LSASS и т.п.

  • Rx-Bot - Достаточно новый бот, не уступающий возможностям AgoBot.

Итак, рассмотрим как работает ботнет, управляемый через IRC канал.

Во-первых нужно зарегистрировать канал, к которому будут подключаться компьютеры-зомби, ну а во вторых заражённые нашим ботом компьютеры. При подключении компьютера-зомби к интернету, программа-бот сразу же заходит на наш IRC-канал и ждёт команд, передаваемых хозяином. Вот основные команды, используемые в ботнетах:

cycle - уйти на N-кол-во времени с канала, а потом зайти. 
die – самоубийство.
execute [parameters] - запустить файл на компьютере жертвы.
download - скачать файл на комьютер-зомби. Очень полезно когда нужно затроянить всех зомби другим трояном или модификацией бота.
ping <# of pings>
- пинг хоста.
  1   2   3   4   5

Добавить документ в свой блог или на сайт

Похожие:

3. По условию начала осуществления воздействия iconТиповые входные воздействия
В соответствии с принципом суперпозиции и линейности достаточно изучить реакцию объектов на некоторые простые типовые входные воздействия....

3. По условию начала осуществления воздействия iconВоздействия нерегламентированные
Аварийная ситуация с объектом – сочетание условий и обстоятельств, создающих аварийные воздействия на объекты

3. По условию начала осуществления воздействия iconВопрос Философия, ее специфика и место в культуре
При этом целостное понимание мира предполагается в связи с включенностью в него человека не только в качестве продукта природной...

3. По условию начала осуществления воздействия iconАвтор: Л. Б. Емельянов-Ярославский Глава нейронно-энергетическая...
Рой находится автомат, и преобразуют их в воздействия на нейроны. Эффекторы воспринимают воздействия нейронов и преобразуют их в...

3. По условию начала осуществления воздействия iconВиды деятельности и сроки выполнения учебной работы
Инновационные формы образовательного воздействия (Театрализованные формы педагогического воздействия)

3. По условию начала осуществления воздействия iconE-mail
Цели, задачи, структура, условия и значение тренинга. Разновидности убеждающего воздействия. Продажи, как вариант убеждающего воздействия....

3. По условию начала осуществления воздействия iconКнига шарлатана «Психотерапия»
«Единой структуры воздействия». Предложенный им подход позволяет выделить и применить универсальные методы воздействия в самых разных...

3. По условию начала осуществления воздействия iconВопросы к экзамену по дисциплине «Основы менеджмента и маркетинга»
Внешняя среда в бизнесе. Среда прямого воздействия. Среда косвенного воздействия

3. По условию начала осуществления воздействия icon4 введение
Основной целью работы является изучение различных аспектов антропогенного воздействия на соленосную толщу и ее реакция на эти воздействия....

3. По условию начала осуществления воздействия iconОсновы менеджмента и маркетинга
Внешняя среда в бизнесе. Среда прямого воздействия. Среда косвенного воздействия

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница