Проблема


Установить личность пользователя, удалившего файл из общей папки, без заранее включенного аудита — невозможно. Файловые операции (NTFS/SMB) не сохраняют субъект удаления по умолчанию.

Причины


1. Отсутствие аудита NTFS-событий. Windows (стандартно) не логирует удаление файлов.
2. Использование SMB-датирования. Сетевые протоколы не хранят историю операций с файлами — только временные метки последнего доступа/изменения.
3. Перезапись MFT-записей. Если файл удален, запись в Master File Table может быть переиспользована.
4. Безвозвратное удаление (Shift+Del/перемещение в корзину вне UNC-пути). Корзина не работает в общих папках — файл удаляется мгновенно.

Решение


1. Включить аудит на будущее (только для Windows)

cmd
<h2 id="vklyuchaem-audit-na-obekte-papka-share">Включаем аудит на объекте (папка &quot;Share&quot;):</h2>
auditpol /set /subcategory:"File System" /success:enable /failure:enable
icacls D:\Share /audit /inheritance:e /grant "Everyone":(DE,WD,RD)

<h2 id="sobytie-4663-dostup-4656-otkrytie-soderzhit-account-name">Событие 4663 (доступ) / 4656 (открытие) — содержит Account Name</h2>
<h2 id="registratsiya-udaleniya-v-4663-accessmask-0x10000-delete">Регистрация удаления: в 4663 — AccessMask = 0x10000 (DELETE)</h2>


2. Анализ существующих логов (если аудит был включен)

Ищите Event ID 4663 в журнале `Security`:
wevtutil
qe Security /q:"[System[EventID=4663]]" /c:50 /rd:true /f:text

Фильтр по пути:
wevtutil
qe Security /q:"[System[EventID=4663 and EventData[Data[@Name='ObjectName']='D:\Share\file.txt']]]"


3. Использование теневых копий (VSS)

При включенной защите системы:
cmd
vssadmin list shadows /for=C:
<h2 id="zatem-smontirovat-kopiyu-i-izvlech-zhurnal-usn-update-sequence-number">Затем смонтировать копию и извлечь журнал USN (Update Sequence Number):</h2>
fsutil usn readjournal C: csv > usn_log.csv

Анализируйте столбец `Reason`: `USN_REASON_DELETE + USN_REASON_FILE_DELETE`. Но SID пользователя (SourceInfo) указывает на процесс, а не человека — при удалении через общую папку это обычно `SYSTEM`.

4. Проверка метаданных NTFS (только последнего доступа)

cmd
dir /Q D:\SharedFolder

Последний владелец (`Owner`) — не тот, кто удалил, а тот, кто создал файл. Бесполезно.

5. Сбор дампов памяти (если инцидент произошел сейчас)

powershell
Get-WmiObject -Class Win32_Process -Filter "Name='explorer.exe'" | ForEach-Object { $_.GetOwner().User }

Не даст информацию об удалении — только текущих активных соединениях.

Итог


Единственный легальный путь:
- Заранее включить аудит (через `auditpol` + SACL на папке).
- Журналировать события на контроллере домена (Event ID 5145 — сетевой доступ, включает `Account Name`).
- Использовать сторонние SIEM (Splunk/Wazuh) для корреляции событий 4663 (удаление) + 5145 (SMB-сессия).

Без аудита — узнать конкретное лицо, удалившее файл в общей папке Windows, невозможно. Вы получите только имя процесса (`explorer.exe`, `cmd.exe`) или системную учетную запись (если удалялось через SMB).