Использование PowerShell для непрерывного аудита безопасности Active Directory

OSzone.net » Microsoft » PowerShell » Использование PowerShell для непрерывного аудита безопасности Active Directory
Автор: Дерек Мелбер
Иcточник: winsecurity.ru
Опубликована: 12.07.2011

Фраза, которую я чаще всего слышу сегодня в мире аудита, звучит так: "непрерывный аудит". Сам по себе термин вызывает в мозгу абсолютно иные ассоциации, не связанные с его истинным значением. Однако в реальности непрерывный аудит необходим, желаем и в большинстве случаев требуем. Когда речь заходит о сетях Windows, понятие непрерывного аудита является новым и не совсем понятным. Аудиторы в замешательстве по поводу того, что им нужно сделать, чтобы удовлетворить свои потребности и требования. После месяцев исследований, обучения и тестирования я собрал ряд опций, которые аудиторы могут использовать для завершения аудита Active Directory, по крайней мере, на минимальном уровне.

Определение непрерывного аудита безопасности

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

  1. Необходимость запрашивать у администраторов информацию о параметрах безопасности в режиме реального времени.
  2. Необходимость сбора информации без помощи администратора, то есть привилегии администратора не требуются, в режиме реального времени.
  3. Необходимость непрерывного сбора информации с отчетов об определенных параметрах, таких как принадлежность к группам, и т.д.

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

Использование PowerShell для непрерывного аудита

PowerShell является бесплатным и мощным инструментом, который был разработан компанией Microsoft для Windows XP и более поздних версий. PowerShell теперь идет в качестве штатного инструмента в Windows Server 2008 и Windows 7, но его необходимо устанавливать на Windows XP и Server 2003, если нужно запустить этот инструмент на них.

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

Получение PowerShell

Есть две версии PowerShell. Каждая версия может выполняться на определенных платформах ОС. Ниже приведена информация о версиях PowerShell, о том, где можно получить установочный файл PowerShell, а также о том, какие ОС поддерживает каждая версия PowerShell.

Настройка PowerShell

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

Для ослабления безопасности PowerShell нужно запустить PowerShell на компьютере от имени локального администратора (если у вас нет привилегий локального администратора на локальном компьютере, вам нужно обратиться за помощью к пользователю, который имеет такие привилегии. Это ЕДИНТВЕННАЯ задача, которая должна быть выполнена от имени локального администратора).

В окне PowerShell выполните:

set-executionpolicy

Затем, после получения уведомления, показанного на рисунке 1, введите:

Unrestricted

Это также показано на рисунке 1.

*
Увеличить

Рисунок 1: Настройка PowerShell на выполнение неподписанных команд.

Теперь можно выполнить команды PowerShell, которые описаны ниже, без каких-либо ошибок по причинам ограничений безопасности.

Получение команды PowerShell для AD

Теперь нужно получить команду PowerShell для AD, которая объясняется в этой статье. В конце этой статьи я дам список содержания команды, но вы также можете получить его с оригинального сайта, с которого я взял его. Оригинальный сайт находится по этому адресу.

Чтобы получить правильно настроенную и сохранённую команду, нужно выполнить следующие шаги:

  1. Скопируйте содержимое онлайн кода, перейдя по вышеуказанной ссылке, или кода, указанного далее в статье, используя обычное выделение текста Windows, и выберите опцию копирования.
  2. Вставьте текст в блокнот (нельзя использовать документ Word, поскольку он может добавить дополнительные символы в код, что не позволит выполнить команду).
  3. Сохраните файл блокнота в .ps1 файл (не сохраняйте его с обычным расширением .txt! Это может быть сложно, если вы никогда не делали этого ранее. Чтобы убедиться, что файл сохранен корректно, обязательно выберите опцию "Все файлы" при сохранении файла и вручную введите .ps1 для расширения файла).

Теперь все готово для выполнения команд!

Выполнение новой команды PowerShell

Чтобы запустить команду корректно, необходимо перейти в папку, в которую вы сохранили .ps1 файл. PowerShell поддерживает стандартный синтаксис командной строки, такой как:

cd c:\pscmdlets

Это переместит нынешнее положение PowerShell в папку pscmdlets, расположенную в корне диска c:\. Просто измените путь на ту папку, в которую вы сохранили свой .ps1 файл.

Теперь нужно ввести корректный синтаксис, чтобы заставить команду работать. Для выполнения команды нужно использовать .\ перед именем команды. Для выполнения команды введите:

.\getadinfo.ps1

После чего вы должны получить результаты, подобные тому, что показано в начале кода, представленного ниже.

Получение информации AD

Вот несколько команд, которые можно выполнить для сбора весьма полезной информации из AD:

.\getadinfo.ps1 -Domain yourdomain.corp -ToCsv C:\MyFolder\MyFile.csv

.\getadinfo.ps1 -Domain yourdomain.corp -OU AllOU -Property distinguishedName,l -ToCsv C:\MyFolder\MyOUFile.csv

.\getadinfo.ps1 -Domain yourdomain.corp -User administrator

.\getadinfo.ps1 -Domain yourdomain.corp -Group 'Domain Admins'

Заключение

PowerShell является поразительным, мощным и бесплатным инструментом. Он позволяет администраторам и аудиторам собирать информацию о своей Active Directory без особых усилий. Можно получать информацию об учетных записях пользователей, групп, домена и т.п. PowerShell была создана для обновления, анализа и изменения компьютеров Windows, поэтому она отлично подходит для данной работы. В своей следующей статье я расскажу о том, как использовать инструменты сторонних производителей, которые используют PowerShell, а также покажу вам, как собирать команды PowerShell в запланированные задачи для выполнения "действительно непрерывного аудита"!


Ссылка: http://www.oszone.net/15719/PowerShell-Active-Directory