БУМАЖНЫй НОМЕР 

 

Откройте, полиция!

01.12.2001
Михаил Петров

 

Безопасность Windows… Сколько копий было сломано вокруг нее! Несмотря на все ухищрения, система по-прежнему похожа на распахнутую дверь, в которую может войти любой.

Однако защита, применительно к Windows, может быть направлена не только против внешнего врага - Хакера, но и против врага внутреннего… Имя ему - Невежественный Юзер. Как же обезопасить Windows от происков этого опасного субъекта?

Если вы - системный администратор 1, я уверен, что ваш день проходит в перебежках от одного компьютера к другому. И по какому-либо серьезному делу зовут вас очень, очень нечасто. В основном же с ума сводят мелочи типа «Ой, а я программу удалила!» (ooops, I did it again в секретарской аранжировке) или «Где мой ворд?» (где? - собрал вещи и уехал к папе в Сиэтл!). Это выводит из себя, не правда ли? Обычно утомленный подобными стенаниями сисадмин бросается ставить различные «защитные» программы, не пускающие работающего пользователя за пределы необходимых ему функций Windows (например, Word+Excel+ вывод на печать - и все). Таких утилиток в Сети - видимо-невидимо. Установить и настроить их несложно, если у вас три компьютера. А если триста тридцать три?

Политики и граждане

Может быть, этот факт вас удивит, но фирма Microsoft позаботилась о подобном типе безопасности еще при создании Windows 95 и ввела так называемые «Системные правила», или «Системные политики» (System Policies). Суть их в том, что при наличии определенных параметров, указанных в реестре, включаются ограничения на те или иные действия пользователя, при этом ограничения могут распределяться централизованно - с сервера. Во всех последующих версиях Windows - как линейки 9x, так и NT/2000 - технология совершенствовалась, хотя суть оставалась неизменной. Поэтому здесь будет рассмотрена связка Windows 98 (как клиента) и Windows NT 4 (как сервера), с описанием мелких отличий Windows NT Workstation и Windows 2000 Server/Professional. Сразу стоит сказать, что для корректной работы политик сеть Windows NT должна поддерживать доменную организацию.

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

Каким же образом записи о настройках политик попадают в реестр?

Создаются и изменяются они с помощью программы, называемой «Редактор системных правил» (далее - poledit, как он, в общем-то, и зовется). Программа эта представляет собой, в сущности, редактор реестра, но интерфейс, по сравнению с regedit, имеет несравненно более дружелюбный. Если последний позволяет редактировать любое значение в любом месте, то poledit сводит в одно окно параметры из самых различных ветвей, группируя их по воздействию на пользователя. Например, настройки сети собраны в одном разделе, настройки рабочего стола в другом, настройки программ - в третьем. Все это подписано по-русски и позволяет вносить изменения с помощью привычных для нас элементов - «чекбоксов», радиокнопок, раскрывающихся списков, а не изменением не всегда внятных значений ключей с помощью regedit.

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

Шаблон - это текстовый файл, в котором на особом языке (очень, кстати сказать, похожем на язык описания ресурсов Visual Studio) размечены все ветви, нуждающиеся в изменении, и способы их редактирования. Язык относительно несложен, его описание приведено в Resource Kit Help, поэтому при желании вы можете сами создавать шаблоны для настройки необходимых мест в реестре. В качестве «примера для подражания» в состав poledit входит десяток шаблонов, с помощью которых можно «подкрутить» Internet Explorer, Outlook Express, Netmeeting и настроить другие функции системы, не связанные с безопасностью.

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

Для этого poledit может создавать «экспортный» вариант политик в виде самостоятельного файла с расширением pol. Файл этот будет уже откомпилирован в формат реестра, но сразу стоит сказать, что из-за различий в архитектуре файл, созданный в Windows 9x, не будет работать в NT, и наоборот.

