- •Воронеж 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
1.4.5 Хранение паролей компьютерной системой
При проверке введенного пароля на правильность множество систем построено так, что в оперативной памяти присутствует истинный пароль. Получить пароль в данном случае возможно, если снять дамп памяти. Очевидно, что при способе, когда оба пароля сравниваются как строки, надежно защитить истинный пароль невозможно. В этом случае один из вариантов хранить пароль в зашифрованном виде, и расшифровывать его непосредственно перед сравнением, или сравнивать зашифрованные строки, после чего сразу же уничтожать из памяти, независимо от результата - совпал он или нет.
Другой способ хранения пароля компьютерной системой состоит в том, что хранится не сам пароль, а его образ. При вводе пароля пользователя, компьютерная система создает образ пароля и сравнивает его с образом, который хранит компьютерная система. Если образы совпадают - значит, введенный пароль правильный. Такой подход дает гарантию того, что, снимая дамп оперативной памяти, никогда нельзя получить истинный пароль.
Возможен еще один вариант. Пароль находится в зашифрованном виде на некопируемом носителе (электронном ключе, магнитной или смарт-карточке, идентификаторе Touch Memory и т.п.). Он же одновременно является и своеобразным ключом для запуска компьютерной системы, так как без него система не работает. На этом же носителе, если его память позволяет, может храниться и список паролей, уже использованных однажды или вообще запрещенных к использованию.
Есть вариант хранения пароля, когда каждый символ записывается в разных местах одного файла или вообще в разных файлах, а само место хранения меняется по определенному алгоритму, причем все остальные символы файла являются побочными, которые при смене пароля полностью меняются.
Самым безопасным вариантом хранения паролей пользователей компьютерной системой является комплексный вариант – хэширование и последующее шифрование паролей.
1.4.6 Противодействие попыткам подбора паролей
Для противодействия попыткам подбора паролей, подсистему аутентификации необходимо настроить таким образом, чтобы вводить пароль можно было только вручную, особенно в процедурах установления связи или в макрокомандах. Ручной вариант ввода пароля резко сокращает возможность его подбора. На набор на клавиатуре одного миллиона вариантов потребуется большое количество времени, к тому же, система должна еще проверить пароль на правильность и как-то отреагировать, если он неправильный.
Множество подсистем аутентификации реагируют на неверный введенный пароль выводом на монитор компьютера простого сообщения типа "Неправильный пароль. Повторите еще раз." В такой ситуации злоумышленнику нетрудно подбирать пароль, не привлекая внимания окружающих, даже на машине законного пользователя.
Эмпирическим методом выявлено, что парольная система должна давать две, максимум, три попытки ввода пароля. Если они неудачны, должны срабатывать ответные действия системы защиты на попытку несанкционированного доступа. Но даже с первой попытки ввода пароля, парольная система может контролировать его на подбор. В парольной системе должен быть предусмотрен логический анализ введенного пароля для сравнения с истинным.
Например, истинный пароль "jH75Hjkf". Одно дело, когда набирают "kjH75Hjkf " или "jH75Hjk", а другое - "ung765jg". В первом и втором вариантах вполне логично предположить ошибку оператора (буква "j" на клавиатуре рядом с "k", а во втором случае не хватает последнего символа), но в третьем варианте - явная попытка подбора, так как нет совпадающих символов.
Можно даже сформулировать примерное условие проверки: если истинный и введенный пароли отличаются на один символ и эти символы расположены рядом на клавиатуре, либо вариант, когда пароль набирается на другом регистре, либо пропущен один из символов, можно повторить запрос, но не более двух раз. В противном случае имеется попытка подбора пароля, на что парольная система должна принимать ответные действия:
1) Парольная система обязательно должна зафиксировать в системном журнале попытку несанкционированного доступа и сообщить в службу безопасности или администратору. Причем желательно в системном журнале фиксировать не только попытки НСД, но и ошибки при наборе пароля - под ними, иногда можно маскировать попытки подбора пароля;
2) Парольная система должна частично или полно блокировать вход в систему для этого пользователя. После чего разблокировать доступ может только администратор или служба безопасности. Кроме того, обнаружение попытки подбора пароля может сопровождаться звуковыми сигналами. В рабочее время они будут слышны окружающим и действуют на психику взломщика. Во многом ответная реакция зависит от назначения всей компьютерной системы.
Парольная система также должна проконтролировать, не была ли это попытка войти в систему с "просроченным" паролем. Или вариант, когда злоумышленники пытаются войти с паролем пользователя, который в настоящее время отсутствует на работе (уже уволился, отпуск, болезнь и т.п.). Случаи входов в компьютерные системы уволившимися сотрудниками не так уж редки в практике. Организация работы с компьютерной системой должна учитывать, что если сотрудник отсутствует на работе, его пароль блокируется. Также, система должна проверить, не работает ли уже пользователь с таким паролем - не использует ли его кто-то вторично.
Если пароль введен правильно, система должна вывести на экран дату и время последнего входа этого пользователя в систему. Это поможет ему самому проконтролировать, не работает ли кто-нибудь, используя его пароль.
Некоторые системы имеют еще и такой параметр, как интенсивность попыток входа и задают предельно допустимое время для входа пользователя в систему, ограничивая тем самым злоумышленнику возможность подбора пароля. Это особенно актуально в тех случаях, когда наряду с ручным набором пароля все же допускается и автоматическим. Процедуры допуска в таких системах контролируют количество попыток входа в систему для каждого пользователя и пресекают возможные попытки подбора пароля.