Защита персональных данных, аудит и логирование доступа

↑ 7.4 Безопасность бэкенда · ← Предыдущая

Желательно~3 мин чтенияУровень: senior

Зачем это на собесе

Особенно важно для медицины и финансов: как обращаться с ПДн и что такое аудит.

Объяснение

Персональные данные (ПДн) регулируются законами (152-ФЗ, GDPR, HIPAA и др.): цель обработки, согласие, минимизация, права субъекта.

Технические меры:

МераКак
Минимизациясобирать и хранить только необходимое
ШифрованиеTLS в транзите; шифрование диска/БД/колонок в покое
Разграничение доступаRBAC/ABAC, принцип наименьших привилегий
Псевдонимизация/маскированиезамена идентификаторов, маскирование в логах и тестовых данных
Раздельное хранениеПДн отдельно от остальных данных, токенизация
Срок храненияretention и удаление по истечении цели
Права субъектаэкспорт и удаление данных по запросу
Тестовые данныеобезличенные, не копии продакшена

Аудит доступа — журнал «кто, когда, к каким данным, что сделал»:

  • Записывайте субъект (user_id), действие, объект, время, источник (IP), результат.
  • Журнал неизменяем (append-only), хранится отдельно с ограниченным доступом.
  • Чтение чувствительных данных тоже фиксируется (медкарта, паспорт).
  • Не логируйте сами ПДн — только идентификаторы.
await audit.WriteAsync(new AuditEvent("PatientRecordRead", user.Id, patientId, ip, DateTimeOffset.UtcNow), ct);

Механизмы: interceptors EF Core для журнала изменений, temporal tables/pgaudit, CDC для истории.

Нюансы и подводные камни

  • Резервные копии и логи тоже содержат ПДн и подпадают под сроки хранения.
  • «Удалить пользователя» затрагивает кэши, логи, аналитику, бэкапы.
  • Данные на dev/staging — частая утечка.
  • Передача данных подрядчикам и в облака — юридические ограничения (локализация).
  • Мягкое удаление не равно удалению по закону.

Практика

  1. Составьте карту ПДн вашего сервиса: где хранятся, кто имеет доступ.
  2. Реализуйте аудит чтения чувствительной записи.
  3. Настройте маскирование ПДн в логах.

Вопросы с ответами

Связанные темы