Files
portal/app/resources/views/emails/audit_chain_breach_text.blade.php
T
Дмитрий d170c886bc feat(audit): hash-chain integrity validator — audit:verify-chains (hole #1)
Closes hole #1: log_hash written by trigger but never verified → tampering invisible.
audit:verify-chains (cron daily 04:00) recomputes SHA-256 chain for all 6 audit
tables via SQL on pgsql_supplier (prod-safe). Serialization reproduces trigger
exactly (ROW with log_hash=NULL::bytea). Break → incidents_log (high, dedup 24h)
+ AuditChainBreachMail to kdv1@bk.ru + non-zero exit. Tests 5/5, Console 19/19.
2026-05-23 10:27:55 +03:00

17 lines
929 B
PHP

Аудит hash-chain: РАЗРЫВ ЦЕПОЧКИ
===================================
Таблица: {{ $tableName }}
Первый сломанный id: {{ $firstBrokenId }}
Несовпадений: {{ $mismatchCount }}
Время: {{ $now }} (МСК)
ВНИМАНИЕ: разрыв hash-chain означает, что строки в таблице {{ $tableName }}
могли быть изменены или удалены в обход триггеров (прямой SQL под суперюзером).
Необходимо срочно:
1. Проверить pg_audit log на предмет DDL/UPDATE/DELETE без триггеров.
2. Проверить incidents_log для деталей.
3. Восстановить данные из backup при необходимости.
Это автоматическое сообщение от команды audit:verify-chains (Лидерра).