Транспортный уровень
IP, ICMP TCP, UDP TELNET, FTP, DNS, другие Канальный уровень Физический уровень Сетевой уровень Транспортный уровень Уровень соединения Уровень представления Уровень приложения Транспортный уровень в стеке TCP/IP
Протокол UDP Порт отправителя Порт получателя Длина Контрольная сумма Данные Работает без установления соединения Не обеспечивает достоверность передаваемых данных
Распределенные DoS-атаки ICMP или UDP-пакеты Наиболее известные реализации Trin00 TFN (TFN2K) Stacheldraft
Модель распределенной DoS-атаки Объект атаки Серверная часть Клиентская часть
Противодействие DoS-атакам Объект атаки Основная трудность – подмена адреса источника Блокировка на основе адреса источника НЕ ЭФФЕКТИВНА
Противодействие DoS-атакам Объект атаки Вариант 1. Блокировка по типу трафика Эффективна для служебного трафика (ICMP) ICMP
Противодействие DoS-атакам Объект атаки Вариант 2. Блокировка по адресу источника Эффективна в случае атаки с одного или нескольких узлов, если адреса не генерируется случайным образом
Противодействие DoS-атакам Объект атаки Вариант 3. Управление количеством трафика(floodgate) Эффективно против атаки SYNFlood Трафик (обычный и DoS-атака) Небольшая порция
Противодействие DoS-атакам Объект атаки Вариант 4. Анализ трафика и выборочная фильтрация Эффективно против атаки SYNFlood Проверка по различным критериям: Тип протокола TTL Порт источника Признаки, свойственные конкретному инструменту для проведения DoS-атаки
Атака UDP-DOS
Атака UDP Bomb Некорректный UDP-пакет Порт отправителя Порт получателя Длина Контрольная сумма Данные SunOS 4.1.3a1 или ниже
Протокол TCP Установление соединения Формирование сегментов Достоверная передача Техника «плавающего» окна
Формат ТСР пакета Source PortDestination Port Sequence Number Acknowlegement Number стр.67 Data ChecksumUrgent Pointer OptionsPadding Data Offset ReservedWindow URGURG ACKACK PSHPSH SYNSYN RSTRST FINFIN
Установление соединения Seq=100,Code Bits=Syn Ack=101, Seq=200, Code Bits=Syn+Ack Ack=201, Code Bits=Ack TCP ATCP B
Передача данных Seq=150,Ack=201,Code Bits=Syn+Ack Seq=300,Ack=151, Code Bits=Syn+Ack Seq=220,Ack=301, Code Bits=Syn+Ack TCP ATCP B Ack=221, Code Bits =Ack
Разрыв соединения Seq=X,Code Bits=Syn+Fin Ack=X+1, Code Bits=Ack Seq=Y, Code Bits=Fyn AB Ack=Y+1, Code Bits =Ack А разрывает полусоединение В продолжает посылать данные В разрывает полусоединение Data......
Сканирование портов Сканирующий узел (A) Сканируемый узел (B)
Сканирование (порт открыт) TCP Flags=Syn Сканирующий узел (A) Сканируемый узел (B) TCP Flags=Syn+Ack TCP Flags=Ack TCP Flags=Ack+Fin Соединение установлено
Сканирование TCP Flags=Syn TCP Flags=Ack+Rst Сканирующий узел (A) Сканируемый узел (B) порт закрыт
Полусканирование TCP Flags=Syn TCP Flags=Ack+Syn Сканирующий узел (A) Сканируемый узел (B) TCP Flags=Rst порт открыт
TCP Flags=Fyn TCP Flags=Ack+Rst Сканирующий узел (A) Сканируемый узел (B) Fin-сканирование порт закрыт
Fin-сканирование TCP Flags=Fyn Сканирующий узел (A) Сканируемый узел (B) порт открыт (кроме ОС Windows)
ACK-сканирование TCP Flags=Ack TCP Flags=Rst Сканирующий узел (A) Сканируемый узел (B) порт закрыт или не фильтруется
TCP Flags=Ack Сканирующий узел (A) Сканируемый узел (B) ACK-сканирование порт фильтруется
UDP-сканирование пустой UDP-пакет ICMP (Destination Unreachable) Сканирующий узел (A) Сканируемый узел (B) порт закрыт
пустой UDP-пакет Сканирующий узел (A) Сканируемый узел (B) UDP-сканирование порт открыт
Определение доступности узла Определение состояния порта (TCP/UDP) Идентификация ОС Поддержка различных методов сканирования Гибкая настройка Утилита Nmap
ICMP-запрос Сканирующий узел (A) Сканируемый узел (B) Последовательность работы Утилита Nmap TCP Flags=Ack, Port=80 Сканирование
Сканирование с разных адресов Утилита Nmap
Атака SYNFlood SYN SYN/ACK SYN SYN/ACK
Атака Land TCP-пакет (запрос на установление соединения) Source Address Destination Address PaddingOptions Source Port Destination Port Sequence Number
Разрыв соединения по RST Seq=150,Ack=201,Code Bits=Syn+Ack Seq=300,Ack=151, Code Bits=Syn+Ack AB RST+Seq
Разрыв соединения по FIN Seq=150,Ack=201,Code Bits=Syn+Ack Seq=300,Ack=151, Code Bits=Syn+Ack AB FIN+Seq+Ack
Установление соединения Ack=301,Code Bits=Ack Seq=300,Ack=151, Code Bits=Syn+Ack AB От имени А ? Seq=150, Code Bits=Syn
Подмена участника соединения Seq=150,Ack=201,Code Bits=Syn+Ack Seq=300,Ack=151, Code Bits=Syn+Ack AB Seq=220,Ack=301, Code Bits=Syn+Ack ?
Подмена участника соединения A B ? Окно приёма: SEQ1-SEQ2
Подмена участника соединения B ? Окно приёма: SEQ1-SEQ ,294,967,296 пакетов
Подмена участника соединения B ? Окно приёма: SEQ1-SEQ пакетов Реально пакетов Возможно
AB SYN Seq=ISN(Х) data…... Ack=ISN(Х)+1 SYNSeq=ISN(B) data…... ACK Подмена участника соединения Mail (25) ISN(B) !!!
A B Ack=ISN(Х)+1 Seq=ISN(B*+1) data…... ACK SYN Seq=ISN(Х) От имени А Ack=ISN(Х)+1 SYNSeq=ISN(B*) ACK ISN(B*+1) подбирается с нескольких попыток Подмена участника соединения
B Ack=ISN(Х)+1 Seq=ISN(B*+1) data…... ACK ISN(B*+1) подбирается с нескольких попыток Подмена участника соединения Сложность подбора зависит от ОС
Сложность подбора По данным исследования BindView Corporation
Практическая работа 11 Утилита Nmap
Испытание атаки «Подмена участника соединения» Узел преподавателя (Telnet-сервер) Клиент х Маршрутизатор Практическая работа 12