5. Подмена одного из участников сетевого обмена в сети при использовании протокола tcp.
Протокол TCP (Transmission Control Protocol)является одним из базовых протоколов транспортного уровня сетиInternet.Этот протокол имеет возможность исправлять ошибки, которые могут возникнуть при передаче пакетов, и является протоколом с установлением логического соединения- виртуального канала. По этому каналу передаются и принимаются пакеты с регистрацией их последовательности, осуществляется управление потоком пакетов, организовывается повторная передача искаженных пакетов, а в конце сеанса- канал разрывается.При этом протокол TCPявляется единственным базовым протоколом из семействаTCP/IP,имеющим надежную систему идентификации пакетов. Именно поэтому протоколы прикладного уровня FTPиTELNET,предоставляющие пользователям удаленный доступ на хосты Internet,реализованы на базе протокола TCP.
Для идентификации пакета в TCP-заголовке существуют два 32-разрядных идентификатора, которые еще играют и роль счетчика пакетов. Первый идентификатор носит название Sequence Number,а второй-Acknowledgment Number.Также, нас будет интересовать поле, называемоеControl Bit.Это поле размером 6бит может содержать следующие командные биты (слева направо):
URG: Urgent Pointer field significant
ACK: Acknowledgment field significant
PSH: Push Function
RST: Reset the connection
SYN: Synchronize sequence numbers
FIN: No more data from sender
Рассмотрим схему создания TCP-соединения (виртуального TCP-канала). Предположим, что хосту А необходимо создать TCP-соединение с хостом В. Тогда А посылает на В следующий пакет:
1.А->В: SYN.ISSa
Это означает, что в посланном пакете установлен бит SYN (synchronize sequence number),а в поле Sequence Numberустановлено начальное 32-битное значение ISSa (Initial Sequence Number).
В отвечает:
2.В -> A: SYN, ACK, ISSb, ACK(ISSa+l)
В ответ на полученный от А запрос В отвечает сообщением, в котором установлен бит SYNи установлен бит ACK; в поле Sequence Numberхостом В устанавливается свое начальное значение счетчика — ISSb:поле Acknowledgment Numberсодержит значение ISSa,полученное в первом пакете от хоста А и увеличенное на единицу. А, завершая handshake,посылает:
3.А ->В: ACK, ISSa+1, ACK(ISSb+1 ) В этом пакете установлен бит ACK;поле Sequence Numberсодержит ISSa +1;поле Acknowledgment Numberсодержит значение ISSb+1.Посылкой этого пакета на хост В заканчивается трехступенчатый handshakeи TCP-соединение между хостами А и В установлено.
Далее, хост А может посылать пакеты с данными на хост В по только что созданному виртуальному TCP-каналу:
4.А ->В: ACK, tSSa+1, ACK(ISSb+l); DATA
Из рассмотренной выше схемы создания TCP-соединения становится ясно, что для формирования ложного TCP-пакета необходимо знание текущих для данного соединения 32-битных параметров: Sequence NumberиAcknowledgment Number.Возможная подмена TCP-пакета становится еще более важной, так как изучение протоколовFTPи TELNET,использующих TCP,показало, что проблема идентификации FTP и TELNET-пакетовцеликом возлагается данными протоколами на транспортный уровень, то есть, наTCP.Это означает, что атакующему достаточно, подобрав соответствующие текущие значения идентификаторов TCP-пакета для данного TCP-соединения (например, данное соединение может представлять собой FTPили TELNETподключение с доверенного хоста на сервер), послать пакет с любого хоста в сети Internetот имени одного из участников данного соединения (например, от имени клиента) и данный пакет будет воспринят как верный! Но это еще не все. Так как, FTPи TELNETне проверяют IP-адреса отправителей, от которых им приходят пакеты, то, в ответ на полученный ложный пакет, FTPили TELNETсервер отправит ответ на указанный в ложном пакете настоящий IP-адрес атакующего и в результате, атакующий начнет работу с FTPили TELNET сервером со своего IP-адреса, но с правами легально подключившегося пользователя, который, в свою очередь, потеряет связь с сервером из-за рассогласования счетчиков!
Итак, для осуществления описанной выше атаки необходимым и достаточным условием является знание двух текущих параметров SYNи АСК (не путать с контрольными битами!), идентифицирующих TCP-соединение. Рассмотрим возможные способы их получения. Во-первых, если атакующий находится в одном сегменте с целью атаки или через его сегмент проходит трафик интересующей цели, то задача получения значений SYNи АСК является тривиальной и решается путем анализа сетевого трафика. Наибольший интерес для нас представляют межсегментные атаки, когда атакующий и его цель находятся в разных сегментах сети. В этом случае задача получения значений SYNи АСК является не тривиальной.
Первый вопрос, который необходимо решить в этом случае, как операционная система формирует начальное значение SYN,называемое Initial Sequence Number?В описание протокола TCPв RFC 793рекомендуется увеличивать значение этого 32-битного счетчика на 1каждые 4микросекунды. Однако, это является только рекомендацией, поэтому в Berkeley-совместимых ядрах ОС UNIXзначение счетчика увеличивалось на 128каждую секунду и на 64для каждого нового соединения. Анализ исходных текстов ядра ОС Linuxпоказал, что значение SYNвычисляется данной ОС по следующей формуле:
(1) SYN = Msec +sec*1000000,гдеMsec-текущее время в микросекундахsec-текущее время в секундах, причем отсчет его идет от 1970года.
Следовательно, можно сделать общий вывод, что обычно в ОС значение Initial Sequence Numberвычисляется по следующей обобщенной формуле:
(2) SYN = a*Msec + b*sec,где а и b—некоторые коэффициенты, специфичные для данной ОС.
Итак, получить от операционной системы текущее ее значение SYNне составляет труда. Для этого достаточно послать запрос на создание TCP-соединения и в ответ ОС вернет нужное число. Далее, зная формулу, по которой вычисляется SYN,можно с той или иной степенью точности вычислить текущие временные параметры операционной системы, с помощью которых и получается значение SYN.В качестве примера, возьмем ОС Linux 1.2.8.Для этой ОС справедлива обобщенная формула (2),при а=1 иb=1000000.Тогда, получив в ответ на запрос значение SYN можно по формуле (1)вычислить значение Msec,приближенно равное SYN-sec* 1000000 + time/2,где time-это время, через которое пришел ответ на запрос. Узнать текущее значение secна удаленной ОС не составляет труда. Сложнее обстоит дело с параметром time/2,так как время прохождения пакета туда и обратно может не совпадать. Но, послав несколько запросов и получив ряд значений time можно определить степень точности вычисленного значенияMsec(например, с точностью до 1000мкс или до ЮОмкс). Соответственно, чем ближе цель атаки, тем выше степень точности определения значения Msec.
Теперь, определив параметры, необходимые для вычисления SYN,на операционных системах на сервере и предполагаемом клиенте, атакующий начинает следить за ОС сервера, ожидая подключения предполагаемого клиента. В тот момент времени, когда подключение произошло, атакующий может подсчитать возможный диапазон значений SYN, которыми обменялись при создании TCP-канала данные хосты. Так как атакующий может вычислить значения SYN только приближенно, то ему не избежать подбора нужных значений. Однако, если не проводить описанный выше анализ, то для перебора всех возможных значений SYNи АСК понадобилось бы послать 264пакетов, что не реально. В случае использования описанного выше анализа в зависимости от полученной степени точности потребуется послать значительно меньшее число пакетов. Например, если удалось вычислить значения SYNна операционных системах с точностью до1000 мкс, то достаточно послать всего1000*1000пакетов.
В заключение, рассмотрим ставшую уже классической удаленную атаку на г-службы, осуществление которой связано с описанными выше особенностями идентификацииTCP-пакетов.
- Сборник информационных материалов по курсу «Защита информации и информационная безопасность»
- Вопрос 1.
- Основные понятия безопасности компьютерных систем.
- Современные программные угрозы информационной безопасности.
- Компьютерные вирусы.
- Троянские кони (программные закладки).
- Средства нарушения безопасности компьютерных сетей
- Вопрос 2.
- Угроза раскрытия
- Угроза целостности
- Угроза отказа служб
- Субъекты, объекты и доступ
- Уровни безопасности, доверие и секретность
- Вопрос 3.
- Объектно-концептуальная модель рпс.
- Пространство отношений доступа к объектам вс.
- Использование понятия легитимности при построении модели безопасности вс.
- Вопрос 4. Классификация удаленных атак на компьютерные сети Понятие удаленной атаки
- Вопрос 5. Политики и модели безопасности
- Модели дискретного доступа
- Модели мандатного доступа
- Модель Белла и Лападула
- Удаленное чтение
- Доверенные субъекты
- Проблема системы z
- Модель системы безопасности с полным перекрытием
- Модели контроля целостности
- Модель понижения уровня субъекта
- Модель понижения уровня объекта
- Объединение моделей безопасности
- Проблемы контроля целостности ядра системы
- Вопросы 6 и 7. Методы анализа безопасности программного обеспечения.
- Контрольно-испытательные методы анализа безопасности по.
- Логико-аналитические методы анализа безопасности по.
- Вопрос 8. Анализ novell netware с точки зрения таксономии причин нарушения информационной безопасности
- Неправильное внедрение модели безопасности
- 1. Отсутствие подтверждения старого пароля при его смене.
- 2. Недостатки в реализации опций Intruder detection и Force periodic password changes.
- 3. Слабое значение идентификатора супервизора.
- 4. Право на создание файлов в каталоге sys:mail.
- 5. Ненадежность атрибута «только для выполнения».
- 6. Получение прав пользователя сервером очереди.
- 1. Возможность обращения хэш-функции
- 2. Атака с использованием сервера печати.
- 3. Использование состояния отсутствия информации.
- 1. Приведение базы данных связок в неработоспособное состояние.
- 2. Недостатки механизма подписи пакетов.
- 1. Передача нешифрованных паролей программой syscon.
- Ошибки в администрировании системы
- 1. Наличие права на запись в системный каталог
- 2. Наличие права на чтение sys:system
- Вопросы 9-10. Механизмы реализации основных типов удаленных атак
- 1. Анализ сетевого трафика.
- 6. Сетевой червь (worm).
- Вопрос 11. Удаленные атаки на ос novell netware 3.12
- 2. Ложный сервер сети Novell NetWare 3.12.
- Вопрос 13. Удаленные атаки на хосты internet
- 1. Исследование сетевого трафика сети Internet.
- 2. Ложный arp-сервер в сети Internet.
- 3. Ложный dns-сервер.
- 4. Навязывание хосту ложного маршрута с помощью протокола icmp для создания в сети ложного маршрутизатора.
- 5. Подмена одного из участников сетевого обмена в сети при использовании протокола tcp.
- 6. Использование недостатков идентификации tcp-пакетов для атаки на rsh-сервер.
- Вопросы 14 – 16. Использование систем firewall
- Достоинства применения Firewall.
- Недостатки, связанные с применением Firewall.
- Структура и функционирование Firewall.
- Принципы работы Firewall.
- Режим доступа к службам.
- Усиленная аутентификация.
- Фильтрация пакетов.
- Шлюзы прикладного и сетевого уровня.
- Вопросы 17-21. Основные схемы защиты на основе Firewall.
- Firewall — маршрутизатор с фильтрацией пакетов.
- Firewallна основе шлюза.
- Экранированный шлюз.
- Firewall –экранированная подсеть.
- Объединение модемного пула с Firewall
- Вопрос 22. Особенности защиты сетей на основе Firewall
- Этапы разработки политики доступа к службам.
- Гибкость политики.
- Обеспечение Firewall.
- Администрирование Firewall.