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

Tuesday, January 2, 2007

Выпуск N4. Немного о безопасности в Windows или как из удобной вещи сделать надёжную.

Ну чтож, наша сегодняшняя тема - права доступа в файловой системе. Тема сама по себе не сложная но действительно важная для безопасности системы, и требующая внимательности при её реализации. Устанавливая жёсткие права на диске мы с одной стороны значительно повышаем устойчивость системы к внутренним атакам, когда атакующий уже имеет доступ к машине, но не имеет достаточно полномочий для реализации своих планов; с другой же стороны, мы имеем серьёзную угрозу вызвать неполадки (иной раз очень трудно объяснимые) в работе приложения а нередко и самой операционной системы. Несколько слов о файловых системах официально поддерживаемых Microsoft Windows, практически их две - это старая, добрая, но совсем не защищённая FAT32; и стандартная на сегодняшний день, и даже имеющая наконец совместимость с другими операционными системами (например Linux) NTFS. В FAT не было ни каких механизмов защиты от несанкционированного доступа к файлам, в NTFS появилась возможность устанавливать различные права на доступ, поиск, запуск и изменение файлов, а так же целый ряд дополнительных прав связанных с наследованием и передачей прав контроля. Более того начиная с Win2K, появилась так называемая шифрованная файловая система (EFS), которая позволяет криптовать таблицы файловой системы и информацию находящуюся в самих файлах. Этот механизм был предложен для защиты информации в off-line режиме, когда на компьютере запущена другая OS имеющая прямой доступ к данным на диске. К сожалению, на сегодняшний день, мы не можем считать это панацеей, и даже WinXP SP2 где этот вопрос был значительно усилен, не может противостоять специализированным системам доступа. Основной причиной такой ситуации является то что по причинам удобства работы, ключи криптования хранятся там же где и данные, а именно на самом локальном диске. Кстати, Microsoft рекомендует хранить копии сертификатов на отдельном носителе, поскольку при случайном их разрушении, доступ к данным (по заявлениям MS, но с некоторым допущением в жизни) будет безвозвратно утерян. Возможно так же постоянное хранение сертификата на внешнем носителе или на специальном сервере в домене, но по понятным причинам это может вызывать неудобства в виде отсутствия доступа к информации в нужный момент. Существует так же дополнительное ограничение на совместное использование файлов защищённых EFS - предоставление совместного доступа, путём добавления сертификатов, возможно только для файлов (не для директорий) и только отдельным юзерам (не группам). Думаю, на сегодняшний день, для обеспечения надёжной зашиты информации стоит воспользоваться разработками сторонних фирм. В заключении несколько слов о частном, но очень важном, случае криптования файлов - криптование SAM. Как известно, SAM это то самое место где Windows хранит пароли в зашифрованном виде. Сами эти файлы так же могут быть зашифрованными (по умолчанию начиная с Win2K) с помощью дополнительного ключа по MD5 протоколу. Обычно ключ тоже сохраняется на диске по специальному алгоритму. С помощью утилиты syskey он может быть удалён из системы или защищён дополнительным паролем. В этом случае после начала загрузки, но до авторизации в компьютер должна быть вставлена дискета (или другой носитель) с ключом, или введён пароль защиты ключа соответственно.

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

И так, после этого небольшого введения перейдём непосредственно к установлению прав на объекты в файловой системе NTFS. Права делятся на основные и расширенные, основные практически являются стандартными фиксированными наборами расширенных прав, предназначенными для определённой цели. NTFS так же поддерживает запрещающие права - т.е. правила которые запрещают те или иные действия пользователю. Их приоритет всегда выше чем у разрешающих. Основные: Полый контроль, Изменение, Запись, Чтение_и_Выполнение, Чтение. Их предназначение понятно из названий. Расширенные: Полый контроль, Исполнять файл (для директории - использовать в пути), читать (список файлов - поиск), читать основные атрибуты, читать расширенные атрибуты, писать (создавать файлы в директории), изменять данные (создавать поддиректории), устанавливать основные права, устанавливать расширенные права, удалять вложенные объекты (поддиректории и файлы), удалять (сами объекты), читать права, изменять права, передавать владение.

При установке прав можно делегировать их на ниже лежащие объекты - файлы и поддиректории, а также любые их сочетания (директория и поддиректории, директория и файлы и т.п.). Будьте очень внимательны при делегировании (особенно рекурсивном). Ошибки могут привести к серьёзным пробелам в безопасности системы, или к её не работоспособности. Microsoft распространяет специальные политики для восстановления прав "по умолчанию", однако, если ваш сервер выполняет дополнительные задачи (к примеру - веб сервер на базе IIS) этого может оказаться недостаточно. Последнее маленькое замечание, кроме прав доступа у файла существует так же, владелец. Этот пользователь имеет полный контроль над файлом независимо от того в какой группе он находится и какие права доступа выставлены в разделе security. Это необходимо помнить в том случае, если вы случайно удалили всех пользователей из списка прав доступа. В таком случае только владелец (не администратор, а именно владелец) сможет назначить новые права доступа.

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

