Защита персональных данных, аудит и логирование доступа
↑ 7.4 Безопасность бэкенда · ← Предыдущая
Зачем это на собесе
Особенно важно для медицины и финансов: как обращаться с ПДн и что такое аудит.
Объяснение
Персональные данные (ПДн) регулируются законами (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 — частая утечка.
- Передача данных подрядчикам и в облака — юридические ограничения (локализация).
- Мягкое удаление не равно удалению по закону.
Практика
- Составьте карту ПДн вашего сервиса: где хранятся, кто имеет доступ.
- Реализуйте аудит чтения чувствительной записи.
- Настройте маскирование ПДн в логах.
Вопросы с ответами
Что должен содержать аудит-лог?
Кто, когда, откуда, какое действие и над каким объектом, результат; без самих чувствительных значений.
Как защитить ПДн в тестовых средах?
Использовать синтетические или обезличенные данные, не копировать продакшен.