Индивидуальная парольная защита рабочих станций

А.М.Терентьев

Наблюдение за работой пользователей как на индивидуальных рабочих станциях (РС), так и на РС коллективного пользователя на примере ЦЭМИ РАН показало, что в подавляющем большинстве случаев конечный пользователь желал бы защититься от возможности использования посторонними лицами всей или части имеющейся у него информации. В то же время, практически все пользователи ЦЭМИ РАН полагаются на такие методы, как установка пароля в BIOS при включении, либо – как максимум – установка пароля на вход в Windows, полагая, что "в большинстве случаев" этого достаточно.

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

На современном ПК Basic Input/Output System, или системный BIOS любой из версий содержит в том или ином варианте программу SETUP, обычно вызываемую при нажатии и удерживании клавиши Del во время загрузки. При входе в SETUP предлагается меню, один из пунктов которого есть установка/снятие пароля, который в общем случае может быть паролем пользователя (User Password) или организатора работы на этом ПК (Supervisor Password). Кроме того, один из входов содержит переключатель паролирования Security, позволяющий установить требование пароля при входе в саму программу SETUP (значение Setup) либо при любой загрузке ПК (System). С пользовательским паролем и взведенным триггером Security менять опции SETUP не допускается, кроме замены самого пользовательского пароля. Такая многоуровневая защита неискушенному пользователю представляется столь надежной, что ни о чем другом он обычно и не помышляет.

На самом деле сделанные пользователем в программе SETUP установки запоминаются в так называемом CMOS (Complementary Metal Oxide Semiconductor), известном также как Flash-ROM, или EEPROM – небольшом блоке памяти, обычно имеющем 64 или 128 байт, хранящих значения даже после отключения питания ПК благодаря батарейке на материнской плате. Существенная часть этой памяти (15 байтов) отводится под текущие значения системной даты и времени, постоянно обновляемых системным таймером даже при отключенном ПК. Остальные байты содержат различные значения в соответствии со спецификацией производителя, но байты с 16 по 35 защищены от случайного изменения (например, при подсаде батарейки) контрольногй суммой (КС) стандартного образца. Естественно, уже ко времени появления 486х ПК почти каждый бит проверяемой области из этих 19 байтов уже давно был распределён. То ли ради однообразия, то ли для минимизации накладных расходов все упомянутые фирмы сохраняют не все 8 байт пароля, а только два байта – например, производитель подавляющего большинства BIOS’ов фирма AWARD сохраняет пароль в байтах 1B-1C CMOS, причем, к сожалению, именно пароль супервизора. Имеется фиксированное место и для битов Security (первый ON/OFF, второй System/Setup).

Из других необходимых предварительных сведений следует отметить, что на некоторых материнских платах имеется специальная перемычка (jumper), при замыкании которой можно ввести любой пароль – страховка от забывания паролей пользователями. Если таковой перемычки нет, достаточно вытащить батарейку, чтобы содержимое CMOS непредсказуемым образом изменилось, и по несоответствию КС все значения BIOS будут восстановлены по фабричным умолчаниям. Вообще же чтение/запись CMOS настолько просты, что даже на примитивном Бэйсик-интерпретаторе, ранее входившем в состав операционных систем (до MS-DOS 3.0) можно было командами IN и OUT произвести нужные операции с портами 70h и 71h для записи или чтения CMOS.

Из рассмотрения выше схемы представления пароля двумя байтами видно, что при установленном пароле фактически есть целая серия паролей, которые будут валидны. Однако, это ещё не всё: практически каждывй вариант BIOS имеет ещё так называемый технологический пароль – совокупность байтов, срабатывающую всегда, при любом установленном пароле как пароль супервизора. Широко известны пароли AWARD_SW, j262 и многие другие.

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

* Включив ПК, посмотреть высвеченный на экране тип BIOS’а. По его номенклатурному номеру и наименованию фирмы-производителя определить (например, на одном из многочисленных хакерских сайтов) технологический пароль и ввести его. Доступ открыт. Первым делом далее следует вход в SETUP для разрешения загрузки с дискеты и загрузка с такой заранее подготовленной дискеты, содержащей стандартный MS-DOS, возможно, с некоторыми дополнительными утилитами (о них речь далее). Все хитрости файлов CONFIG.SYS, AUTOEXEC.BAT и прочих попросту обходятся.

* Вскрыть корпус, замкнуть перемычку блокировки пароля. Включить ПК и ответить любой ахинеей на запрос пароля, войти в SETUP, разрешить загрузку с дискеты и далее по предыдущему варианту.

* Улучить момент, когда ПК осталась без присмотра, и запустить на ней (неважно, под MS-DOS или Windows) программу подбора паролей. В течении 1 секунды будет выдано на экран 3-5 паролей, один из которых обязательно подойдёт.

* Улучить момент, когда ПК осталась без присмотра, и запустить программу, меняющую только один бит в CMOS, разрешающий загрузку с дискеты (2-3 секунды). Далее выждать, когда основные пользователи уйдут, и спокойно загружаться с дискеты. По завершении своих дел запустить ещё раз программу и восстановить прежнее значение бита в CMOS.

* Улучить момент "беспризорного" ПК и запустить программу, меняющую КС в CMOS на нули. При следующей загрузке, обнаружив некорректную КС, BIOS позволит загрузиться без пароля.

* В долгое отсутствие пользователя вскрыть корпус, изъять HDD, перенести его на другой ПК, на котором разрешена загрузка без пароля, считать с HDD или записать на него требуемую информацию и вернуть HDD на место.

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

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

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

Справедливости ради стоит отметить, что существует ещё один способ установления конфиденциальности. Он связан с нестандартной разметкой HDD, которая напрямую не воспринимается операционными системами: для работы с таким HDD нужен специальный драйвер. Таким образом размеченный диск попросту "не виден" ни из-под Windows, ни в DOS, его бесполезно красть с ПК на другой, бесполезно пытаться и загружаться со своей дискеты, т.к. информация диска остаётся нечитаемой. Этот метод освещён в [1], неоднократно применялся автором в ЦЭМИ РАН и использован, в частности, на установке круглосуточного аудита КВС. Все известные автору реализации этого метода работоспособны исключительно в MS-DOS и Windows 3.x.

Литература
  1. Терентьев А.М. Многопользовательский режим работы на персональных ЭВМ. Средства системной поддержки. / Препринт #WP/99/071. — М.: ЦЭМИ РАН, 1999. - 79с. (Рус.)

Статья опубликована в 2001 г.