И так (для случая когда с:\ - системный диск):

  • C:\ - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\autoexec.bat - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\boot.ini - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\config.sys - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\io.sys - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\msdos.sys - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\ntdetect.com - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\ntld - Administrators - полный контроль, SYSTEM - изменять. Заменить приведущее, отменить наследование сверху.
  • C:\Program Files - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\Documents and Settings\ - Administrators - полный контроль, SYSTEM - изменять, "CREATOR OWNER" - полный контроль. Распространить на всю глубину заменяя приведущее.
  • C:\Documents and Settings\Administrator - Administrators - полный контроль, SYSTEM - изменять. Распространить на всю глубину заменяя привидущее.
  • C:\Documents and Settings\All Users - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\Documents and Settings\Default Users - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее. (Для AllUsers и DefaultUsers очень важно дать права на чтение для группы Users. В противном случае могут возникнуть проблемы при локальном входе в систему у не административных пользователей.
  • C:\WINNT (для общего случая используйте %SystemRoot%) - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\WINNT\Debug - Administrators - полный контроль, SYSTEM - изменять. Распространить на всю глубину заменяя привидущее.
  • C:\WINNT\Registration - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\WINNT\Repair - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\WINNT\system32 - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.
  • C:\WINNT\system32\*.msc - Administrators - полный контроль, заменяя приведущее.
  • C:\WINNT\System32\Config - Administrators - полный контроль, SYSTEM - изменять, заменяя привидущее.
  • C:\WINNT\system32\IAS - Administrators - полный контроль, SYSTEM - изменять, заменяя привидущее.
  • C:\WINNT\system32\Setup - Administrators - полный контроль, SYSTEM - изменять, заменяя привидущее.
  • C:\WINNT\System32\Spool - Administrators - полный контроль, SYSTEM - изменять, Users
  • C:\WINNT\system32\spool\Drivers - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать, заменяя приведущее.
  • C:\WINNT\system32\spool\Printers - Administrators - полный контроль, SYSTEM - изменять, заменяя привидущее.
  • C:\WINNT\system32\Dllcache - Administrators - полный контроль, SYSTEM - изменять, заменяя привидущее.
  • C:\WINNT\Temp - Administrators - полныйконтроль, SYSTEM - изменять, "CREATOR OWNER" - изменять. Распространить на всю глубину заменяя приведущее.
  • D:\ (и все остальные разделы) - Administrators - полный контроль, SYSTEM - изменять, Users - читать и запускать. Распространить на всю глубину заменяя приведущее.Обратите внимание на порядок изменения прав доступа к директориям, он важен для получения в результате установки необходимого результата.

Если у вас на сервере имеются пользователи с не интерактивным входом в систему (например веб пользователи IIS), бы можете установить Deny на полный контроль, он без распространения на всю глубину, на следующие директории:

C:\
C:\WINNT
C:\WINNT\Debug
C:\WINNT\Installer
C:\WINNT\Repair
C:\WINNT\Security
C:\WINNT\system32
C:\WINNT\System32\inetsrv
C:\WINNT\system32\Dllcache
C:\WINNT\system32\drivers
C:\WINNT\system32\os2
C:\WINNT\system32\Web

Ну что-ж на этом можно закончить очередной выпуск. В заключение только хочу сказать, если в вашей системе есть дополнительные сервисы которые используют специальные учётные записи, обратите внимание на права для них предустановленные. Однако если после hardening-а аппликация всё-же перестала работать (а это не редко, к сожалению) воспользуйтесь утилитой filemon для поиска недоступных путей.


Cледующий раз:
Открой тайну ключика! Работаем с registry

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


Friday, December 15, 2006

Выпуск N3. Немного о безопасности в Windows или как из удобной вещи сделать надёжную.

Пожалуй время продолжить. Прежде всего хотелось бы сказать ещё пару слов по уже пройденной теме, а именно о "Какие программы следует спрятать подальше". Как я уже говорил что, в своих системах я переношу описанные утилиты в отдельную защищённую директорию, поскольку в этом методе есть определённые преимущества. Однако есть и маленькие хитрости, а именно WFP (Windows File Protection system). Это встроенная система защиты файлов, которые разработчики Windows считают критическими для её жизнидейтелности. Для того чтобы данные файлы не были случайно повреждены или удалённы неопытным пользователем, система хранит их копию в защищённой директории %SystemRoot%\System32\dllcach\. Система постоянно сканирует эти файлы и в случае обнаружения несоответствия, немедленно заменяет на эталонный. Превосходная мысль, резко снижает количество головной боли отделам тех. поддержки. Однако, нам как раз и требуется удалить, точнее перенести в секретное место, эти самые (некоторые из них) файлы. Что же делать, пути два (ну скажем полтора ;) - для WinXP Professional и Win2K3 (как я уже писал, Vista я пока не рассматриваю) есть возможность временно остановить WFP через Group Policy, в других вариантах это не пройдёт (для Win2K есть не документированный метод, но воизбежание неожиданностей, я не буду описывать его здесь). Независимо от типа операционки, нужно сделать следующее - написать скрипт который будет одновременно (практически одновременно) убирать файлы и из их оригинальной директории (%SystemRoot%, %SystemRoot%\System или %SystemRoot%\System32), а так же и из dllcach. Если WFP не остановлена, вы получите извещение о том что, важная часть системы была повреждена и предложение вставить инсталяционный диск (ВНИМАНИЕ!!! не храните инслаяционную версию локально на диске, иначе ничего не выйдет, да это и не безопасно). Вежливо откажитесь :)
Ну вот теперь можно пожалуй перейти к следующей теме.
Не всё что удобно - полезно, или какие сервисы лучше остановить.
Как известно в Windows на любой случай жизни есть сервис. Не будем отрицать что, для домашнего компьютера это удобно. Захотелось владельцу подключится к сети - пожалуйста, через NetBIOS - пожалуйста, а с файлами - пожалуйста, а с Novell сервера - пожалуйста, а... - пожалуйста. Жаль кофе сам в постель не приносит. К сожалению за удобства надо платить, и цена всем этим "пожалуйста" производительность и конечно же безопасность. Очень многие сервисы, обладая несомненными удобствами, имеют массу уязвимостей, а незначительная ошибка в конфигурации, может привести к краху всей политики безопасности. И тут не помогут не современные firewall-ы, не системы Intrusion detection, не самые драконовские права доступа и пароли. И так, моё мнение, на сервере не должна работать ни одна служба, в прямую не связанная с функциями сервера. Даже системы управления желательно отключить, обеспечив только возможность быстрой их активизации в случае необходимости. Я считаю что эксперт в области безопасности обязан, убедить и научить персонал - администраторов, операторов, службы поддержки, работать в новой среде. Поверьте мне, это не займёт слишком много времени, особенно если вы подготовите скрипты, которые позволят персоналу выполнять их обязанности или временно открывать те механизмы, без которых невозможно обойтись.
Как известно сервисы в Windows делятся на 5 типов по виду старта. Первые два, строго говоря, скорее не сервисы, а дриверы. Взглянем на список сервисов который хранится в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Загрузчик виндовс (NTLDR), начинает загрузку драйверов нижнего уровня, они имеют значение 0 в поле Start. После этого NTLDR передаёт управление ядру (Ntoskrnl.exe) Ядро, после некоторых манипуляций с реестром, начинает загрузку драйверов устройств. Их значение в поле Start равно 1-це. После этого подымается Win32 подсистема и выполнив некоторые дополнительные действия инициализирует процесс локальной авторизации (lsass.exe) и система управления сервисами, начинает запуск драйверов третьего уровня. Они и являются сервисами в обычном понимании, значение их ключа Start от 2 до 4. Сейчас мы будем рассматривать именно их.
И так, если бы мы жили в идеальном мире, ваш сервер был чистым Windows 2000 SP4 без примеси всяких дополнительных IIS, SQL и иже с ними то... На установленном и полностью отконфигурированном сервере достаточно следующего минимально-идеального набора (кроме перечисленных ниже, остальные в состоянии Start = 4 (Disable)) :
• DNS Client - Automatic (Start = 2) - Клиент DNS, необходим для работы через Internet, а так же в некоторых корпоративных сетях. Даже если в вашей сети нет DNS сервера и выхода в интернет остановка сервиса может вызвать задержки в работе некоторых сетевых аппликаций. (Необходим для обнаружения AD domain controller-а)
• EventLog - Automatic (Start = 2) - Служба журнала событий, необходима для отслеживания событий безопасности, а так же записи системных и апликативных сообщений. Должна быть включена всегда и везде. О конфигурации аудита и методах защиты журналов от стирания или фальсификации, мы поговорим позже. Хочу только отметить что в политике безопасности существует специальный раздел - "Shut down system immediately if unable to log security audits" Если он активирован, сервер будет немедленно остановлен в случае невозможности записи событий безопасности. Как видите, иногда, правильный лог даже важнее жизни самого сервера.
• IPSec Policy Agent - Manual (Start = 3) ( в этом состоянии сервис не подымается при подъёме OS, а только по запросу другой системы) - Сервисе управления политикой IPSec получаемой от domain controller-а или local registry если компьютер не является частью домена. Пересылает политику на IPSec driver. IPSec является важным методом сетевой безопасности в сетях Microsoft.
• Logical Disk Manager - Automatic (Start = 2) - Менеджер локальных дисков. Необходим для управления mapping-ом локальных и подключаемых дисков. Поаккуратней с экспериментами с этим сервисом - восстановление реестра off-line дело не из приятных ;)
• Network Connections Manager - Manual (Start = 3) - Ну тут все понятно, машина без сетевых подключений не может является сервером, по определению. Управляет не только LAN, но и Dial-Up подключениями.
• Plug & Play - Automatic (Start = 2) - Из названия ясно - управляет обнаружением нового оборудования. Когда я был молод и наивен, я полагал что на стабильном сконфигурированном сервере где железо не меняется годами, он не нужен. О, как я ошибался, после ребута сервер поднялся, но зайти на него не было ни какой возможности. Думаю, что в некоторых специфических случаях его можно остановить, он это для любителей экстрима.
• Protected Storage - Automatic (Start = 2) - Сервисе управляет защитой критических, с точки зрения безопасности, данных. Например, ключе пользователей. Обеспечивает защиту от несанкционированного доступа со стороны сервисов, аппликаций или пользователей. Остановка сервиса делает эти данные недоступными.
• Remote Procedure Call (RPC) - Manual (Start = 3) - Сервис вызова удалённых процедур. От него зависит добрая половина всех сервисов в Windows. И хотя именно RPC очень часто являлись ненадёжными с точки зрения безопасности, остановка этого сервиса будет иметь катастрофические последствия (загляните в список зависимых сервисов - Dependency, и вы все поймёте сами :)
• Security Accounts Manager (SAM) - Automatic (Start = 2) - Управление пользовательскими записями безопасности (знающий все поймёт по сокращённому имени сервиса). Этот сервис никогда не должен останавливаться.
• Server - Automatic (Start = 2) - Необходим только в случае использования сервера как файле или принтер сервер, а так же при работе с AD. Во всех остальных случаях желательно деинсталировать этот сервис. Это легко сделать через настройку любого из сетевых интерфейсов. Достаточно нажать кнопку Uninstall на сервисе с именем "File and Printer Sharing for Microsoft Networks", и сервисе Сервер исчезнет из списка.
• Workstation - Automatic (Start = 2) (Может работать в Manual но не очень стабильно) - Используется для удалённого доступа с сервера к другим Microsoft Networks ресурсам. Если это не нужно, деинсталируйте сервисе, убрав в свойствах сетевого интерфейса строку "Client for Microsoft Networks"
Ну что-ж помечтали, а теперь к реальности. Попробуем рассмотреть какие сервисы и в каких случаях могут быть остановлены:

