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


Главное окно взломщика паролей
Главное окно взломщика паролей

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

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

Для выявления слабых мест парольной защиты операционных систем мы провели серию опытов по взлому паролей ОС Windows 2000/XP/2003 в лабораторных условиях. В ходе работы мы попытались получить административные полномочия (права) в системе под управлением Windows XP при наличии физического доступа к системному блоку.

Для подбора пароля использовалось программное обеспечение LC 5.04 и SAMInside версии 2.2.41. Для подмены пароля мы применили chntpw (cd050303.iso, http://home.eunet.no/~pnordahl/ntpasswd), образ Linux-системы, также используемый для обнуления паролей.

Взлом базы данных учётных записей пользователей

Одним из основных компонентов системы безопасности Windows 2000/XP/ 2003 (в дальнейшем в тексте — Windows) является диспетчер учётных записей пользователей. Он обеспечивает взаимодействие других компонентов системы, приложений и служб Windows с базой данных учётных записей пользователей (Security Account Management Database, SAM). Эта база обязательно имеется на каждом компьютере, работающем под Windows. В ней хранится вся информация, используемая для аутентификации пользователей при интерактивном входе в систему и при удалённом доступе к ней по компьютерной сети.

База данных SAM представляет собой один из разделов (hive) системного реестра (registry) Windows. Этот раздел принадлежит ветви (subtree) HKEY_LOCAL_MACHINE и называется SAM.

Он расположен в каталоге \winnt_root\ System32\Config (winnt_root — условное обозначение каталога с системными файлами Windows) в отдельном файле, который тоже называется SAM. Основная часть информации в базе данных SAM хранится в двоичном виде. Доступ к ней обычно осуществляется с помощью диспетчера учётных записей. Изменять записи, хранящиеся в базе данных SAM, при помощи программ, которые непосредственно редактируют реестр Windows (REGEDIT или REGEDIT32), не рекомендуется. По умолчанию этого и нельзя делать, т.к. доступ к базе данных SAM запрещён для всех без исключения категорий пользователей Windows.

Использование пароля

При интерактивном или сетевом входе в систему введённый пароль сначала хешируется и шифруется, а затем сравнивается с 16-байтовой последовательностью, записанной в базе данных SAM. Если эти величины совпадают, пользователю разрешается вход в систему. Обычно в базе данных SAM хранятся в зашифрованном виде оба хешированных пароля. Однако в некоторых случаях ОС вычисляет только один из них. Например, если пользователь домена Windows NT/2000/2003 изменит свой пароль, работая на компьютере с Windows for Workgroups, то в его учётной записи останется только пароль Lan Manager. А если пользовательский пароль содержит более 14 символов или они не входят в так называемый набор поставщика оборудования (OEM), то в базу данных SAM будет занесён только пароль Windows NT/2000/ХР.

Возможные атаки на базу данных SAM

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

Хотя по умолчанию в Windows доступ к файлу \winnt_root\System32\Config\ SAM заблокирован, с помощью программы NTBACKUP любой обладатель права на резервное копирование файлов и каталогов Windows может перенести этот файл с жёсткого диска на магнитную ленту. Кроме того, интерес для взломщика представляют резервная копия файла SAM (SAM.SAV) в каталоге \winnt_root\System32\Config и сжатая архивная копия SAM (файл SAM._) в каталоге \winnt_root\Repair.

Также указанный файл можно получить, загрузившись с дискеты или CD-ROM, воспользовавшись программой NTFSDOS или аналогичной. При наличии загрузчиков двух операционных систем (например, Windows 98 и Windows 2000) процесс копирования файла SAM существенно упрощается.

Имея физическую копию файла SAM, извлечь хранимую в нём информацию не составляет большого труда. Загрузив файл SAM в реестр любого другого компьютера с Windows 2000/ХР/2003 (например, с помощью команды Load Hive программы REGEDIT32), можно детально изучить учётные записи пользователей, чтобы определить их значения PID (Personal ID) и шифрованные варианты хешированных паролей. Зная PID пользователя и имея зашифрованную версию его хешированного пароля, преступник может попытаться расшифровать этот пароль, чтобы использовать его для получения сетевого доступа к другому компьютеру. Однако для интерактивного входа в систему одного лишь знания хешированного пароля недостаточно. Необходимо получить его символьное представление.

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

Программа может работать как со словарем, так и методом прямого перебора.

Правда, в настоящее время появилась программа с более быстрым перебором паролей — SАМInside. Скорость перебора составляет 6 951 834 пароля в секунду на процессоре AMD 2400. Размер программы всего 67 КБ.

Однако существует ещё более простой способ получения администраторских полномочий при наличии физического доступа.

Это просто удаление (обнуление) пароля того или иного пользователя при наличии возможности физического доступа к компьютеру и возможности загрузки компьютера с внешнего носителя. Одновременно стоит учесть, что после обнуления база учётных записей SAM может быть возвращена на место, и при проведении расследования все записи в системных журналах логов будут указывать на того пользователя, пароль которого был успешно удалён. Не стоит забывать, что в этом случае злоумышленник сможет и подменить лог-журналы, что затруднит расследование инцидента.

Вместе с тем стоит помнить, что такая подмена пароля возможна не только для рабочей станции — она возможна (при наличии физического доступа) и для службы Active Directory (AD), что нанесёт существенно больший ущерб. В ходе эксперимента по подмене пароля администратора AD на весь процесс подмены ушло менее 5 минут.

Способы снижения уровня угроз

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

Первый — блокировка открывания корпуса компьютера путём использования электронного замка, управляемого через BIOS. Затем — установка на BIOS пароля. Не зная пароля — нельзя произвести загрузку компьютера. Но вместе с тем нельзя сбросить настройки BIOS, так как нельзя вскрыть корпус.

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

Но остаётся проблема простых паролей. Её решить сложнее и дороже. Здесь на помощь могут прийти системы двухфакторной и многофакторной аутентификации, в которых пароль пользователя хранится на внешнем носителе (eToken, смарт-карта). При этом длина пароля может составлять более 26 символов, и он будет автоматически сгенерирован в трёх кодировках. Перебор такого пароля займёт много времени, его можно считать достаточно устойчивым ко взлому. Также можно предусмотреть смену пароля каждые 30 дней.

Заключение

Для эффективного использования парольной защиты следует лишь придерживаться определённых правил работы с паролями:

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

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

Как работает парольный взломщик?

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

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

(Большой набор словарей можно найти на сайте http://www.password.ru)

К каждому слову из словаря парольный взломщик применяет одно или несколько правил, в соответствии с которыми оно видоизменяется и порождает дополнительное множество паролей:

производится попеременное изменение буквенного регистра, в котором набрано слово;
порядок следования букв в слове меняется на обратный;
в начало и в конец каждого слова приписывается цифра 1;
некоторые буквы изменяются на близкие по начертанию цифры, например, из слова “password” получается в результате “pa55w0rd”.

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

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

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