Thursday, January 18, 2007

Выпуск N5. Открой тайну ключика! Работаем с registry.

Ну вот мы и подошли к одной из самых интересных и обширных, на мой взгляд, тем - конфигурирование параметров реестра Windows. Можно смело сказать что реестр, одно из коренных отличий конфигурирования Windows от других операционных систем, является как одной из блестящих идей Microsoft, так и одним из наиболее опасных и уязвимых мест в системе. Однако, возможность конфигурации практически любого параметра системы через единую базу данных, имеющую чёткую и ясную (может быть не для всех :)) структуру, а также частичный механизм само восстановления, стоит некоторой доли риска от опасности повреждения или внесения ложных данных. При условии правильной конфигурации и защиты, этот риск не больше чем у систем с файловой структурой конфигурации. Сам реестр, в конечном счёте, как вы понимаете тоже является набором файлов в определённом формате, такой файл называется ещё hive. Файлы всех разделов кроме HKEY_CURRENT_USER, хранятся в директории - %SystemRoot%\System32\Config.

И так из чего-же состоит реестр:

Первый подраздел это - HKEY_CLASSES_ROOT. В нем хранится информация, во-первых, о том какие действия ассоциированы с тем или иным расширением файла - т.е. какой исполняемый код и с какими параметрами будет вызван при обращении к файлу; во-вторых, информация о конфигурации COM, VB аппликаций, а так-же других (практически всех) объектов или связанных с ними классов. Данный раздел отражает информацию из двух других ветвей реестра, а именно: HKEY_LOCAL_MACHINE\SOFTWARE\Classes (в версиях WinNT 4.0 и ранее, только от сюда) и HKEY_CURRENT_USER\SOFTWARE\Classes. Нужно отметить, что если данные в этих двух разделах входят в конфликт, то используются значения из раздела - HKEY_CURRENT_USER\SOFTWARE\Classes.

Второй подраздел - HKEY_CURRENT_USER. Хранит информацию о настройках активного пользователя. Реально не является записью в реестре, а только линком на соответствующую ветвь (SID этого пользователя) в HKEY_USERS. Предназначен для облегчения доступа к профилю текущего пользователя. Эта запись создаётся каждый раз, при входе пользователя в систему. Если профиль недоступен (например, первый вход) он будет создан на основании профиля по умолчанию (.DEFAULT)

Третий подраздел - HKEY_LOCAL_MACHINE. Пожалуй самый важный из разделов реестра. В нем хранится вся информация о конфигурации аппаратного и программного обеспечения компьютера, а так-же раздел SAM где в зашифрованном виде хранятся пароли локальных пользователей - пожалуй единственный раздел куда по умолчанию отсутствует доступ даже администратору. Следует так-же отметить что тут хранится та самая "последняя известная хорошая конфигурация реестра", которую предлагается загрузить в случае повреждения или неудачной загрузки. Отсюда становится ясно, что эта версия хранит не полную копию реестра, а только ту часть которая необходима для успешной загрузки системы до момента подключения пользователя.

Четвёртый подраздел - HKEY_USERS Содержит профили: активного консольного пользователя (именно на эту ветвь указывает подраздел - HKEY_CURRENT_USER), .DEFAULT - его предназначение описывалось выше, три раздела со стандартными SID: S−1−5−18, S−1−5−19, S−1−5−20, это: LocalSystem, LocalService и NetworkService соответственно. Они необходимы для запуска соответствующих служб системы. Кроме того здесь есть классы для каждого из SID-ов. Могут быть так-же и дополнительные SID что свидетельствует о том что на машине запущены приложения или сервисы с правами других (не консольного) пользователей, например при помощи run as.

Пятый подраздел - HKEY_CURRENT_CONFIG. Последний раздел, он не содержит не каких данных, а является собственно указателем на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles. Здесь содержится профиль аппаратного обеспечения данного компьютера.

На этом мы закончим общее рассмотрение этой увлекательной структуры - Windows registry (надеюсь, нам удастся продолжить его в другом издании, на другом гораздо более серьёзном уровне). Теперь можно приступить к основной цели этого раздела.

Конфигурация параметров безопасности системы в реестре:

HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows \System\ DisableCMD (DWORD) – Позволяет запретить интерактивное использование или запуск bat файлов командным интерпретатором cmd.exe Может принимать следующие значения 0 – разрешено всё, 1 – запрещён интерактивный режим а так-же запуск скриптов, 2 – запрещён интерактивный режим, но не запуск bat скриптов. Установите в 1 для всех учётных записей (помните, HKEY_CURRENT_USER – только текущий профиль) , которые не требуют запуска bat файлов. 2 – для всех остальных.
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\ CurrentVersion\Policies\System\ DisableRegistryTools (DWORD) – Позволяет запретить использование инструментов редактирования реестра, например regedit.exe, regedt32.exe. Установите в 1 для всех учётных записей.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ SecurePipeServers\winreg\AllowedPaths\ Machine (Multi-String – не используйте regedit в Win2K, только regedt32 во-избежания повреждения данных в этом формате) - Содержит список ветвей реестра которые доступны удалённо. Если вы не используете сервисы требующие удалённый доступ к данным в реестре – очистите этот ключ, в противном случае, постарайтесь минимизировать количество строк в нем.
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\ Task Scheduler5.0\ для пользователя,
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\ Task Scheduler5.0\ для всей системы
"Property Pages" (DWORD) – Позволяет регулировать использование встроенного scheduler Windows – этот сервис имеет много уязвимостей и в общем случае его лучше остановить. Но, если ваш сервер использует управление заданиями через него, то как минимум уменьшите доступ к его настройкам. И так, установка этого ключа в 1 – запретит доступ к к свойствам уже существующих заданий.
"
Allow Browse" (DWORD) – Запрещает редактирование команды запускаемой заданием, блокирует кнопку "Browse" в свойствах Task Scheduler. Установите в 1 для активизации ограничения.
Execution (DWORD) – Блокирует возможность ручного запуска задания пользователем. Установите в 1 для активизации ограничения.
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\ Installer DisableMSI (DWORD) – Позволяет заблокировать установку программ через Windows installer service (сам сервисе тоже лучше остановить). Может принимать значения: 0 - разрешено всем, 1 - разрешено только администратору или 2 - запрещено всем. Я рекомендую устанавливать значение 2 для стабильных систем, с редко производимыми обновлениями.
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\System\ DisableTaskMgr (DWORD) – При установке этого параметра в 1-у Task Manager будет заблокирован от запуска. Однако это не влияет на другие подобные утилиты сторонних производителей (Procexp и т.п.)
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\System\ ScreenSaverGracePeriod (REG_SZ) - Устанавливает период между срабатыванием хранителя экрана и закрытием на пароль (если эта опция активизирована) сервера. Обычно существует некоторый промежуток времени, после срабатывания хранителя экрана, в течении которого не требуется введение пароля для возвращения к рабочему столу. Установите это время в 0 и эта задержка будет удалена. Теперь вы уверенны, что если вы видите хранитель - доступ к консоли заблокирован.
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\ CDRAutoRun (DWORD) – Параметр регулирует автозапуск дисков CD-R(W) или DVD-R(W). Поскольку автоматический запуск приложения с такого диска потенциально опасен, к тому-же если в этот момент активный пользователь имеет права администратора, программа может получить неограниченные права над сервером. Установите значение в 0, для отключения автоматического запуска.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Explorer\BitBucket NukeOnDelete (DWORD) – Этот ключ позволяет отключить перенос в корзину удаляемого файла, т.е. производит действия при нажатии Del как при Shift-Del. Дело в том что незадачливый пользователь может стереть секретную информацию не полностью, что позволит злоумышленнику произвести полное восстановление данных, без лишних усилий и не прибегая ко специальным средствам. Установите значение в 1 для немедленного уничтожения стираемой информации. По поводу стирания секретной информации нужно заметить следующее, используйте специальное программное обеспечение для полного уничтожения данных с диска. В противном случае, файлы будут лишь помеченными как удалённые и доступны к полному или частичному восстановлению до того момента как физическое пространство на диске, занимаемое стёртой информацией, не будет перезаписано другими данными.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS EfsConfiguration (DWORD) – Этот параметр позволяет включить или отключить использование EFS. Если вы не предполагаете использовать данный метод криптования на вашей машине - установите значение ключа в 1, в противном случае в 0.
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\ для пользователя,
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\ для всей системы, NoDriveAutoRun (DWORD) - позволяет контролировать на каких из дисков будет разрешена функция AutoPlay. Параметр может принимать следующие значения: A: 1, B: 2, C: 4, D: 8, E: 16, F: 32, G: 64, H: 128, I: 256, J: 512, K: 1024, L: 2048, M: 4096, N: 8192, O: 16384, P: 32768, Q: 65536, R: 131072, S: 262144, T: 524288, U:1048576, V: 2097152, W: 4194304, X: 8388608, Y: 16777216, Z: 33554432, ALL: 67108863. Наиболее безопасный вариант, это полный запрет - 67108863.
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\ для пользователя,
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Policies\Explorer\ для всей системы, NoDriveTypeAutoRun (DWORD) – Позволяет управлять функцией авто-запуска в зависимости от типа устройства. Значение является битовой маской и состоит из следующих компонент:
0 Неизвестное устройство,
1 Не корневая директория,
2 Съёмные устройства (Floppy, ZIP),
3 Жёсткие диски,
4 Сетевые диски,
5 CD-ROM диски,
6 RAM диски,
7 Резервировано.
По умолчанию активны жёсткие диски и CD-ROM. Как и в приведущем случае рекомендуется полное отключение - 255 (0хFF).

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Explorer\BitBucket\ NoRecycleFiles (DWORD) - Запрещает перемещение файлов или директорий удалённых с помощью Windows Explorer в корзину. Для активизации установить в 1.
HKEY_CLASSES_ROOT\...\ NeverShowExt (DWORD) - Данный ключ добавляется в те разделы HKCR, файловые расширения которых необходимо спрятать не взирая на требования пользователя "показывать расширения файлов" - так называемые супер скрытые расширения. Такой подход может позволить злоумышленнику обмануть пользователя и заставить его открыть (а практически запустить) файл с опасным кодом под видом безобидного файла. Например файл pic.jpg.shs, будет выглядеть как обычная картинка pic.jpg. И так, удалите все встречающиеся в этом разделе ключи NeverShowExt.

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

Cледующий раз:
Работаем с
registry, продолжение…

Если ваши советы и комментарии интересны всем, буду рад увидеть их здесь. С личными просьбами и предложениями, добро пожаловать на e-mail

8 comments:

Александр said...

полезненько......

Anonymous said...

Как всегда на высоте!

Anonymous said...

Немного медленно грузится сайт, может потому что я из израиля Но главное что не зря ждал, интересно.

Anonymous said...

Да тут и добавить то нечего, спасибо всё толково.

Anonymous said...

Хорошая статья. Действительно было интересно почитать. Не часто такое и встречается та.Наверное стоит подписаться на ваше RSS

Anonymous said...

Nice brief and this fill someone in on helped me alot in my college assignement. Gratefulness you as your information.

Anonymous said...

Hello. And Bye.

Anonymous said...

Я это уже на другом сайте видел, но все равно спасибо.