A B C D E F H I K L M N P Q R S T U V W

• Alerter - имя Alerter - Используется для посылки административных сигналов выбранным пользователям и компьютерам. Отключение сервиса может блокировать реакцию некоторых аппликаций на административные сообщения. Например сигналы от UPS.
• Application Layer Gateway Service – ALG (Win2K3, WinXP)– используется как субкомпонента для Internet Connection Sharing и Internet Connection Firewall сервисов позволяя plug-in-ам протоколов внешних аппликаций проходить через ICF и использовать ICS.
• Application Management - AppMgmt - используется при инсталляции и удалении аппликаций через AD механизм (IntelliMirror) и COM объектов
• ASP .NET State Service - имя aspnet_state (Win2K3) - обеспечивает управление состоянием сессий на компьютере (смотри IIS). TCP 42424
• Automatic Updates - wuauserv (Win2KSP4, WinXP, Win2K3) - позволяет автоматически загружать и устанавливать Microsoft paths и hotfixs. Для лучшей надёжности и управляемости в критических серверах, используйте специальные инструменты или скрипты для установки только проверенных (на полную совместимость) и необходимых заплаток.
• Background Intelligent Transfer Service - BITS (Win2KSP4, WinXP, Win2K3) - позволяет незаметно загружать файлы между клиентом и HTTP сервером, используя время простоя сетевых соединений.
• Certificate Services - CertSvc - создаёт и управляет сертификатами X.509.
• Client Service for Netware - NWCWorkstation - как понятно из названия нужен только для связи с сетями Netware
• ClipBook - ClipSrv - используется для совместного использования информации из Clipboard-а удалённой машины. Отключение не влияет на функции локального копирования или переноса.
• Cluster Service - ClusSvc - сервисе управляет кластером от Microsoft. Необходим на каждом узле подключённом к кластеру. UDP 3343
• COM+ Event System - COMSysApp - Manual (Start = 3) - обеспечивает автоматическую пересылку событий используемых в COM модели. Необходим для правильной работы COM+ интерфейса (используется например в IIS). При отключении перестаёт работать System Event Notification (SENS) - например Login и logoff сообщения не доставляются
• COM+ System Application - EventSystem (Win2K3, WinXP)- Используется для конфигурации и управления объектами COM+ модели
• Computer Browser - Browser - нужен для поддержания списка компьютеров доступных в сети
• Cryptographic Services - CryptSvc (Win2K3, WinXP) - сервисе управления ключами
• DHCP Client - Dhcp - Клиент Dhcp. Необходим только если ваш компьютер пользуется динамически распределяемым IP адресом
• DHCP-Server - DHCPServer (в серверном варианте) - сервер динамического распределения IP адресов и некоторых других сетевых настроек. UDP 67 2535
• Distributed File System - Dfs (Win2Kx) - сервер распределённой файловой системы. Позволяет распределять файлы по локальной или удалённой сети и осуществлять монтаж в необходимой точке локальной файловой системы
• Distributed Link Tracking Client – TrkWks - клиент поддерживает целостность линков в NTFS файловой системе даже если сам адресуемый файл был переименован или перенесён на другую машину в домене
• Distributed Link Tracking Server - TrkSvr (в серверном варианте)- запускается на контроллере домена и поддерживает список всех перемещения линков внутри домена
• Distributed Transaction Coordinator- MSDTC - обеспечивает управление транзакциями между некоторыми компьютерными ресурсами и системами управления базами данных, очередями сообщений или к примеру файловой системой. Необходим для конфигурации (но не работы!) COM+ компонент, и таких систем как Message Queuing (MSMQ) или Microsoft SQL Server
• DNS Server - DNS (в серверном варианте) - производит разрешение DNS имён в IP. Необходим для работы AD. TCP/UDP 53
• Error Reporting Service - ERSvc (Win2K3, WinXP) - используется для сбора и посылки на Microsoft информации о сбоях в работе аппликации запущенных в нестандартной среде.
• Fast User Switching Compatibility – FastUserSwitching-Compatibility (WinXP) - облегчает процес переключения между акоунтами в много-пользовательской среде
• Fax Service - Fax - Fax сервер. Все ясно из названия
• File Replication - NtFrs (Win2Kx) - поддерживает синхронизацию файлов между различными машинами
• File Server for Macintosh - MacFile (Win2K3) - Обеспечивает доступ к файлам на NTFS для машин семейства Macintosh. TCP 548
• FTP Publishing Service - MSFtpsvc - FTP сервер. Одна из компонент IIS сервера. TCP 20, 21
• Help and Support – helpsvc (Win2K3, WinXP) - обеспечивает работу службы Помощи и Поддержки на локальном компьютере
• HTTP SSL - HTTPFilter (Win2K3, WinXP) - обеспечивает безопасную (кириптованую) передачу данных по HTTP протоколу. TCP 443
• Human Interface Device Access - HidServ (Win2K3, WinXP) - обеспечивает подключение специальных устройств ввода и применение "горячих" кнопок на клавиатуре пульте дистанционного управления и т.п.
• IAS Jet Database Access - IASJet (Win2K3) - обеспечивает доступ к Internet Authentication Service базе
• IIS Admin Service - IISADMIN - сервис управления IIS. Необходим если используется хотя бы одна из компонент (HTTP, FTP, SMTP или NNTP)
• IMAPI CD-Burning COM Service - ImapiService (Win2K3, WinXP) - обеспечивает облегчённый доступ к записи на IMAPI CD – Burning COM Service. Например для таких аппликаций как WMP или Explorer
• Indexing Service - cisvc - индексирует файловые ресурсы на локальном или удалённом компьютере. Ускоряет поиск файлов или веб запросов
• Infrared Monitor - Irmon (Win2K3) - Сервис инфракрасного порта
• Internet Authentication Service - IAS (в сервером варианте) - позволяет проводить централизованную аутентификацию, учёт и правление пользователями при локальном или удалённом подключении через Virtual Private Network (VPN), Remote Access Equipment (RAS), беспроводной 802.1x или Ethernet/Switch Access Points. Если сервис опущен, то запрос на авторизацию будет передан на запасной сервер, при его отсутствии - отвергнут
• Internet Connection Firewall (ICF) / Internet Connection Sharing (ICS) - SharedAccess (для Win2K только ICS) - ICS обеспечивает перевод адресов внутренней сети в глобальные (NAT), разрешение имён и адресов при подключении локальной сети в интернет через dial-up или broadband соединение путём установки sharing-а. Предназначение ICF понятно из названия.
• Intersite Messaging - IsmServ (Win2Kx) - предназначен для посылки сообщений между серверами. Сообщения посылаются с использованием SMTP over IP протокола. Поддержка SMTP осуществляется SMTP сервисом, который является частью IIS.
• Kerberos Key Distribution Center - Kdc (в сервером варианте) - позволяет пользователю идентифицироваться с использованием протокола Kerberos 5-й версии. TCP/UDP 88
• License Logging Service - LicenseService (в сервером варианте) - отслеживает клиентские лицензии доступа используемые в таких серверных приложениях как IIS, Terminal Services, File and Print services а так же например, в SQL сервере и службе Microsoft Exchange. При отключении сервиса серверные аппликации продолжат нормально работать, но их использование не будет более отслеживаться.
• Logical Disk Manager Administrative Service - dmadmin - позволяет просматривать и управлять состоянием жёстких дисков, строить новые разделы и т.п. Для работы использует сервисе - менеджер логических дисков (Logical Disk Manager), от него же и получает информацию о состоянии и новых устройствах. После конфигурации дисков на сервере может быть выключен.
• Message Queuing - msmq (Win2K3) - предоставляет средства разработки и создания инфраструктуры распределённых аппликаций доставки сообщений. Обеспечивает гарантированную, безопасную и эффективную доставку ц использованием транзакций и системы приоритетов. Может работать с обоими Win32® и COM API методами. Используется в таких сервисах как например, COM+ Queued Component (QC), WMI и MSMQ Triggers. TCP/UDP 1801, TCP 1801, 1803, 1805, 1807, UDP 3527
• Message Queuing Down Level Clients - mqds (Win2K3) - смотри Message Queuing.
• Message Queuing Triggers - Mqtgsvc (Win2K3) - смотри Message Queuing.
• Messenger - Messenger - посылает и доставляет сообщения от Alerter сервиса. Не имеет отношения к службе Windows Messenger. При отключении NET SEND и NET NAME перестанут работать. UDP 138
• Microsoft POP3 Service - POP3SVC (Win2K3) - служба доставки почты по POP3 протоколу. TCP 110
• Microsoft Software Shadow Copy Provider - SwPrv (Win2K3, WinXP) - применяется для управления программным обеспечением для создания теневой (Shadow) копии тома диска использованием сервиса Volume Shadow Copy. Что позволяет в определённый момент времени создавать консистентную копию диска (только для чтения) которая может использоваться такими программами как например - Ntbackup для копирования на ленту. При отключении становится невозможным управление данным классом программ.
• MSSQL$UDDI - MSSQL$UDDI (Win2K3) - обеспечивает поддержку UDDI (Universal Description, Discovery, and Integration) для MSSQL сервера. TCP 1433, UDP 1434
• MSSQLServerADHelper - MSSQLServerADHelper (Win2K3) - обеспечивает поддержку интерфейса между AD (Active Directory) и MSSQL сервером. Внимание, экоунт под которым бежит MSSQL сервер, будет иметь возможность изменять любые объекты в AD.
• .NET Framework Support Service - CORRTSvc (Win2K3) - предназначение следует из названия.
• Net Logon - Netlogon - сервисе обеспечивает авторизацию а так же обновление DNS записи при входе в домен. При подключении к домену, активизируется автоматически. На машинах - членах домена использует: RPC over named pipes; на домен-контроллере RPC over named pipes, RPC over TCP/IP, mailslots и LDAP. Необходима для подключения в домен.
• NetMeeting Remote Desktop Sharing - mnmsrvc - предназначен для подключения авторизованного пользователя к десктопу удалённой машины с использованием "Microsoft NetMeeting". Этот сервисе должен быть специально разрешён в NetMeeting. Отключение вызывает выгрузку NetMeeting display драйвера. TCP 3389
• Network DDE - NetDDE - обеспечивает сетевой транспорт и безопасность динамического обмена данными между аппликациями на одном и тем же или различных компьютерах. Используется такими аппликациями как например, Clipbrd.exe или DDEshare.exe. При отключении будет вызывать задержку в работе зависимых аппликаций на локальном компьютере, или ошибку "Компьютер не найден в сети" при удалённом подключении.
• Network DDE DSDM - NetDDEdsdm - используется "Network DDE" и поддерживает базу данных соединений с информацией об уровне безопасности, осуществляет проверку и разрешение валидности запроса.
• Network Location Awareness (NLA) - NLA (Win2K3, WinXP) - собирает и хранит информацию о состоянии сети, например изменения IP, доменных имён или положения в сети. Передаёт информацию заинтересованным аппликациям.
• Network News Transport Protocol (NNTP) - NntpSvc (в сервером варианте) - сервис доставки новостей. Обычно устанавливается как часть IIS или Exchange. TCP 119, 563
• NTLM Security Support Provider - NtLmSsp (Start = 3) - сервис позволяет пользователю подключатся к сетевым ресурсам используя NTLM протокол автонтефикации. Применялся в основном в версиях до Win2K.
• Performance Logs and Alerts - SysmonLog - применяется для локального или удалённого сбора мониторинговой информации о машине, процессах сервисах и т.д. Активизируется только при запуске процесса мониторинга. К сожалению невозможен доступ к удалённому списку параметров мониторинга при остановке сервиса "Remote registry".
• Portable Media Serial Number Service - WmdmPmSN (Win2K3, WinXP) - обрабатывает серийные номере переносных музыкальных плееров подключаемых к системе.
• Print Server for Macintosh - MacPrint (Win2K3) - принт сервер для машин типа Macintosh.
• Print Spooler - Spooler - сервисе управления локальными и сетевыми принтерами, а так же поддерживает очереди печати.
• QoS RSVP / QoS Admission Control (RSVP) - RSVP - предоставляет возможности о управлению и обработке сетевых сигналов для QoS (Quality of Service). Воспринимает сигналы от GQoS (Generic Quality of Service) API.
• Remote Access Auto Connection Manager - RasAuto - используется для определения состояния удалённого компьютера путём определения DNS или NetBIOS имени или адреса при подключении через dial-up или VPN. А так же подачи сообщения и переподключения по альтернативному пути при потере соединения. Остановка сервиса не вызывает проблем ц ручным подключением.
• Remote Administration Service - SrvcSurg (Win2K3) - сервис удалённого администрирования
• Remote Desktop Help Session Manager - RDSessMgr (Win2K3, WinXP) - управляет и контролирует службу Remote Assistance из комплекта центра поддержки (Help and Support Center - helpctr.exe).
• Remote Installation - BINLSVC (Win2K3)- позволяет удалённую установку Win2K, WinXP, Win2K3, на база предустановленного клиента - Pre Execution Environment (PXE). Использует Boot Information Negotiation Layer (BINL) сервис. UDP 4011
• Remote Procedure Call (RPC) Locator - RpcLocator - обеспечивает разрешение RPC имён (RpcNs), и обнаружение RPC серверов ц их поддержкой.
• Remote Registry Service - RemoteRegistry - предназначен для удалённой работы с реестром. При отключении блокирует функции удавленного мониторинга и администрирования.
• Remote Server Manager - AppMgr (Win2K3) - обеспечивает хранение,обработку и ранжирование сообщений удалённого администрирования, а так же запуск заданий удалённого администрирования.
• Remote Server Monitor - Appmon (Win2K3) - мониторинг удалённого администрирования.
• Removable Storage - NtmsSvc - обеспечивает каталогизацию и хранение информации об отключаемых устройствах подключавшихся к вашему компьютеру (например ленты или CD). Применяется в функциях типа автоматического проигрывания. При отключении могут может существенно замедлятся старт таких аппликаций как Backup или Remote Storage.
• Remote Storage Notification - Remote_Storage_User_Link (Win2K3) - предупреждает о попытке подключения к off-line файлу, недоступному в данный момент. Уменьшает простои и позволяет заранее отказаться от невыполнимой задачи.
• Remote Storage Server - Remote_Storage_Server (Win2K3) - системный сервис позволяющий хранить редко используемые файлы на втором диске. Отключение делает невозможным чтение и запись в эти файлы.
• Resultant Set of Policy Provider - RSoPProv (Win2K3) - позволяет подключиться к контроллеру домена на базе Win2K3 и симулировать установку групповой политики для компьютеров с Win2K или старше.
• Routing and Remote Access - RemoteAccess - обеспечивает LAN-LAN, LAN-WAN, VPN и NAT маршрутизацию, а так же удалённый доступ к серверу по dial-up или VPN. L2TP UDP 1701,PPTP TCP 1723.
• RunAs Service - Seclogon (Win2K) - позволяет запускать процессы от имени другого пользователя. Для WinXP и Win2K3 такую роль выполняет сервис - Secondary Logon.
• Server - lanmanserver - выполняет основные функции сервера: доступ к файлам, принтерам и именованным каналам через сеть. Может быть отключён, если вам не нужны стандартные методы доступа к серверу - например если это веб сервер или сервер аппликаций. UDP 137, 138; TCP 139, 445
• Simple Mail Transport Protocol (SMTP) - SMTPSVC (в сервером варианте) - сервис доставки электронной почты. Часто устанавливается как часть IIS. TCP 25.
• Simple TCP/IP Services - SimpTcp (в сервером варианте) - поддерживает простые TCP протоколы, такие как: Echo (port 7, RFC 862), Discard (port 9, RFC 863), Character Generator (port 19, RFC 864), Daytime (port 13, RFC 867), Quote of the Day (port 17, RFC 865).
• Single Instance Storage Groveler - Groveler (Win2K3) - одна из частей Remote Installation Services (RIS). Позволяет экономить место на диске, путём нахождения и замены линками, одинаковых файлов в RIS директориях.
• Shell Hardware Detection - ShellHWDetection (Win2K3, WinXP) - отслеживает и выдаёт сообщения о AutoPlay событиях аппаратного обеспечения (диски, флаш карты и т.п.)
• Smart Card - SCardSvr - обеспечивает контроль доступа к Smart Card-ам вставленной в ридер вашего компьютера.
• SNMP Service - SNMP (в сервером варианте) - обеспечивает обслуживание входящих запросов по протоколу SNMP в ваш компьютер. Имеет так же агенты для мониторинга сетевых устройств и посылки информации на консоль компьютера. UDP 161
• SNMP Trap Service - SNMPTRAP (в сервером варианте) - принимает trap сообщения генерируемые локальным или удалённым SNMP агентом и пересылает их на локальную программу управления SNMP. UDP 162.
• Special Administration Console Helper - Sacsvr (Win2K3) - выполняет задачи удалённого управления, если любая из систем семейства Win2K3 останавливает своё функционирование в связи с получением Stop error message.
• SQLAgent$* (*UDDI или WebDB) - SQLAgent$WEBDB (Win2K3) - может передавать администратору сообщения о наличии проблем на сервере и запускать периодическую активность. Поддерживаемые типы объектов: задания (Jobs), сигналы (Alerts) и операторы (Operators) - сетевые или e-mail адреса персонала получающего сообщения.
• SSDP Discovery Service - SSDPSRV (WinXP) - сервер позволяет подключение Universal Plug and Play (UnPnP) устройств через сеть и некоторые другие функции. TCP 5000, но в WinXP_SP2 TCP 2869. UDP 1900.
• Task Scheduler - Schedule - позволяет конфигурировать и запускать задания согласно расписанию.
• TCP/IP NetBIOS Helper Service - LMHosts - поддерживает работу NetBT, обеспечивая для него разрешение имён, а так же, пинг и поддержание списка доступных машин в сети.
• TCP/IP Print Server - LPDSVC (Win2K3) - обеспечивает доступ к сетевым принтерам по Line Printer Daemon протоколу. Может так же принимать данные от LPR утилиты в UNIX. TCP 515.
• Telephony - TapiSrv - обеспечивает поддержку программ управления телефонными устройствами, а так же VoIP.
• Telnet - TlntSvr - сервисе терминального доступа по одноимённому протоколу. TCP 23.
• Terminal Services - TermService - обеспечивает удалённый параллельный доступ к графическому интерфейсу Windows. TCP 3389.
• Terminal Services Session Directory - Tssdis (Win2K3) - позволяет организовывать кластера из нескольких терминальных серверов, для повышения производительности системы. Позволяет правильно трассировать запросы между несколькими серверами без потери сессии, а так же, хранит информацию об оборванной сессии, позволяя пользователю подключится к ней вновь. UDP 1083.
• Terminal Services Licensing - TermServLicensing (Win2K3) - позволяет регистрировать лицензии клиентов при их подключении к терминальному серверу.
• Themes - Themes (Win2K3, WinXP) - обеспечивает поддержку нового вида графического интерфейса в WinXP, позволяет модернизировать или создавать свои собственные темы. В Win2K3 выключен по умолчанию, при отключении в WinXP, новый вид интерфейса становится недоступен и активизируется классический вид.
• Trivial FTP Daemon - tftpd (Win2K3) - сервис простой пересылки файлов, является частью RIS. Применяется для доставки инсталяционных файлов на удалённую машину, а так же, для запуска бездисковых станций. Опасный сервис, активизируйте его только при необходимости удалённой инсталляции системы. TCP/UDP 69.
• Uninterruptible Power Supply - UPS - сервис поддержки устройств бесперебойного питания подкрученных к вашей машине через последовательный порт (если ваш UPS имеет USB соединение, не активируйте этот сервис).
• Universal Plug and Play Device Host - upnphost (WinXP) - хост сервис имеет все необходимые компоненты для регистрации, управления и обработки запросов от всех устройств подключённых по протоколу UPnP. Включает в себя так же, веб сервер с описанием сервиса и устройств, и страницу презентации. Остановка сервиса (в режиме Manual) приводит к посылке сигнала на отключение подключены устройств и невозможность их поиска, однако первый же запрос на подключение запускает сервис. Пир запуске сервир так же активизирует SSDP Discovery service.
• Upload Manager - Uploadmgr (Win2K3, WinXP) - предназначен для синхронной и асинхронной передачи файлов в сети. Позволяет анонимно передавать данные о аппаратной конфигурации клиента и ID операционной системы на Microsoft для автоматического поиска подходящих драйверов и установки из Интернета. TCP 80
• Utility Manager - UtilMan (Win2K) - сервис обеспечивает быстрый доступ к таким утилитам как: Magnifier - "увеличительное стекло на экране", Narrator - "прочитывает голосом надписи в меню и окнах" и On-Screen Keyboard - клавиатура на экране.
• Virtual Disk Service - VDS (Win2K3) - обеспечивает единый интерфейс управления виртуализацией блочных устройств, как например RAID, для всех программ операционной системы. Позволяет создавать аппаратно и программно независимые виртуальные диски и тома. Обеспечивать их полное управление, контроль и мониторинг.
• Volume Shadow Copy - VSS (Win2K3, WinXP) - (смотри описание Microsoft Software Shadow Copy Provider).
• WebClient - WebClient (Win2K3, WinXP) - позволяет Win32 аппликациям чтение и запись файлов в Интернете ц использованием WebDAV механизма. Отключение сервиса не позволит пользователю применять Web Publishing Wizard для публикации данных в Интернет.
• Web Element Manager - elementmgr (Win2K) - предоставляет веб интерфейс для удалённого администрирования. Использует asp технологию, собирает все данные при поднятии. Бежит с правами Local System и запрашивает необходимые данные через COM интерфейс для запуска которого необходимы права Local System или администратор. TCP 8098.
• Windows Audio - AudioSrv (Win2K3, WinXP) - сервис обрабатывает Plug-and-Play события от аудио устройств или например GFX эффекты. Сервис не может быть остановлен после старта, если сервис отключён могут наблюдаться проблемы со звуком или GFX (фильтры, эквалайзеры). Однако на серверах звуковые карты чаще всего не используются.
• Windows Image Acquisition (WIA) - StiSvc (Win2K3, WinXP) - поддерживает устройства ввода изображения по WIA. Устройства могут быть подключены по любым из перечисленных методов: SCSI, IEEE 1394, USB, а так же через паралельный последовательный или инфра-красный порт. Сервис поддерживает так же захват кадров из видео.
• Windows Installer - MSIServer - обеспечивает установку и удаление программ по заранее определённым правилам. Инсталляционные файлы имеют msi формат (возможна упаковка в другой формат, например exe). При отключении сервиса становится невозможным установка или удаление таких программ, а так же компонентов Windows.
• Windows Internet Name Service (WINS) - WINS (Win2K сервер) - служба имён от Microsoft работающая с протоколом NetBIOS. При отключении разрешение имён возможно локально из файла, либо в одной подсети с помощью broadcast запросов. В сетях необходимость в WINS отпадает после перевода всех доменов в AD и всех компьютеров на Win2K или старше. TCP 42 (Replication), 135 (WINS MANAGER), 137 (WINS Registration), 1101. UDP 445, 1100, 1512
• Windows Management Instrumentation Driver Extensions - Wmi - обеспечивает мониторинг драйверов и подготовку данных для WMI.
• Windows Media Services - WMServer (Win2K3) - версия для Win2K3 заменяет собой все четыре сервиса из WMS 4.0 или 4.1. Поддерживает различные протоколы: RTSP, MMS и HTTP. TCP 1755 (MMS), 554 (RSTP), 80 (HTTP), 135 (DCOM, WMI). UDP 161 (SNMP), 1755 (MMS), 135 (DCOM, WMI)
• Windows System Resource Manager – WindowsSystemResourceManager (Win2K3) – позволяет пользователю организовывать сценарии распределения ресурсов (память, CPU, и т.п.) для процесов. Такие сценарии могут действовать на нескольких машинах даже в гетерогенных сетях. Имеет встроенный календарь для организации управления сценариями то времени.
• Windows Time - W32Time – синхронизирует часы и календарь компьютера по центральному серверу с использованием протокола NTP. TCP 123.
• WinHTTP Web Proxy Auto-Discovery Service – WinHttpAutoProxySvc (Win2K3) – предоставляет возможности автоматической конфигурации прокси для WinHttp клиента. Использует для конфигурации загружаемый файл Proxy Auto-Configuration (PAC). Аналогичный подход используется в интернет эксплориаре при установка autoproxy.
• Wireless Configuration / Wireless Zero Configuration – WZCSVC (Win2K3, WinXP) – используется для автоматической конфигурации IEEE 802.11 беспроводного адаптера. Сканирует беспроводную сеть с целью обнаружения всех доступных сетей и определения их параметров. Благодаря этому, работа пользователя или аппликаций верхнего уровня, сводится к выбору сети из списка.
• WMI Performance Adapter - WmiApSrv (Win2K3, WinXP) – обеспечивает передачу информации о performance counters из WMI HiPerf модели в Performance Data Helper (PDH). Ей пользуются такие PDH клиенты как например Sysmon.
• Workstation – lanmanworkstation – обеспечивает клиентский доступ к удалённым файле и принтер сервисам, а так же получение информации через именованные каналы. Обеспечивает поддержку WNet API. Отключение сервиса никак не влияет на TCP (HTTP) протоколы и доступ в Интернет.
• World Wide Web Publishing Service - W3SVC - веб сервер. Предоставляет доступ к файлам или активным веб страницам (asp и т.п.) по HTTP и HTTPS протоколам. Является частью IIS. TCP/UDP 80, 443

