Аудит базы СКУД: очистка прав, деактивация карт уволенных сотрудников
- Уволенные сотрудники продолжают проходить на территорию предприятия по старым бесконтактным пропускам.
- Переполнение локальной памяти контроллеров СКУД из-за хранения десятков тысяч неактивных карт.
- Наличие избыточных прав («Ghost Admin permissions») у рядовых пользователей.
- Расхождение данных между Active Directory, 1С:ЗУП и базой данных СКУД.
1. Архитектура регулярного аудита прав доступа
В рамках стандартов информационной и физической безопасности (ISO 27001, SOC2) база данных СКУД должна проходить непрерывную автоматическую и ежеквартальную ручную сверку с эталонным источником кадровых данных (HR / Active Directory).
2. SQL-скрипт выявления неактивных и подозрительных карт
-- Поиск активных карт сотрудников, уволенных более 1 дня назад (на примере MS SQL / PostgreSQL СКУД)
SELECT
e.EmployeeID,
e.LastName,
e.FirstName,
e.Department,
e.DismissalDate,
c.CardNumber,
c.Status AS CardStatus
FROM Employees e
INNER JOIN Cards c ON e.EmployeeID = c.EmployeeID
WHERE e.IsDismissed = 1
AND c.Status = 'ACTIVE'
AND e.DismissalDate < CURRENT_TIMESTAMP;
-- Поиск карт, по которым не было ни одного прохода более 90 дней
SELECT
c.CardNumber,
e.LastName,
MAX(ev.EventTime) AS LastPassDate
FROM Cards c
LEFT JOIN Events ev ON c.CardID = ev.CardID
INNER JOIN Employees e ON c.EmployeeID = e.EmployeeID
GROUP BY c.CardNumber, e.LastName
HAVING MAX(ev.EventTime) < DATEADD(day, -90, GETDATE()) OR MAX(ev.EventTime) IS NULL;3. Автоматизация блокировки через Active Directory / LDAP
Настройте скрипт синхронизации на PowerShell для регулярного опроса заблокированных учетных записей в домене и вызова API СКУД:
# Поиск заблокированных пользователей в AD и деактивация в СКУД
$DisabledUsers = Get-ADUser -Filter 'Enabled -eq $false' -Properties EmployeeID, sAMAccountName
foreach ($User in $DisabledUsers) {
if ($User.EmployeeID) {
Invoke-RestMethod -Uri "https://skud.corp.local/api/cards/disable" `
-Method Post `
-Headers @{Authorization = "Bearer $ApiKey"} `
-Body (@{employee_id = $User.EmployeeID; reason = "AD_Account_Disabled"} | ConvertTo-Json)
}
}4. Регламент очистки контроллеров
- Запустите процедуру мягкой деактивации (перевод карт в статус «Archived» с сохранением истории в логах).
- Выполните полную принудительную перезаливку базы данных активных ключей во все контроллеры для освобождения Flash-памяти.
Частые вопросы (FAQ)
Почему нельзя просто удалять уволенных сотрудников из базы СКУД?
Удаление записей нарушает целостность реляционной базы данных и удаляет историческую привязку ФИО к архивным событиям проходов, что делает невозможным проведение ретроспективных расследований инцидентов службой безопасности.
Как предотвратить использование карт сотрудниками в период их отпуска?
Настройте интеграцию со статусами кадровой системы: при проведении документа 'Отпуск' в 1С карта автоматически переводится в статус 'Временно заблокирована' и активируется обратно в день официального выхода на работу.
Что делать, если в контроллерах закончилась память для записи новых карт?
Проведите ревизию и удалите из внутренней памяти контроллеров карты уволенных и заблокированных сотрудников, оставив их только в центральной базе данных сервера СКУД.
Как контролировать выдачу мастер-карт с неограниченным доступом ко всем дверям?
Внедрите регламент 'Принципа наименьших привилегий' (PoLP): создайте матрицу доступа по ролям, запретите ручное назначение полных прав и настройте аудит-логирование любых изменений уровней доступа администраторами СКУД.