Простые сценарии для публикации на Web-сервере результатов сканирования настроек безопасности

В этой статье мы рассмотрим ситуацию, с которой рано или поздно сталкивается системный администратор любой организации, — обеспечение и поддержание настроек безопасности в масштабах корпоративной сети. Предлагаемый подход позволяет проверять настройки пользовательских компьютеров при каждом перезапуске и публиковать результаты на корпоративном сайте, чтобы сотрудники ИТ-отдела могли планировать дальнейшую работу по устранению уязвимых мест имеющихся систем. Для этого можно воспользоваться программой Microsoft Baseline Security Analyzer 1.2.1 (MBSA), адаптировав некоторые из примеров сценариев, предоставленных разработчиками Microsoft. Конечно, в данном вопросе нельзя полагаться только на MBSA — этот продукт не выполняет всеобъемлющую проверку, однако может предоставить весьма полезную информацию для работы. Более подробные сведения о возможностях MBSA по проверке настроек системы безопасности содержатся во врезке «MBSA — первое знакомство».

Для осуществления задуманного надо выполнить три действия.

  • Загрузить с сайта Microsoft установочный комплект MBSA с примерами сценариев и установить MBSA на все целевые компьютеры (это можно сделать вручную, а можно воспользоваться каким-либо автоматизированным методом установки, например групповыми политиками установки программного обеспечения).
  • Написать выполняемый при регистрации в сети сценарий для запуска утилиты командной строки mbsacli.exe, который будет выполняться при каждой регистрации пользователя в сети и сохранять результаты работы в общем сетевом каталоге.
  • Подготовить и назначить ежедневное задание для обработки и консолидации собранных данных и преобразования их в отчеты в формате HTML для размещения на Web-сервере в корпоративной сети.

Каждая сеть уникальна, так что, вероятно, многим захочется доработать предлагаемые сценарии, чтобы они лучше обеспечивали потребности конкретной сетевой среды. Например, в данном примере мы исходим из предпосылки, что пользователи не обладают правами локального администратора и не могут исполнять сценарии от имени своей (с ограниченными правами) учетной записи. Поэтому в нашем примере установка MBSA и сканирование выполняются через механизм объектов групповых политик GPO в AD, что позволяет исполнять эти действия с расширенными правами.

Загрузка MBSA и примеров сценариев

Для создания задания сканирования безопасности компьютеров необходима самая новая версия MBSA и примеры сценариев для использования MBSA. Эти материалы доступны для свободной загрузки с сайта Microsoft по адресу http://www.microsoft.com/mbsa. Помимо упомянутых выше материалов, здесь содержится техническая документация и руководства, часто задаваемые вопросы и ответы (FAQ) и многое другое. После загрузки и установки пакета следует открыть в Windows Explorer папку C:Program FilesMicrosoft Baseline Security Analyzer, в которой размещаются все файлы установки MBSA, в том числе исполняемые модули mbsa.exe и mbsacli.exe.

При первом запуске MBSA программа выполняет загрузку информации об исправлениях системы безопасности с сайта Microsoft. Это защищенный электронной подписью файл mssecure_1033.cab (число 1033 соответствует версии файла для английского языка, для других языков будет загружен файл с другими номерами, русскому соответствует 1049). Как и в предыдущих версиях программы, можно оставить настроенную по умолчанию загрузку непосредственно с сайта Microsoft, а можно назначить в качестве источника свой сервер службы обновления программного обеспечения SUS (Software Update Services). Эта база знаний служит основой для формирования отчетов об имеющихся и недостающих исправлениях для системы безопасности и настройках компьютеров в сети.

Microsoft в дополнение к MBSA предлагает пакет, включающий примеры сценариев и дополнительную документацию об автоматизации сканирования компьютеров в сети и консолидации отчетов в удобный для работы формат. Этот пакет можно загрузить со страницы http://www.microsoft.com/technet/ security/tools/mbsascript.mspx и распаковать файлы в отдельный каталог на своем компьютере. В пакете содержится два сценария на JavaScript, документация по ним в формате Word и файл XML для форматирования результатов работы сценариев.

Удаленное и локальное сканирование — в чем отличие