Возможно этот список показался вам слишком длинным и нудным, но я надеюсь что вы сможете пользоваться им как справочником, когда решите попробовать сократить число включённых служб на вашем компьютере. Позволю себе сформулировать некоторое правило, которое кажется мне разумным при выборе сервисов кандидатов на отключение. Итак, если вы конфигурируете рабочую станцию помните, главное здесь функциональность, следом идёт производительность, а уж патом (кроме некоторых особых случаев) безопасность. Как следствие такого списка приоритетов, отключать следует только те службы, которые заведомо не используются в вашей конфигурации сети (скажем File Server for Macintosh - явно не нужен если в сети нет Macintosh-ей). Стоит так же обратить внимание на сервисы потребляющие неоправданно много ресурсов, но не используемые в повседневной работе, возможно разумнее остановить их, и запускать только по мере надобности.
Теперь взглянем на сервер. Приоритеты располагаются в прямо противоположном порядке - прежде всего безопасность, следом разумеется производительность (иногда выходит на первое место, но в нашем случае они сотрудничают, а не конфликтуют) и уж патом функциональность. Хочу отметить что излишние функциональные возможности на сервере часто приводят к лишней головной боли, не принося ни какой пользы. Как следствие - стараемся остановить все сервисы не являющиеся прямо необходимыми для выполнения прямых обязанностей сервера. Наиболее, в этом плане, удобны сервера со строго определёнными задачами и не подвергающиеся слишком частым обновлениям и изменениям.
Кстати, хотел обсудить с вами некоторое изменение. Мне кажется что мои выпуски немного длинноваты. Прочтение такого требует довольно много времени и серьёзного сосредоточения. Посему, сегодня я сделал выпуск только из одной темы "Не всё что удобно - полезно, или какие сервисы лучше остановить", а вас попрошу высказаться как лучше. Делать выпуски на одну тему (возможно чаще) с подробным изложением материала, или как раньше три темы? Заранее благодарю всех высказавших своё мнение.

