Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
493.doc
Скачиваний:
18
Добавлен:
30.04.2022
Размер:
8.68 Mб
Скачать

1.4.7 Защита Windows nt и Unix от подбора паролей

Одна из главных задач системного администратора Windows NT состоит в защите от несанкционированного доступа той информации, которая хранится в базе данных SAM. С этой целью ему, прежде всего, необходимо ограничить физический доступ к компьютерам сети и прежде всего — к контроллерам доменов. Дополнительно, при наличии соответствующих программно-аппаратных средств, следует установить пароли BIOS на включение компьютеров и на изменение настроек BIOS. Затем, используя настройки BIOS, рекомендуется отключить загрузку компьютеров с гибких и компакт-дисков. А для обеспечения контроля доступа к файлам и папкам операционной системы Windows NT системный раздел жесткою диска должен иметь формат NTFS.

Каталог \winnt_root\repair нужно средствами операционной системы закрыть для доступа всех пользователей, включая администраторов, и разрешать к ней доступ только во время работы утилиты RDISK, создающей в этом каталоге архивные копии системного реестра Windows NT. Системные администраторы также должны внимательно следить за тем, где и как хранятся дискеты аварийного восстановления (Emergency Repair Disks) и архивные копии на магнитных лентах, если на последних присутствует дубликат системного реестра Windows NT.

Если компьютер с операционной системой Windows NT входит в домен, то по умолчанию имена и хэшированные пароли последних 10-ти пользователей, регистрировавшихся на этом компьютере, сохраняются (кэшируются) в его локальном системном реестре (в разделе SECURITY\Policy\Secrets куста HKEY LOCAL_MACHINE). Чтобы отменить кэширование паролей на компьютерах домена, нужно с помощью утилиты REGEDT32 в раздел Micro-soft\WindowsNT\CurrentVersion\Winlogon раздела HKEY_LOCAL MACHINE добавить параметр CashedLogonsCount, установив его значение равным нулю, а тип — REG_SZ.

Для защиты базы данных SAM можно применить утилиту SYSKEY, входящую в состав пакета обновления Windows NT Service Pack 3. Эта утилита позволяет включить режим дополнительного шифрования информации о паролях, которая хранится в базе данных SAM. Уникальный 128-битовый ключ для дополнительного шифрования паролей (так называемый ключ шифрования паролей — Password Encryption Key, РЕК) автоматически сохраняется в системном реестре для дальнейшего использования [56].

Перед помещением в системный реестр ключ РЕК шифруется при помощи другого 128-битового ключа, который называется системным ключом (System Key), и может храниться либо в системном реестре, либо в файле с именем STARTUP.KEY в корневом каталоге на отдельной дискете. Можно не сохранять системный ключ на магнитном носителе, и тогда каждый раз при запуске операционной системы он будет вычисляться с помощью алгоритма MD5 на основе пароля, набираемого на клавиатуре в диалоговом окне утилиты SYSKEY. Последние два способа хранения системного ключа обеспечивают максимальную защиту паролей в базе данных SAM, однако приводят к невозможности автоматической перезагрузки операционной системы, поскольку для завершения процесса перезагрузки потребуется либо вставить дискету с системным ключом и подтвердить ее наличие в дисководе путем нажатия кнопки ОК в появившемся диалоговом окне, либо вручную ввести системный ключ с клавиатуры.

Для повышения стойкости паролей пользователей операционной системы Windows NT к взлому рекомендуется с помощью утилиты Диспетчер пользователей (User Manager) задать минимальную длину пользовательских паролей равной не менее 8 символов и включить режим устаревания паролей, чтобы пользователи периодически их обновляли. Чем выше вероятность атак на парольную защиту Windows NT, тем короче должен быть срок такого устаревания. А чтобы пользователи не вводили свои старые пароли повторно, необходимо включить режим хранения некоторого числа ранее использовавшихся паролей.

Утилита PASSPROP из состава Windows NT Resource Kit, запущенная с ключом /COMPLEX, заставляет пользователей вводить более устойчивые пароли, которые или сочетают буквы в разном регистре, или буквы с цифрами, или буквы со специальными символами. Более строгие правила фильтрации нестойких паролей можно задать после установки любого из пакетов обновления Windows NT, начиная с Service Pack 2. Тогда специальная библиотека PASSFJLT.DLL, находящаяся в каталоге \winnt_root\System32, будет следить за тем, чтобы каждый пользовательский   пароль состоял не менее чем из 5 символов, не содержал имени пользователя, включал символы, по крайней мере, трех наборов из четырех возможных, составленных из прописных букв, строчных букв, цифр и специальных символов (знаков препинания и т. д.) соответственно. Чтобы задать такой режим проверки паролей пользователей, необходимо в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControISet\Control\Lsa системного реестра с помощью программы REGEDT32 добавить параметр Noti fi cation Packages типа REG_MULTI_SZ и вписать в него строку PASSFILT. Если этот параметр уже имеется, то новую строку следует дописать после уже существующей.

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

