ПК с Windows 95/3.х представляют серьезную угрозу для безопасности сети. Однако и сетевая среда небезопасна для клиентов.


НЕМНОГО О ПАРОЛЯХ И КРИПТОГРАФИИ
WINDOWS 95/3.X - УГРОЗА #1 ДЛЯ БЕЗОПАСНОСТИ
ПАРОЛИ CMOS
ПЕРЕХВАТЧИКИ СКАНКОДОВ КЛАВИАТУРЫ
ПОДБОР ПАРОЛЕЙ В WINDOWS NT
БЕЗОПАСНОСТЬ АДМИНИСТРАТИВНОГО ПЕРСОНАЛА
ЗАЩИТА КОНФИДЕНЦИАЛЬНОЙ ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕЙ

НАДЕЖНОСТЬ ПАРОЛЕЙ
Методы "взлома" паролей


Основными клиентами сетевой ОС являются ПК с установленными на них Windows 95, Windows 3.х и MS-DOS. Системные администраторы не видят в этом проблемы, так как Novell NetWare или Microsoft Windows NT Server считаются безопасными системами.

Но это глубочайшее заблуждение, и оно может привести к самым катастрофическим последствиям. Система безопасности сетевой ОС включает множество компонентов, и ее общий уровень безопасности определяется уровнем защиты самого слабого звена. Во многих случаях таким звеном оказывается клиент на основе Windows 95/3.х или MS-DOS.

НЕМНОГО О ПАРОЛЯХ И КРИПТОГРАФИИ

В вычислительной технике пароли используют в двух случаях.

Для аутентификации пользователя. С помощью пароля пользователь подтверждает свои полномочия. Аутентификация может осуществляться операционной системой, программным продуктом или аппаратными средствами. Все серьезные операционные системы имеют те или иные средства аутентификации на основе паролей. Многие программные продукты, работающие с конфиденциальной информацией или предназначенные для многопользовательской среды, также определяют полномочия пользователей на основе паролей. К таким продуктам прежде всего относятся СУБД, разнообразные финансовые и бухгалтерские программы и т. п. На аппаратном уровне персональных компьютеров аутентификация осуществляется по паролю CMOS.

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

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

Алгоритмы первого типа используют для шифрования и дешифрования один и тот же секретный ключ. Именно в этом качестве выступает пароль. Наиболее известным из подобных алгоритмов шифрования является DES (ключ имеет длину 56 разрядов). Чтобы найти ключ простым перебором комбинаций, взломщик должен проверить в среднем 70 триллионов комбинаций, что технически нереально. Программы на основе симметричного ключа очень широко распространены, хотя в коммуникационных системах они все чаще и чаще уступают место программам шифрования открытым ключом.

В алгоритмах второго типа используют два ключа: один для шифрования (открытый ключ) и один для дешифрования (личный ключ). Соответственно в качестве пароля выступает личный ключ. Установить его по открытому ключу практически нереально (в рамках возможностей современной вычислительной техники). Самыми популярными алгоритмами шифрования открытым ключом являются PGP и RSA. Подсчитано, что если при шифровании длина ключа составляет 1024 разряда, то, чтобы найти личный ключ простым перебором даже при одновременном использовании 1 млрд компьютеров, каждого производительностью 1 млрд ключей в секунду, не хватило бы времени существования Вселенной. Увы, но это в теории, на практике все оказывается зачастую совсем не так, но об этом позже.

До сих пор речь шла только о "солидных" алгоритмах шифрования. Именно о них говорят, как о невзламываемых (в теории). Правда, следует помнить, что экспортные ограничения США запрещают экспорт криптографических систем (без санкции соответствующих федеральных ведомств) на базе симметричных алгоритмов с длиной ключа, превышающей 40 разрядов, и для асимметричных систем - 512 разрядов. Это резко снижает криптографическую стойкость систем. Например, подобрать ключ к сообщению, зашифрованному протоколом S/MIME на основе 40-разрядного ключа, можно с помощью одновременно работающих 30 ПК на базе Pentium-166 в течение одного дня (если бы ключ был длиной 56 разрядов, то на это ушло бы 180 лет).