Cледующий раз:
Права на диски или забудьте про группу Everyone

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

Saturday, November 25, 2006

Выпуск N2. Немного о безопасности в Windows или как из удобной вещи сделать надёжную.

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

О чем пойдёт речь в этот раз:

  1. Что такое правильный пароль - устанавливаем Account Policies
  2. Какие программы следует спрятать подальше - список утилит которые должен запускать только администратор.
  3. Повышаем надёжность TCP/IP

Что такое правильный пароль?

Я думаю с правильного подхода к работе с паролями начинается безопасность (к сожалению часто она заканчивается там же ещё не успев начаться). Итак начнём с прописных истин. Чего не стоит делать никогда - не используйте в качестве пароля имя того-же экаунта в прямой или перевёрнутой последовательности, своё (равно как и близких родственников) имя, фамилию или дату рождения - эти сведения слишком легко получить из других источников (например прочитать на двери вашего кабинета), не используйте простые слова или названия - взлом по словарю займе считанные минуты. Что же тогда - наилучший пароль состоит из смеси цифр, символов, малых и больших букв, причём первые три группы должны быть обязательно представлены в пароле. Почему? В Windows до сих пор существует метод криптования паролей называемый LM, но просто необходим если в вашей сети ещё остались машины с Windows 95 или 98, а так же UNIX с Samba ранних версий (кстати, если у вас динозавры уже вымерли, позже мы рассмотрим как запретить этот беспридел). Чем же так плох LM, дело в том что максимальная длинна пароля в нем 14 алфавитно-цифровых символов которые он переводит в нижний регистр перед криптованием (т.е. те самые три первых группы описанные ранее). После этого криптует пароль разделив по 7 символов, если длинна пароля 7 или менее знаков - хеш удваивается. Что в результате - простейший случай это симметричный хеш - заранее знаем что длинна пароля не более 7 символов, перебирать только алфавитно-цифровые нижнего регистра. Просто бальзам на сердце Bruteforce-ра. Теперь маленькая загадка - какой пароль лучше 8 или 10 символов. Казалось бы ответ очевиден - чем длиннее тем лучше ;) но не в этот раз. Что сделает умный хакер увидев несимметричный хеш, конечно начнёт взлом со второй половины, в надежде (обычно вполне оправданной), что до 14-и знаков дело не дошло, а значит и взлом будет легче. ОК, если пароль состоял из 8 символов, через секунду в руках взломщика будет последний. Что с ним делать? Ничего :_( Но совсем другое дело если у тебя три последних буквы, тут уж вполне можно прикинуть, а что же там было в начале: фамилия, дата рождения, номер телефона?

Подводим итог сказанному выше - хороший пароль имеет длину 8, а лучше 14 знаков, не может быть найден в словаре и состоит цифр, знаков и букв верхнего и нижнего регистра. Идиллическая картина, но как же этого добиться. Существуют организации, которые генерируют надёжные пароли специальными программами и заставляют своих пользователей ими пользоваться, запретив опцию замены пароля. Скажу прямо - это просто отвратительно, мало того людей лишают свободы выбора и заставляют набирать абсолютно не читабельные ругательства. С точки зрения security есть как минимум две большие проблемы: первая - сгенерированный пароль должен быть как-то доставлен пользователю, и тут уж громадное поле для краж и копирования; вторая - такой пароль невозможно запомнить если ты не Джеймс Бонд или хотя бы Кевин Митник, а посему, он будет записан и скорее всего просто приклеен к монитору или, в лучшем случае уложен в ящик стола. На мой взгляд, единственный способ, это научить своих пользователей применять алгоритм при заведении пароля. Например - к первым буквам имён детей выстроив их по возрасту прибавьте год вашего рождения в обратном порядке разделив их решётками плюс первые три цифры нажимая и отпуская клавишу Shift. Предложите несколько подобных алгоритмов чтобы работнику было легче придумать свой или хотя бы скомбинировать ваши.

Ну чтож, ц пряником разобрались, перейдём ко кнуту. Как не позволить создание слабых паролей. Для этого в Local Security Policy существует раздел - Account Policies. Рассмотрим его подробно

Для этого открываем папку Administrative Tools в Control Panel и запускаем Local Security Policy. На данном этапе нас интересует раздел Account Policies в нем есть две ветви: Password Policy и Account Lockout Policy.

Первая определяет правила работы с паролями, ей и займёмся.

Enforce password history - определяет сколько старых паролей будет помнить Windows. Нужен что бы при запросе на изменение пароля пользователь не мог установить свой старый (или один из старых) паролей. По умолчанию 0 т.е. при запросе на обновление можете поставить свой старый, уже всем известный пароль ;) Думаю 10 норма.