Как же pol-файл попадает на другие машины? Windows во время процедуры входа в сеть ищет на сервере каталог NETLOGON. Если таковой существует (а он должен существовать) 2 и доступ на чтение открыт, то в нем ищется файл config.pol (если клиентом является Windows 9x) или NTconfig.pol (если клиент - Windows NT 4). Если файл нашелся, Windows импортирует содержащиеся в нем настройки в свой реестр и продолжает загрузку, уже руководствуясь новыми политиками. Если нет - остаются в действии политики старые. То есть, если после того, как машины импортировали его себе в реестр, файл config.pol из NETLOGON’а убрать, то политики на машинах-клиентах по-прежнему будут действовать. Для того чтобы отменить заданные установки, вам необходимо создать «очищенный» файл config.pol и дождаться, пока все машины его снова импортируют.

Несколько отступает от этой схемы дуэт Windows 2000 Server/Professional. В соответствии с идеологией Microsoft, все настройки для рабочих станций и пользователей будут храниться в определенном уголке Active Directory, так что нет Рис. 1. «Я и мой компьютер».необходимости даже беспокоиться о файлах и расширениях - Windows все сделает за вас.

Политический выбор

А вот тут начинается самое интересное - процесс настройки. Сразу должен предупредить: настройка политик дело небезопасное. На этапе тренировки вы можете - случайно или намеренно - довести систему до полного ступора: вас ограничат с ног до головы, а вы даже не сможете снова запустить редактор политик. Поэтому перед сеансом настройки не поленитесь выйти в DOS (не запустить сеанс DOS, а именно выйти в DOS) и скопировать в безопасное место файлы user.dat и system.dat. Если у вас многопользовательская конфигурация, то user.dat необходимо взять из соответствующего вашему идентификатору (логину) подкаталога папки Profiles. Предохранились? Тогда вперед!

С помощью poledit можно либо открыть реестр, дабы изменить настройки безопасности текущего компьютера, либо же открыть файл политик, предназначенных для распространения по сети, - config.pol. В порядке эксперимента стоит ограничиться собственным компьютером и текущим сеансом. Открыв реестр («Файл» -> «Открыть реестр»), вы сможете Рис. 2. Древо властиузнать, как выглядите вы и ваш компьютер с точки зрения Windows (рис. 1).

Объект «Стандартный пользователь» будет содержать в себе настройки безопасности вашего сеанса, которые будут храниться в реестре под ветвью HKEY_CURRENT_USER и записываться в файл user.dat. «Стандартный компьютер», соответственно, будет содержать в себе настройки системы, хранить их в ветви HKEY_LOCAL_MACHINE и записывать в system.dat. Прежде всего, думаю, стоит поиграть с правами пользователя. Выбрав «Стандартного пользователя», мы увидим окно (рис. 2), к которому стремились с самого начала.

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

Пройдясь по пунктам настроек, вы поймете, что не зря потратили время, ибо теперь в ваших руках - полная власть над системой. К примеру, вы можете скрыть диски в «Моем компьютере» - пытается пользователь зайти на диск C, дабы стереть лишние неаккуратно лежащие в корне файлы типа io.sys, заходит в «Мой компьютер»… ан диска-то этого и нет, как, впрочем, и всех остальных… Можно также запретить сохранять изменения конфигурации при выходе - старался человек, старался, делал в системе синие буквы на зеленом фоне, а компьютер все это безобразие просто возьмет и не запомнит - или отключить возможность настройки Рис. 3. Тварь ли я дрожащая или право имею?экрана, чтобы сделать предыдущую ситуацию невозможной в принципе. И это только цветочки.

Ягодки преподносит настройка «Только разрешенные приложения Windows». В список - сначала совершенно пустой - разрешенных к запуску приложений, появляющийся при щелчке по кнопке «Показать», вы вносите лишь те программы, которым на вашем компьютере разрешено запускаться (рис. 3).

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

Главное при создании списка разрешенных к запуску программ - не забыть включить в него для страховки poledit.exe и regedit.exe, иначе ситуация ваша станет практически безнадежной - при попытке запустить poledit для изменения сего магического списка «допущенных к телу компьютера» Windows заботливо отошлет вас к администратору. Однако способ выйти из положения все же есть: с помощью «Проводника» вам необходимо найти poledit.exe и переименовать его… в одну из разрешенных к запуску программ (например, word.exe), после чего и запустить - простодушное детище Большого Билла Рис. 4. Благословение на поискипривыкло верить на слово. Ну а если вы от большого ума не внесли в список ни одной программы - тогда пожалуйте в DOS, ручками возвращать на старое место user.dat и system.dat.