Для противодействия атаки типа подбора паролей, в ОС UNIX введен механизм так называемого "затенения" (shadowing) файла паролей - он перемещается в другое место и становится недоступным обычным пользователям по чтению. Но это не сильно эффективное средство, что связано с идеологией UNIX, и вызов функции getpwent() иногда позволяет получить пароли пользователей в классическом виде. Также, иногда функция crypt() заменяется на другую (еще более медленную) хэш-функцию, и запуск старых программ-вскрывателей ни к чему не приводит. Обычно это алгоритм MD5, скорость которого в 50 раз меньше, чем crypt().

2 Атаки реализующие сканирование портов

2.1 Особенности протоколов, используемых при

сканировании портов

2.1.1 Протокол UDP

UDP (User Datagram Protocol, стандарт RFC-768) фактически не вы­полняет каких-либо особых функций дополнительно к функциям сетевого уровня (протокола IP), кроме (де)мультиплексирования па­кетов с прикладными данными — то есть направления данных тому или иному приложению в зависимости от номера порта. Протокол UDP используется либо при пересылке коротких сообщений, когда накладные расходы на установление сеанса и проверку успешной доставки данных оказываются выше расходов на повторную (в слу­чае неудачи) пересылку сообщения, либо в том случае, когда сама организация процесса-приложения обеспечивает установление со­единения и проверку доставки пакетов (например, NFS) [30].

Пользовательские данные, поступившие от прикладного уровня, предваряются UDP-заголовком, и сформированное таким образом сообщение UDP отправляется на уровень IP. Получившаяся IР-да­таграмма имеет структуру, показанную на рисунке 2.1.

IP-дейтаграмма с UDP-сообщением

IP-заголовок

UDP-заголовок

Данные пользователя

Заголовок UDP-сообщения

0 7

15

23

31

Source Port

Destination Port

Length

Checksum

Рисунок 2.1 - Структура UDP-сообщения

Значения полей UDP-заголовка: Source Port — номер порта процесса-отправителя. Destination Port — номер порта процесса-получателя. Length — длина UDP-сообщения вместе с заголовком в октетах.

Checksum — контрольная сумма. Контрольная сумма вычисляется та­ким же образом, как и в TCP-заголовке (см. п. 2.5.2); если UDP-co­общение имеет нечетную длину, то при вычислении контрольной суммы к нему добавляется нулевой октет. После заголовка непосредственно следуют пользовательские дан­ные, Переданные модулю UDP прикладным уровнем за один вызов.

Протокол UDP рассматривает эти данные как целостное сообще­ние; он никогда не разбивает сообщение для передачи в нескольких пакетах и не объединяет несколько сообщений для пересылки в од­ном пакете. Если прикладной процесс N раз вызвал модуль UDP для отправки данных (то есть запросил отправку N сообщений), то модулем UDP будет сформировано и отправлено N пакетов, и про­цесс-получатель будет должен N раз вызвать свой модуль UDP для получения всех сообщений [7].

При получении пакета от сетевого уровня модуль UDP проверяет контрольную сумму и передает содержимое сообщения прикладно­му процессу, чей номер порта указан в поле Destination Port.

Если проверка контрольной суммы выявила ошибку или если про­цесса, подключенного к требуемому порту, не существует, пакет иг­норируется. В последнем случае модуль UDP может вернуть отпра­вителю ICMP-сообщение Destination Unreachable: Port Unreachable. Если пакеты поступают быстрее, чем модуль UDP успевает их об­рабатывать, то поступающие пакеты также игнорируются. Прото­кол UDP не имеет никаких средств подтверждения безошибочного приема данных или сообщения об ошибке, не обеспечивает приход сообщений в порядке отправки, не производит предварительного установления сеанса связи между прикладными процессами, по­этому он является ненадежным протоколом без установления соеди­нения. Если приложение нуждается в подобного рода услугах, оно должно использовать на транспортном уровне протокол TCP.

Максимальная длина UDP-сообщения равна максимальной длине IР-датаграммы (65 535 октетов) за вычетом минимального IP-заго­ловка и UDP-заголовка, то есть 65 507 октетов.

Использование протокола UDP никак не изменяет положение с без­опасностью передачи данных протоколом IP. Поскольку UDP не ориентирован на соединение и одно UDP-сообщение переносится в одной IP-датаграмме, злоумышленник может легко сфальсифици­ровать UDP-сообщение и ввести в заблуждение прикладной про­цесс (если только само приложение не обеспечивает безопасность передаваемых данных своими средствами) [29].

Примеры прикладных процессов, использующих протокол UDP: NFS (Network File System — сетевая файловая система), TFTP (Trivial File Transfer Protocol — простой протокол передачи фай­лов), SNMP (Simple Network Management Protocol — простой про­токол управления сетью), DNS (Domain Name Service — доменная служба имен).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]