(c) Peter Gubarevich, 2010
1. Зачем отслеживать действия пользователей?
Иногда случаются события, которые требуют от нас ответить на вопрос «кто это сделал?» Такое может происходить «редко, но метко», поэтому к ответу на вопрос следует готовиться заранее.
Практически повсеместно существуют проектные отделы, бухгалтерия, разработчики и другие категории сотрудников, совместно работающие над группами документов, хранящихся в общедоступной (Shared) папке на файловом сервере или на одной из рабочих станций. Может случиться так, что кто-то удалит важный документ или директорию из этой папки, в результате чего труд целого коллектива может быть потерян. В таком случае, перед системным администратором возникает несколько вопросов:
- Когда и во сколько произошла проблема?
- Из какой наиболее близкой к этому времени резервной копии следует восстановить данные?
- Это случилось непреднамеренно, или же кто-то действовал с умыслом?
- Может, имел место системный сбой, который может повториться ещё раз?
В Windows имеется система Аудита, позволяющая отслеживать и журналировать информацию о том, когда, кем и с помощью какой программы были удалены документы. По умолчанию, Аудит не задействован — слежение само по себе требует определённый процент мощности системы, а если записывать всё подряд, то нагрузка станет слишком большой. Тем более, далеко не все действия пользователей могут нас интересовать, поэтому политики Аудита позволяют включить отслеживание только тех событий, что для нас действительно важны.
Система Аудита встроена во все операционные системы Microsoft Windows NT: Windows XP/Vista/7, Windows Server 2000/2003/2008. К сожалению, в системах серии Windows Home аудит спрятан глубоко, и его настраивать слишком сложно.
2. Что нужно настроить?
Для включения аудита зайдите с правами администратора в компьютер, предоставляющий доступ к общим документам, и выполните команду Start → Run → gpedit.msc . В разделе Computer Configuration раскройте папку Windows Settings → Security Settings → Local Policies → Audit Policies:
Дважды щёлкните по политике Audit object access (Аудит доступа к объектам) и выберите галочку Success. Этот параметр включает механизм слежения за успешным доступом к файлам и реестру. Действительно, ведь нас интересуют только удавшиеся попытки удаления файлов или папок. Включите Аудит только на компьютерах, непосредственно на которых хранятся отслеживаемые объекты.
Простого включения политики Аудита недостаточно, мы также должны указать, доступ к каким именно папкам требуется отслеживать. Обычно такими объектами являются папки общих (разделяемых) документов и папки с производственными программами или базами данных (бухгалтерия, склад и т.п.) — то есть, ресурсы, с которыми работают несколько человек.
Заранее угадать, кто именно удалит файл, невозможно, поэтому слежение и указывается за Всеми (Everyone). Удавшиеся попытки удаления отслеживаемых объектов любым пользователем будут заноситься в журнал.
Вызовите свойства требуемой папки (если таких папок несколько, то всех их по очереди) и на закладке Security (Безопасность) → Advanced (Дополнительно) → Auditing (Аудит) добавьте слежение за субъектом Everyone (Все), его успешными попытками доступа Delete (Удаление):
Событий может журналироваться довольно много, поэтому также следует отрегулировать размер журнала Security (Безопасность), в который они будут записываться. Для этого выполните команду Start → Run → eventvwr.msc. В появившемся окне вызовите свойства журнала Security и укажите следующие параметры:
- Maximum Log Size = 65536 KB (для рабочих станций) или 262144 KB (для серверов)
- Overwrite events as needed.
На самом деле, указанные цифры не являются гарантированно точными, а подбираются опытным путём для каждого конкретного случая.
3. Итак, кто же удалил документы?
Нажмите Start → Run → eventvwr.msc и откройте для просмотра журнал Security (Безопасность). Журнал может быть заполнен событиями, прямого отношения к проблеме не имеющими. Щёлкнув правой кнопкой по журналу Security, выберите команду View → Filter и отфильтруйте просмотр по следующим критериям:
Event Source: Security;
Category: Object Access;
Event Types: Success Audit;
Event ID: 560;
Category: Object Access;
Event Types: Success Audit;
Event ID: 560;
Просмотрите список отфильтрованных событий, обращая внимание на следующие поля внутри каждой записи:
- Object Name. Название искомой папки или файла;
- Image File Name. Имя программы, с помощью которой удалили файл;
- Accesses. Набор запрашиваемых прав.
Программа может запрашивать у системы сразу несколько типов доступа — например, Delete+Synchronize или Delete+Read_Control. Значимым для нас правом является Delete.
Не спешите интерпретировать все удаления как злонамеренные. Эта функция зачастую используется при обычной работе программ — например, исполненяя команду Save (Сохранить), программы пакета Microsoft Office сначала создают новый временный файл, сохраняют в него документ, после чего удаляют предыдущую версию файла. Аналогично, многие приложения баз данных при запуске сначала создают временный файл блокировок (.lck), затем удаляют его при выходе из программы.
Мне приходилось на практике сталкиваться и со злонамеренными действиями пользователей. Например, конфликтный сотрудник некоей компании при увольнении с места работы решил уничтожить все результаты своего труда, удалив файлы и папки, к которым он имел отношение. События такого рода хорошо заметны — они генерируют десятки, сотни записей в секунду в журнале безопасности. Конечно, восстановление документов из Shadow Copies (Теневых Копий) или ежесуточно автоматически создаваемого архива не составляет особого труда, но при этом я мог ответить на вопросы «Кто это сделал?» и «Когда это произошло?».
всего этого я не знал