Аудит прав доступа к файлам: кто что читает в вашей сети
АйТи Фреш
Главная / Статьи / Информационная безопасность
Информационная безопасность

Аудит прав доступа к файлам: кто что читает в вашей сети и как это проверить за полдня

Автор: Семёнов Евгений Сергеевич, директор ООО «АйТи-Фреш» · 2026-06-25
Аудит прав доступа к файлам: кто что читает в вашей сети и как это проверить за полдня

Месяц назад позвонил клиент. Небольшая юридическая фирма, 12 человек, центр Москвы. Директор сразу начал с главного: бывший помощник юриста ушёл некрасиво, и уже третью ночь не спал — потому что никто в компании не мог ответить на простой вопрос: был ли у него доступ к папке с договорами? Мы приехали, запустили скрипты, и через три часа ответ был на руках. У бывшего оказалась полная запись в восемь из двенадцати общих папок. Вот об этом и поговорим.

Откуда берётся бардак с правами доступа

Восемь лет в IT-аутсорсинге. За это время могу по пальцам одной руки пересчитать случаи, когда в небольшой компании права на файлы реально были в порядке. Не потому что люди безответственные. Просто так устроена жизнь малого бизнеса: нет штатного сисадмина, нет политики, нет лишнего времени. Есть конкретная задача — дать Маше доступ к папке с накладными. Дали. Маша ушла, пришла Катя — Кате тоже дали. Через три года в папке «Договоры» сидит половина офиса: и курьер, и бухгалтерская практикантка, которая уволилась ещё в 2022-м.

Отдельный «привет» достаётся группе Everyone. Для тех, кто не знаком: это встроенная группа Windows, и в ней буквально все — все локальные пользователи, все, кто подключится по сети. Когда-то давно кто-то выдал на «Общий диск» права Everyone с Full Control. Логика понятна — никто не жалуется, все видят всё, никаких звонков в IT. Жалуются потом. Когда что-то исчезает. Или оказывается в чужих руках. Мы это видим регулярно — в торговых компаниях, медклиниках, на небольших производствах.

Ещё один классический источник беспорядка — унаследованные права. Работает так: выставляешь права на верхнюю папку, они автоматически расползаются по всем вложенным. Удобно? На первый взгляд. На практике менеджер по продажам, которому открыли доступ к папке «Проекты», спокойно видит подпапку «Финансовые модели», «Переговоры с инвесторами» и всё, что туда случайно скинули пять лет назад. Никто об этом не догадывался. До аудита.

Что именно мы ищем: карта опасных мест

Перед тем как запускать скрипты — определитесь, что именно ищете. В моей работе есть простой список «красных флагов». Первый: группа Everyone или Authenticated Users с правами Write или Full Control на что-то чувствительное. Бухгалтерия, кадры, договоры, резервные копии — это точно не для всех. Второй флаг: конкретные пользователи с лишними правами по должности. Менеджер с доступом к зарплатной ведомости — уже проблема. Даже если он честный человек.

Третий флаг — уволенные сотрудники. Классика жанра. Человека уволили, учётку в Windows отключили — если повезло. А права на папки никто не тронул. Отключённая учётка сама войти не сможет. Но если её вдруг включат снова, или если у бывшего где-то есть пароль от общего аккаунта вроде «admin/1234» — права сыграют свою роль. Четвёртый флаг — папки, у которых нет явно заданных прав вообще. Живут только на наследовании, никто их не трогал, никто не думал про них. Такие папки становятся главным сюрпризом при аудите.

Клиенты часто спрашивают: а права на чтение — это разве проблема? Проблема. Люди обычно думают — ну и ладно, пусть читает, главное ничего не трогает. Но если менеджер по продажам свободно читает условия всех договоров с поставщиками — это уже утечка коммерческой информации. Особенно когда он уже думает, к кому уходить. Принцип минимальных привилегий работает для чтения ровно так же, как для записи.

Подготовка: без Active Directory тоже можно

Хорошая новость: Active Directory для этого не нужна. Корпоративный домен тоже. Покупать ничего не надо. Нужен Windows — хоть Server, хоть обычный Windows 10/11 Pro — и права локального администратора на той машине, где лежат файлы. Всё остальное уже в системе. Никаких лицензий на дополнительный софт, никаких трёхмесячных проектов внедрения.

До запуска скрипта — составьте список. Что именно проверяем? Обычно это сетевые папки на файловом сервере или на рабочей станции, которая играет роль общего диска. Запишите конкретные пути: C:\Shared\Бухгалтерия, C:\Shared\Договоры, C:\Shared\Кадры. Если машин с расшаренными папками несколько — запускайте скрипт на каждой отдельно. Пытаться охватить всё сразу через UNC-пути — медленнее и менее надёжно.