К великому сожалению, в большинстве прикладных неспециализированных программ используются еще менее надежные алгоритмы шифрования. Среди таких программ можно выделить Microsoft Word, Microsoft Excel, Microsoft Access, Corel WordPerfect, Symantec Norton Utilities и другие. Эти программные продукты не имеют надежных средств шифрования, хотя очень многие пользователи полагаются на них.

Для получения пароля злоумышленник может задействовать один из трех основных методов: дешифрование, подбор пароля и перехват (см. врезку "Методы "взлома" паролей").

WINDOWS 95/3.X - УГРОЗА #1 ДЛЯ БЕЗОПАСНОСТИ

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

Picture_1(1x1)

Рисунок 1.
Использование схожих паролей при доступе к независимым ресурсам подрывает систему безопасности.

Windows 95 и 3.х имеют одинаковую схему защиты, основанную на PWL-файлах. Когда в Windows 95/3.х заводят нового пользователя (например, Pupkin), то в каталоге WINDOWS создается соответствующий PWL-файл (PUPKIN.PWL), в котором хранится зашифрованный пароль пользователя. Применяемая при этом схема шифрования является весьма примитивной, поскольку она допускает прямое декодирование пароля. Еще более обостряет проблему файловая система FAT (VFAT в Windows 95) и отсутствие контроля доступа в Windows 95/3.х: каждый пользователь компьютера имеет доступ к любому файлу системы, в том числе и к PWL-файлам.

Если в Windows 95/3.х и в сетевой ОС задан одинаковый пароль, то, узнав пароль Windows, злоумышленник автоматически получает пароль и для сети.

