Pull to refresh

Comments 15

Способ интересный.
Но есть один минус, названия созданных/удаленных/измененных групп не отображаются. Только SID.
Если группу удалить, то мы никогда названия не узнаем:)
Такую же вещь можно сделать встроенными средствами: например powershell. Только плюсом к этому вместо SID в именах группы писать диспейл_нейм группы (отдельным запросом доставать имя группы по SID).
1 скрипт, может запускаться раз в 1/2/3.../24 часа или как угодно, парсить лог, доставать инфу, писать в базу к примеру, а там уже как хотите работаете с этой базой.
Вот пример. Правда не в базу. Но прикрутить запрос к базе несложно.
названия созданных/удаленных/измененных групп не отображаются
Отображаются. Только в поле «Имя пользователя». Микрософт в разных событиях в одни и те же поля вносит разную информацию. Поэтому надо было бы назвать поля моего отчёта более абстрактно, конечно.
А за документик с событиями — отдельное спасибо!
А вы события входа в домен пользователей не собираете?
К примеру чтобы знать где какой пользователь и в какое время залогинился?
Это можно делать анализируя события керберос, точнее запрос тикетов (4769 событие).
На каждом КД анализировать лог на предмет этого события, и он со 100% вероятностью скажет кто залогинился, на какой машине и в какое время.
Тем самым кстати можно посмотреть как делятся кеорберос-запросы между КД в домене.
IMHO, SCCM-ом хорошо потом анализировать, кто где «пасся», а «где именно сейчас этот бездельник», как Вы справедливо написали, через запрос событий керберос, и то с некоторой вероятностью, и если аудит успеха для Audit account logon events включен.

Почему не 100%? Потому, что в случае если пользователь залогинился в отключенной от сети станции, то авторизация его шла по тикету на локальном хранилище. А после восстановления сетевого соединения не факт, что ему сразу резко потребуются какие-то сетевые ресурсы. Он может и локально долго некоторое время работать, хотя машинка уже в сети авторизуется.
Согласен, не 100%, не учел авторизацию без сетевого подключения к домену.
А я на контроллере домена ищу событие «4624, An account was successfully logged on».
На каждом КД анализировать лог на предмет этого события
Просмотр логов 2-х КД для 3 тсч. пользователей гораздо дольше, чем глянуть в отчёте SCCM’а.
И вручную коррелировать тонны строчек?)

Это очень круто, что можно аккуратно собрать такое на коленке, но ведь есть очень удобные готовые решения, вроде GFI EventsManager (обращайтесь за ключиками, если вдруг), например, которые и централизуют, и выполняют резервное копирование, и фильтрацию, и автоматическую отчетность с графиками по любым срезам, попутно проверяя параметры систем, что выйдет дешевле уже исходя из пересчета на человеко-часы, а также исключит человеческий фактор.

+ как Вы будете это в отчет для ИБ включать?
За наводку на программу спасибо.
+ как Вы будете это в отчет для ИБ включать?
Если я правильно понял вопрос, это уже и есть готовый отчёт для ИБ.
За «GFI EventsManager» редакция «Active Monitoring» вот такая сумма у меня вышла 3 312 000 р. :-) Тогда уж лучше какое-нибудь DLP-решение купить.
Не используйте Logparser на =<2008 серверах, используйте штатный wevtutil. Выгружает события намного быстрее.
Я запрос к Logparser’у делаю прямо в VBScript’е и результат выгружаю в html-файл.
Set oLogQuery = CreateObject("MSUtil.LogQuery")

Set oEVTInputFormat = CreateObject("MSUtil.LogQuery.EventLogInputFormat")
oEVTInputFormat.direction = "BW"

Set oTPLOutputFormat = CreateObject("MSUtil.LogQuery.TemplateOutputFormat")
oTPLOutputFormat.tpl = "c:\script\Tamplates\logonFailuresStats.tpl"

strQuery = "SELECT TO_LOWERCASE(EXTRACT_TOKEN(Strings,5,'|')) AS User, " & _
	"COUNT(*) AS Total " & _
"INTO " & lsReport & " " & _
"FROM " & lsFROM & " " & _
"WHERE EventID IN (4625) " & _
"AND TimeGenerated >= TO_TIMESTAMP('" & gsPastDate & "','dd.MM.yyyy hh:mm:ss') " & _
"GROUP BY User " & _
"ORDER BY Total DESC"
    
oLogQuery.ExecuteBatch strQuery, oEVTInputFormat, oTPLOutputFormat 
И в скрипте же отсылаю результат.
Sign up to leave a comment.

Articles