none
Выборочный аудит в AD. RRS feed

  • Вопрос

  • Здравствуйте. Вот уже долгое время тестирую аудит безопасности определённых событий в AD и столкнулся с проблемой. К примеру, хочу получать на почту уведомление в виде письма на следующие события:

    1. Создание нового пользователя в AD.

    2. Изменение (добавление/удаление) состава групп безопасности имеющихся в AD (особенно актуально для Domain Admins, Enterprise Admins и т.д.).

    Т.к. домен на 2008R2 есть возможность воспользоваться в журнале безопасности новой фичей: находим событие по изменению группы безопасности (имеет ID:5136) и в журнале безопасности выбираем "Attach Task To This Event...". Проходим все шаги и на стадии "Action" выбираем "Send an e-mail", вводим адрес и Ok. Но т.к. я не просто хочу узнавать, что, что то произошло, а ещё и сразу же в почте хорошо бы получить мини-отчёт о том, что же именно произошло. Для этого, я иду в Task Scheeduler-Event Viewer Task и там в созданной мною задачей, добавляю ещё одно действие (вкладка Action). А именно, я добавляю выполнение cmd, который экспортирует нужно мне задание в файл. Т.е. получается, что при создании события с ID:5136 происходит следующее:

    1. Запускается cmd, который экспортирует событие, из-за которого оно запустилось, в txt файл;

    2. Отправляется письмо на определённый адрес, с вложением в виде файла, созданного в п.1

    Как это выглядит в Task:

    Содержание файла cmd:

    del C:\ExportEventLog\Change_Group_id5136.txt
    wevtutil qe security /rd:true /f:text /q:"*[System/EventID=5136] and *[EventData/Data[@Name='ObjectClass']='group']" /c:1 > C:\ExportEventLog\Change_Group_id5136.txt

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

    К примеру, я удалил по очереди двух пользователей из группы, в журнале задачи видно, что они отреагировали на это (ID:108), но одна из них закончилась неудачей (ID:101, с таким описанием "Task Scheduler failed to start "\Event Viewer Tasks\Change Security Group" task for user "contoso\Administrator". Additional Data: Error Value: 2147750687."):

    В результате, мне на почту придёт только одно письмо об удалении одного пользователя, а не двух, как есть на самом деле. Выход вижу пока один: в cmd файле, значение параметра "/c:" изменить с 1 до 20 к примеру, но тогда экспортироваться будут последние 20-ть таких событий и придётся ещё обращать внимание на время, но и если будет сразу удалено/добавлено более 20 объектов, то я увижу только 20 последних. Ну или как я ещё сделал, это оповещать меня по почте ("Attach Task To This Event...") при возникновении ошибок в задачах (ID: 101) :)

     Так же, хочу заметить, что данная проблема возникает при работе с более одним объектом. Т.е. если к примеру, неспешно создавать пользователей, то проблем не будет. А вот если для создания пользователей использовать скрипт (при создании нескольких пользователей), то столкнусь с такой же проблемой (не проверял, но факт). Но пользователи создаются редко и не так часто и массово. Поэтому данная проблема очень актуальна для меня при аудите групп безопасности.

    Буду рад любым предложениям и идеям (с реальными примерами), а не просто комментарий: "попробуй на PS" (кстати, пробовал, меня не устраивает формат, в которм он выдает результат, в txt через cmd читаемо получается, прям как в журнале) :)


    MCTS

    20 сентября 2012 г. 12:30

Ответы

  • Вы сами написали, что будете рады любым предложениям. Воспользуйтесь одним из коммерческих решений по аудиту изменений в AD. Разработчики таких продуктов уже давно пришли к выводу, что только по журналу событий не получить целостной картины сделанных изменений, поэтому в коммерческих продуктах применяется еще технология сравнения снапшотов, сделанных в разные моменты времени. Создаваемые отчеты и оповещения более пригодны для просмотра, поскольку одному действию соответствует одна запись в отчете или одно оповещение, а не несколько, как в журнале событий. В качестве примера можно посмотреть продукты Netwrix и Quest Software.
    • Помечено в качестве ответа Yuriy Lenchenkov 28 сентября 2012 г. 11:31
    20 сентября 2012 г. 20:55
    Модератор
  • "Тонкий" аудит из коробки не получится настроить, нужно палками и веревками все подкручивать, и читаемость как вы заметили действительно не будет на высоте, да и удобность тоже.

    Через пошик можно также как и у вас - триггером на событие:

    function Audit
    {
    Get-eventlog security -InstanceID "5137" -Newest 25 | 
    Where-Object {$_.Message -match "OU=NewUsers,DC=contoso,DC=com"} | 
    Select-object TimeWritten,Message,MachineName | Format-list | out-file \\Mystatserver\share\Audit.txt -append

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

    Важно то, что это решение отслеживания разовых задач- Петя выпилил Васю из группы и потом (прошло t1) добавил туда себя.

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

    • Помечено в качестве ответа Yuriy Lenchenkov 28 сентября 2012 г. 11:31
    22 сентября 2012 г. 9:04
    Отвечающий

Все ответы

  • Вы сами написали, что будете рады любым предложениям. Воспользуйтесь одним из коммерческих решений по аудиту изменений в AD. Разработчики таких продуктов уже давно пришли к выводу, что только по журналу событий не получить целостной картины сделанных изменений, поэтому в коммерческих продуктах применяется еще технология сравнения снапшотов, сделанных в разные моменты времени. Создаваемые отчеты и оповещения более пригодны для просмотра, поскольку одному действию соответствует одна запись в отчете или одно оповещение, а не несколько, как в журнале событий. В качестве примера можно посмотреть продукты Netwrix и Quest Software.
    • Помечено в качестве ответа Yuriy Lenchenkov 28 сентября 2012 г. 11:31
    20 сентября 2012 г. 20:55
    Модератор
  • "Тонкий" аудит из коробки не получится настроить, нужно палками и веревками все подкручивать, и читаемость как вы заметили действительно не будет на высоте, да и удобность тоже.

    Через пошик можно также как и у вас - триггером на событие:

    function Audit
    {
    Get-eventlog security -InstanceID "5137" -Newest 25 | 
    Where-Object {$_.Message -match "OU=NewUsers,DC=contoso,DC=com"} | 
    Select-object TimeWritten,Message,MachineName | Format-list | out-file \\Mystatserver\share\Audit.txt -append

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

    Важно то, что это решение отслеживания разовых задач- Петя выпилил Васю из группы и потом (прошло t1) добавил туда себя.

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

    • Помечено в качестве ответа Yuriy Lenchenkov 28 сентября 2012 г. 11:31
    22 сентября 2012 г. 9:04
    Отвечающий
  • Спасибо всем за ответы, вовремя не смог отреагировать. Очень жаль, что нет хотя бы примитивных стандартных успешно работающих методов в 2008.


    MCTS

    1 октября 2012 г. 17:13