Сделайте одну вещь прямо сейчас. Откройте compmgmt.msc — «Управление компьютером» — и зайдите в «Общие папки» → «Общие ресурсы». Видно, что вообще расшарено по сети и с какими именами. Иногда находится кое-что интересное: папка с названием просто «Диск» и полным доступом для всех, или расшаренный корень диска. Это уже первые находки — без всяких скриптов. У одного нашего клиента-автодилера так обнаружили расшаренную папку с бэкапами баз 1С, открытую на запись для всей сети. Четыре года хранили там резервные копии, не подозревая, что любой компьютер в офисе мог их удалить или просто унести.

PowerShell-скрипт: получаем полную картину за 20 минут

В PowerShell есть командлет Get-Acl — он возвращает список прав (ACL, Access Control List) для любой папки или файла. В сыром виде его вывод читать неудобно: многострочные объекты, плохо фильтруются. На практике пользуюсь небольшим скриптом, который обходит папки рекурсивно и выгружает всё в CSV. Потом открываем в Excel, работаем как с обычной таблицей — сортируем, фильтруем, подсвечиваем нужное.

Запускаем PowerShell от имени администратора — обязательно, иначе часть папок будет недоступна. Вставляем код: $paths = @('C:\Shared\Бухгалтерия', 'C:\Shared\Договоры', 'C:\Shared\Кадры'); $report = @(); foreach ($basePath in $paths) { Get-ChildItem -Path $basePath -Recurse -Directory -ErrorAction SilentlyContinue | ForEach-Object { $acl = Get-Acl -Path $_.FullName -ErrorAction SilentlyContinue; if ($acl) { foreach ($access in $acl.Access) { $report += [PSCustomObject]@{Папка=$_.FullName; Субъект=$access.IdentityReference; Права=$access.FileSystemRights; Тип=$access.AccessControlType; Наследование=$access.IsInherited} } } } }; $report | Export-Csv -Path "$env:USERPROFILE\Desktop\rights_audit.csv" -Encoding UTF8 -NoTypeInformation. Файл rights_audit.csv появится прямо на рабочем столе. На 500 папках скрипт отработает за 3–5 минут, на тысяче — 10–15.

Не хотите PowerShell — есть утилита icacls, встроена во все версии Windows. Командная строка от администратора, пишем: icacls "C:\Shared" /T > C:\rights.txt. Ключ /T — рекурсивный обход вложенных папок. Результат — текстовый файл. Читается прямо в Блокноте, для анализа менее удобно, но работает. Третий вариант — совсем без командной строки. Правой кнопкой по папке, «Свойства» → «Безопасность» → «Дополнительно». Дерево прав с наследованием как на ладони. Но вручную, при любом разумном количестве папок, это занимает часы. Для полноценного аудита — только скрипт.

Читаем результат: что нормально, а что тревожно

Открываем CSV в Excel. Первым делом — фильтруем колонку «Субъект» по значениям Everyone, Authenticated Users и BUILTIN\Users. Всё, что нашлось с правами Write, Modify или FullControl — красным, в первый приоритет. Именно здесь, в 80% аудитов небольших компаний, живёт самое неприятное. Бывало, находим права Everyone / FullControl сразу на три-четыре папки — и тогда разговор с руководством начинается по-другому.

Дальше смотрим на конкретных пользователей. Видим, скажем, DESKTOP-ABC123\Марина.Петрова с правами FullControl на папку «Зарплатные ведомости» — идём к директору. Марина Петрова вообще кто? Часто выясняется, что человек уже давно не работает. Или что Марина — рядовой бухгалтер, которой нужно только читать файлы, а менять — не нужно вообще никогда. Колонка «Наследование» тоже важна: TRUE — право пришло от родительской папки. Само по себе не плохо, но стоит выяснить: было ли это осознанным решением?

Отдельно смотрим на права с типом Deny в колонке «Тип». Это явные запреты, и они всегда приоритетнее разрешений: если у пользователя одновременно стоит Allow и Deny — работает Deny. В небольших сетях такое встречается редко. И когда встречается — почти всегда значит, что кто-то когда-то пытался «починить» доступ нестандартным способом: добавил Deny вместо того, чтобы убрать лишний Allow. Такие записи лучше убирать и переделывать с нуля.

Исправляем права: конкретные шаги без риска сломать всё

Главное правило до любых изменений: сначала документируем. Потом меняем. Тот CSV-отчёт, который получили — это baseline, точка отсчёта. Сохраните его с датой в названии: rights_audit_2025-06-25.csv. Через полгода что-нибудь обязательно сломается, и кто-нибудь скажет «раньше же работало». У вас будет что показать. Без этого придётся восстанавливать права по памяти — опыт показывает, это плохо заканчивается.

