Как определить, какой процесс перемещает файл?

Как определить, какой процесс перемещает файл?

У нас есть веб-сайт, который создает файлы, которые помещаются в папку и извлекаются другим процессом, который копирует файлы на другой сервер (не моя разработка).

В нашей производственной среде перемещение выполняется с помощью запланированной задачи, которая запускается каждую минуту и ​​вызывает пакетный файл, который, в свою очередь, вызывает скрипт PowerShell, который фактически перемещает файлы (опять же, это не моя разработка).

Теперь вопрос:

Веб-сайт настроен идентично в нашей среде UAT. Файлы сбрасываются в папку, а затем перемещаются. Но на этом ящике нет запланированной задачи, и я трачу кучу времени, пытаясь определить, какой процесс на самом деле перемещает файлы.

Он может даже не выполняться на той же машине, что и папка. Есть идеи, как определить, какой процесс перемещает файлы, или хотя бы какая машина это делает?

решение1

Вы можете использовать монитор процесса SysInternals и фильтр для записей файловой системы с путем или именем перемещенных файлов. Если это локальный процесс, это должно его показать. Если это не локальный процесс, то вы увидите файлы, перемещенные "System" или чем-то вроде этого.

К сожалению, в момент перемещения вам придется запустить монитор процессов, а монитор процессов довольно ресурсоемкий, поэтому во время устранения неполадок может пострадать весь сервер.

Если файлы перемещаются удаленным процессом, вы можете использовать SysInternals PsFile или аналогичную утилиту, чтобы выяснить, кто к ним обращается.

Главная страница SysInternals:https://technet.microsoft.com/en-us/sysinternals/default

решение2

Это можно сделать с помощью ведения журнала аудита безопасности для рассматриваемого файла и каталогов («папок»).

Сначала запустите групповую политику ( gpedit.msc) как администратор. В левой панели перейдите в Конфигурация компьютера | Параметры Windows | Параметры безопасности | Локальные политики | Политика аудита. В правой панели установите для «Аудит доступа к объектам» и «Аудит отслеживания процессов» значение «Включение при успешном выполнении». (Не имеет особого смысла в аудите при неудаче, поскольку неудачные попытки доступа не приведут к перемещению файла!)

ИЛИ - если вы используете Windows 7 или более позднюю версию, вы можете сделать это следующим образом: В левой панели перейдите в Конфигурация компьютера | Параметры Windows | Параметры безопасности | Расширенная политика аудита | Политики аудита системы. В разделе «Подробное отслеживание» включите «Аудит создания процесса» для Успеха. В разделе «Доступ к объектам» включите «Аудит файловой системы» для Успеха. Этот метод создаст несколько меньше ложных записей в вашем журнале событий. ПРИМЕЧАНИЕ. Если в разделе «Расширенная политика аудита» что-либо установлено на что-либо, кроме «Не настроено», лучше внести последующие изменения здесь, так как настройка как здесь, так и в менее подробной «Политике аудита», описанной в предыдущем абзаце, может привести к странным результатам.

Далее: В проводнике перейдите в исходный каталог перемещения. Щелкните правой кнопкой мыши по каталогу, выберите «Свойства», затем вкладку «Безопасность», затем щелкните «Дополнительно» (почти все стоящее всегда находится под вкладкой или кнопкой «Дополнительно»...). Щелкните вкладку «Аудит», затем «Продолжить», затем «Добавить». Результирующий диалог будет выглядеть так же, как диалог для добавления записи в «список разрешений», но в этом случае созданная вами запись(и) будет определять, что указанные операции должны быть проверены, т. е. для них будут созданы записи журнала аудита.

Для «Principal» используйте группу «Everyone». Для «Type» вам, вероятно, нужен только «success» (опять же, неудачные попытки, очевидно, не переместят файлы). «Applies to:» выберите «This folder, subfiles and files». Выберите все «advanced permissions».

Повторите эти действия для целевого каталога.

Если нужный файл уже существует в исходном каталоге, вы можете включить аудит только для этого файла, а не для каталога, в котором он находится (но включите его также и для целевого каталога).

Все успешные попытки доступа к каталогу(ам) или файлу, если вы включили аудит на этом уровне, теперь будут отражаться в журнале безопасности.

Для просмотра записей аудита перейдите в Computer Management, System Tools | Event Viewer, Windows Logs и выберите Security log. Соотнесите записи журнала для доступа к файлу/каталогу с записями создания процесса.

Записи аудита часто появляются в Event Viewer через минуту или две. Не бойтесь использовать Refresh несколько раз.

Примечание: записи журнала аудита безопасности для «доступа к объектам» (включая файлы) указывают только время, когда объекты былиоткрылсядля доступа, а не время, когда они фактически были прооперированы, и не конкретные операции.

Например: если кто-то открывает файл для чтения и записи, это создает запись аудита. Последующие фактические чтения и записи в файл ненетгенерируют записи аудита. И по журналу аудита невозможно будет определить, был ли файл действительно записан — только то, что он был открыт таким образом, чтобы разрешить запись. Чтобы получить эти данные, вам придется использовать Process Monitor, как описано Майком Накисом.

Связанный контент