Maximum password age - как ясно из названия максимальное время которое можно иметь один пароль. 60-90 дней вполне приемлемо.

Minimum password age - минимальное время жизни пароля. Поясную зачем это нужно, если установить его в ноль (так оно стоит по умолчанию) то умный пользователь легко обойдёт ограничение "Enforce password history" просто перебрав нужное количество временных паролей. Установим 1 день, и юсер не станет этого делать.

Minimum password length - минимальная длинна пароля. Это мы уже обсудили. Я ставлю 14 знаков, хотя часто слышу нелестные слова от тех кто это набирает.

Password must meet complexity requirement - это (от Microsoft) означает: как минимум 3 из 4 описанных выше групп символов должны быть представлены в пароле, плюс , более трех символов подряд в имени и пароле совпадать не могут. По умолчнию отключено, по уму включить.

Store password using reversible encryption for all user in the domain - хранить пароли криптованые так что можно восстановить исходный текст. Практически тоже самое что хранить их открытым текстом. Почти никогда не нужен и выключен по умолчанию.

Второй раздел - Account Lockout Policy

  • Account lockout threshold - Количество неудачных попыток ввести пароль, после которого учётная запись будет заблокирована. На мой взгляд 3-5.
  • Account lockout duration - Время которое запись будет оставаться открученной. Эта настройка позволит владельцу все же войти в систему после разблокировки. Две особенности: первая - если параметр установлен в 0, пароль не будет разблокирован без участия администратора; вторая - локальный администратор не может быть блокирован от локального (с системной консоли) входа. Рекомендую для критичных систем 5 мин. для простых 15 мин.
  • Reset account lockout counter after - Время которое должно пройти с последней попытки для сброса счётчика "Account lockout threshold" в ноль. По понятным причинам должно быть меньше или равно "Account lockout duration"

