- •Воронеж 2008
- •Воронеж 2008
- •Введение
- •1 Подбор пароля
- •1.1 Общие понятия парольной защиты
- •1.1.1 Парольная система
- •1.1.2 Методы подбора паролей
- •1.1.3 Методы количественной оценки стойкости паролей
- •1.2 Парольная защита операционных систем
- •1.2.1 Подбор паролей в ос Windows
- •1.2.1.1 База данных учетных записей пользователей
- •1.2.1.2 Хранение паролей пользователей
- •1.2.1.3 Использование пароля
- •1.2.1.4 Возможные атаки на базу данных sam
- •1.2.2 Подбор паролей в ос unix
- •1.3 Классификация и принцип работы программного обеспечения для подбора паролей
- •1.3.1 Подбор паролей в oc Windows
- •1.3.2 Подбор паролей в oc unix
- •1.3.3 Подбор паролей в архивах zip, rar и arj
- •1.3.4 Подбор паролей документов ms Office
- •1.3.5 Подбор паролей pdf документов
- •1.4 Противодействие подбору паролей
- •1.4.1 Требования к паролю
- •1.4.2 Правила назначения/изменения паролей
- •1.4.3 Требования к генерации паролей
- •1.4.4 Хранение пароля пользователем
- •1.4.5 Хранение паролей компьютерной системой
- •1.4.6 Противодействие попыткам подбора паролей
- •1.4.7 Защита Windows nt и Unix от подбора паролей
- •2.1.2 Протокол tcp
- •2.1.2.1 Функции протокола tcp
- •2.1.2.2 Базовая передача данных
- •2.1.2.3 Разделение каналов
- •2.1.2.4 Управление соединениями
- •2.1.2.5 Заголовок тср-сегмента
- •2.1.2.6 Состояния соединения
- •2.2 Основные методы, применяемые при сканировании портов
- •2.2.1 Методы сканирования tcp-портов
- •2.2.1.1 Методы открытого сканирования
- •2.2.1.1.1 Метод icmp-сканирования
- •2.2.1.1.2 Сканирование tcp-портов функцией connect()
- •2.2.1.1.3 Сканирование tcp-портов флагом syn
- •2.2.1.1.4 Сканирование tcp-портов флагом fin
- •2.2.1.1.5 Сканирование с использованием ip-фрагментации
- •2.2.1.1.6 Сканирование tcp-портов методом reverse-ident (обратной идентификации)
- •2.2.1.1.7 Сканирование Xmas
- •2.2.1.1.8 Null сканирование
- •2.2.1.2 Методы "невидимого" удаленного сканирования
- •2.2.1.2.1 Скрытая атака по ftp
- •2.2.1.2.2 Сканирование через proxy-сервер
- •2.2.1.2.3 Скрытное сканирование портов через системы с уязвимой генерацией ip id
- •2.2.1.2.3.1 Исторические предпосылки
- •2.2.1.2.3.2 Описание базового метода ip id сканирования
- •2.2.1.2.3.3 Исследование правил и обход брандмауэра при сканировании
- •2.2.1.2.3.4 Сканирование машин с приватными адресами
- •2.2.1.2.3.5 Использование ip id при сканирование udp сервисов за брандмауэром
- •2.2.2 Методы сканирования udp-портов
- •2.2.2.1 Сканирование udp-портов проверкой icmp-сообщения «Порт недостижим»
- •2.2.2.2 Сканирование udp-портов с использованием функций recvfrom() и write()
- •2.3.1 Сканирование портов в ос семейства Windows
- •2.3.2 Сканирование портов в ос семейства Unix
- •2.4 Защита от сканирования портов
- •3 Анализ сетевого трафика
- •3.1 Анализ сетевого трафика сети Internet
- •3.1.1 Ложные arp-ответы
- •3.1.2 Навязывание ложного маршрутизатора
- •3.1.3 Атака при конфигурировании хоста
- •3.1.4 Атака на протоколы маршрутизации
- •3.2 Протокол telnet
- •3.2.1 Протокол ftp
- •3.2.3 Программы анализаторы сетевого трафика (сниффиры)
- •3.2.4 Принцип работы сниффира
- •3.3 Методы противодействия сниффирам
- •3.3.1 Протокол ssl
- •3.3.2 Протокол skip
- •3.3.3 Устройство обеспечения безопасности локальной сети skipBridge
- •4 Внедрение ложного доверенного объекта
- •4.1 Особенности атаки «Внедрение ложного доверенного объекта»
- •4.2 Внедрение ложного объекта путем использования недостатков алгоритмов удаленного поиска
- •4.2.1.1 Протокол arp и алгоритм его работы
- •4.2.1.2 Техника выполнения arp-spoofing
- •4.2.1.3 Методы обнаружения
- •4.2.1.4 Методы противодействия
- •4.2.2.1 Принцип работы Domain Name System
- •4.2.2.2 Внедрение dns-сервера путем перехвата dns-запроса
- •4.2.2.3 «Шторм» ложных dns ответов на атакуемый хост
- •4.2.2.4 Перехват dns-запроса или создание направленного «шторма» ложных dns-ответов непосредственно на атакуемый dns-сервер
- •4.2.2.5 Обнаружение и защита от внедрения ложного dns-сервера
- •4.3.1.2 Внедрение ложного доверенного объекта путем навязывания ложного маршрута с помощью протокола icmp
- •4.3.1.3 Обнаружение и методы противодействия
- •5 Отказ в обслуживании
- •5.1 Модель DoS атаки
- •5.1.1 Отказ в обслуживании (DoS)
- •5.1.2 Распределенный отказ в обслуживании (dDoS)
- •5.2.1.1 Описание утилиты для реализации icmp – флуда и атаки Smurf
- •5.2.1.2 Реализация атаки icmp-flooding, на основе отправки icmp-пакетов
- •5.2.1.3 Реализация атаки Smurf
- •5.2.3 Низкоскоростные dos-атаки
- •5.2.3.1 Механизм таймаута tcp-стека
- •5.2.3.2 Моделирование и реализация атаки
- •5.2.3.2.1 Минимальная скорость DoS-атаки
- •5.2.3.3 Многопоточность и синхронизация потоков
- •5.2.3.5 Атаки в сети интернет
- •5.2.4 Syn атака
- •5.3 Анализ средств и методов сетевой защиты
- •5.3.1 Настройка tcp/ip стека
- •5.3.4 Межсетевые экраны (FireWall)
- •5.3.5 Системы обнаружения атак (ids)
- •5.3.6 Система Sink Holes
- •Заключение
- •Список информационных источников
- •394026 Воронеж, Московский просп., 14
4.2.1.4 Методы противодействия
Для предотвращения атаки необходимо вмешательство администратора или внешней системы. В первом случае между обнаружением и реакцией администратора может пройти очень много времени. Во втором вмешательство не требуется, реакция выполняется автоматически: как только ARP-аномалия зафиксирована, определяется порт коммутатора, к которому подключён источник аномалии, и порт блокируется до выяснения. Однако, такой подход имеет большой недостаток - он может быть использован для выполнения DOS атаки: достаточно только узнать MAC адрес компьютера, который надо отключит от сети, и сымитировать атаку с этого компьютера. Дальше наша система обнаружения и предотвращения ARP-spoofing'а все сделает сама.
В основе рассматриваемых способов противодействия ARP-атакам лежат два совершенно разных принципа, каждый из которых обладает как достоинствами, так и недостатками.
Для защиты от ARP-spoofing‘a можно просто использовать статическую ARP-таблицу. ARP-таблицу можно сформировать вручную, при этом она становится неуязвимой к ARP-атакам. Для этого нужно добавить необходимые MAC-адреса в таблицу. Если при этом отключить использование ARP на сетевых интерфейсах, то доступны будут только те системы, MAC-адреса которых добавлены в ARP-таблицу нашего узла и наш MAC-адрес добавлен в ARP-таблицы узлов, с которыми производится обмен трафиком.
Если не отключать использование ARP на сетевых интерфейсах, MAC-адрес заданный статически имеет приоритет. Если MAC-адрес для какого-то IP-адреса не задан, используется ARP-запрос [55].
Метод ручного формирования ARP-таблиц имеет следующие недостатки:
- добавляется много рутинной работы, связанной с добавлением и модификацией MAC-адресов. Каждое изменение в сети, связанное с заменой или перестановкой сетевых карт, должно сопровождаться редактирование ARP-таблиц в файлах.
- клиентские узлы остаются по-прежнему уязвимыми к ARP-spoofing'у.
Патчи ядра системы. Существует патч для ядер Linux/FreeBSD, который позволяет свести к минимуму опасность успешного выполнения атаки ARP-spoofing против пропатченных систем.
Суть данного метода заключается в том, что при приеме ARP-ответа производится сравнение старого и нового MAC-адресов, и при обнаружении его изменения запускается процедура верификации. Посылается ARP-запрос, требующий всем хозяевам IP-адреса сообщить свои MAC-адреса.
Если выполняется атака настоящая система, имеющая этот IP-адрес, ответит на запрос, и, таким образом, атака будет распознана. Если же изменение MAC-адреса было связано не с атакой, а со стандартными ситуациями, ответа, содержащего «старый» MAC-адрес, не будет, и по прошествию определенного таймаута система обновит запись в кеше.
При обнаружении подозрительной ситуации («двойника») ядро выводит сообщение: "ARP_ANTIDOTE: Possible MITM attempt!", и не обновляет запись ARP-кеша, а наоборот, прописывает старую запись как статическую. После того как источник атаки выявлен и обезврежен, статическую запись можно удалить.
Этот метод не применим к Windows-системам, и другим системам, работающим под управлением ОС, исходный код которых недоступен.
Необходимо решить проблему кардинально: нужно так построить сеть, чтобы выполнение ARP-spoofing'а в ней было принципиально невозможно. А если возможным, то бесполезным.
Это можно сделать двумя способами:
- Ограничить для каждого узла широковещательный домен до уровня двух узлов: самого узла и ближайшего шлюза.
- Сделать так чтобы все, абсолютно все, передаваемые в сети данные были зашифрованы и прослушивание этих данных, ни к чему бы не привело. Любое же изменение данных, в случае возникновения, сразу же обнаружено. То есть, фактически сеть должна быть такой же и безопасной при использовании вместо коммутатора концентратора.
Первый способ делается с помощью VLAN'ов. Второй - с помощью PPPoE.
Использование VLAN. Компьютер C может использовать ARP-spoofing против компьютера A только в том случае, если они находятся в одной сети канального уровня. В том случае, если они разделены маршрутизатором, атака невозможна (возможна атака на маршрутизатор, но это совсем другое дело).
VLAN'ы помогают сегментировать сеть - превратить одну сеть в множество изолированных на канальном уровне фрагментов, которые соединены между собой маршрутизатором. Атака ARP-spoofing возможна только между компьютерами находящимися в одном VLAN'е. В наиболее крайнем случае, когда в каждом VLAN'е находится только два компьютера: собственно компьютер и маршрутизатор, атака ARP-spoofing становится невозможной в принципе. Такая организация сети являются очень требовательной к ресурсам маршрутизатора и используется редко [55].
Преимущества:
- От клиента ничего не требуется. Он работает, как и работал. Если IP-адрес задан статически, необходима смена IP-адреса и сетевой маски.
- Данные не шифруются, и производительность не теряется. Малые потери на дополнительные поля в заголовке.
- Нельзя организовать обмен данными в обход шлюза между узлами в разных VLAN'ах. Если каждый узел находится в собственном VLAN'е такой обмен невозможен вообще.
Недостатки:
- Необходима поддержка VLAN'ов коммутатором.
- Необходимо потратить время на настройку VLAN'ов, дополнительную настройку DHCP'сервера.
- Данные не шифруются. Если их прослушивание каким-то образом удастся, то они могут быть прочтены и/или модифицированы.
Использование PPPoE. PPPoE (Point-to-point protocol over Ethernet) — сетевой протокол передачи кадров PPP через Ethernet. Предоставляет дополнительные возможности такие как: аутентификация, сжатие, шифрование.
PPPoE - это туннелирующий протокол, который позволяет инкапсулировать IP, или другие протоколы, которые наслаиваются на PPP, через соединения Ethernet, но с программными возможностями PPP соединений, и поэтому используется для виртуальных «звонков» на соседнюю Ethernet-машину и устанавливает соединение точка-точка, которое используется для транспортировки IP-пакетов, работающее с возможностями PPP.
Это позволяет применять традиционное PPP-ориентированное ПО для настройки соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (как Ethernet), чтобы организовать классическое соединение с логином, паролем для Интернет-соединений. Также, IP-адрес по другую сторону соединения назначается только когда PPPoE соединение открыто, позволяя динамическое переиспользование IP адресов.
Работа PPPoE осуществляется следующим образом. Существует Ethernet-среда, то есть несколько соединённых сетевых карт, которые адресуются MAC-адресами. Заголовки Ethernet-пакетов содержат адрес отправителя пакета, адрес получателя пакета и тип пакета. Одну из карт слушает PPPoE сервер. Клиент посылает широковещательный Ethernet пакет, на который должен ответить PPPoE сервер (адрес отправителя пакета - свой MAC-адрес, адрес получателя пакета - FF:FF:FF:FF:FF:FF и тип пакета - PPPoE Discovery). PPPoE сервер посылает клиенту ответ (адрес отправителя пакета - свой MAC-адрес, адрес получателя пакета - МАС-адрес клиента и тип пакета - PPPoE Discovery). Если в сети несколько PPPoE серверов, то все они посылают ответ. Клиент выбирает подходящий сервер и посылает ему запрос на соединение. Сервер посылает клиенту подтверждение с уникальным идентификатором сессии, все последующие пакеты в сессии будут иметь этот идентификатор. Таким образом, между сервером и клиентом создается виртуальный канал, который идентифицируется идентификатором сессии и MAC-адресaми клиента и сервера. Затем в этом канале поднимается PPP соединение, а уже в PPP пакеты упаковывается IP-трафик.
Преимущества:
- Данные шифруются.
- Нет никаких требований к железу. Даже не обязательно чтобы сеть была коммутируемой.
Недостатки:
- На клиенте требуется настройка доступа по PPPoE. На некоторых системах требуется инсталляция специального клиентского программного обеспечения.
- За счёт потерь на инкапсуляцию, снижается производительность сети. Если выполняется шифрование данных, то временные потери увеличиваются.
- При взаимном согласии сторон можно организовать обмен данными между узлами в обход шлюза.
- При большом количестве соединений PPPoE (>200) возрастает нагрузка на центральный процессор сервера. Иногда, приходится жертвовать шифрованием данных.
- Если будет большая нагрузка на сервер легче использовать PPTPd или IPsec.
4.2.2 DNS-spoofing