- •Воронеж 2008
- •Воронеж 2008
- •Введение
- •1 Подбор пароля
- •1.1 Общие понятия парольной защиты
- •1.1.1 Парольная система
- •1.1.2 Методы подбора паролей
- •1.1.3 Методы количественной оценки стойкости паролей
- •1.2 Парольная защита операционных систем
- •1.2.1 Подбор паролей в ос Windows
- •1.2.1.1 База данных учетных записей пользователей
- •1.2.1.2 Хранение паролей пользователей
- •1.2.1.3 Использование пароля
- •1.2.1.4 Возможные атаки на базу данных sam
- •1.2.2 Подбор паролей в ос unix
- •1.3 Классификация и принцип работы программного обеспечения для подбора паролей
- •1.3.1 Подбор паролей в oc Windows
- •1.3.2 Подбор паролей в oc unix
- •1.3.3 Подбор паролей в архивах zip, rar и arj
- •1.3.4 Подбор паролей документов ms Office
- •1.3.5 Подбор паролей pdf документов
- •1.4 Противодействие подбору паролей
- •1.4.1 Требования к паролю
- •1.4.2 Правила назначения/изменения паролей
- •1.4.3 Требования к генерации паролей
- •1.4.4 Хранение пароля пользователем
- •1.4.5 Хранение паролей компьютерной системой
- •1.4.6 Противодействие попыткам подбора паролей
- •1.4.7 Защита Windows nt и Unix от подбора паролей
- •2.1.2 Протокол tcp
- •2.1.2.1 Функции протокола tcp
- •2.1.2.2 Базовая передача данных
- •2.1.2.3 Разделение каналов
- •2.1.2.4 Управление соединениями
- •2.1.2.5 Заголовок тср-сегмента
- •2.1.2.6 Состояния соединения
- •2.2 Основные методы, применяемые при сканировании портов
- •2.2.1 Методы сканирования tcp-портов
- •2.2.1.1 Методы открытого сканирования
- •2.2.1.1.1 Метод icmp-сканирования
- •2.2.1.1.2 Сканирование tcp-портов функцией connect()
- •2.2.1.1.3 Сканирование tcp-портов флагом syn
- •2.2.1.1.4 Сканирование tcp-портов флагом fin
- •2.2.1.1.5 Сканирование с использованием ip-фрагментации
- •2.2.1.1.6 Сканирование tcp-портов методом reverse-ident (обратной идентификации)
- •2.2.1.1.7 Сканирование Xmas
- •2.2.1.1.8 Null сканирование
- •2.2.1.2 Методы "невидимого" удаленного сканирования
- •2.2.1.2.1 Скрытая атака по ftp
- •2.2.1.2.2 Сканирование через proxy-сервер
- •2.2.1.2.3 Скрытное сканирование портов через системы с уязвимой генерацией ip id
- •2.2.1.2.3.1 Исторические предпосылки
- •2.2.1.2.3.2 Описание базового метода ip id сканирования
- •2.2.1.2.3.3 Исследование правил и обход брандмауэра при сканировании
- •2.2.1.2.3.4 Сканирование машин с приватными адресами
- •2.2.1.2.3.5 Использование ip id при сканирование udp сервисов за брандмауэром
- •2.2.2 Методы сканирования udp-портов
- •2.2.2.1 Сканирование udp-портов проверкой icmp-сообщения «Порт недостижим»
- •2.2.2.2 Сканирование udp-портов с использованием функций recvfrom() и write()
- •2.3.1 Сканирование портов в ос семейства Windows
- •2.3.2 Сканирование портов в ос семейства Unix
- •2.4 Защита от сканирования портов
- •3 Анализ сетевого трафика
- •3.1 Анализ сетевого трафика сети Internet
- •3.1.1 Ложные arp-ответы
- •3.1.2 Навязывание ложного маршрутизатора
- •3.1.3 Атака при конфигурировании хоста
- •3.1.4 Атака на протоколы маршрутизации
- •3.2 Протокол telnet
- •3.2.1 Протокол ftp
- •3.2.3 Программы анализаторы сетевого трафика (сниффиры)
- •3.2.4 Принцип работы сниффира
- •3.3 Методы противодействия сниффирам
- •3.3.1 Протокол ssl
- •3.3.2 Протокол skip
- •3.3.3 Устройство обеспечения безопасности локальной сети skipBridge
- •4 Внедрение ложного доверенного объекта
- •4.1 Особенности атаки «Внедрение ложного доверенного объекта»
- •4.2 Внедрение ложного объекта путем использования недостатков алгоритмов удаленного поиска
- •4.2.1.1 Протокол arp и алгоритм его работы
- •4.2.1.2 Техника выполнения arp-spoofing
- •4.2.1.3 Методы обнаружения
- •4.2.1.4 Методы противодействия
- •4.2.2.1 Принцип работы Domain Name System
- •4.2.2.2 Внедрение dns-сервера путем перехвата dns-запроса
- •4.2.2.3 «Шторм» ложных dns ответов на атакуемый хост
- •4.2.2.4 Перехват dns-запроса или создание направленного «шторма» ложных dns-ответов непосредственно на атакуемый dns-сервер
- •4.2.2.5 Обнаружение и защита от внедрения ложного dns-сервера
- •4.3.1.2 Внедрение ложного доверенного объекта путем навязывания ложного маршрута с помощью протокола icmp
- •4.3.1.3 Обнаружение и методы противодействия
- •5 Отказ в обслуживании
- •5.1 Модель DoS атаки
- •5.1.1 Отказ в обслуживании (DoS)
- •5.1.2 Распределенный отказ в обслуживании (dDoS)
- •5.2.1.1 Описание утилиты для реализации icmp – флуда и атаки Smurf
- •5.2.1.2 Реализация атаки icmp-flooding, на основе отправки icmp-пакетов
- •5.2.1.3 Реализация атаки Smurf
- •5.2.3 Низкоскоростные dos-атаки
- •5.2.3.1 Механизм таймаута tcp-стека
- •5.2.3.2 Моделирование и реализация атаки
- •5.2.3.2.1 Минимальная скорость DoS-атаки
- •5.2.3.3 Многопоточность и синхронизация потоков
- •5.2.3.5 Атаки в сети интернет
- •5.2.4 Syn атака
- •5.3 Анализ средств и методов сетевой защиты
- •5.3.1 Настройка tcp/ip стека
- •5.3.4 Межсетевые экраны (FireWall)
- •5.3.5 Системы обнаружения атак (ids)
- •5.3.6 Система Sink Holes
- •Заключение
- •Список информационных источников
- •394026 Воронеж, Московский просп., 14
5.2.3 Низкоскоростные dos-атаки
Управление полосы пропускания в TCP осуществляется на 2-х временных шкалах. На малой временной шкале отметки времени прохождения пакетов по каналу связи до адресата и обратно (RTT), обычно от 10 до 100 миллисекунд, TCP-стек использует аддитивно-увеличительное мультипликативно-уменьшительное (в оригинале additive-increase multiplicative-decrease) управление (AIMD), передача каждого потока трафика на одинаковых скоростях через самое узкое место, так называемое «бутылочное горлышко». Когда канал связи начинает «забиваться», возникает большое количество потерь, TCP-стек начинает работать по 2-й, большей временной шкале с отметками таймаутов повторной передачи пакетов (RTO, рекомендованное минимальное значение 1 секунда). Что бы избежать «забивания» канала, поток трафика уменьшается до одного пакета и по прошествии времени RTO пакет пересылается заново. При последующих потерях, время RTO удваивается с каждым следующим таймаутом. В случае удачного получения пакета, TCP-стек начинает использовать AIMD-управление.
Для проведения низкоскоростной DoS-атаки будут использованы потоки трафика в виде импульсов и рассмотрены периодические импульсные «землеройные» атаки, состоящие из коротких со специально подобранной длительностью пиков, повторяющихся с определенной, специально выбранной, частотой по медленной временной шкале.
Рассмотрим первый поток TCP-трафика. Если общий трафик (DoS-атаки и обычный) в течение пика достаточен, чтобы произошли потери пакетов, то этот поток «отвалится» по тайм-ауту и будет произведена попытка отправить новый пакет по прошествии времени RTO. В случае если периодичность посылки DoS-трафика совпадает (даже примерно) с RTO нормального трафика, обычный трафик будет постоянно получать таймаут, как следствие, потери будут приближаться к 100% и пропускная способность приблизится к нулю. Кроме того, если период DoS-посылок примерно равен, но лежит вне диапазона RTO, то будет наблюдаться существенное (но не полное) снижение полосы пропускания. Как следствие, в основе «землеройных» атак лежат посылки пакетов с нулевой частотой (относительно шкалы RTO), что делает их сложными для обнаружения.
В упрощенной модели с разнотипными RTT и объединенными потоками, разделяющими «бутылочное горлышко» получается выражение для полосы пропускания, остающейся «атакованному» трафику, как функцию от временной шкалы трафика DoS и среднюю скорость трафика DoS-атаки. Кроме того, получим «оптимальные» образцы трафика DoS-атак (двухуровневая периодичная квадратная волна или, проще, двухуровневые импульсные пики), минимизирующие полосу пропускания, для указанного уровня TCP, атакуемого, включая сведение полосы пропускания к нулю.
5.2.3.1 Механизм таймаута tcp-стека
В механизме TCP-reno пакет считается, потерян при следующих условиях: неполучении ACK или при получении 3-х дубликатов ACK. Если потеря пакета произошла и получено меньше 3-х дубликатов ACK, стек ждет окончания срока RTO, уменьшает количество пакетов в потоке до одного и отправляет его повторно.
Выбор значений таймаута лежит между 2-я пределами: если установлено слишком малое значение, тогда будут иметь место ложные повторные передачи из-за того, что пакеты будут считаться потерянными вследствие позднего принятия ACK. Аналогично, при установке большого времени, поток трафика будет ждать необоснованно долго разрешения прохода или повторной передачи в канале.
Стек TCP приближается к максимальной пропускной способности при существовании нижней границы RTO в 1 секунду. Эксперимент показал, что все потоки трафика должны иметь минимальное значение RTT равное 1 секунде, только при таких условиях достигается максимальная производительность передачи. Для выбора значения RTT отправитель TCP-пакета должен оперировать двумя переменными: SRTT (усредненное время прохождения пакетов по каналу связи до адресата и обратно, smoothed round-trip time) и RTTVAR (колебание времени прохождения пакетов по каналу связи до адресата и обратно, roundtrip time variation). Правила вычисления SRTT, RTTVAR и RTO следующие: пока измерение RTT не было сделано (т.е. не был отправлен ни один пакет), отправитель устанавливает RTO равным 3 секундам. Далее, когда сделано первое измерение (назовем его R) RTT, хост устанавливает
SRTT = R1
RTTVAR = (R1)/2
RTO = SRTT+max(G,4RTTVAR)
где G — степень дискретности (системных) часов (обычно меньше 100 мсек). При вычислении последующего RTT (R) хост устанавливает
RTTVAR = (1-β)*RTTVAR+ β*(SRTT- R)
SRTT = (1-α)*SRTT+αR
Где α = 1/8, β = 1/4. Комбинируя эти два выражения, хост-отправитель устанавливает значение RTO, исходя из следующей формулы:
RTO = max(minRTO, SRTT + max(G, 4RTTVAR))
Рисунок 5.14 - Поведение таймера повторной передачи пакетов
Рассмотрим управление переменной RTO на графике таймера повторной передачи пакетов (рисунок 5.14). Предположим, что пакет с последовательностью n отправлен в начале отсчета времени t=0 и таймер повторной передачи пакетов установлен в 1 сек в начале передачи. В случае потери пакета n и если адресатом принято менее 3-х одинаковых ACK, поток трафика "получает таймаут" по прошествию времени t=1 секунде. В этот момент отправитель входит в стадию экспоненциальной задержки: уменьшает поток трафика до одного пакета, удваивает значение RTO до 2-х секунд, передает пакет, на который не был получен ACK с последовательностью n и устанавливает новое значение для RTO (2 сек.). В случае повторной потери пакета (не отображено на рисунок 5.14), экспоненциальная задержка продолжается — отправитель ждет 2 секунды (пока истечет таймер). В момент времени t=3 секунды отправитель снова удваивает значение RTO до 4-х секунд и повторяет процесс.
Вариация, если пакет n удачно передан во второй раз: в момент времени t=1 секунде, как и показано на рисунок 5.14, ACK пакета n прибывает к отправителю в момент времени t=1+RTT. Отправитель выходит из экспоненциальной задержки и начинает "медленный старт", удваивая количество отправляемых пакетов, т.е. отправляет пакеты n+1 и n+2 и устанавливает значение таймера повторной передачи в текущее значение RTO (2 сек). Если эти два пакета не потеряны, подтверждение их принятия пришло в момент времени t=1+2*RTT, рассчитываются переменные SRTT, RTTVAR и RTO по формулам, указанным выше. При условии, что minRTO > SRTT+max(G,4RTTVAR) значение RTO снова устанавливается в 1 сек. В приведенном сценарии поток «отваливается» по таймауту, но отклонения значений RTO происходит в пределах от minRTO до RTT для времени t>minRTO+2RTT.