безопасность


Некоторые разновидности сетевых атак. Коротко о главном

Окончание. Начало в КГ №41.

Атаки типа отказа в обслуживании (DoS) и распределенного отказа в обслуживании (DDoS) на сегодняшний день являются одними из самых опасных с точки зрения последствий. Посудите сами: крупный обслуживающий банковский сервер, который на некоторое время (пусть даже на полчаса) приостановил свою работу, — это убытки, исчисляемые десятками и даже сотнями тысячами долларов. А каковы будут убытки, если сервер замолчит на сутки?.. Данный вид атаки в большинстве случаев не требует сверхусилий со стороны атакующего, и поэтому доступен многим из тех, кому это надо. Чем же принципиально отличаются DoS и DDoS от других сетевых атак? Наверное, тем, что цели таких атак не сводятся к получению тотального доступа к вашей сети или разведыванию какой-либо конфиденциальной информации. Нападения подобного рода в первую очередь используются для подрыва нормального функционала системы за счет обработки пакетов или траты системных ресурсов. Подобные нападения имеют следующие разновидности: UDP flood — представляет собой атаку, при которой на определенный адрес системы-мишени осуществляется отправка множества пакетов UDP (User Datagram Protocol — дополнительный компонент протокола TCP, поддерживающий выполняющуюся без подключений службу датаграмм, не гарантирующую ни доставку, ни правильную последовательность доставленных пакетов). В настоящее время вышеописанный вид атак применяется все реже: особенностью UDP-флудеров является возможность их легкого обнаружения, что связано с отсутствием шифрования протоколов TCP и UDP на уровне взаимодействия управляющего атакой и машинами-зомби.

ICMP flood — атака посредством ICMP-протокола (Internet Control Message Protocol — обязательный управляющий протокол в наборе протоколов TCP/IP, сообщающий об ошибках и обеспечивающий связи между узлами сети. Протокол ICMP используется программой Ping для обнаружения и устранения неполадок TCP/IP).

Продолжая экскурс по ICMP, более чем уместно упомянуть о т.н. атаке Smurf — атаке, представляющей собой пинг-запросы ICMP по адресу направленной широковещательной рассылки с использованием в пакетах этого запроса фальшивого адреса источника. В основе Smurf-атаки стоит использование Smurf-ping-запросов по адресу направленной широковещательной рассылки. Используемый в пакетах этого запроса фальсифицированный адрес источника совпадает с адресом атакуемого. Системы, получившие направленный широковещательный ping-запрос, как им и положено, исправно на него отвечают, естественно, тому, от кого пришел запрос;). Результатом такого ответа является затопление атакуемого большим количеством сетевых пакетов, что в конечном счете приводит к отказу в обслуживании.

TCP SYN Flood имеет место в случае, если клиент пытается установить TCP-соединение с сервером, что требует обмена определенной последовательностью сообщений. Сначала клиентская система посылает SYN-пакет на сервер, после чего сервер подтверждает получение SYN-пакета, отсылая SYN-ACK-сообщение клиенту. Затем клиент завершает установку соединения, отвечая сообщением ACK, и затем снова должен произойти обмен данными. В точке, где система сервера послала подтверждение (SYN-ACK) назад клиенту, но еще не получила сообщения ACK, устанавливается полуоткрытое соединение. «Фишка» в том, что параметры, касающиеся всех ждущих обработки соединений, располагаются в оперативной памяти сервера, которая не безразмерна, разумеется. Если преднамеренно создать большое число частично открытых cоединений, то память переполнится, и система подвисает…

Атаки Ping of Death заставляют системы реагировать непредсказуемым образом при получении слишком больших IP-пакетов. TCP/IP поддерживает максимальный размер пакета в 65 Кб (как минимум 20 байт информации в IP-заголовке, некоторое количество дополнительной информации и остальная часть пакета, содержащая основные данные). Атаки Ping of Death могут вызвать крушение, зависание и перезагрузку системы.

Пример: команда PING -l 65527 -s 1 hostname на NT 3.51 приведет к "синему экрану" со следующим сообщением:
STOP: 0X0000001E
KMODE_EXCEPTION_NOT_HANDLED — TCPIP.SYS
-ИЛИ-
STOP: 0x0000000A
IRQL_NOT_LESS_OR_EQUAL — TCPIP.SYS