Помимо этого, необходимо позаботиться и о том, чтобы в число разрешенных программ попали резидентные - например, не включив в список internat.exe, вы останетесь без индикатора раскладки клавиатуры. Вообще же, на этапе загрузки ОС вы получите столько вышеупомянутых сообщений, сколько резидентов пропустили при составлении своего списка. При этом подсказки, какую же конкретно программу не удалось запустить, от системы вы не дождетесь, посему стоит хорошенько проверить ветви реестра HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Run и HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, а также папку «Автозагрузка» и выяснить, что за приложения и с какими именами там запускаются.

Разобравшись со «стандартным пользователем», вы можете перейти и к «стандартному компьютеру», который устроен совершенно идентично 3. Следует лишь помнить, что при изменении системных настроек следует быть еще более внимательным. Например, если вы включите опцию «Требовать проверки пароля сетью», то получите чрезвычайно полезное ограничение: при попытке обойти с помощью кнопочки «Esc» окно ввода пароля при загрузке Windows 9х вход в систему, в отличие от обычного запуска, не состоится - компьютер упорно будет требовать от вас имени и пароля. С одной стороны, это неплохо - опять же, уровень безопасности растет - но если у вас вдруг отключен сервер (или его никогда не было по причине того, что компьютер банально не подключен к сети) - в Windows вы уже не войдете…

Политику - в массы!

Если вы уже достаточно потренировались «на кошечках» и горите желанием нести идею политик в массы сослуживцев, создайте с помощью все того же poledit новый файл («Файл» -> «Создать»). Отредактировав в этом файле ограничения для «пользователя» и «компьютера», сохраните файл под именем config.pol в сетевом ресурсе NETLOGON. Запустив любой компьютер в сети и попытавшись сделать что-либо недозволенное, вы убедитесь в том, что системные политики, в отличие от их государственных коллег, работают. Но вот загвоздка: созданные вами незамысловатые системные политики политеса Рис. 5. Урок дипломатии.не знают и будут действовать одинаково на всех пользователей сети - в результате ваш любимый босс точно так же не сможет запустить на своем компьютере «Косынку» или «Сапера», как и его подчиненные. Вам это надо? То-то и оно. Однако в poledit заложена возможность дипломатического решения данной проблемы путем создания разнообразных политик - для различных пользователей, их групп и отдельных компьютеров.

Посмотрите на рис. 5: в poledit для гибкости настройки были созданы пользователь Megamix, компьютер под названием «Worker» и две группы - «Users» и «Lamers». Соответственно, компьютер Worker при импорте применит политики не «Стандартного компьютера», а заданные в одноименном объекте и лишь ему предназначенные. Так же поступит и пользователь по имени Megamix и все пользователи, входящие в группы Users и Lamers, - все они получат причитающиеся им правила. Единственное, на что следует обратить внимание, - названия этих субъектов, разумеется, должны совпадать с соответствующими названиями в Windows NT.

Ну, вот и все. Политики работают, облегчая вашу жизнь и предохраняя компьютеры от Самого Страшного Врага… Но если вдруг завтра с утра вас побьют коллеги - я не виноват.


1 (обратно к тексту) - Кстати, к домашним компьютерам это тоже относится - ведь если у вас в семье больше одного компьютера или больше двух владеющих им людей, вам просто придется стать системным администратором.
2 (обратно к тексту) - NETLOGON - это общий ресурс, который создается без вашего участия при инсталляции сервера. Если это NT 4, то физически это каталог СИСТЕМНЫЙ-ДИСК:\winnt\system32\repl\import. Если это 2000-я - о путь будет несколько другой: СИСТЕМНЫЙ-ДИСК:\winnt\sysvol\sysvol\ИМЯ.ВАШЕГО.ДОМЕНА\scripts.
3 (обратно к тексту) - Наглядное доказательство того, что компьютер произошел от человека.