На главную страницу
О журнале План выхода Подписка Интернет-Магазин Реклама Контакты и реквизиты English На главную страницу Карта сайта Поиск по сайту Обратная связь

перейти к Содержанию номера

№ 3 май-июнь 2008 г.
Тема номера:
КОММЕРЧЕСКАЯ ТАЙНА И ПЕРСОНАЛЬНЫЕ ДАННЫЕ
В ИНФОРМАЦИОННЫХ СИСТЕМАХ


ОБЗОР СОВРЕМЕННЫХ КОМПЬЮТЕРНЫХ АТАК НА TCP/IP-СЕТИ

М. А. Мамаев, CCIE, С. А. Петренко, CISO


Предыдущая статьяСледующая статья

Арсенал технических приемов, позволяющих злоумышленникам осуществить компьютерные атаки на TCP-сети, постоянно растет и пополняется. При этом основными целями нападения являются перехват (и, возможно, модификация) данных, передаваемых через сеть от одного узла другому, имперсонация (узел злоумышленника выдает себя за другой узел, чтобы воспользоваться какими-либо привилегиями имитируемого узла), несанкционированное подключение к сети, несанкционированная передача данных (обход правил фильтрации IP-трафика в сетях, защищенных брандмауэрами), принуждение узла к передаче данных на завышенной скорости, приведение узла в состояние, когда он не может нормально функционировать, передавать и принимать данные (так называемый DoS – denial of service, отказ в обслуживании). Для достижения своих целей злоумышленники используют прослушивание (sniffing), сканирование сети и генерацию пакетов.

Технические приемы для осуществления атак на TCP-сети

Прослушивание сети

Прослушивание сети Ethernet (а подавляющее большинство локальных и федеральных сетей используют именно эту технологию) является тривиальной задачей: для этого нужно просто перевести интерфейс в режим прослушивания (promiscuous mode). Легко доступны программы, не только записывающие весь трафик в сегменте Ethernet, но и выполняющие его отбор по установленным критериям: например, свободно распространяемая программа tcpdump или входящая в поставку ОС Solaris программа snoop.

Среди других сетевых технологий подвержены прослушиванию сети FDDI и радиосети (например, Radio Еthernet). Несколько сложнее извлечь трафик из выделенных и телефонных линий, главным образом, из-за сложности физического доступа и подключения к таким линиям. Однако следует помнить, что злоумышленник может атаковать и оккупировать промежуточный маршрутизатор и таким образом получить доступ ко всему транзитному трафику, независимо от используемых технологий на уровне доступа к сети.

Ограничить область прослушивания в сети Ethernet можно разбиением сети на сегменты с помощью коммутаторов. В этом случае злоумышленник, не прибегая к активным действиям, может перехватить только кадры, получаемые или отправляемые узлами сегмента, к которому он подключен. Единственным способом борьбы с прослушиванием сегмента Ethernet является шифрование данных.

Злоумышленник, прослушивающий сеть, может быть обнаружен с помощью системной утилиты AntiSniff, которая выявляет в сети узлы, чьи интерфейсы переведены в режим прослушивания.

Отметим, что представление о прослушивании как о безопасной деятельности, которую нельзя обнаружить, не соответствует действительности.

Сканирование сети

Сканирование сети имеет своей целью выявление подключенных к сети компьютеров и определение работающих на них сетевых сервисов (открытых портов TCP или UDP). Первая задача выполняется посылкой ICMP-сообщений «Echo» с помощью программы ping с последовательным перебором адресов узлов в сети.

Для большей скрытности злоумышленник может существенно растянуть процесс сканирования во времени («медленное сканирование») – то же самое касается и сканирования портов TCP/UDP. Также злоумышленник может применить «обратное сканирование» (inverse mapping): в этом случае на тестируемые адреса посылаются не сообщения ICMP «Echo», а другие сообщения, например RST-сегменты TCP, ответы на несуществующие DNS-запросы и т. п. Если тестируемый узел не существует (выключен), злоумышленник получит в ответ ICMP-сообщение «Destination Unreachable: Host Unreachable». Следовательно, если данное сообщение не было получено, то соответствующий узел подключен к сети и работает.

Программа traceroute поможет в определении топологии сети и обнаружении маршрутизаторов.

Для определения того, какие UDP- или TCP-приложения запущены на обнаруженных компьютерах, используются программы-сканеры, например программа nmap. Поскольку номера портов всех основных сервисов стандартизованы, то, определив, например, что порт 25/TCP открыт, можно сделать вывод о том, что данный хост является сервером электронной почты и т. д. Полученную информацию злоумышленник может использовать для развертывания атаки на уровне приложения.

Сканирование TCP-портов хоста производится несколькими способами. Наиболее простой из них – установление TCP-соединения с тестируемым портом с помощью функции connect(). Если соединение удалось установить, значит, порт открыт и к нему подсоединено серверное приложение. Достоинством этого способа является возможность выполнения сканирования любым пользователем и даже без специального программного обеспечения: стандартная программа telnet позволяет указать произвольный номер порта для установления соединения. Существенный недостаток – возможность отслеживания и регистрации такого сканирования: при анализе системного журнала сканируемого хоста обнаружатся многочисленные открытые и сразу же прерванные соединения, в результате чего могут быть приняты меры по повышению уровня безопасности.

