Law/context/17_pdn_incident_response_runbook.md
2026-03-02 16:22:07 +03:00

3.5 KiB
Raw Blame History

Runbook: Incident Response по ПДн

Дата: 02.03.2026
Статус: активен

Назначение

Документ задает минимальный operational-процесс реагирования на инциденты, связанные с персональными данными (ПДн):

  • подозрение на несанкционированный доступ;
  • утечка сообщений/файлов/карточек заявок;
  • массовые неудачные обращения к защищенным объектам;
  • компрометация учетных данных/секретов.

Роли

  • Incident Lead — координация и принятие решений.
  • Security Engineer — анализ логов, локализация, сбор evidence.
  • Platform Engineer — технические изменения (блокировки, ротация, релиз фиксов).
  • Business/Legal Owner — решения по внешним уведомлениям и коммуникациям.

SLA эскалации

  • CRITICAL: старт реакции <= 15 минут.
  • HIGH: <= 30 минут.
  • MEDIUM: <= 2 часа.
  • LOW: <= 1 рабочий день.

Алгоритм

  1. Регистрация инцидента.
  • Запустить: ./scripts/ops/incident_checklist.sh.
  • Зафиксировать severity/category/summary/request_id/track.
  1. Локализация.
  • Выгрузить последние события из security_audit_log и audit_log.
  • Ограничить доступ (RBAC deny, временная блокировка операций).
  • При необходимости отключить внешние интеграции.
  1. Сдерживание.
  • Ротация критичных секретов (JWT, INTERNAL_SERVICE_TOKEN, внешние API ключи).
  • Включение усиленного мониторинга логов и алертов.
  1. Восстановление.
  • Проверка целостности данных.
  • Проверка health сервисов.
  • Прогон smoke/autotest набора.
  1. Postmortem.
  • Корневая причина, окно компрометации, затронутые данные.
  • План корректирующих действий и сроков.
  • Обновление security backlog и runbook.

Технические команды

Проверка health:

curl -fsS http://localhost:8081/health
curl -fsS http://localhost:8081/chat-health
curl -fsS http://localhost:8081/email-health

Security audit:

docker compose exec -T db psql -U postgres -d legal -c "select created_at, actor_role, actor_subject, actor_ip, action, scope, allowed from security_audit_log order by created_at desc limit 200;"

CRUD audit:

docker compose exec -T db psql -U postgres -d legal -c "select created_at, entity, entity_id, action, responsible from audit_log order by created_at desc limit 200;"

Снимок логов:

docker compose logs --since 2h backend chat-service worker beat edge > reports/incidents/logs-$(date -u +%Y%m%d-%H%M%S).txt

Acceptance criteria

  • Для каждого инцидента есть markdown-отчет в reports/incidents/.
  • Есть evidence: SQL выгрузки аудита + архив логов.
  • Выполнены шаги локализации и восстановления.
  • Зафиксирован postmortem и follow-up задачи.