MBSA допускает оба варианта запуска — как локально на каждом целевом компьютере, так и удаленно с центрального сервера. Удаленное сканирование настроить легче, поскольку не требуется устанавливать MBSA локально на каждом компьютере сети. Для настройки удаленного сканирования можно воспользоваться графическим интерфейсом MBSA или запустить mbsacli.exe с указанием списка имен или адресов целевых компьютеров. Правда, как и все простые решения, данный подход имеет некоторые недостатки. Во-первых, в удаленном режиме не будет выполняться ряд проверок уязвимости системы (например, не будет выполнена проверка настроек брандмауэра Windows Firewall). Во-вторых, удаленное сканирование в большей степени использует полосу пропускания сети, чем локальное сканирование. И наконец, локальное сканирование проще связать с каким-нибудь повторяющимся действием, таким как перезапуск системы или регистрация пользователя в сети. С учетом перечисленных недостатков удаленного сканирования мы будем рассматривать в данной статье вариант локальной установки MBSA на каждый целевой компьютер и запуска с сохранением результатов сканирования на сетевой сервер для дальнейшей обработки результатов.

В первую очередь необходимо установить MBSA на каждый целевой компьютер в сети. Установочный пакет предоставляется в формате Windows Installer (.msi), так что пакет легко может быть установлен через групповые политики для загрузки программного обеспечения. Одно из преимуществ такого подхода состоит в том, что, во-первых, пользователю не нужны специальные права для установки программного обеспечения, а во-вторых, администратор может быть уверен в том, что программное обеспечение будет установлено на компьютер пользователя при следующем же перезапуске компьютера.

Настройка сканирования при каждом перезапуске системы

После установки MBSA на всех целевых компьютерах необходимо включить сценарий для запуска Mbsacli при каждой перезагрузке системы. На листинге 1 представлен простейший сценарий из трех строчек под названием runmbsa.bat. В первой строке выполняется запуск Mbsacli. В этом сценарии мы хотим использовать полную проверку, так что будем применять режим MBSA, а не режим HFNetChk. Более подробные сведения о различиях двух режимов работы MBSA можно найти во врезке «Два режима запуска Mbsacli.exe».

В первой строке параметр -c в сочетании со средой окружения %computername% сообщает программе Mbsacli.exe, что необходимо выполнить сканирование локального компьютера. Параметр -o задает формат имени файла отчета. По умолчанию MBSA сохраняет отчет о выполнении сканирования в файле с шаблоном имени домен-компьютер (время сканирования), по маске %D%-%C%(%T), но в данном примере я хотел бы сохранять только имя домена и компьютера, без отметки о времени запуска, так что в командной строке указана маска %D%-%C%. Поскольку символ % является специальным символом в командном интерпретаторе Windows (таким образом определяются имена переменных), для передачи в MBSA параметров %D% и %C% требуется удвоить символы % (т. е. используется запись %%D%%-%%C%%).

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

Во второй строке сценария Runmbsa выполняется копирование результатов сканирования с целевого компьютера на сетевой сервер, на котором результаты сканирования многих компьютеров будут обобщаться и обрабатываться для просмотра. Команда Copy с ключом /y перезаписывает файл с тем же именем без подтверждения со стороны пользователя, что позволяет применять ее в пакетном режиме.

В последней строке локальный файл результата удаляется, чтобы при следующем выполнении сканирования не возникало проблем с уже существующим файлом домен-компьютер.XML. При повторном многократном выполнении команды

mbsacli.exe /o %%D%%-%%C%%

MBSA будет создавать отчеты с именами домен-компьютер.XML, затем домен-компьютер(1).XML, домен-компьютер(2).XML и т. д., вместо того чтобы перезаписывать существующий файл, как можно было бы ожидать. В рассматриваемом случае сохранение истории сканирования не играет роли, нас интересует только последний результат проверки уязвимости системы. Именно поэтому, скопировав файл с именем домен-компьютер.XML на сервер (с перезаписью существующего файла), мы каждый раз удаляем его, чтобы при следующем запуске был создан файл с тем же именем.

