- •Воронеж 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
2.1.2.4 Управление соединениями
Соединение — это совокупность информации о состоянии потока данных, включающая сокеты, номера посланных, принятых и подтвержденных октетов, размеры окон.
Каждое соединение уникально идентифицируется в Интернете парой
сокетов. Процедура установления соединения происходит следующим образом (рисунок 2.2).
Предположим, узел А желает установить соединение с узлом В. Первый отправляемый из А в В TCP-сегмент не содержит полезных данных, а служит для установления соединения. В его заголовке (в поле Flags) установлен бит SYN, означающий запрос начала сеанса, и содержится ISN (Initial Sequence Number — начальный порядковый номер) — число, начиная с которого узел А будет нумеровать отправляемые октеты. В ответ на получение такого сегмента узел В откликается посылкой TCP сегмента, в заголовке которого установлен бит АСК, подтверждающий установление соединения для получения данных от узла А. Так как протокол TCP обеспечивает полнодуплексную передачу данных, то узел В в этом же сегменте устанавливает бит SYN, означающий запрос начала сеанса для передачи данных от В к А, и передает свой ISN. Полезных данных этот сегмент также не содержит. Третий TCP-сегмент в сеансе посылается из А в В в ответ на сегмент, полученный из В. Так как соединение А→В можно считать установленным (получено подтверждение от В), то узел А может включить в свой сегмент полезные данные, нумерация которых начинается с номера ISN(A)+1. Данные нумеруются по количеству отправленных октетов. В заголовке этого же сегмента узел А устанавливает бит АСК, подтверждающий установление связи В→А, что позволяет хосту В включить в свой следующий сегмент полезные данные для А.
Рисунок 2.2 - Установка ТСР-соединения
Сеанс обмена данными заканчивается процедурой закрытия соединения, которая аналогична процедуре установки, с той разницей, что вместо SYN для закрытия используется служебный бит FIN («данных для отправки больше не имею»), который устанавливается в заголовке последнего сегмента с данными, отправляемого узлом [30].
Аварийный разрыв соединения происходит при посылке одним участником соединения другому сегмента со служебным битом RST. В этом случае все недоставленные данные и управляющие структуры соединения немедленно уничтожаются, даже если второй участник не собирался завершать сеанс. RST-сегменты отправляются при возникновении нештатных ситуаций.
2.1.2.5 Заголовок тср-сегмента
TCP-сегмент состоит из заголовка и данных. Сегмент помещается в поле данных IP-датаграммы (рисунок 2.3). Заголовок ТСР-сегмента состоит из 32-разрядных слов и имеет переменную длину, зависящую от размера поля Options, но всегда кратную 32 битам. За заголовком непосредственно следуют данные — часть потока данных пользователя, передаваемая в данном сегменте.
Протокол TCP 21 1
Значения полей заголовка следующие.
Source Port (16 битов), Destination Port (16 битов) — номера портов процесса-отправителя и процесса-получателя соответственно [7].
Sequence Number (SN) (32 бита) — порядковый номер первого октета в поле данных сегмента среди всех октетов потока данных для текущего соединения, то есть если в сегменте пересылаются октеты с 2001 -го по 3000-й, то SN=2001. Если в заголовке сегмента установлен бит SYN(фаза установления соединения), то в поле SN записывается начальный номер (ISN). Номер первого октета данных, посылаемых после завершения фазы установления соединения, равен ISN+1. По достижении максимального значения (232-1) нумерация октетов продолжается с нуля — то есть происходит по циклу.
Даже если сегмент не несет данных, а предназначен только для подтверждения получения данных от собеседника, порядковый номер все равно указывается. В этом случае он равен номеру последнего отправленного октета данных, увеличенному на 1 (то есть, номеру первого октета в доступном окне).
Acknowledgment Number (ACK SN) (32 бита) — если установлен бит AСК, то это поле содержит порядковый номер октета, который отправитель данного сегмента желает получить. Это означает, что все предыдущие октеты (с номерами от ISN+1 до ACK SN-1 включительно) были успешно получены.
Data Offset (4 бита) — длина TCP-заголовка в 32-битных словах, Диапазон допустимых значений от 5 (минимальная длина заголовка, Поле Options отсутствует) до 15 (то есть 60 октетов) [30].
Reserved (6 битов) — зарезервировано; заполняется нулями.
Control Bits (6 битов) — управляющие биты; активным является положение «бит установлен». URG — поле срочного указателя (Urgent Pointer) задействовано; АСК — поле номера,подтверждения (Acknowledgment Sequence Number) задействовано; PSH — осуществить «проталкивание» — если модуль TCP получает сегмент с установленным флагом PSH, то он немедленно передает все данные из буфера приема процессу-получателю для обработки, даже если буфер не был заполнен; RST— сброс текущего соединения — при получении сегмента с установленным флагом RST соединение ликвидируется, недоставленные данные уничтожаются; SYN — запрос на установление соединения; FIN — нет больше данных для передачи.
Window (16 битов) — размер окна в октетах. Checksum (16 битов) — контрольная сумма; представляет из себя 16 битов, дополняющие биты в сумме всех 16-битовых слов сегмента (само поле контрольной суммы перед вычислением обнуляется). Контрольная сумма, кроме заголовка сегмента и поля данных, учитывает 96 битов псевдозаголовка, который ставится перед TCP заголовком для внутреннего употребления. Этот псевдозаголовок содержит IP-адрес отправителя (4 октета), IP-адрес получателя (4 октета), нулевой октет, 8-битное поле Protocol, аналогичное полю в IP-заголовке, и 16 битов длины TCP сегмента, измеренной в октетах (рисунок 2.4).
0 7 |
15 |
23 |
31 |
|
IP-адрес отправителя |
||||
IP-адрес получателя |
||||
0 |
Protocol(=6) |
Длина TCP-сегмента |
||
Заголовок TCP- сегмента |
Рисунок 2.4 - Псевдозаголовок TCP
Такой подход обеспечивает защиту протокола TCP от ошибшихся в маршруте сегментов. Информация для псевдозаголовка передается через интерфейс «Протокол TCP/сетевой уровень» в качестве аргументов или результатов запросов от протокола TCP к протоколу IP [29].
Urgent Pointer (16 битов) — используется для указания длины срочных данных (для обозначения срочных данных используется также термин ООВ — out of band, вне основного потока), которые размещаются в начале поля данных сегмента. Указывает смещение последнего октета со срочными данными относительно первого октета в сегменте. Например, в сегменте передаются октеты с 2001-го по 3000-й, при этом первые 100 октетов являются срочными данными, тогда Urgent Pointer= 100. Протокол TCP не определяет, как именно должны обрабатываться срочные данные, но предполагает, что прикладной процесс будет предпринимать усилия для их адекватной и быстрой обработки. Поле Urgent Pointer задействовано, если установлен флаг URG.
Options — поле переменной длины; может отсутствовать или содержать одну опцию или список опций, реализующих дополнительные услуги протокола TCP. Поле опций состоит из октета Kind (тип опции), за которым могут следовать октет Length (длина опции в октетах) и октеты с данными для опции. Максимальная длина поля Options равна 40 октетам.
Стандарт протокола TCP определяет три опции (типы 0, 1, 2).
Опции типов 0 и 1 (Конец списка опций и Нет операции соответственно) состоят из одного октета, содержащего значение типа опции. При обнаружении в списке опции Конец списка опций разбор опций прекращается, даже если длина заголовка сегмента (Data Offset) еще не исчерпана. Опция Нет операции может использоваться для выравнивания между опциями по границе 32 битов.
Опция типа 2 (Максимальный размер сегмента) состоит из 4 октетов: одного октета типа опции (значение равно 2), одного октета длины (значение равно 4) и двух октетов, содержащих максимальный размер сегмента, который способен получать TCP-модуль, отправивший сегмент с данной опцией (MSS — Maximum Segment Size). Предполагается, что отправитель опции устанавливает максимальный размер сегмента равным величине MTU сети, к которой он непосредственно подключен. Опцию следует использовать только в SYN-сегментах на этапе установления соединения [7].
Опция Дайджест MD5 (MD5 Signature) предназначена для защиты сегмента, в котором она находится, от искажения или фальсификации злоумышленником. Перед вычислением дайджеста отправитель добавляет к сегменту секретный ключ, а полученный результат помещает в поле данных опции. Сам секретный ключ по сети не передается. Оба участника соединения должны владеть одним и тем же секретным ключом. Приняв сегмент, получатель вычисляет дайджест так же, как это делал отправитель, и сравнивает полученный результат с тем, что прислал отправитель. Если результаты не совпадают, то сегмент считается фальсифицированным. Опция была разработана для защиты сообщений протокола BGP.
Padding — выравнивание заголовка по границе 32-битного слова, если список опций занимает нецелое число 32-битных слов. Поле Padding заполняется нулями.