- Утилиты аудита безопасности Windows
- MBSA — Microsoft Baseline Security Analyzer
- SekChek Security Auditing
- Windows SEC-AUDIT (PowerShell script)
- Windows-audit (PowerShell script)
- Windows-Workstation-and-Server-Audit (PowerShell script)
- SQL Audit Script at TechEd 2014 (PowerShell script)
- Microsoft Windows Server Best Practice Analyzer
- Hardentools for Windows
- SAMRi10 — Hardening SAM Remote Access in Windows 10 / Server 2016
- Заключение
Здравствуйте, друзья! Сегодня у нас обзор основных инструментов аудита и настройки native-опций безопасности Windows. Я расскажу про необходимый набор утилит для любого системного администратора и аудитора информационной безопасности. Так что, если вы имеете хотя бы малейшее отношение к этим сферам, обязательно прочитайте статью .
Еще по теме: Аудит событий в Windows с помощью Sysmon
Утилиты аудита безопасности Windows
В этой статье мы сконцентрируем свое внимание на бесплатных или open source инструментах, которые будут доступны абсолютно каждому. В следующем обзоре утилит аудита безопасности Windows речь пойдет о платных инструментах.
MBSA — Microsoft Baseline Security Analyzer
MBSA — старейшая утилита проверки security settings от самой Microsoft. Первые релизы были ориентированы на Windows XP и Server 2003. С тех пор минуло уже более десяти лет, а эта тулза остается актуальной и по сей день! Ее версия 2.3 поддерживает все редакции ОС вплоть до Windows 10 и Server 2016.
Изначальными задачами утилиты было определять состояние безопасности Windows в соответствии с рекомендациями Microsoft, искать распространенные неверные конфиги безопасности и отсутствующие обновления security patch, но, помимо этого, утилита предлагает конкретные рекомендации, как улучшить безопасность, которые, правда, сводятся к довольно стандартному чек-листу. Впрочем, для программы, вышедшей в середине прошлого десятилетия, это было огромное достижение!
MBSA обеспечивает подобную проверку, обращаясь к постоянно пополняемой Microsoft базе данных, которая содержит информацию обо всех обновлениях и критических патчах, выпущенных для каждого из продуктов Microsoft (IE, IIS, MS SQL Server, MDAC, MSXML и так далее). Работать с утилитой можно через графический интерфейс и командную строку.
Для MBSA есть возможность запуска сканирования как локально, так и по сети через командную строку при помощи запуска исполняемого файла mbsacli.exe. Команда имеет ряд ключей и дополнительных опций, которые позволяют управлять сканированием.
Создание сценариев сканирования
На практике, чтобы обеспечить постоянный и систематический мониторинг безопасности ИТ-инфраструктуры, системным администраторам приходилось запускать утилиту каждый раз вручную. Однако нам будет интересен сценарий запуска MBSA периодически по расписанию, который позволит утилите в автоматическом режиме отправлять отчеты на адреса электронной почты админов, а это в разы увеличит уровень информированности о состоянии безопасности корпоративной сети.
К примеру, перед нами стоит такая задача: необходимо провести проверку компьютеров (диапазон IP-адресов) с использованием данных службы WSUS и сохранять отчет в определенной директории (формат отчета: <имя компьютера> – <время>). Тогда команда запуска MBSA из CLI будет выглядеть следующим образом:
1 |
mbsacli.exe /r [начальный IP-адрес]-[конечный IP-адрес] /q /wa /o %IP%-%T% /u [домен/имя пользователя] /p [пароль пользователя] /rd [директория, куда будут сохраняться отчеты] |
Остается добавить это задание в «Планировщик заданий Windows», который и будет выполнять необходимые нам действия в определенное время.
Результаты сканирования
После окончания сканирования с опциями по умолчанию MBSA создает файл отчета в папке профиля пользователя, вошедшего в систему. В GUI-интерфейсе утилиты результаты сканирования отображаются с помощью различных значков в зависимости от того, была ли найдена уязвимость или проблема безопасности на проверяемом хосте.
Классический светофор — красный (критический), желтый (средний), зеленый (рекомендуемая настройка) уровень индикации. Синяя звездочка используется для обычных проверок (например, проверки, включен ли аудит), а синий информационный значок MBSA используется для проверок, которые просто предоставляют информацию о компьютере (например, версия ОС). Для проверок обновлений безопасности используется красный восклицательный значек, когда MBSA подтверждает, что обновление для системы безопасности отсутствует или не удалось выполнить проверку безопасности.
После заверешения сканирования единственного хоста MBSA автоматически запускает окно View security report и отображает результаты сканирования. Если же было выполнено сканирование нескольких компьютеров, то результат стоит просматривать в режиме Pick a security report to view.
Создаваемый MBSA отчет разбивается на пять категорий:
- Security Update Scan Results;
- Windows Scan Results;
- Internet Information Services (IIS) Scan Results;
- SQL Server Scan Results;
- Desktop Application Scan Results.
В MBSA начиная с версии 2.0 в отчете также выдаются идентификаторы (Common Vulnerabilities and Exposures Identifier, CVE-ID) типичных опасностей и уязвимых мест.
Любые манипуляции с системой в режиме суперпользователя требуют особо пристального внимания и повышенной ответственности. Делайте только то, в чем твердо уверены. Не пренебрегайте резервными копиями и снапшотами.
SekChek Security Auditing
Еще одна отличная бесплатная утилита из нашего арсенала — это SekChek от одноименной компании-разработчика. Инструмент поддерживает большое количество платформ — Novеll Netware, Unix/Linux, IBM iSeries и, конечно же, Windows. Утилита доступна в двух вариантах — Classic и Local.
SekChek Classic предоставляет эксперту огромный и подробный отчет о проверке хоста/подсети в форматах MS Word, Excel и баз данных Access, вычисляет общий рейтинг безопасности, сформированный на основе статистики из реальных средних показателей отрасли, а также подробное описание найденных проблем безопасности и общие рекомендации по их устранению.
Кроме сканера, в пакет SekChek Classic входят еще и приятные дополнительные модули:
- для шифрования сгенерированного отчета;
- документация для первого знакомства с программой
- и некоторые полезные free tools.
Вот общий список security settings, которые проверяет SekChek Classic:
- System Configuration;
- System Accounts Policy;
- Audit Policy Settings;
- Registry Key Values;
- User Accounts Defined On Your System;
- Local Groups and their Members;
- Global Groups and their Members;
- Last Logons, 30 Days and Older;
- Passwords, 30 Days and Older;
- Passwords that Never Expire;
- Invalid Logon Attempts Greater than 3;
- Users not Allowed to Change Passwords;
- Accounts with Expiry Date;
- Disabled Accounts;
- Rights and Privileges (Users, Groups);
- Trusted and Trusting Domains;
- Local Accounts;
- Servers and Workstations;
- RAS Privileges;
- Services and Drivers on the Machine;
- Server Roles and Features;
- Task Scheduler Settings;
- Security Updates, Patches and Hot-Fixes;
- Products Installed;
- Current Network Connections;
- Domain Controllers in the Domain;
- Logical Drives;
- Network Shares;
- Home Directories, Logon Scripts, Profiles;
- File Permissions and Auditing.
После установки и первого запуска утилиты будет предложено сформировать профиль аудитора и заполнить контактные данные, которые будут автоматически добавляться к отчетам. После этого генерируется секретный ключ и пароль, которыми шифруется файл с результатами тестов. Заполненный профиль тестирования необходимо отдельно сгенерировать, нажав на кнопку Create в строке Create Scan Software.
После чего в директории с программой извлекается исполняемый файл с именем по умолчанию SekClient.exe, который аудитор и должен запускать для инициации тестирования. Файл SekClient.exe нужно запустить от имени администратора и дальше, следуя пошаговому руководству мастера, инициировать сканирование. И нужно помнить, что для проверки каталога Active Directory вам потребуются права доменного админа.
SekChek Local — это второй вариант утилиты, также содержащий набор автоматизированных средств проверки и тестирования безопасности.
В отличие от версии Classic эту версию предпочтительнее запускать с целью тестирования контроллера домена и каталога Active Directory. Механизм генерации этой версии программы состоит из трех встроенных модулей анализа:
- SekChek для SAM;
- SekChek для AD;
- SekChek для SQL.
На сайте разработчика есть небольшая инструкция с описанием запуска утилиты на контроллере домена и создания Access базы данных отчетов. Кроме этого для ознакомления предоставлен пример отчета с репортом.
Чтобы начать процесс тестирования, надо запустить исполняемый файл SekChekLocal.exe от имени администратора и, выбрав опцию SAM для локальной машины или AD для контроллера домена, в пару кликов запустить сканирование.
Для тех, кто еще не определился с выбором версии — Classic или Local, на официальном сайте есть подробное сравнение возможностей и целевого назначения каждой утилиты. С полным списком деморепортов также можно ознакомиться на отдельной страничке сайта разработчика.
Вот общий список security settings, которые проверяет SekChek Local:
- System Configuration;
- System Accounts Policy;
- Audit Policy Settings;
- Registry Key Values;
- User Accounts Defined On Your System;
- Local Groups and their Members;
- Global Groups and their Members;
- Last Logons, 30 Days and Older;
- Passwords, 30 Days and Older;
- Passwords that Never Expire;
- Invalid Logon Attempts Greater than 3;
- Users not Allowed to Change Passwords;
- Accounts with Expiry Date;
- Disabled Accounts;
- Rights and Privileges (Users, Groups);
- Trusted and Trusting Domains;
- Local Accounts;
- Servers and Workstations;
- RAS Privileges;
- Services and Drivers on the Machine;
- Server Roles and Features;
- Task Scheduler Settings;
- Security Updates, Patches and Hot-Fixes;
- Products Installed;
- Current Network Connections;
- Domain Controllers in the Domain;
- Logical Drives;
- Network Shares;
- Home Directories, Logon Scripts, Profiles;
- File Permissions and Auditing.
Следует отметить, что основной недостаток этой утилиты, который сразу бросается в глаза: не очень современный интерфейс в стиле девяностых. Проблема в нем не только эстетическая — он очень толсто намекает на тот факт, что ПО больше не обновляется, а сам вендор прекратил свое существование. Хотя сайт по-прежнему функционирует и предлагает возможность скачивать утилиты.
Windows SEC-AUDIT (PowerShell script)
Скрипт SEC-AUDIT, выложенный в GitHub-репозиторий автором Sikkandar-Sha и написанный на PowerShell, служит для аудита и проверки настроек безопасности Windows Server. Как вы, наверное, уже догадались, этот скрипт, так же как и предыдущие программы, абсолютно бесплатен, а исходный код выложен в публичный доступ.
После запуска скрипт проверяет параметры безопасности, элементы управления, политики, применяемые на отдельной машине или контроллере домена. Скрипт сравнивает текущее и рекомендуемое значение параметра, контроля или политики безопасности, которые должны соответствовать известным стандартам безопасности и рекомендациям производителя. Как отмечает автор, этот PowerShell-скрипт пригодится в ситуациях, когда запуск автоматизированных инструментов аудита, таких как OpenVAS или Nessus (с настроенной политикой аудита конфигураций), не разрешен или по каким-то причинам затруднителен.
Что касается эталонных рекомендаций по безопасности от Microsoft, вы можете ознакомиться с ними на официальной странице MSDN для Windows 10 и Active Directory.
Запуск и использование
По умолчанию выполнение сценариев PowerShell в системе запрещено, поскольку в скриптах, особенно тех, что загружены из Сети, может находиться вредоносный код, который причинит системе ущерб. Поэтому по соображениям безопасности скрипты PowerShell в идеале должны быть подписаны цифровой подписью. Такой подход называется политика выполнения.
Для наших целей, если вы уверены в чистоте запускаемых скриптов, можно отключить проверку выполнения данной политики. Для этого запускаем консоль PowerShell от имени администратора и вводим команду
1 |
Set-ExecutionPolicy RemoteSigned |
Этот скрипт можно сохранить в любую директорию (к примеру, на диске С:\) и запустить с правами администратора. Перед выполнением скрипта убедитесь, что для политики выполнения сценария PowerShell установлено значение «Неограниченно». Кроме этого данную настройку можно форсировать, выполнив в окне PowerShell команду
1 |
Set-ExecutionPolicy Unrestricted -Force |
После того как скрипт отработает, то есть проведет все проверки, вывод результатов можно найти в директории, из которой он запускался.
Hardening — это термин из мира информациоонной безопасности. Он обозначает процесс обеспечения безопасности системы (программы) за счет снижения ее уязвимости и, как правило, с использованием исключительно штатных утилит или механизмов защиты.
Windows-audit (PowerShell script)
Windows-audit — очередной PowerShell-скрипт для аудита и проверки безопасности серверов Windows Server 2003+, разработанный claranet. Скрипт собирает большой массив информации об одном или нескольких целевых серверах Windows и сериализует эту информацию на жесткий диск. Полученный файл отчета можно сконвертировать в таблицу Excel или даже базу данных SQL, притом используя фильтры, чтобы включать в отчет только необходимые индикаторы.
До запуска скрипта еще раз убедитесь, что в PowerShell форсирована политика выполнения с опцией «Неограниченно», либо форсируйте ее вручную:
1 |
Set-ExecutionPolicy Unrestricted |
После этого скопируйте скрипт в любую директорию на диске C:\ и создайте текстовый файл с именем Node Hints, который может содержать имена хостов NetBIOS и DNS, а также IP-адреса и блоки CIDR тех подсетей, которые необходимо просканировать. Каждая новая строка должна начинаться с оператора include> или exclude<, за которым следуют параметры NetBIOS | DNS | IP | CIDR. Пример заполнения вы можете посмотреть в прилагаемой к скриптам папке.
После этого в файле Get-AuditData.ps1 надо вручную подставить несколько параметров: PSCredential, PSCredential, ThreadCount. После чего можете запускать основные скрипты: сначала Get-AuditData.ps1, а после его выполнения — Compile-AuditData.ps1. Пример запуска скрипта:
1 |
.\Get-AuditData.ps1 -PSCredential $MyPSCredential -NodeHintsFile ".\nodehints.txt" -ThreadCount 128; |
В файле Compile-AuditData.ps1 до запуска тоже следует вручную подставить несколько параметров: CompilationType, Filter, SQLServerName, SQLDatabaseName. Синтаксис можно посмотреть в файле справки. Пример запуска скрипта:
1 |
.\Compile-AuditData.ps1 -CompilationType "Excel" -Filter "Example"; |
После выполнения вы найдете файл с именем Filtered-Audit-Data-Example.xlsx в папке Examples директории, в которой лежит скрипт.
Windows-Workstation-and-Server-Audit (PowerShell script)
Очередной скрипт для аудита безопасности Windows Windows-Workstation-and-Server-Audit, также написанный на PowerShell разработчиком Аланом Ренуфом (Alan Renouf). Скрипт проверяет рабочую станцию или сервер Windows на все распространенные требования безопасности. Вывод отчета о работе скрипта содержит следующие блоки:
- основная информация о системе;
- установленные security pach и hotfix;
- конфиг локальной политики безопасности;
- NIC-конфигурация;
- уставленное ПО;
- локальные и сетевые ресурсы;
- принтеры и другая периферия, подключенная к хосту;
- сведения безопасности из журналов Windows.
С данным скриптом все очень просто: он уже содержит все необходимые переменные и конструктивные блоки. Остается только распаковать его на диск C:\ и запустить под администратором.
SQL Audit Script at TechEd 2014 (PowerShell script)
Этот скрипт, как следует из названия, предназначен для аудита СУБД MS SQL Server. Скрипт состоит из двух файлов: SQLAuditv02.ps1, который непосредственно собирает данные с системы, и Compilereports.ps1, который преобразует полученный отчет из CSV-файла в удобочитаемый формат электронных таблиц Excel.
Обратите внимание, что по замыслу разработчиков эти скрипты необходимо скопировать и запустить из директории на локальном диске C:\Temp, изменив при необходимости в SQLAuditv02.ps1 первые три переменные ($SQLServer, $dir, $SQLDBName). После чего запуск скрипта не потребует каких-либо дополнительных действий и может быть отправлен на исполнение от имени администратора.
Собранная информация группируется по следующим блокам:
- Server Properties;
- Windows Info;
- Version Info;
- SQL Server Install Date;
- Configuration Values;
- DB File Names and paths;
- DB Properties;
- Server Hardware;
- Fixed Drive Freespace;
- IO Util by DB;
- System Memory;
- Process Memory;
- SQL Log file freespace;
- CM File Sizes;
- CM DB Statistics;
- CM Index Frag.
Как только скрипт отработает, мы получим отчет в виде HTML-файла, который можно открыть любым браузером.
Как видно, скрипт не собирает данные о безопасности и не проводит каких-либо compliance-проверок уровня защищенности. Но он все равно может оказаться нам полезным, ведь в целом полученная информация позволяет сформировать представление о запущенном экземпляре MS SQL Server, а проанализировав данные Configuration Values, DB Properties, можно выудить часть security settings.
Microsoft Windows Server Best Practice Analyzer
Начиная с версии Windows Server 2008 R2 в серверных редакциях ОС появились встроенные инструменты для анализа установленных компонентов на соответствие рекомендациям — Best Practice Analyzer. Для более старых версий BPA можно скачать (страница удаленна с сайта Microsoft) инсталляционным файлом с официальной страницы Microsoft. В серверных ОС 2008 R2 и выше BPA устанавливается на этапе первичной инсталляции системы и всегда остается доступен из оснастки Server Manager.
После запуска программы проверяется ряд критических и некритических параметров Windows based ИТ-инфраструктуры, например: все ли первичные контроллеры домена сконфигурированы к валидному источнику времени, все ли домены имеют два работающих DC, все ли юниты OU в Active Directory защищены от случайного удаления, есть ли их резервные копии, корректно ли настроены зоны DNS, работают ли репликации Group Policy и FRS. Да, кстати, BPA отлично отработает и на MS SQL Server. Поскольку BPA является компонентом Windows Server, этот инструмент поставляется «из коробки» и не требует никаких вложений.
Хотя утилита BPA не ориентирована чисто на безопасность, она очень подходит для первичного сбора данных и оценки health-индикаторов AD, которые, в свою очередь, потом сказываются на общем индексе Windows Hardening.
BPA можно запускать не только из MMC-оснастки, но и из консоли. Для автоматизации сбора информации с локального сервера вы можете использовать приведенный ниже скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#Get-BPAResults.ps1 # Microsoft Windows Server Best Practice Analyzer on CLI mode #v.1.0 Import-Module ServerManager Import-Module BestPractices $ResultDir = "C:\Temp\" foreach ($BPAModel in Get-BpaModel) { $BPAinstance = $BPaModel.Id $FileName = $BPAinstance.Substring($BPAinstance.LastIndexOf("/")+1) Invoke-BpaModel $BPAinstance Get-BPAResult $BPAinstance | ConvertTo-Html > ($ResultDir + $FileName + ".html") } |
Результат анализа системы, проведенного BPA по каждой отдельной роли сервера, будет сохранен в отдельном HTML-файле в папке C:\Temp.
Hardentools for Windows
Hardentools — это бесплатная небольшая программа, не требующая установки, предназначенна для отключения/включения ряда возможностей в операционных системах Windows и пользовательском ПО (MS Office, Adobe Reader и другие). Одним кликом вы можете менять доступные опции security settings, к примеру отключить Windows Script Host, опасное выполнение AсtivX, форсировать выполнение ASR (Win10), переход в Adobe Reader protection mode, Disable Adobe JavaScript и тому подобное. Если вам лень возиться с консолями MMC и лезть руками в реестр, правя и добавляя специфические ключи, то это то, что вам надо!
По сути, Hardentools — это привычный твикер системы, только ориентированный исключительно на опции безопасности. Нельзя сказать, что утилита предоставляет широкие возможности и огромное количество редактируемых параметров, но в некоторых ситуация для быстрого создания базового уровня защиты хоста, на который не распространяются доменные политики безопасности, очень даже подойдет.
SAMRi10 — Hardening SAM Remote Access in Windows 10 / Server 2016
SAMRi10 (страница удаленна с сайта Microsoft) — это еще одна утилита для аудита безопасности Windows, а точнее, еще один PowerShell-скрипт от Microsoft, призванный обеспечить защиту базы данных учетных записей пользователей (Security Account Manager, SAM). После запуска скрипт форсирует включение политики, запрещающей делать удаленный вызов и использование SAM с целью перечисления списка членов домена (пользователей).
Чтобы запустить скрипт, будет достаточно распаковать его в любую удобную папку (к примеру, на том же диске C:\) и запустить от имени администратора в консоли PowerShell:
1 |
.\SAMRi10.ps1 |
Вот так будет выглядеть старт исполнения SAMRi10:
А вот так — завершение работы скрипта:
Почему SAMRi10 так важен?
Существует ряд атак, которые проводятся на SAM с целью получить логины и хеши пользователя на локальной машине (например, отдельно стоящем контроллере домена). Более подробно о скрипте и теории безопасности SAM можно почитать на страничке GitHub.
Результаты получения списка членов домена (пользователей) до форсирования SAMRi10:
А вот результат той же команды, но уже после форсирования SAMRi10. Как мы видим, не авторизованным в группе админов членам домена запрещено получать список перечисления:
Microsoft отмечает, что использование SAMRi10 никак не помешает работе легитимных администраторов, и приводит пример, как DC на базе Windows Server 2016 будет реагировать на удаленные запросы к SAM в зависимости от привилегий учетной записи, сгенерировавшей этот запрос:
- Domain Admin account: запрос будет выполнен;
- Non-privileged User account: вызовет ошибку Access is denied;
- член группы Remote SAM Users: запрос будет выполнен.
Заключение
Первая часть нашего обзора лучших утилит аудита безопасности Windows. Мы рассмотрели самые популярное и широко используемые бесплатные и open source инструменты аудита безопасности десктопных и серверных версий Windows. С помощью этого нехитрого арсенала вы с легкостью сможете прочекать свой ноут или корпоративную серверную станцию на предмет исходной защищенности, а также, следуя советам и подсказкам, которые есть в части утилит, оттюнинговать и улучшить уровень защищенности (hardening state) Windows.
Скоро ждите вторую часть нашего обзора, в которой мы рассмотрим уже коммерческие версии инструментов аудита безопасности Windows — а они, как правило, обладают еще большими возможностями, функциями и фичами и наверняка будут полезны доменным ИТ-администраторам.
Еще по теме: Утилиты аудита безопасности Linux