После того как сценарий запуска MBSA создан, необходимо обеспечить выполнение данного сценария при каждом перезапуске компьютера. Можно создать новый объект групповых политик GPO для запуска сценария командного интерпретатора и связать данный объект GPO с соответствующей структурой AD — доменом, организационной единицей или сайтом. Когда это будет сделано и целевые компьютеры получат соответствующие обновления GPO, на каждом компьютере при загрузке будет запускаться сценарий Runmbsa. Даже при локальном сканировании компьютера этот процесс занимает довольно много времени, так что если после перезагрузки сразу зарегистрироваться в сети и запустить диспетчер задач Task Manager, можно будет увидеть процессы MBSA и CMD, исполняющиеся от имени системной учетной записи SYSTEM. После завершения сканирования можно убедиться, что отчет скопирован на общий сетевой ресурс.

Просмотр результатов исполнения MBSA

Результаты предыдущих сканирований, сохраненные в папке %userprofile%securityscans, можно просмотреть через графический интерфейс MBSA или запустив версию для командной строки Mbsacli.exe с ключом /l. При выполнении команды

mbsacli /l

будет сформирован список отчетов о выполненных процедурах сканирования, представленный на экране 1. Обратите внимание, что в списке содержится 10 результатов сканирования пяти компьютеров, для каждого компьютера сканирование производилось дважды. При регулярном удаленном сканировании множества систем объем собранных данных быстро разрастается до такой степени, что управлять им становится сложно. Параметр /ls служит для выбора только последних результатов сканирования, /lr показывает сокращенный отчет о сканировании. Для просмотра детального отчета о конкретном сканировании используется параметр /ld с именем файла отчета:

mbsacli /ld «security — XPPRO (11-21-2004 1-25 PM)»

Результат применения программой указанных параметров выводится на экран и может быть перенаправлен в файл. Просмотр результатов сканирования всех компьютеров, на которых исполнялся сценарий Runmbsa, можно выполнить на компьютере с установленной утилитой MBSA — для этого необходимо скопировать на данный компьютер все файлы отчетов в папку %userprofile%/securityscans и запустить Mbsacli с любым набором параметров для отображения (например, /l, /ls, /lr, /ld). Но больший интерес представляет возможность просмотра обобщенного отчета по всем системам в виде Web-страницы — именно такую возможность предоставляют сценарии MBSA. Давайте посмотрим, как это сделать.

Обобщение результатов

В комплекте сценариев MBSA содержится пример сценария для обобщения результатов от множества ранее выполненных процедур сканирования и отображения их в виде удобной для просмотра таблицы. Если этот тип отображения не совсем устраивает пользователя, со временем потребуется доработать стандартные сценарии Microsoft для более адекватного применения отчетов в конкретной организации. Но и исходный вариант сценариев уже дает многое.

Сценарий Rollup.js позволяет указать бюллетени безопасности, а затем обрабатывает все найденные файлы отчетов MBSA в формате XML и создает новый файл XML, содержащий итоговый отчет о соответствии настроек компьютеров параметрам выбранных бюллетеней безопасности Microsoft. Например, следующая команда:

cscript.exe //nologo rollup.js /b MS04-030 MS04-029 MS04-028

MS04-024 MS04-023 MS04-022 > MultiPatchRollupDemo.xml

создает новый файл XML с отчетом о проверке соответствия компьютеров избранным наборам исправлений безопасности (названия с префиксом MS04), который можно просмотреть в Microsoft Internet Explorer (IE) или связать с Web-страницей.

Интерпретатор Cscript выполняет компиляцию и запуск сценария Rollup и сохраняет результаты в файле в формате XML. Параметр //nologo играет важную роль, поскольку блокирует вывод строки информации Cscript, которая в противном случае нарушила бы структуру файла XML.

Помимо проверки соответствия требованиям бюллетеней безопасности, можно проверить другие известные уязвимые места, которые умеет определять MBSA. В таблице представлены номера и описания этих проверок. Например, исполнение следующего сценария:

cscript.exe //nologo rollup.js -c 104 > password.xml

сообщит вам, на каких компьютерах настройка политики пароля локальной учетной записи (Local Account Password Check) соответствует требованиям MBSA, а на каких — нет.

