first commit

This commit is contained in:
brusnitsyn
2026-06-24 17:20:43 +09:00
commit 43499acf1c
165 changed files with 25929 additions and 0 deletions

93
config/audit.php Normal file
View File

@@ -0,0 +1,93 @@
<?php
/*
|--------------------------------------------------------------------------
| Настройки регистрации событий безопасности (ФСТЭК №21, меры РСБ.*)
|--------------------------------------------------------------------------
*/
return [
/*
|--------------------------------------------------------------------------
| Подключение к БД журнала аудита (РСБ.3)
|--------------------------------------------------------------------------
|
| Журнал хранится в отдельном соединении с правами «только INSERT» для
| приложения, чтобы пользователи не могли изменять записи.
|
*/
'connection' => env('AUDIT_DB_CONNECTION', 'audit'),
'table' => env('AUDIT_TABLE', 'audit_log'),
/*
|--------------------------------------------------------------------------
| Подпись целостности записей (РСБ.3)
|--------------------------------------------------------------------------
|
| Каждая запись подписывается HMAC-SHA256. Ключ хранить отдельно.
| Используется хеш-цепочка (prev_hash), чтобы выявлять удаление записей.
|
*/
'hmac_key' => env('AUDIT_HMAC_KEY'),
'chain' => env('AUDIT_HASH_CHAIN', true),
/*
|--------------------------------------------------------------------------
| Срок хранения журналов (РСБ.8)
|--------------------------------------------------------------------------
|
| Для УЗ-1 рекомендуется не менее 3 лет.
|
*/
'retention_days' => (int) env('AUDIT_RETENTION_DAYS', 1095),
/*
|--------------------------------------------------------------------------
| Дублирование в SIEM (РСБ.7)
|--------------------------------------------------------------------------
|
| Канал логирования Monolog (syslog/gelf), куда параллельно отправляются
| события безопасности для мониторинга в реальном времени.
|
*/
'siem' => [
'enabled' => env('AUDIT_SIEM_ENABLED', false),
'channel' => env('AUDIT_SIEM_CHANNEL', 'siem'),
],
/*
|--------------------------------------------------------------------------
| Контроль переполнения (РСБ.4)
|--------------------------------------------------------------------------
*/
'disk_alert_threshold' => (int) env('AUDIT_DISK_ALERT_THRESHOLD', 80),
/*
|--------------------------------------------------------------------------
| Перечень регистрируемых типов событий (РСБ.1)
|--------------------------------------------------------------------------
*/
'events' => [
'auth.login.success' => 'Успешный вход пользователя',
'auth.login.failed' => 'Неудачная попытка входа',
'auth.logout' => 'Выход пользователя',
'auth.locked' => 'Блокировка учётной записи после неудачных попыток',
'auth.mfa.enabled' => 'Включение многофакторной аутентификации',
'auth.mfa.disabled' => 'Отключение многофакторной аутентификации',
'auth.mfa.failed' => 'Неудачная проверка второго фактора',
'auth.password.changed' => 'Смена пароля',
'user.created' => 'Создание учётной записи',
'user.updated' => 'Изменение учётной записи',
'user.deleted' => 'Удаление (блокировка) учётной записи',
'role.assigned' => 'Назначение роли / изменение прав доступа',
'role.revoked' => 'Отзыв роли / прав доступа',
'pdn.viewed' => 'Просмотр персональных данных',
'pdn.created' => 'Создание персональных данных',
'pdn.updated' => 'Изменение персональных данных',
'pdn.deleted' => 'Удаление персональных данных',
'pdn.exported' => 'Выгрузка / экспорт персональных данных',
'security.incident' => 'Событие безопасности / инцидент',
],
];