Вот пожалуй и все что касается Account Policies. Теперь несколько слов о других параметрах связанных с паролями и авторизацией. Раздел политики Security Options. Начнём с

  • Prompt user to change password before expiration - этот параметр описывает за сколько дней до истечения срока действия пароля будет выдано сообщение о необходимости замены. (В реестр он представлен как HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\PasswordExpiryWarning. Обычно 15 дней.
  • Number of previous logons to cache - Этот параметр позволяет машине члену домена кэшировать пароли локально. Желательно устанавливать значение в 0, но если машина член домена, вы не сможете зайти на неё при отсутствии доступа к контроллеру домена. При необходимости такого подключения установите в 1.
  • Recovery Console: Allow automatic administrative logon - Если параметр разрешён, при вход в Recovery Console, не будет запрашиваться пароль администратора.
  • LAN Manager Authentication Level - как уже говорилось LM наиболее слабый метод криптования пароля применяемый в Windows. Установите этот параметр в "Send NTLMv2 responses only\refuse LM & NTLM" и ваш сервер перестанет разрешать удалённые подключения с низким уровнем криптования пароля. (Значение в реестре - HKLM\System\CurrentControlSet\Control\Lsa\LMCompatibilityLevel максимальный уровень 5, минимальный "Send LM & NTLM responses" = 0)
  • Send unencrypted password to connect to third-party SMB servers - если этот параметр разрешён, Windows будет по запросу пересылать в сети пароль открытым текстом. Применяется для связи с программами не поддерживающими методы криптования принятые в Microsoft. Параметр должен быть отключён. (HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\EnablePlainTextPassword = 0)
  • Do not display last user name in logon screen - Запрещает показ имени последнего пользователя вошедшего на машину. Таким образом атакующий должен подобрать не только пароль но и имя.
  • Rename administrator account - поскольку запись Administrator является стандартною, она может использоваться ка цель взлома. Параметр позволяет использовать другое имя как обычного администратора. Желательно создать ложную учётную запись Administrator, которая будет заранее блокирована, иметь сложный случайный пароль, обнулённые часы работы и просроченную дату устаревания. Ложный администратор не должен иметь ни каких прав на машине и используется как ловушка в IDS (Intrusion Detection Systems). Попытка зарегистрироваться под этим именем вызовет тревогу. Следует знать что SID у нового администратора останется прежним (предустановленным) и новое имя может быть узнано с помощью программ типа sid2user.
  • Rename guest account - переименовывает Guest запись соответственно.

Нужно отметить что в версиях Windows выше чем Win2K (WinXP, Win2K3, в Vista наверное тоже, но я ещё не проверял) добавлены дополнительные параметры:

  • Network security: Do not store LAN Manager hash value on next password change - запрещает сохранять новый пароль (после изменения) в LM формате. Поскольку алгоритмы шифрования пароля однонаправленные - т,е, пароль не может быть восстановлен из хеша (только подобран перебором) Windows вынужден хранить все форматы паролей: LM, NTLM и NTLMv2. Включите эту опцию, если ваша система не использует старые протоколы.
  • Accounts: Limit local account use of blank passwords to console logon only - не позволяет подключение с пустым паролем, кроме как через физическую консоль. Пользователи с пустым паролем не смогут подключится к серверу через сеть. ( HKLM\System\CurrentControlSet\Control\Lsa\LimitBlankPasswordUse = 1)
  • Interactive logon: Allow Automatic Administrator Logon - Позволяет администратору автоматически подключится к серверу если вам нужен безпарольный вход в систему (например для авто инстоляции с перезагрузкой). К сожалению, вы вынужденны сохранить пароль в реестре открытым текстом. Структура

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
DefaultUserName="имя_пользователя"
DefaultPassword="пароль"
AutoAdminLogon="1" (если вход требуется члену группы Administrators)
ForceAutoLogon ="1" (если перед входом высвечивается предупреждение)

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

  • Accounts: Administrator account status - запрещение этого параметра приводит к блокировке записи администратора, например если желателен доступ только администратору домена. Реактивировать запись может член администраторской группы или через Safe Mode где этот пользователь никогда не блокируется.
  • Accounts: Guest account status - активация позволит пользователям без пароля подключатся к серверу как Guest.

Ещё два поля, связанные со входов в систему, они позволяют предупредить пользователя о правилах работы и законности подключения на данном сервере:

  • Interactive logon: Message title for users attempting to log on - заголовок сообщения - будет высвечен на рамке окна. (HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeCaption)
  • Interactive logon: Message text for users attempting to log on - текст сообщения (HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\LegalNoticeText)
  • Interactive logon: Require Domain Controller authentication to unlock workstation - если активна, авторизация не может быть поризведена из кеша (вспомните о Number of previous logons to cache). Если опция выключена - для проверки пароля используется кеш, а подключение к домену происхоДит асинхронно.
  • Network access: Do not allow anonymous enumeration of SAM accounts - не позволяет не авторизованному пользователю получить список учётных записей (имеет некоторые побочные эффекты при работе в домене)
  • (HKLM\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM = 1)
  • Network access: Do not allow anonymous enumeration of SAM accounts and shares - как и приведущий он ограничивает доступ так же к списку розданных ресурсов. (HKLM\System\CurrentControlSet\Control\Lsa\RestrictAnonymous = 1)
  • Network access: Let Everyone permissions apply to anonymous users - позволяет не авторизованному пользователю получить некоторые дополнительные возможности, например список пользователей и доступных ресурсов в домене - сведения которые могут быть применены в социальной инженерии, например. (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\EveryoneIncludesAnonymous = 0 )
  • Network access: Named Pipes that can be accessed anonymously - содержит список разрешённых коммуникационных сессий (именованных каналов) которыми пользуются аппликации для связи через сеть. Если анонимный доступ на машину запрещён, этот параметр может позволить стандартным аппликациям т.к. сервисы - Sever, Workstation, многие DCOM аппликации (о том все ли DCOM-ы нужны поговорим позже). (HKLM\System\CurrentControlSet\Services\LanManServer\Parameters\NullSessionPipes - формат Multi-String)
  • Network access: Restrict anonymous access to Named Pipes and Shares - запрещает анонимный доступ к "Named Pipes" и "Shares" даже если он был разрешён в "Network access: Named pipes that can be accessed anonymously" и "Network access: Shares that can be accessed anonymously"
  • Network access: Shares that can be accessed anonymously - содержит список сетевых ресурсов доступных анонимно. Очень опасный параметр, находящиеся в нем ресурсы будут доступны любому пользователю сети. Используйте его осторожно и только в случае необходимости. (HKLM\System\CurrentControlSet\Services\LanManServer\Parameters\NullSessionShares\NullSessionShares - формат Multi-String)
  • Network access: Sharing and security model for lkcal accounts - описывает как пользователь прошедший сетевую авторизацию будет обращаться к ресурсам сервера. Имеет два значения Classic - 0 позволяет установить разные уровни доступа для разных пользователей, Guest only - 1 рассматривает все пришедшие из сети будут рассматриваться как Guest. Этот параметр не действует на доменную авторизацию, а так же на интерактивные подключения через службы типа Telnet или Terminal Services. (HKLM\System\CurrentControlSet\Control\Lsa\ForceGuest = 0)

На этом мы закончим рассмотрение параметров политики безопасности связанных с авторизацией. Остальные параметры постараемся рассмотреть в следующих выпусках. Хочу только заметить, что ключи реестра приведённые в этом разделе могут быть использованы для немедленного изменения значения, или даже для временного локального обхода доменной политики. Однако для создания постоянной политики я рекомендую использовать стандартные редакторы локальной и групповой политики. А так же, как наилучший метод - создание файлов темплейтов политики которые позже могут быть загружены через GUI или secdit.exe. Превосходство этого метода заключается не только в том что повреждённая или изменённая политика может быть легко восстановлена в любой момент, но и в том что можно автоматически проверить расхождения между действующими значениями и темплетом.

В заключении этого раздела хотелось бы сказать несколько слов о других (не использующих обычный пароль) методах авторизации. Прежде всего обратим внимание на системы использующие так называемые Smart card и одноразовые пароли типа SecurID. Smart card - позволяют пользователю авторизацию с очень длинным паролем (2048 и более символов) без необходимости его ручного ввода. SecurID генерирует новый (обычно 6 - 8 значный) пароль примерно каждую минуту, что делает бессмысленным кражу пароля. Главной опасностью такого метода является кража карты или TokenSecurID (обычно в форме брелока). Для устранения этой опасности используется pin код (обычно 4-х значное число) который вводится в компьютер либо в сам Token. При трёх неудачных попытках микро-контроллер устройства полностью блокируется, что делает его абсолютно непригодным к использованию. Другой метод, приобретающий все большую популярность, это биометрия (biometric) - измерение уникальных биологических данных владельца. Наиболее популярны сегодня: отпечаток пальца (fingerprint), рисунок сетчатки глаза (retinal scanning), а так же измерение био-электрических показателей например ладони.

Какие программы следует спрятать подальше

Существует большое количество инструментов в Windows которые позволяют значительно облегчить жизнь системному администратору. С их помощью можно настроить и контролировать систему, написать автоматические скрипты на все случаи жизни или получить удалённый доступ к необходимым ресурсам. К сожалению, эти же инструменты могут стать источником немалой головной боли. Чего стоит одна tftp.exe - излюбленное средство вирусов для закачивания на ваш компьютер основной исполняемой части, всевозможных "Back doors" или даже "Root kits". И так, вот список программ которые, на мой взгляд, должны быть надёжно изолированны от всех пользователей (да и самой системы) кроме администратора:

  • arp.exe
  • at.exe
  • atsvc.exe
  • attrib.exe
  • cacls.exe
  • cmd.exe
  • command.com
  • cscript.exe
  • dcomcnfg.exe
  • diskcomp.com
  • diskcopy.com
  • debug.exe
  • format.com
  • gpresult.exe
  • edit.com
  • edlin.exe
  • finger.exe
  • ftp.exe
  • ipconfig.exe
  • iexpress.exe
  • irftp.exe
  • ipsecmon.exe
  • label.exe
  • nbtstat.exe
  • net.exe
  • net1.exe
  • netsh.exe
  • netstat.exe
  • nslookup.exe
  • ntbackup.exe
  • ping.exe
  • poledit.exe
  • qbasic.exe
  • rcp.exe
  • rdisk.exe
  • regedit.exe
  • regedt32.exe
  • regini.exe
  • rexec.exe
  • route.exe
  • rsh.exe
  • runonce.exe
  • runas.exe
  • srvmgr.exe
  • secedit.exe
  • setreg.exe
  • sysedit.exe
  • syskey.exe
  • telnet.exe
  • tftp.exe
  • tracert.exe
  • verifier.exe
  • wscript.exe
  • xcacls.exe
  • xcopy.exe
  • certmgr.msc
  • ciadv.msc
  • compmgmt.msc
  • devmgmt.msc
  • dfrg.msc
  • diskmgmt.msc
  • eventvwr.msc
  • faxserv.msc
  • fsmgmt.msc
  • gpedit.msc
  • ias.msc
  • lusrmgr.msc
  • ntmsmgr.msc
  • ntmsoprq.msc
  • perfmon.msc
  • secpol.msc
  • services.msc
  • webfldrs.msi
  • wmimgmt.msc

Обратите особое внимание на файл cmd.exe. Это, как всем известно, командный процессор. Побочный эффект такого изменения - невозможность запуска .bat файлов любыми пользователями кроме администратора. О запрещении интерактивного использования командного процессора поговорим позже. А теперь, я хочу обсудить два возможных метода решения этой задачи. Первый - изменение прав доступа к файлам, без изменения их места положения. Второй в добавок к изменению прав, перенос файлов в отдельную доступную только для администратора директория. Независимо от метода, я рекомендую следующие права: Administrator - Read&Execute, Users - Deny All, Everyone - Deny Write. ЕслИ применён второй метод (я обычно пользуюсь именно им) такие же права установите и на саму директорию. Основным плюсом этого метода является защита от вредоносных скриптов, написанных в расчёте на стандартное месторасположения системных утилит и запущенных под правами администратора. Небольшое неудобство в том что в таком случае администратор не сможет запускать bat файлы простым двойным кликом, и будет вынужден использовать структуру <new_path>\cmd.exe /c или /k <script>.bat /ц -применяется если после окончания работы скрипта окно должно быть закрыто, иначе /к.

Повышаем надёжность TCP/IP

Этот раздел будет совсем небольшим. Я опиши набор ключей в реестре которые позволяют сделать TCP стек более устойчивым к DOS (Denial-of-service attack) атакам. Предназначение конкретных ключей легко понять из их названия, поясню только некоторые из них. Все параметры находятся в разделе конфигурации TCP/IP сервиса и имеют формат DWORD (если параметр не представлен в реестре, его необходимо создать)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  • EnableDeadGWDetect = 0 (Запрещает изменить default gateway если считает его неустойчивым)
  • EnableICMPRedirect = 0
  • IPEnableRouter = 1
  • DisableIPSourceRouting = 2
  • EnablePMTUDiscovery = 0 (Запрещает динамическое определение MTU (maximum transmission unit), устанавливает 576 bytes для всех компьютеров не находящихся в той же подсети)
  • KeepAliveTime = 300000
  • KeepAliveInterval = 1000
  • PerformRouterDiscovery = 0
  • SynAttackProtect = 2 (Перестраивает комплекс параметров для защиты от Syn атак)
  • TcpMaxHalfOpen = 100
  • TcpMaxHalfOpenedRetried = 80
  • TcpMaxPortsExhausted = 5
  • TcpMaxConnectResponseTransmissions = 3 (Если сервер подвергся жёсткой SYN flood атаке, измените это значение в 1. Однако это может повлиять на количество падений в корректных соединениях)

Ну вот пожалуй и все на этот раз. Сегодня мы коснулись широкого спектра проблем в области Windows security от простых правил работы с паролями и до тьюнинга TCP/IP стека. Но немало важных вопросов ещё впереди.

И так следующий раз:

  1. Не всё что удобно - полезно, или какие сервисы лучше остановить
  2. Права на диски - забудьте про группу Everyone
  3. А где же у него кнопка? Работаем с registry

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