В качестве упражнения можно настроить предлагаемые примеры сценариев для решения специальных задач. Так, с помощью MBSA (код проверки 123) можно проверить установленные на компьютерах службы, которые обычно не используются на рабочих местах, например WWW и Telnet. Сканирование MBSA выдает полный список работающих служб, а сценарий Rollup показывает те компьютеры, которые удовлетворяют заданным требованиям. Вы можете легко настроить Rollup для выдачи списка всех компьютеров с исполняемыми службами в виде нового отчета XML.

Заключительные штрихи

Необходимо скопировать сценарий Rollup в сетевой каталог, в котором хранятся результаты сканирования MBSA целевых компьютеров сети. На Web-сервер, предназначенный для представления отчетов MBSA, следует скопировать таблицу XML- стилей — файл rollup.xml (например, в каталог C:inetpubwww). Потребуется исправить сценарий Rollup так, чтобы он обращался к сетевому ресурсу, на котором хранятся отчеты (по умолчанию используется путь %userprofile%securityscans). Затем нужно открыть Notepad и перейти к строке 38, которая должна содержать следующий текст:

var g_SecurityScans = «%userprofile%securityscans»

Этот текст следует поменять на каталог, в котором накапливаются отчеты MBSA, например:

var g_SecurityScans = «c:mbsadata»

Экран 2. Результаты работы MBSA

Далее требуется назначить задание для ежедневного запуска сценария, приведенного в листинге 2, на выбранном сервере хранения результатов сканирования. Командный файл Check.bat запускает сценарий Rollup для обработки результатов проверок программой Runmbsa паролей и статуса установки шести бюллетеней безопасности Microsoft. При этом сценарий Rollup создает новые файлы password.xml и bulletin.xml и помещает их в Web-папку. После этого остается только создать Web-страницу со ссылками на файлы Password и Bulletin (или можно открывать их напрямую в браузере) — и мы получим доступ к отчетам, аналогичным приведенным на экране 2. Таким образом, используя сценарии Runmbsa и Check, можно отслеживать настройки безопасности компьютеров и обнаруживать недостающие обновления безопасности на регулярной основе.

MBSA обеспечивает базовые средства проверки защиты компьютеров, наличия уязвимостей и необходимости установки исправлений для системы безопасности. В данной статье были показаны способы организации регулярного мониторинга состояния рабочих станций домена и отображения собранных сведений на Web-сервере. Конечно, при внедрении предлагаемого подхода в конкретном окружении некоторые элементы системы могут потребовать доработки, но главное, система в целом проста и надежна, к тому же не требует значительных усилий со стороны администраторов ИТ-подразделения. Я бы не советовал полагаться исключительно на средства MBSA при проверке безопасности сети, поскольку данное решение не является абсолютно надежным и, главное, не поддерживает средства распространения и установки обновлений безопасности на рабочие места пользователей. Но тем не менее это бесплатное средство, обеспечивающее удобные возможности сбора и обобщения информации об уязвимых местах пользовательских компьютеров, несомненно поможет администраторам поднять уровень защищенности ИТ-систем.


MBSA — первое знакомство

Экран A. Отчет MBSA

Microsoft Baseline Security Analyzer (MBSA) представляет собой бесплатную утилиту от Microsoft, предназначенную для проверки системными администраторами общих уязвимых мест в продуктах Microsoft, в особенности недостающих исправлений для системы безопасности. Microsoft выпустила MBSA несколько лет назад как часть стратегической программы обеспечения технологической безопасности платформы Windows (Windows Strategic Technology Protection Program, STPP). По мере выпуска новых версий MBSA увеличивалась функциональность продукта, кроме того, Microsoft опубликовала набор сценариев, позволяющих обойти и сгладить некоторые из присущих программе ограничений, таких как отсутствие обобщения отчетов и пакетного сканирования систем. Благодаря этим усовершенствованиям MBSA превратилась в удобный продукт, который администраторы, особенно при ограниченном бюджете, охотно включают в свой набор инструментов.

