Протоколы транспортного уровня TCP и UDP
Цель
Задачи
TCP (Transmission Control Protocol) — Протокол с установлением соединения
Ключевые свойства и механизмы TCP
Процесс "Трехстороннего рукопожатия"
Завершение соединения и слоты состояний
UDP (User Datagram Protocol) — Протокол без установления соединения
Ключевые свойства и философия UDP
Сравнительная таблица
Анализ уязвимостей и атак на транспортном уровне
Уязвимости, присущие архитектуре TCP
Атака SYN Flood
Методы защиты от SYN Flood
Вопросы для самопроверки
79.04K
Категория: ИнтернетИнтернет

Лекция №19 TCP и UDP

1. Протоколы транспортного уровня TCP и UDP

2. Цель

Сравнить архитектурные принципы TCP и UDP,
проанализировать их врожденные уязвимости и
изучить основные классы атак, эксплуатирующие
эти уязвимости.

3. Задачи

• Изучить механизмы установления соединения,
надежной доставки и управления потоком в TCP.
• Понять принцип работы без установления
соединения в UDP.
• Провести сравнительный анализ свойств TCP и UDP
с точки зрения безопасности.
• Изучить механизм и последствия атаки SYN Flood
и методов защиты от нее.

4. TCP (Transmission Control Protocol) — Протокол с установлением соединения

5. Ключевые свойства и механизмы TCP

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

6. Процесс "Трехстороннего рукопожатия"

Процесс "Трехстороннего
рукопожатия"
Синхронизация номеров последовательности и
подтверждение готовности к обмену данными.
• SYN: Клиент отправляет сегмент с флагом SYN=1 и
случайным начальным номером последовательности
(Sequence Number = ISN_c).
• SYN-ACK: Сервер отвечает сегментом с флагами SYN=1 и
ACK=1. Указывает свой ISN_s и подтверждает получение
клиентского ISN (ACK = ISN_c + 1).
• ACK: Клиент отправляет подтверждение серверу (ACK =
ISN_s + 1).
Соединение установлено. Обе стороны знают номера
последовательностей друг друга.

7. Завершение соединения и слоты состояний

Аналогичное "рукопожатие" с флагами FIN
(Finish).
• Состояния TCP: Каждая сторона соединения
проходит через ряд состояний (LISTEN, SYN-SENT,
SYN-RECEIVED, ESTABLISHED, FIN-WAIT, CLOSEWAIT, etc.).
Атаки часто нацелены на переходные состояния,
где ресурсы системы наиболее уязвимы.

8. UDP (User Datagram Protocol) — Протокол без установления соединения

9. Ключевые свойства и философия UDP

• Без установления соединения: Нет фазы
"рукопожатия". Данные отправляются немедленно.
• Ненадежная доставка: Не гарантирует доставку,
целостность или порядок пакетов. Приложение
само должно заботиться об этом, если
необходимо.
• Отсутствие управления потоком и перегрузкой.
• Простота и низкие накладные расходы: Заголовок
всего 8 байт (против 20+ у TCP).

10. Сравнительная таблица

Критерий
TCP
UDP
Соединение
Установление соединения
(3 рукопожатия)
Без соединения
Надежность
Гарантированная
Не гарантирована
Упорядочивание
Гарантировано
Не гарантировано
Контроль потока
Есть (окно)
Нет
Накладные расходы
Высокие
Низкие
Примеры приложений
HTTP, HTTPS, FTP, SSH,
Email
DNS, DHCP, VoIP, SNMP,
видеостриминг

11. Анализ уязвимостей и атак на транспортном уровне

12. Уязвимости, присущие архитектуре TCP

• Самая большая уязвимость TCP — его сложность.
Поддержка состояний соединения требует
выделения ресурсов (памяти) на сервере.
• Исторически слабый генератор ISN позволял
подделать сегмент и "встроиться" в соединение.
• Протокол не проверяет, что IP-адрес отправителя
является настоящим.

13. Атака SYN Flood

Цель: Исчерпание ресурсов целевого сервера (отказ в
обслуживании, DoS).
• Механизм:
• Злоумышленник отправляет на сервер большое количество
SYN-запросов с подделанных IP-адресов.
• Сервер, следуя протоколу, для каждого запроса:
• Переводит соединение в состояние SYN-RECEIVED.
• Выделяет ресурсы (буфер, слот в таблице соединений).
• Отправляет ответ SYN-ACK на несуществующий или чужой IP-адрес.
• Третий шаг рукопожатия (ACK) никогда не приходит.
• Сервер ждет таймаута, но новые SYN-пакеты приходят
быстрее, чем истекают таймауты старых.
Результат: Таблица соединений сервера переполняется.
Он не может принимать новые легитимные соединения.

14. Методы защиты от SYN Flood

1. SYN Cookies: Основной современный метод.
• Как работает:
• Сервер вычисляет специальный хэш (cookie) на основе данных
запроса (IP, порты, секретный ключ).
• Это значение используется как ISN_s в SYN-ACK.
• Если легитимный клиент пришлет ACK, он вернет ISN_s + 1
(т.е., cookie + 1).
• Сервер проверяет это значение. Если оно верное, только
тогда выделяются ресурсы для соединения.
2. Увеличение размера очереди и уменьшение таймаута.
3. Использование систем обнаружения/предотвращения
вторжений (IDS/IPS).
4. Фильтрация на маршрутизаторе (RFC 2827):
Блокировка исходящих пакетов с исходным IP, не
принадлежащим вашей сети.

15. Вопросы для самопроверки

1. Почему атака SYN Flood неэффективна против
UDP-сервисов?
2. Опишите, как механизм SYN Cookies
предотвращает исчерпание ресурсов сервера во
время SYN Flood.
3. Какие преимущества и недостатки с точки зрения
безопасности у TCP по сравнению с UDP?
4. Почему для успешной атаки SYN Flood необходима
подмена IP-адреса отправителя?
5. Какое сетевое устройство (маршрутизатор,
фаервол) и как именно может помочь в борьбе с
English     Русский Правила