Для взлома файлов PWL существует ряд программ. Наиболее известна среди них утилита GLIDE (http://freespace.virgin.net/j.wiles/hack.htm), имеющаяся не только в виде двоичного файла, но и в исходном коде на Си. Исходный код занимает всего 140 строк текста, и, помимо прочего, он позволяет понять алгоритм кодирования пароля. GLIDE взламывает пароль за считанные доли секунды. Правда, судя по сообщениям прессы, компания Microsoft выпустила заплатку, значительно усиливающую алгоритм шифрования пароля. Тем не менее проблема остается, поскольку доступность файлов PWL позволяет использовать другие формы взлома паролей (наподобие тех, что применяются для взлома паролей Windows NT и UNIX).

Каким же образом злоумышленник может получить доступ к файлам с паролями в Windows 95/3.х?

Во многих организациях весьма распространена практика, когда на ПК работают по очереди несколько пользователей. Это благодатная почва для злоупотреблений. Но все-таки наиболее опасные случаи возникают от недостатка опыта системных администраторов. Зачастую, сев за ПК пользователя для решения какой-либо проблемы, администратор входит в локальную и сетевую ОС под своим именем. Вот тогда-то и образуется файл PWL. При этом злоумышленнику необязательно стоять за углом в напряженном ожидании: он может воспользоваться PWL-файлом и через неделю, и через месяц, и через год (если пароль администратора не менялся). Соответственно злоумышленник может облюбовать для атаки не только бюджет администратора, но и другого пользователя.

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

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

1. Включить ПК и дождаться, пока не закончится фаза начальной загрузки (т. е. до появления заставки Windows 95).

2. В тот момент, когда Windows 95 инициализирует систему и загружает драйверы, необходимо выполнить теплую перезагрузку системы.

3. Во время перезагрузки запускать основной режим (normal mode) Windows 95 не следует. Вместо этого необходимо выбрать режим безопасной загрузки (safe mode). После чего запускается редактор Реестра (Registry), с помощью которого отменяется действие системы защиты.

Некоторые всерьез рассчитывают на системную политику (Policy) Windows 95. Но и ее легко обойти. Достаточно вынуть сетевую плату и перегрузить Windows 95, чтобы оказаться в режиме безопасной загрузки, и затем отменить защиту на основе паролей.

Системы защиты Windows 95 и Windows 3.х позволяют не только легко взламывать пароли, но и запросто уничтожать бюджет пользователя или отменять действие паролей. Так, если пользователь забыл свой пароль, то достаточно уничтожить его файл PWL.

ПАРОЛИ CMOS

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

  • Amedecod - для American Megatrends BIOS;
  • AMI.COM - для AMI CMOS;
  • AW.COM - для Award BIOS.
  • После запуска такая утилита выдает пароль. Кроме того, другие утилиты позволяют изменять пароли CMOS.

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

    Справедливости ради надо отметить, что некоторые компьютеры, и прежде всего серверы, имеют хорошую защиту от несанкционированного доступа внутрь корпуса (к сожалению, таких компьютеров значительное меньшинство).

    В любом случае задавать тот же пароль CMOS, что и пароль пользователя в сетевой и локальной ОС, не следует.

    ПЕРЕХВАТЧИКИ СКАНКОДОВ КЛАВИАТУРЫ

    Еще один класс утилит может представлять угрозу для безопасности сети в руках злоумышленника. Это так называемые перехватчики сканкодов клавиатуры, которые записывают вводимую с клавиатуры информацию, в том числе и пароли. Больше всего их написано для MS-DOS. Перехватчики являются резидентными программами и обычно действуют незаметно для пользователей. После запуска утилита записывает сканкоды нажатых клавиш в специальный файл. Это может быть либо фиксированное количество нажатий, либо запись всех кодов до момента явной выгрузки утилиты из операционной памяти компьютера.

    Схема атаки весьма тривиальна. Злоумышленник вносит в файл начальной загрузки (AUTOEXEC.BAT для MS-DOS) команду запуска перехватчика сканкодов клавиатуры перед строкой инициализации подключения к сети, и после этого приглашает администратора для решения какой-либо проблемы (мнимой или настоящей). Если администратор на этом ПК регистрируется под своим именем, то его пароль перестает быть секретным. Администратор, как правило, не проверяет содержимого файлов начальной загрузки (да и вряд ли это будет уместно в условиях дефицита времени).

    Если есть возможность, то злоумышленник попытается поставить перехватчик сканкодов на машины других пользователей или замаскировать вызов перехватчика через сетевые программы. Для того чтобы скрыть файлы и каталоги с записанными сканкодами, идут на всякие ухищрения. Например, если имя каталога состоит из символов ALT+255, то в MS-DOS такой каталог делается невидимым.

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

    Как уже подчеркивалось, большинство перехватчиков написано для MS-DOS. Самые известные из них - Keytrap, Playback, Keycopy и др.

    Перехватчики могут быть реализованы и для Windows 95/3.х, но поскольку есть более простые и эффективные способы атак (хотя бы атака на PWL-файлы), то они не получили широкого распространения.

    Гораздо сложнее написать утилиты перехвата для Windows NT. Здесь требуется знание ОС на уровне системного программиста. Кроме того, для установки такой утилиты на ПК необходимы полномочия администратора Windows NT.

    Помимо универсальных утилит перехвата сканкодов есть и специализированные. Например, для перехвата паролей в среде Novell NetWare существует программа Getit. Она отслеживает только обращение к функции LOGIN и, таким образом, не накапливает "мусор".

    ПОДБОР ПАРОЛЕЙ В WINDOWS NT

    Утилиты для подбора паролей, весьма распространенные для взлома UNIX-систем, начали появляться и для Windows NT.

    Любая серьезная операционная система (Windows NT, UNIX, VMS и т. д.) содержит базу бюджетов пользователей, где наряду с регистрационными именами и другой информацией хранятся зашифрованные пароли. Применяемые здесь алгоритмы шифрования весьма надежны: взломать их напрямую практически невозможно. Когда пользователь вводит свой пароль при входе в систему, то ОС запускает подпрограмму шифрования, и та выдает зашифрованный пароль. Именно эту строку ОС сравнивает с оригиналом, хранимым в базе пользовательских бюджетов. Если строки совпадают, то пользователь считается аутентифицированным.

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

    В состав любой утилиты подбора паролей входит файл (называемый словарем), который содержит большое количество слов и словосочетаний из орфографического словаря. Утилита последовательно выбирает из словаря строку за строкой, шифрует ее с помощью алгоритмов шифрования, применяемых в ОС, и сравнивает полученные значения со значениями из пользовательской базы данных. Хорошие утилиты, не ограничиваясь этим, могут производить дополнительные проверки, например, добавляя в то или иное место исходной строки цифры либо специальные символы или "играя" строчными и прописными буквами (для NT это неактуально, поскольку здесь все символы пароля переводятся в прописные). Благодаря современной технике скорость работы таких утилит весьма высока и составляет до несколько десятков тысяч переборов в минуту, но процедура все равно может затянуться надолго. Если же пароль придуман сложный, то у утилит нет шанса его подобрать.

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

    Очевидно взломщику для применения подобных утилит необходим доступ к базе пользовательских бюджетов. В Windows NT такие утилиты может запускать администратор (Administrator) локальной машины в случае файловой системы NTFS и любой пользователь в случае файловой системы FAT. Соответственно для взлома пароля злоумышленник должен под каким-то предлогом завлечь системного администратора на ПК, где он (злоумышленник) является администратором локальной ОС или где ОС установлена на FAT.

    Среди программ подбора паролей в Windows NT можно выделить Scan NT (http://www.ntsecurity.com/Products/ScanNT/index.html) и Password NT (http://www.ntsecurity.com/Services/Recovery/index.html).

    БЕЗОПАСНОСТЬ АДМИНИСТРАТИВНОГО ПЕРСОНАЛА

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

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

    Затем администратору для повседневной работы в сети лучше завести специального пользователя с ограниченными полномочиями. Для тестирования программных продуктов на чужих ПК следует завести еще одного пользователя (к примеру, GUEST), но уже с минимальными полномочиями.

    Администратор не должен регистрироваться на чужих ПК с привилегированными полномочиями. Если же по каким-то чрезвычайным обстоятельствам приходится это делать, то по окончанию работ администратору необходимо удалить все свои PWL-файлы. Причем удалять надо не обычными командами DEL или ERASE, а программами, полностью стирающими блоки на диске (в противном случае злоумышленник может восстановить PWL-файлы). Такого рода программы есть во многих сервисных приложениях, например в Symantec Norton Utilities.

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

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

    Даже опытные администраторы в различных системах довольно часто задают похожие пароли. Например, в среде Windows устанавливается пароль "wtek2lun", а в среде NetWare - "ntek2lun". Это очень опасно. Если произойдет взлом пароля в одной системе, подобрать пароль в другой не составит труда.

    Системному администратору не стоит забывать устанавливать заплаты (patch) к ОС, особенно те из них, которые связаны с системой безопасности.

    ЗАЩИТА КОНФИДЕНЦИАЛЬНОЙ ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕЙ

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

    Как уже было сказано ранее, у неспециализированных прикладных программ, имеющих встроенные функции шифрования, пароли легко взламываются с помощью хакерских программ. Например, обойти защиту Word, Excel, Access, Paradox, WordPerfect и др. не представляет труда. Пользователям необходимо избегать задания в качестве паролей этих программ пароли сетевой ОС или СУБД. Кроме того, зашифрованную информацию не следует размещать на общедоступных сетевых дисках.

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

    Но есть вещи, за которые администратор не отвечает и к которым у него не должно быть доступа. Это может быть и финансовая документация, и информация о новейших разработках предприятия, и конфиденциальная переписка руководства компании. Только не следует считать такую ситуацию высосанной из пальца: она как раз довольно типична. Кстати, один из великих хакеров современности Рандал Шварц (Randal Schwartz), работая системным администратором Intel, успел натворить немало дел, прежде чем был пойман и осужден. Но обнаружили это, в общем-то, случайно, из-за одной лишь оплошности.

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

    На первый взгляд кажется, что если использовать мощные алгоритмы шифрования с нетривиальными паролями, то дешифровать информацию нельзя. Это и так, и не так. Возьмем, к примеру, сетевую ОС NetWare 4.х. Она позволяет создавать входные сценарии (Login Script) для контейнера NDS, для профиля и для конкретного пользователя. Причем сам пользователь может редактировать только сценарии третьего типа. Представьте себе, что администратор помещает во входной сценарий контейнера или профиля (пользователи их обычно не проверяют, так как не имеют возможности редактировать) команду запуска утилиты перехвата сканкодов клавиатуры. Все, дело в шляпе! Программу-перехватчика сканкодов можно завуалировать так, что обнаружить это будет практически невозможно.

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

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

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

    И напоследок несколько рекомендаций для руководителей организаций.

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


    Константин Пьянзин - обозреватель LAN. С ним можно связаться по адресу: koka@osp.ru.

    НАДЕЖНОСТЬ ПАРОЛЕЙ

    Методы "взлома" паролей

    Дешифрование пароля
    Такой вариант подходит только для самых слабых алгоритмов шифрования.

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

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