При запуске сканирования интерактивной графической версии MBSA (mbsa.exe) результаты сканирования системы будут приблизительно такими, как на экране А, где приведены просканированные системы и заключения об их состоянии. Графическая версия MBSA позволяет быстро получить анализ степени защищенности отдельной системы. Эта версия MBSA, как и утилита командной строки (mbsacli.exe), сохраняет результаты сканирования системы в файле в формате XML, который размещается в папке %userprofile%/securityscans (например, C:documents and settingsadministrator.securitysecurityscans). Графическая версия позволяет также просмотреть созданные ранее отчеты о состоянии системы — для этого достаточно щелкнуть по ссылке Click here to see all security reports («Просмотреть все отчеты безопасности») и перейти в каталог SecurityScans. Если MBSA используется достаточно часто, а систем довольно много, то вскоре станет трудно разобраться во всех этих отчетах, а быстро определить общее состояние компьютеров в сети будет просто нереально. Кроме того, если на одном компьютере работают несколько пользователей, то отчеты для одного и того же компьютера будут размещаться в различных пользовательских каталогах, что еще добавит неразберихи. Поэтому следует ввести правило копирования, согласно которому результаты сканирования всех пользователей попадали бы в назначенную пользователем папку для дальнейшего анализа. Утилита командной строки mbsacli.exe как раз помогает настроить автоматическое регулярное сканирование и сбор данных.

