
- •Безопасность системы протоколов интернет
- •1.1 Безопасность сетей на базе tcpip
- •5. Протоколы семейства ip
- •5.1 Активные атаки на уровне tcp
- •5.2 Описание
- •5.3 Детектирование и защита
- •5.5 Ранняя десинхронизация
- •5.6 Десинхронизация нулевыми данными
- •5.7 Детектирование и защита
- •5.8 Пассивное сканирование
- •5.9 Затопление icmp-пакетами
- •5.10 Локальная буря
- •5.11 Затопление syn-пакетами
- •6.1 Что лучше?
- •6.2 Атаки на udp
- •6.3 Протокол tcp
- •Примеры соединения:
- •6.4 Атака Syn-Flood
- •6.4.1 Защита от атаки syn-Flood
- •6.5 Буря tcp ack
- •6.6 Организация сеанса (атаки)
- •6.7 Упреждающая десинхронизация
- •6.8 Десинхронизация бессмысленными данными
- •6.9 Детектирование атак и побочные эффекты
- •6.10 Атака Митника
- •6.10.1 Предотвращение атак
- •6.11 Сравнение с атакой Морриса
- •6.12 Заключение
- •7.1 Icmp-сообщение
- •7.2 Технические подробности
- •7.3 Использование icmp-протокола для атак
- •7.4 Использование icmp-сообщений
- •7.5 Список типов сообщений
- •7.6 Правила генерации icmp-пакетов
- •8 Список використаної літератури
5.11 Затопление syn-пакетами
Пожалуй, затопление SYN-пакетами ("SYN flooding") - самый известный способ напакостить ближнему, с того времени, как хакерский электронный журнал "2600" опубликовал исходные тексты программы, позволяющие занятьсе этим даже неквалифицированным пользователям. Следует заметить, что впервые эта атака была упомянута еще в 1986 году все тем же Робертом Т. Моррисом. Вспомним, как работает TCP/IP в случае входящих соединений. Система отвечает на пришедший C-SYN-пакет S-SYN/C-ACK-пакетом, переводит сессию в состояние SYN_RECEIVED и заносит ее в очередь. Если в течении заданного времени от клиента не придет S-ACK, соединение удаляется из очереди, в противном случае соединение переводится в состояние ESTABLISHED. Рассмотрим случай, когда очередь входных соединений уже заполнена, а система получает SYN-пакет, приглашающий к установке соединения. По RFC он будет молча проигнорирован. Затопление SYN-пакетами основано на переполнении очереди сервера, после чего сервер перестает отвечать на запросы пользователей. Самая известная атака такого рода - атака на Panix, нью-йоркского провайдера. Panix не работал в течении 2-х недель. В различных системах работа с очередью реализована по разному. Так, в BSD-системах, каждый порт имеет свою собственную очередь размером в 16 элементов. В системах SunOS, напротив, такого разделения и нет и система просто располагает большой общей очередью. Соответственно, для того, что бы заблокировать, к примеру, WWW-порт на BSD достаточно 16 SYN-пакетов, а для Solaris 2.5 их количество будет гораздо больше. После истечение некоторого времени (зависит от реализации) система удаляет запросы из очереди. Однако ничего не мешает крэкеру послать новую порцию запросов. Таким образом, даже находясь на соединение 2400 bps, крэкер может посылать каждые полторы минуты по 20-30 пакетов на FreeBSD-сервер, поддерживая его в нерабочем состоянии (естественно, эта ошибка была скорректирована в последних версиях FreeBSD). Как обычно, крэкер может воспользоваться случайными обратными IP-адресами при формировании пакетов, что затрудняет его обнаружение и фильтрацию его трафика. Детектирование несложно -- большое количество соединений в состоянии SYN_RECEIVED, игнорирование попыток соединится с данным портом. В качестве защиты можно порекомендовать патчи, которые реализуют автоматическое "прорежение" очереди, например, на основе алгоритма Early Random Drop. Для того, что бы узнать, если к Вашей системе защита от SYN-затопления, обратитесь к поставщику системы. Другой вариант защиты - настроить firewall так, что бы все входящие TCP/IP-соединения устанавливал он сам, и только после этого перебрасывал их внутрь сети на заданную машину. Это позволит Вам ограничить SYN-затопление и не пропустить его внутрь сети.
6 User Datagram Protocol
дословный перевод [протокол дайтограмм пользователя], он предназначен для передачи данных между прикладными процессами и обменом дейтаграммами между компьютерами входящими в единую сеть.
Биты |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
320 |
121 |
122 |
223 |
224 |
225 |
226 |
227 |
128 |
129 |
130 |
231 |
|
|
0-31 |
Порт отправителя (Source port) |
Порт получателя (Destination port) |
||||||||||||||||||||||||||||||||
32-63 |
Длина датаграммы (Length) |
Контрольная сумма (Checksum) |
||||||||||||||||||||||||||||||||
64-... |
Данные (Data) |
Длина пакета в UDP измеряется в октетах, дейтаграммы пользователя включают заголовок и данные. Это означает, что минимальная величина длины четыре байта. Протокол UDP является транспортным и он не устанавливает логического соединения, а также не упорядочивает пакеты данных. То есть пакеты могут прийти не в том порядке в котором они были отправлены и UDP не обеспечивает достоверность доставки пакетов. Но данные, отправляемые через модуль UDP, достигают места назначения как единое целое. Главная особенность UDP заключается в том, что он сохраняет границы сообщений и никогда не объединяет несколько сообщений в одно. Взаимодействие между процессами и модулем UDP осуществляется через UDP-порты. Адресом назначения является номер порта прикладного сервиса. В протоколе так же используется IP который является адресом узла . У UDP так же как и у TCP существуют зарезервированные порты. Присвоением сервисам собственных номеров занимается организация IANA (Internet Assigned Numbers Authority). Всего в UDP используется от 0 до 65535 портов. При этом от 0 до 1023 главные порты, от 1024 до 49151 порты выделенные под крупные проекты и частные порты, от 49152 до 65535 предусмотрены для любого программиста который захочет использовать данный протокол.
Вот список от 1 до 20 портов из списка номеров портов от организации IANA: Порт Описание 1 TCP Port Service Multiplexer 2 Management Utility 3 Compression Process 4 Unassigned 5 Remote Job Entry 6 Unassigned 7 Echo 8 Unassigned 9 Discard 10 Unassigned 11 Active Users 12 Unassigned 13 Daytime (RFC 867) 14 Unassigned 15 Unassigned 16 Unassigned 17 Quote of the Day 18 Message Send Protocol 19 Character Generator 20 File Transfer [Default Data] Подробную информацию смотри в RCF IANA Так же есть возможность локально присвоить номер порта. Для этого необходимо приложение связать с доступом и при этом выбрать любое число, но при этом необходимо помнить о том что существуют уже зарезервированные порты. Преимущество протокола UDP состоит в том, что он позволяет прикладным программам отправлять сообщения другим приложениям используя минимальное количество параметров протокола.