- •Воронеж 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
2.2.1.2.3.4 Сканирование машин с приватными адресами
Elie Bursztein опубликовал рекомендацию, где указал на применимость этого сканирования для случая, когда ‘немой’ хост является шлюзом во внутреннюю сеть, а исследуемая система - машина, находящаяся во внутренней сети за ‘немым’ хостом.
Сканирование выполняется тем же путем. Возможно это только в случае, когда атакующий может послать ложный пакет на исследуемую машину. А это возможно только когда все маршрутизаторы на пути от атакующего до жертвы пропустят такой пакет, и будут направлять его в направлении, указанном атакующим. На практике это реализуется в случае, когда ‘немой’ хост не имеет простейшей защиты от спуфинга, а взломщик атакует с машины, непосредственно общающейся с машиной ‘немого’ хоста. Но в этом случае у атакующего есть и обычная возможность выполнить сканирование исследуемой системы, при котором нет необходимости в получении атакующим трафика с нее. Поскольку в качестве ‘немого’ хоста выступает машина из той же сети что и ‘жертва’, для расследования инцидента могут быть использованы журналы аудита, расположенные на ней, в которых будет присутствовать ip-адрес атакующего [36].
2.2.1.2.3.5 Использование ip id при сканирование udp сервисов за брандмауэром
С некоторыми модификациями, IP ID сканирование можно проводить и для сканирования UDP портов.
'Обычное' UDP сканирование отличается от TCP тем, что нет схемы ‘рукопожатия’ на уровне протокола, и нет возможности послав один UDP пакет на какой либо порт, получить в ответ какое-либо стандартное подтверждение или опровержение мнения о наличии открытого порта от UDP протокола. Но ОС в случае обращения к несуществующему UDP порту посылают ICMP сообщение об этом. Для сканирования используется метод посылки UDP пакета на анализируемый порт, и ожидание ICMP сообщения с Type=3 (Destination Unreachable), Code=3 (Port Unreachable). Если сообщение не приходит, порт считается открытым, если приходит, порт считается закрытым.
Любой правильно сконфигурированный брандмауэр не пропустит такие сообщения, и для атакующего, использующего ICMP для определения статуса порта, нет возможности узнать, открыт порт или нет.
Также возможно использование IP ID для сканирования, только в качестве ‘немого’ хоста выступает сама исследуемая система. Атакующий следит за изменениями IP ID, при этом сканируя UDP порты. Как только на исследуемой машине приходит пакет с адресом закрытого UDP порта, она отсылает ICMP сообщение об этом, увеличивая тем самым счетчик IP ID. Ответ на следующий TCP пакет атакующего уже будет нести в себе информацию об этом.
Атакующий должен 'видеть' ответы на свои TCP запросы, чтобы отслеживать изменения IP ID, следовательно, метод не позволяет сохранить полную анонимность, но UDP пакеты могут идти с произвольного адреса, так что многие системы обнаружения вторжения могут зарегистрировать сканирование с подставного адреса [42].
Также возможно использовать слежение за IP ID для проведения анонимного UDP сканирования на известные сервисы. Технология заключается в том, чтобы спровоцировать исследуемую машину послать UDP сообщение, которое бы вызвало ответную датаграмму на ‘немой’ хост.
Метод позволяет анонимно определить некоторые сервисы на исследуемой машине, которые можно спровоцировать на исходящее UDP сообщение отправителю.
Для определения 'немых' сервисов типа syslog возможно использование косвенных признаков. Например, сервис syslog не посылает ответов на приходящие датаграммы, но преобразует ip адреса, с которых пришли эти сообщения. Если следить за IP ID на DNS сервере, который будет опрошен в результате преобразования ip адреса отправленной сервису syslog датаграммы, можно заметить изменения IP ID на нем, что будет свидетельством того, что порт открыт [15].
В качестве DNS сервера для такой атаки подойдет тот, который:
1) обладает уязвимой схемой генерации IP ID;
2) не имеет трафика в момент сканирования;
3) будет опрошен в момент получения датаграммы на открытый порт.
2.2.1.2.3.6 "2 в степени" (2^) сканирование и временные особенности сканирования
Используя классическое IP ID сканирование атакующий после отправления пакета на тестируемый порт жертвы ждет либо увеличение IP ID чтобы сделать вывод о том, что порт открыт, либо истечения достаточного времени (Max RTT) чтобы сделать вывод что ответа нет и порт закрыт. Для тестирования следующего порта, атакующий обязательно должен быть уверен, что нет трафика, оставшегося от предыдущего тестирования, так как это может исказить результат. Например, пакет от атакующего на открытый порт жертвы, либо SYN|ACK пакет с исследуемой машины задержались при передаче, и атакующий перешел к тестированию следующего порта (ошибочно посчитав этот тестируемый порт закрытым). Отослав пакет на следующий порт исследуемой машины, он видит увеличение IP ID на ‘немом’ хосте, вызванный задержавшимся пакетом от предыдущего тестирования и делает ошибочный вывод о том, что текущий тестируемый порт открыт. Кроме того, возможно имеется еще и SYN|ACK пакет от этого порта, который внесет свои помехи в тестировании следующего, и так далее.
Сеть может доставлять мегабайты в секунду, и иметь очень небольшую величину RTT, но если на ней встречаются достаточно большие задержки, это вынуждает использовать большие значения для MaxRTT. А поскольку при интенсивном тестировании проверяется много портов, из которых подавляющее большинство - закрыты, время сканирования может быть равно MaxRTT * количество портов. При таком достаточно длительном времени тестировании высока вероятность появления постороннего трафика, который может исказить полученные результаты.
Решением такой проблемы было бы одновременное сканирование нескольких портов. Но атакующий не знает ответные пакеты с каких портов вызвали приращение IP ID, но знает величину этого приращения. Если при одновременном сканировании нескольких портов на каждый отсылать разное количество пакетов (кратное степени 2), то по итоговому приращению IP ID можно легко представить, какие порты открыты [7].
Надежность метода: лишний или потерянный пакет вносит ошибку как при обычном сканировании, так и при "2 в степени" его модификации. Но в последнем случае ошибка несет больший дефект. Одновременно можно тестировать и больше портов, но следует учитывать, что одновременное тестирование 10 портов потребует послать 1023 пакета.