Следует иметь в виду, что MBSA не выполняет установку исправлений для системы безопасности, так что не надо рассчитывать, что это достаточное средство для управления обновлениями. Используемый в MBSA сканер безопасности разработан компанией Shavlik Technologies, которая продает собственный продукт HFNetChkPro, предназначенный для установки исправлений и обновлений. Кроме того, MBSA не дает такого полного и детального анализа уязвимых мест системы, как это делают некоторые коммерческие и распространяемые в исходных кодах анализаторы. Некоторые из этих программ были рассмотрены в обзоре «Анализаторы уязвимых мест» (http://www.osp.ru/win2000/ solutions/412_3.htm). Однако в комбинации с технологиями распространения исправлений, предоставляемыми Microsoft, SUS или WUS (Software Update Service и Windows Update Services), системные администраторы могут использовать MBSA для обеспечения достаточного уровня безопасности корпоративных сетей в соответствии с рекомендациями Microsoft.

MBSA (графическая версия и утилита командной строки) выполняет основную проверку безопасности систем, включающую около сотни разных параметров. В набор проверяемых параметров входят параметры пароля пользователя, разрешена или запрещена гостевая учетная запись, настройки зон Internet Explorer и Microsoft Outlook, список системных администраторов, проверка работы различных не требующихся на данном компьютере служб (Telnet, IIS). Проверяется также множество других настроек конфигурации в продуктах Microsoft Windows, Microsoft Office, SQL Server, Microsoft IIS, Microsoft Data Access Components (MDAC). Последняя версия MBSA — с номером 1.2.1 — поддерживает проверку настроек брандмауэра Windows Firewall, входящего в состав Windows XP SP2.


Два режима запуска Mbsacli.exe

Экран Б. Запуск Mbsacli c ключом /hf

Mbsacli позволяет указать параметры сканирования в командной строке, что делает эту программу идеальной для запуска из пакетных файлов и сценариев. При этом программа поддерживает два режима запуска — собственно mbsa и режим HFNetChk. Режим MBSA выполняет более полную проверку уязвимостей системы и установленных приложений, а также недостающих пакетов обновлений и исправления и записывает результаты сканирования в файл XML.

В режиме HFNetChk программа только проверяет недостающие пакеты обновлений и исправления и не сохраняет результаты в файл XML. Для запуска Mbsacli в режиме HFNetChk в командной строке следует указать ключ /hf

mbsacli /hf [параметры HFNetChk]

Режим HFNetChk поддерживает больше параметров командной строки, позволяя более точно настроить проверку, чем это допускается в режиме MBSA. Кроме того, в режиме MBSA нельзя указать список компьютеров для сканирования, как это можно сделать в HFNetChk. Режим HFNetChk позволяет также запускать программу с измененными разрешениями. Можно сравнить разрешенные параметры для этих двух режимов, запустив команды

mbsacli /?

mbsacli /hf /?

и сопоставив полученные результаты.

Запускаем Mbsacli

При установке на компьютер исправлений для системы безопасности Windows регистрирует установленные исправления в разделе реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionHotFix. Простейшие сканеры исправлений для системы безопасности выполняют только просмотр этого раздела на предмет проверки наличия нужных исправлений. Однако следует учитывать, что записи в этом подключе могут не соответствовать действительности. Например, не является исключительной ситуация, когда устанавливается исправление для системы безопасности Microsoft IIS, затем по каким-то причинам IIS удаляется, после чего через некоторое время устанавливается вновь, что приведет к наличию записи об исправлениях для системы безопасности IIS в реестре, в то время как фактически на диске будет незащищенная версия.

Используемый программой MBSA файл mssecure_1033.cab наряду с информацией о параметрах в реестре содержит сведения о версиях файлов и контрольных суммах файлов для различных исправлений системы безопасности. В первую очередь MBSA проверяет параметры в реестре (эту проверку можно отменить, указав в командной строке ключи /hf -z), затем проверяет в системе все файлы, перечисленные для данного исправления, и сопоставляет их версии и контрольные суммы со значениями в базе данных. При несовпадении версии или контрольной суммы MBSA записывает в отчет, что требуется установка данного исправления. Для ускорения сканирования можно отключить проверку контрольных сумм, указав в командной строке дополнительный ключ -nosum, в этом режиме MBSA будет проверять только версии файлов. Параметр -nosum доступен в обоих режимах работы Mbsacli.

Для сканирования списка компьютеров в режиме MBSA следует выполнить команду вида:

mbsacli /c 2k3,2ksrv,dc5,xppro

Та же операция в режиме HFNetChk запускается командой

mbsacli /hf -h 2k3,2ksrv,dc5,xppro

при этом в обоих случаях пробелы между именами файлов, разделенными запятыми, не допускаются.

При запуске Mbsacli в режиме HFNetChk (то есть с ключом /hf) вы можете передать программе список компьютеров для проверки в виде текстового файла. В файле можно указать до 256 компьютеров, при этом их имена вводятся на отдельных строках. Так, если создан файл hostlist.txt, содержащий следующие имена компьютеров

2k3

2ksrv

dc5

xppro

то для быстрого сканирования этих компьютеров в режиме HFNetChk без проверки реестра и контрольных сумм можно воспользоваться командой

mbsacli /hf -fh c:hostlist.txt -nosum -z

Если необходимо проверить более 256 компьютеров, в пакете MBSA предусмотрен сценарий batchscan.js, разбивающий список любой длины на более короткие списки по 128 компьютеров для пакетной обработки с помощью Mbsacli. Таким образом, можно воспользоваться ADSI (Microsoft Active Directory Service Interfaces) для сохранения в текстовом файле всех компьютеров в домене AD или отдельной организационной единице OU, а затем применить batchscan для настройки сканирования каждого компьютера.

Вместо имен хостов Mbsacli может использовать адреса IP в режиме HFNetChk с ключом -fip имя файла. По умолчанию MBSA проверяет установку всех важных исправлений. Microsoft документирует все выпускаемые исправления в статьях, идентифицируемых в базе знаний Microsoft по номеру с префиксом Q. Mbsacli позволяет отключить проверку некоторых исправлений с индексом Q, перечисляя игнорируемые исправления для системы безопасности в текстовом файле и указывая этот файл в командной строке с ключом -fq. Ключи -fip и -fq доступны только в режиме HFNetChk.

При запуске Mbsacli с ключом /hf результат сканирования выводится на экран, как показано на экране Б. Этот способ удобен при интерактивном запуске программы, но для регулярного запуска сканера по расписанию следует перенаправлять выдачу в текстовый файл, используя параметр -f имя файла результата. Следует помнить, что в режиме HFNetChk программа не сохраняет результаты выполнения в файле XML в папке %userprofile%/securityscans.


Директор по информационной безопасности компании aQuantive. Автор книги IT Administrator?s Top 10 Introductory Scripts for Windows (издательство Charles River Media). jeff@blackstatic.com