Tribe Flood Network (TFN) и Tribe Flood Network 2000 (TFN2K) являются распределенными инструментальными средствами, обычно запускающими скоординированные DoS-атаки из многих источников на одну или несколько целей. Использование TFN-атаки дает возможность генерировать пакеты с фальшивыми IP-адресами источника. Механизм атаки приблизительно таков: злонамеренный пользователь посылает с главного компьютера команды нападения на список TFN-серверов или демонов. Затем демоны генерируют указанный тип DoS-атаки на один или несколько IP-адресов жертв. IP-адреса и порты источника атаки могут изменяться совершенно случайным образом, могут изменяться и размеры пакетов.

Высокая эффективность современных DDOS-атак достигается путем модификации и комбинирования отдельных ее видов. Уже упомянутые TFN и TFN2K позволяют одновременно инициировать атаки нескольких типов: Smurf, UDP flood, ICMP flood и TCP SYN flood, — что делает их мощным инструментом для подобных задач. Пересылка команд и параметров при этом умело замаскирована в передаваемых данных — чтобы не вызвать подозрений у защитного ПО. Как средства организации распределенных атак TFN и TFN2K относительно сложны и требуют от атакующего намного более высокой квалификации, но и практическая эффективность их намного выше.

Ярчайшим представителем средств организации DoS-атак нового поколения является Stacheldraht. Stacheldraht (по-немецки — «колючая проволока») объединяет в себе особенности некоторых DoS-атак включая TFN, шифрование связи между нападающим и главными серверами Stacheldraht и автоматическое обновление агентов. Начальный этап атаки включает активное массированное проникновение в большое количество систем для последующего их использования при атаке. Затем следует заключительный этап, в ходе которого «порабощенные» системы используются для атаки на один или несколько объектов.

Атаки IP spoofing (подмена IP-адресов) имеет место в случае, если атакующий внутри сети или за ее пределами путем подмены истинного IP- адреса выдает себя за компьютер из доверенной зоны. IP spoofing является необходимым инструментом при проведении начального этапа большинства сетевых атак. В каких случаях чаще всего применяются атаки подобного рода? IP spoofing часто используется в случае проведения DoS-атак для сокрытия реального адреса атакующих. Вторым амплуа данного вида сетевых атак можно считать его использование для обхода систем типа FireWall. Каким образом? На начальном этапе атаки (подготовительный этап) производится поиск доверенных машин: сканируется внешняя подсеть атакуемой машины и выявляются потенциальные доверенные адреса. Возможна и автоматизация процесса с использованием специализированного софта вроде Nmap. Используя эту утилиту, можно узнать, какому адресу доверяет подопытный сервер.

Атаки MAC spoofing. Применяется для фальсификации MAC-адреса. Остановимся на технологии поподробнее. Немного теории: стек TCP/IP-протоколов имеет пятиуровневую структуру: первый — уровень приложений, второй — транспортный, третий — сетевой, четвертый — канальный, и, наконец, пятый — физический — уровень взаимодействия оборудования. Самым низшим уровнем передачи данных является пятый (уровень взаимодействия оборудования). Так вот, в пределах локальной сети каждая сетевая карта маркируется уникальным MAC-адресом — 12-значным шестнадцатеричным числом. Прежде чем отправить пакет в локальную сеть, драйвер сетевой карты определяет по IP-адресу точки назначения физический адрес сетевой карты компьютера адресата и помечает пакет соответствующим MAC. На принимающей стороне сетевая карта, получившая пакет со своим MAC-адресом, пропускает его, направляя по цепочке: драйвер/ОС/приложение. Взаимодействие машин в сети на физическом уровне обслуживается протоколом ARP, который представляет собой протокол из набора протоколов TCP/IP, обеспечивающий сопоставление IP-адресов адресам MAC для пакетов IP. В случае, если машина отправляет пакет в пределах подсети, то для сопоставления и привязки MAC/IP служит ARP-таблица. При отсутствии записей в ARP-таблице в ход идут данные ARP- кэша. И только в крайнем случае, когда данные нигде не найдены, осуществляется широковещательный ARP-запрос по адресу ff:ff:ff:ff:ff:ff (значит, всем). Особенности протокола ARP таковы, что возможна практически беспрепятственная подмена истинных соответствий в ARP-хэше. Как? Просто: протокол ARP не требует аутентификации, так что достаточно послать жертве ложный ARP-пакет, в котором подменено соответствие IP/MAC (чужой IP, наш MAC). Результатом такого действия станет принудительное обновление ARP-кэша жертвы фальсифицированными данными. Для отправки подобных хитрых пакетов существует специализированный софт, автоматизирующий весь процесс и сводящий действия пользователя к минимуму.