Сканирование в режиме половинного открытия (half-open scanning) не имеет описанного недостатка, но требует от злоумышленника возможности формировать одиночные TCP-сегменты в обход стандартного модуля TCP (или, при использовании уже написанных программ, как минимум – прав суперпользователя). В этом режиме злоумышленник направляет на сканируемый порт SYN-сегмент и ожидает ответа. Получение ответного сегмента с битами SYN и ACK означает, что порт открыт; получение сегмента с битом RST означает, что порт закрыт. Получив SYN+ACK, злоумышленник немедленно отправляет на обнаруженный порт сегмент с битом RST, ликвидируя таким образом попытку соединения. Поскольку соединение так и не было открыто (ACK от злоумышленника не был получен), зарегистрировать такое сканирование гораздо сложнее.

Третий способ – сканирование с помощью FIN-сегментов. В этом случае на сканируемый порт посылается сегмент с установленным битом FIN. Хост должен ответить RST-сегментом, если FIN-сегмент адресован закрытому порту. FIN-сегменты, направленные на порт, находящийся в состоянии LISTEN, многими реализациями TCP/IP игнорируются (стандарт требует в состоянии LISTEN посылать RST-сегменты в ответ на сегменты, имеющие неприемлемый ACK SN – про сегменты, имеющие только флаг FIN, ничего не говорится). Таким образом, отсутствие отклика говорит о том, что порт открыт. Варианты этого способа сканирования – посылка сегментов с флагами FIN, PSH, URG (Xmas scan) или вообще без всяких флагов (Null scan).

Конечно, сканирование SYN-сегментами дает более надежные результаты, однако многие брандмауэры могут не пропускать SYN-сегменты из Интернета во внутреннюю сеть, в то же время пропуская любые сегменты без флага SYN (так, запрещаются соединения интернет-хостов с внутренними хостами, инициируемые из Интернета, но разрешаются соединения, инициируемые изнутри).

Программа tcplogd может зарегистрировать попытки сканирования в различных режимах.

Для определения открытых портов UDP злоумышленник может отправить на тестируемый порт UDP-сообщение. Получение в ответ ICMP-сообщения «Port Unreachable» (тип 3, код 3) говорит о том, что порт закрыт.

Программа-сканер может также определить операционную систему сканируемого узла по тому, как узел реагирует на специальным образом сконструированные, нестандартные пакеты, например TCP-сегменты с бессмысленными сочетаниями флагов или ICMP-сообщения некоторых типов.

Отметим, что для определения адресов работающих в сети компьютеров и запущенных на них UDP- или TCP-сервисов злоумышленник, непосредственно подключенный к сегменту сети, может использовать простое прослушивание. Такая форма сканирования сети является более скрытной, чем рассылка тестирующих дейтаграмм.

Генерация пакетов

Генерация дейтаграмм или кадров произвольного формата и содержания производится не менее просто, чем прослушивание сети Ethernet. Библиотека libnet обеспечит программиста всем необходимым для решения этой задачи. Библиотека libpcap предоставляет инструментарий для обратного действия – извлечения пакетов из сети и их анализа.

На многочисленных интернет-сайтах имеются уже готовые программы, целенаправленно генерирующие пакеты для выполнения какой-либо атаки или сканирования сети (например, программа nmap, упомянутая выше). Применение таких программ часто не требует от злоумышленника ни квалификации программиста, ни понимания принципов работы сети, что делает многие из описанных атак, особенно атаки типа «отказ в обслуживании», широко доступными для исполнения.

Перехват данных

Простейшей формой перехвата данных является прослушивание сети. В этом случае злоумышленник может получить полезную информацию: имена пользователей и пароли (многие приложения передают их в открытом виде), адреса компьютеров в сети, в том числе адреса серверов и запущенные на них приложения, адрес маршрутизатора, собственно передаваемые данные, которые могут быть конфиденциальными (например, тексты электронных писем) и т. п.

Однако если сеть разбита на сегменты с помощью коммутаторов, злоумышленник может перехватить только кадры, получаемые или отправляемые узлами сегмента, к которому он подключен. Простое прослушивание также не позволяет ему модифицировать передаваемые между двумя другими узлами данные. Для решения этих задач злоумышленник должен перейти к активным действиям, чтобы внедрить себя в тракт передачи данных в качестве промежуточного узла.

< ... >


 

Полную версию статьи смотрите на страницах журнала «Защита информации. Инсайд»


Обращайтесь!!!
e-mail:    magazine@inside-zi.ru
тел.:        +7 (921) 958-25-50, +7 (911) 921-68-24


Предыдущая статья    СОДЕРЖАНИЕ НОМЕРА    Следующая статья

 

| Начало | О журнале | План выхода | Подписка | Интернет-магазин | Реклама | Координаты |

Copyright © 2004-2013 «Защита информации. Инсайд». Все права защищены
webmaster@inside-zi.ru

Rambler's Top100