Windows XP считается самой надежной и безопасной пользовательской ОС от Microsoft. Но всегда полезно знать, как устроена и функционирует ее система безопасности. Ведь обладая такими знаниями, мы сможем оградить себя от многих неприятностей.
Учетные записи пользователей
Коммунистическая идея о всеобщем равенстве никак не повлияла на разработчиков операционных систем, поэтому большинство из них придерживаются правила, что пользователей надо различать. В Windows для этого применяются учетные записи. У каждого пользователя имеется своя учетная запись с определенными полномочиями. Для отслеживания каждой записи и связанных с нею прав используется идентификатор безопасности SID (Security ID). После создания новой учетной записи ей присваивается уникальный SID, по которому она и будет опознаваться в дальнейшем. В Windows XP значения SID хранятся в ветви реестра HKEY_USERS. Все идентификаторы начинаются с сокращения S-1, за которым следует длинный ряд чисел. С одной учетной записью может быть ассоциировано несколько SID (идентификатор пользователя, группы безопасности к которой он принадлежит и т. д.). Чтобы увидеть все SID, связанные с вашей записью, запустите консоль и напишите whoami /all /sid. Если такая команда не найдена, установите дополнительный инструментарий (в дистрибутиве Windows XP из каталога Support\Tools запустите программу установки) и повторите все заново.
Уязвимым местом любой системы являются неиспользуемые пользовательские учетные записи. Вот, к примеру, работал за вашим компьютером когда-то пользователь с именем Vasya, потом он пересел за другую машину, а на вашей осталась его учетная запись. Но зайдя под своим паролем на ваш компьютер, этот Vasya может принести много бед. Поэтому неиспользуемую учетную запись лучше сразу же отключить. Делается это так: из меню «Пуск» запустите lusrmgr.msc, в появившемся окне из соответствующей папки выберите «отслужившего» пользователя и, щелкнув правой кнопкой мыши, в свойствах учетной записи активируйте пункт «Отключить учетную запись». В ХР Home Edition оснастка lusrmgr.msc недоступна, поэтому для работы с пользователями придется использовать net-команды. Но с их помощью отключение производится еще быстрее. Просто в консоли пишем: net user имя_пользователя /active :no.
Некоторые читатели спросят: а зачем отключать, если можно удалить? Можно и удалить, только следует знать о последствиях. А они таковы. При удалении учетной записи безвозвратно теряется ее SID (даже если снова будет создана новая запись с тем же именем и паролем, идентификатор все равно будет другим). А вместе с SID теряются все персональные сертификаты пользователя, его закодированные файлы и сохраненные пароли для доступа к веб-узлам. Так что удаление — крайняя мера.
Учетная запись администратора чаще всего становится целью различного рода атак и домогательств со стороны злоумышленников. Это и понятно: имеющий права администратора получает полную власть над компьютером. Немного повысить уровень зашиты этой записи можно просто изменив ее имя при помощи control userpasswords2. Затем следует вновь создать учетную запись с именем администратора (это будет приманка) и дать ей минимальные права, добавив в группу гостей. Задайте длинный пароль для фиктивной записи, и пусть попробуют его взломать.
Если при входе в систему вы пользуетесь экраном Welcome, может возникнуть необходимость скрыть некую пользовательскую запись. Для этого в ключе реестра HKLM\Software\Microsoft\WindowsNT\ CurrentVersion\Winlogon\SpecialAccounts\UserList создайте новый параметр dword и присвойте ему нулевое значение. Имя параметра должно быть таким же, как имя пользователя, которого вы хотите скрыть.
Информация о пользовательских учетных записях хранится в защищенной базе данных, именуемой SAM (Security Accounts Manager). В качестве усиления защиты базы данных SAM была разработана утилита Syskey, появившаяся в версии Windows NT 4 Service Pack 3. Данная утилита по умолчанию активизирована в Windows ХР/2000. Используя несколько уровней кодирования, она защищает информацию, сохраняемую в базе данных SAM. Данные о пароле пользователя кодируются Syskey при помощи ключа шифрования, присущего учетной записи данного пользователя. А затем, после нескольких этапов кодирования, все шифруется так называемым стартовым ключом, который случайным образом генерирует система. В результате использования Syskey даже при краже базы SAM взломать ее почти невозможно. При наличии физического доступа к компьютеру эта задача становится более реальной, потому для обеспечения очень высокого уровня надежности стартовый ключ следует хранить отдельно от компьютера. При вводе верного ключа произойдет разблокирование базы данных и отображение регистрационного экрана.
Для работы с утилитой в командной строке меню «Пуск» введите syskey и нажмите «Обновить». Далее выбирайте один из трех вариантов защиты. Помните, что в случае забытого пароля или утери дискеты автоматическое восстановление возможно, только если резервная копия системного реестра была создана до включения защиты.
Эффективная работа с паролями
В Windows ХР/2000 длина пароля может достигать 127 символов (в Windows NT существовал предел — 14 символов). Учетные записи, снабженные пустыми паролями, в ХР могут применяться только для локальной регистрации. Никто не может удаленно зарегистрироваться с помощью учетной записи, не защищенной паролем.
В некоторых случаях полезна автоматическая регистрация (запустите control userpasswords2 и для одной из учетных записей уберите флажок «Требовать ввод имени пользователя и пароля»). Например, по умолчанию компьютер можно загружать под ограниченной учетной записью, а если требуется зайти под именем администратора, достаточно удерживать при загрузке «Shift» — в этом случае появится обычное окно входа в систему.
Есть возможность конфигурировать этот процесс через реестр, но тогда пострадает безопасность. В публикациях Microsoft утверждается, что при конфигурировании автоматической регистрации через реестр создается строковое значение DefaultPass-word, в котором в виде простого текста хранится незашифрованный пароль. А если используется утилита «Учетные записи пользователей», пароль хранится в закодированном виде в ключе HKLM\Security\Policy\Secrets\Default Password.
Блокировать учетную запись после определенного количества попыток ввода неправильного пароля можно, запустив оснастку secpol.msc и зайдя в «Политики учетных записей —> Политика блокировки учетной записи», где следует установить параметр «Пороговое значение блокировки». Администраторам следует по возможности удержаться от замены пользовательских паролей, поскольку в этом случае пользователь утратит доступ к закодированным средствами файловой системы данным. Дело в том, что при обработке информации подобного рода применяется мастер-ключ, с помощью которого разблокируются сертификаты персонального шифрования. Если пароль был изменен, мастер-ключ будет недоступен. Для возобновления доступа к нему придется вернуться к старому паролю. Поэтому право изменять пароль надо предоставить самим пользователям. Если они изменят собственный пароль с помощью какой-либо из встроенных утилит Windows, операционная система применит старый пароль для декодирования мастер-ключа, а вот кодировать его уже будет с применением нового пароля. Благодаря этому доступ к личным данным сохранится.
NTFS и права человека
Для каждого объекта, который хранится на диске в NTFS, поддерживается контрольный список доступа (ACL). Он определяет перечень пользователей, которым разрешен доступ к данному объекту, а также тех, кому запрещен. Каждая запись в таком списке называется записью, контролирующей доступ АСЕ (Access Control Entry). В ней содержатся:
- SID пользователя или группы пользователей;
- список разрешений доступа (например, на чтение и запись);
- данные о наследовании, которые определяют будет ли Windows использовать разрешения из родительской папки;
- флаг, указывающий на разрешение или запрет доступа.
Для того чтобы разрешить или отказать в доступе к объекту (файлу или папке), необходимо модифицировать АСЕ. Делать это могут владельцы объекта, члены группы «Администраторы» и обычные пользователи, которым разрешили это сделать либо первые, либо вторые.
В Windows XP при включенной опции «Использовать простой общий доступ ко всем файлам» возможности по изменению прав весьма ограничены. Заблокировав эту опцию в меню Проводника «Сервис—> Свойства папки —> Вид», вы получите доступ к набору прав NTFS (пользователям XP Home Edition, чтобы блокировать «простой общий доступ», придется перезагружаться в безопасном режиме). Дальнейшее управление правами производится на закладке «Безопасность» в свойствах объекта.
В Windows XP управление доступом к ресурсам реализовано с помощью набора предопределенных базовых прав доступа (их шесть): полный доступ, чтение, запись и т. д.. Но есть еще и двенадцать специальных прав доступа, с помощью которых разрешения настраиваются более тонко. Добраться к ним можно, нажав «Дополнительно» на вкладке «Безопасность», после чего нужно два раза щелкнуть на имени пользователя. Использование предопределенных прав упрощает процесс администрирования. На самом деле, если вы устанавливаете флаг «Чтение и выполнение», операционная система сама назначает пять отдельных прав доступа: выполнение файлов, чтение данных, атрибутов, дополнительных атрибутов, разрешений. Считается, что шести предопределенных прав в обычных случаях вполне достаточно.
Права доступа предоставляются установкой флажка в столбце «Разрешить». Флажки «Запретить» устанавливаются, когда требуется явно запретить применение указанного права доступа пользователю. Они имеют высший приоритет по сравнению с разрешениями и применяются в основном для внесения ясности при наложении прав нескольких пользователей. Если требуется полностью блокировать доступ к объекту, выберите для нежелательного пользователя «Запретить» в строке «Полный доступ».
В разделе NTFS каждый файл или папка имеют владельца, который может предоставлять или отказывать в правах доступа другим пользователям или группам. Владельцы могут заблокировать любого пользователя, включая членов группы «Администраторы». Владелец объекта может предоставлять свои права другому пользователю, если тот является членом группы «Администраторы». Сменить владельца можно на закладке «Безопасность —> Дополнительно —> Владелец». Кроме того, администратор системы может получить право собственности на любой объект.
Разнообразие средств управления учетными записями не может не радовать. Так, наряду с визуальными утилитами в ХР есть возможность пользоваться для администрирования утилитами командной строки, например cacls. Эта программа позволяет организовывать просмотр существующих прав доступа к файлам и папкам путем ввода в консоли команды: cacls имя_файла. Права доступа к указанному файлу изменяются добавлением соответствующих параметров в конце строки. При просмотре разрешений с помощью cacls отображается сокращенный перечень АСЕ для каждого файла, указанного в качестве аргумента. Каждый АСЕ нключает имя пользователя и одну букву для любого из стандартных настроек прав доступа: F (full control) — полный контроль, С (change) — изменение и т. д.
Что нашла Windows? Реестр
Чтобы просмотреть и изменить права доступа в реестре, запустите из меню «Пуск» regedit, щелкните на нужной ветви правой кнопкой мыши и в ниспадающем меню выберите пункт «Разрешения». Все почти как при работе с файлами, но отличия все же есть. При работе с реестром используется ограниченный SID. В результате запуска программы на выполнение из-под пользовательской учетной записи к ней добавляется маркер restricted, блокирующий попытки изменения системного реестра.
Как правило, пользователи с ограниченным доступом имеют полный контроль только над компонентами реестра, которые распространяются на их учетные записи (ветвь HKCU). Иногда в целях безопасности имеет смысл блокировать доступ пользователей к средствам редактирования реестра. Чтобы сделать это для конкретного пользователя, сначала установите права администратора для его учетной записи, зайдите под ней и запустите regedit. В нетви HKCU\Software\Microsoft\Windows \CurrentVersion\Publicies создайте подкаталог System и в нем — новое значение DisableRegistryTools равное 1 (тип dword). После сделайте Log on и не забудьте забрать у пользователя права администратора. Теперь при попытке запуска regedit или выполнения файлов с расширением .REG будет выводиться сообщение об ошибке.
Для разблокировки снова зайдите под именем пользователя. Запустите regedit от имени администратора. Направляйтесь в HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList. Для каждого SID в переменной Profile Image Path находится имя пользователя. Найдите нужное и запомните его SID. Далее выберите ключ HKU\[SID]\Software\Microsoft\Windows\ CurrentVersion\Policies\System, где просто измените значение DisableRegistryTools на 0.
Утилит, сканирующих компьютер на предмет наличия уязвимостей, немного. Но для начала можно воспользоваться программой, изготовленной корпорацией Microsoft. Утилита MS BaselineSecunty Analyzer проверяет компьютер на установленные патчи и обновления, ищет общеизвестные уязвимости в Internet Information Server 4/5, SQL Server 7/2000, Internet Explorer версии после 5.01, Office 2000/XP и, естественно, в самой Windows. Интерфейс управления программой понятен и прост. Скачать ее можно с официального сайта Microsoft по адресу www.microsoft.com/tecrinet/security/tools/mbsahome.asp, размер дистрибутива около 4 Мбайт.