Password attacks (атаки для взлома паролей) могут использовать различные методы: интеллектуальный взлом, словарные атаки, а также систему автоматического подбора всех возможных комбинаций знаков — «лобовая атака» или Brute-Force — так называемый грубый перебор паролей. Брутфорс- атаки имеют место в случае, если существует потенциальная возможность множественных попыток аутентификации: e-mail-ящики, ftp-аккаунты, SAM- файлы, pwl-файлы, UIN'ы и т.д. В ходе атаки последовательно перебираются все возможные комбинации символов, сочетание которых может оказаться верным. Процесс такого перебора автоматизирован и осуществляется при помощи специализированного софта. Чтобы повысить уровень безопасности и обезопасить себя от вышеуказанных атак, следует использовать надежные пароли. Что это значит? Надежный пароль должен отвечать следующим требованиям:

. Пароль должен состоять не менее чем из семи знаков. Наиболее надежные пароли состоят из 7 или 14 знаков. Причиной надежности таких паролей является способ кодировки (справедливо для хэшей паролей).
. Пароль должен содержать знаки, относящиеся к каждой из следующих трех групп. Это буквы (прописные и строчные) A, B, C... (или a, b, c...), цифры, символы (все знаки, не являющиеся буквами или цифрами) ` ~ ! @ # $ % ^ & * ( ) _ + — = { } | [ ] \ : " ; ' < > ? , . /. . Пароль должен содержать не менее одного символа в позициях со второй по шестую.
. Пароль должен значительно отличаться от паролей, использовавшихся ранее.
. Пароль не должен содержать фамилии или имени пользователя.
. В качестве пароля нельзя использовать распространенное слово или имя.

Сетевой снифинг представляет собой разновидность сетевой атаки, смысл которой заключается в перехвате всех пакетов, «гуляющих» по сети. Подобный тип атак осуществляют посредством специализированного софта — сниферов. Применение пакетных сниферов не ограничено перехватом паролей и другой чувствительной информации: прежде всего сетевые сниферы используют в диагностических целях для анализа трафика и поиска причин неисправности сети. Следует обратить особое внимание на то, что многие сетевые протоколы не предусматривают какое-либо шифрование, а это значит лишь то, что злоумышленник, перехватив такой пакет, получит критическую информацию сразу, не утруждая себя взломом. Примером таких протоколов являются telnet, FTP, SMTP, POP3 и др. Почему же все-таки возможен перехват пакетов? Ведь, по идее, каждый отправленный пакет в своем заголовке содержит MAC-адрес получателя. Машина, получившая такой пакет, анализирует MAC-адрес со своим и при удачном стечении обстоятельств обрабатывает пакет.

Из вышесказанного напрашивается вопрос: что мешает остальным компьютерам в сети получить этот пакет? Практически ничто. Все, что необходимо — это перевести сетевую карту в т.н. promiscuous-режим, чтобы отключить фильтрацию чужих сообщений. Как? Просто: с помощью мало-мальски приличного снифера. Все вышесказанное справедливо для локальных сетей, построенных на основе хабов, т.е. там, где пакеты передаются по принципу "лови кто хочет". Возможно ли такое в сетях, построенных на свитчах? Да. Возможно. Для обмана коммутируемых маршрутизаторов типа свитч возможно применение технологии ARP Cache poisoning, основанной на «отравлении» ARP-кэша жертвы. Для обнаружения пассивных сниферов, используемых в некоммутируемых локальных сетях, можно использовать следующий софт, который «палит» promiscuous-режим. Прежде всего это AntiSniff (www.l0pht.com/antisniff/), Check Promiscuous Mode ( сайт ) и sentinel (www.packetfactory.net/Projects/sentinel/). Для обнаружения активных сниферов, т.е. тех, которые используют технологию ARP-poisoning, вполне подойдут следующие утилиты, обнаруживающие аномальный ARP-трафик: arpwatch ( сайт ) и remote arpwatch (www.raccoon.kiev.ua/projects/remarp/).



Бойцев О.М., boyscout_zone@mail.ru

© компьютерная газета