Принцип простой: убираем широкие группы Everyone и Authenticated Users с правами записи, вместо них — конкретные пользователи или локальные группы с минимально нужными правами. Пример: для папки «Бухгалтерия» создаём локальную группу «Бухгалтеры», добавляем туда Иванову и Петрову, группе даём Modify. Директору — только Read. Остальным — ничего. Удобно: пришёл новый бухгалтер — добавили в группу. Ушёл старый — убрали. Права самой папки при этом не трогаем вообще.

С опцией «Заменить все записи разрешений дочерних объектов наследуемыми» — аккуратно. Она сбросит всё, что было выставлено вручную на подпапках. Иногда именно это и нужно — навести порядок сверху вниз. Иногда нет. Был случай у клиента: папка «Проекты», внутри подпапка «Архив 2019» — на ней специально стоял запрет записи для всех, кроме директора. После сброса этот запрет исчез вместе со всем остальным. Хорошо, что мы работали по чек-листу и успели заметить пропажу раньше, чем до архива добрался кто-то посторонний.

Делаем аудит регулярным: раз в квартал и без лишних усилий

Разовый аудит — хорошо. Но права — это живая вещь. Люди приходят и уходят. Папки добавляются. Кто-то выдаёт доступ «временно» и забывает отозвать через неделю. Значит, аудит должен быть регулярным. Самый простой способ автоматизировать: добавить запуск скрипта в Планировщик задач Windows. Открываем taskschd.msc, создаём задачу, ставим запуск раз в три месяца, выбираем «Запускать с наивысшими правами». Ночью скрипт тихо отработает, положит новый CSV в нужную папку — и всё без вашего участия.

Чтобы не забывать проверять результат — добавьте в конец скрипта строку Send-MailMessage с отправкой файла на почту. Два часа работы один раз. Или просто поставьте напоминание в календарь: «первое число каждого квартала — смотрю права». Звучит банально. Работает. Что бывает, если игнорировать — наблюдал лично. Небольшая торговая компания, 18 человек. Менеджер по продажам ушёл к конкуренту и унёс клиентскую базу — у него был Read на всю папку с CRM-выгрузками в Excel. Права не пересматривали три года. Ущерб оценили в 800 тысяч рублей. Цена аудита — ноль рублей и полдня времени.

Если хочется пойти дальше — включите аудит событий доступа к файлам через secpol.msc: «Локальные политики» → «Политика аудита» → «Аудит доступа к объектам». После этого при каждом обращении к файлам с настроенной аудиторской SACL в Журнале событий Windows будут появляться записи с Event ID 4663. Это уже другой уровень: не инвентаризация прав, а мониторинг реального использования — кто, когда и какой файл открыл. Мощный инструмент, но требует места под логи и понимания, как читать Event Viewer. Для начала вполне достаточно квартального скрипта и внимательного взгляда на результаты. Это уже на порядок лучше, чем работать вслепую.

Частые вопросы

Нужен ли Active Directory для аудита прав на файлы?
Не нужен. PowerShell-командлет Get-Acl и утилита icacls работают на любой версии Windows, включая обычные рабочие станции с Windows 10/11 Pro. Для небольших сетей без домена этого вполне достаточно, чтобы получить полную картину того, кто и что видит на общих папках. Active Directory добавляет удобство управления группами, но не является обязательным условием для проведения аудита.

Как часто нужно проводить аудит прав доступа?
Минимум раз в квартал — этого хватает для большинства малых компаний. Обязательно проводить внеплановый аудит при увольнении любого сотрудника с доступом к чувствительным данным, при добавлении нового общего ресурса и после любых изменений структуры папок. Скрипт отрабатывает за 5–15 минут, отчёт в Excel читается за час — это разумный регламент.

Что делать, если PowerShell-скрипт не запускается или выдаёт ошибки?
Чаще всего проблема в том, что PowerShell запущен не от имени администратора, или в системе включена политика ограничения выполнения скриптов. Второе лечится командой Set-ExecutionPolicy RemoteSigned, которую тоже нужно выполнить от администратора. Если папки лежат на удалённом сервере Windows Server — проще всего подключиться к нему по RDP и запустить скрипт уже там, локально: это быстрее и надёжнее, чем работать через сеть.

Можно ли получать автоматические уведомления при изменении прав на папки?
Можно — через аудит событий Windows. В secpol.msc включаете «Аудит изменения прав доступа к объектам» и настраиваете аудиторскую SACL на нужных папках. При любом изменении ACL в журнале появится запись с Event ID 4670. Для действительно чувствительных папок — бухгалтерия, кадры, договоры — стоит потратить один вечер на настройку: это даёт сигнал в реальном времени, а не только при плановой проверке раз в квартал.

Проведём аудит прав доступа в вашей сети и дадим конкретный отчёт с планом исправлений
Позвоните или напишите — за полдня разберёмся, кто и что видит в ваших общих папках, и расскажем, что нужно закрыть в первую очередь.
Бесплатная консультация →

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

© ООО «АйТи-Фреш» · Москва · Все статьи