«Внедрение SRP» или «А вдруг получится?» I

Дело было в обычный вторник и ничто не предвещало ничего, как вдруг я получил от начальника письмо, с предложением сходить на семинар с мало запоминающимся названием «Практическая демонстрация внедрения «белых списков» программ на предприятии с целью защиты от malware (в первую очередь, вирусов-шифровальщиков). Microsoft SRP / LAPS» Разумеется я согласился, ибо вопрос идти или не идти не стоял вовсе — SRP заинтересовала меня еще в тот момент, когда понадобилось заблокировать пользователям использование некоторых программ (правда тогда использовались «черные списки», да и знаний по этой теме у меня едва хватило чтобы оно хоть как-то со скрипом и с n-дцатой попытки заработало).

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

Итак к началу: для моих зверских и бесчеловечных издевательств над GPO уже давно был создан Test_OU, куда время от времени попадал то моя учетная запись, то учетная запись моего компьютера в зависимости от того, что именно тестировалось. На вышеуказанную OU-шку применяются все основные политики организации, а теперь еще и политика SRP_Audit. Содержимое этой политики я бы мог привести, но незачем, все это описано вот здесь. Единственное отличие — отсутствие элементов ориентированных на XP/2003 (нет нужности).

Скрипт SRP_LogRotation.ps1 замечательно собирал данные, и по прошествии нескольких дней я решил посмотреть что же там собралось? Логи меня немного ошеломили. Когда на семинаре говорилось, что читать это вручную малореально, я и предположить не мог что это НЕРЕАЛЬНО ВООБЩЕ. Уже после первой полуминуты прокручивания первого лога я понял насколько это бесполезно. Нужно было искать инструмент для вычитывания всего этого добра, и инструмент такой есть, тот самый SRP Readiness Tool о котором и на семинаре и в блоге упоминал Peter Gubarevich. Однако, как я не старался найти хоть какой-то намек на скачивание сего безусловно великолепного инструмента, поиски мои не завершились успехом. Значит придется делать что-то свое. За «своим» я обратился к PowerShell’у, и он, после некоторого количества страданий и помощи гугления и форумления пришел мне на помощь в виде довольно простого скрипта:


$ex = (Get-Content -Path 'd:\ExcludeList.txt' | Foreach {
[regex]::escape($_)
}) -join "|"

Get-Content d:\srp_audit_logs\*\*.log | Where {$_ -notmatch $ex}

Папки с логами отдельных компьютеров размещены в «d:\srp_audit_logs\» а в файле «d:\ExcludeList.txt»  находятся исключения (например C:\Windows\ или C:\Program Files\). Пока это дает возможность составить общее представление о местах запуска софта. Первый вывод, который я сделал, здорово совпадает по сути с рекомендациями полученными на семинаре: все что может запускаться из Program Files должно находиться в Program Files (разумеется это не касается того, что изначально живет, например, в Windows).

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

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

Реклама