B7-1: 152-ФЗ — аудит кода на PII в logs / Sentry / БД #79

Closed
opened 2026-05-11 20:36:37 +00:00 by lekss361 · 1 comment
lekss361 commented 2026-05-11 20:36:37 +00:00 (Migrated from github.com)

Эшелон: ⚖️ Compliance / Legal

Зачем

PII_Compliance_152FZ policy описывает обезличивание phone/email в PRINZIP CRM. Нужно убедиться что это реально применяется и нет других мест где ПДн попадают в БД.

Что сделать

Аудит кода

  • grep -ri 'phone\|email\|fio\|full_name\|passport\|inn' backend/app/
  • Особое внимание:
    • data/sql/52_schema_prinzip_crm.py — реально ли хешируется перед INSERT
    • prinzip_* ETL — проверить пайплайн
  • Документировать findings в decisions/PII_Audit_May2026.md

Sentry PII scrubbing

  • В app/core/config.py: sentry_sdk.init(..., before_send=scrub_pii)
  • Функция scrub_pii(event) удаляет phone/email regex matches из event.message + extra

Logs

  • Проверить FastAPI access logs — не пишут ли body с ПДн
  • httpx logger DEBUG может выводить query params — отключить в prod
  • При логине email = ПДн → нужно согласие
  • cookieless режим или явный «Согласен с обработкой ПДн» checkbox

Acceptance

  • Аудит документ с findings
  • PII scrubbing в Sentry активен
  • Tested: внести email в test request → проверить что не в Sentry event

Owner

backend-engineer

Effort

~1 день

**Эшелон:** ⚖️ Compliance / Legal ## Зачем [PII_Compliance_152FZ](https://obsidian.gendsgn.ru/) policy описывает обезличивание phone/email в PRINZIP CRM. Нужно убедиться что это **реально применяется** и нет других мест где ПДн попадают в БД. ## Что сделать ### Аудит кода - `grep -ri 'phone\|email\|fio\|full_name\|passport\|inn' backend/app/` - Особое внимание: - `data/sql/52_schema_prinzip_crm.py` — реально ли хешируется перед INSERT - `prinzip_*` ETL — проверить пайплайн - Документировать findings в `decisions/PII_Audit_May2026.md` ### Sentry PII scrubbing - В `app/core/config.py`: `sentry_sdk.init(..., before_send=scrub_pii)` - Функция `scrub_pii(event)` удаляет phone/email regex matches из event.message + extra ### Logs - Проверить FastAPI access logs — не пишут ли body с ПДн - httpx logger DEBUG может выводить query params — отключить в prod ### Cookie / Auth (B3-4 cross-ref) - При логине email = ПДн → нужно согласие - `cookieless` режим или явный «Согласен с обработкой ПДн» checkbox ## Acceptance - [ ] Аудит документ с findings - [ ] PII scrubbing в Sentry активен - [ ] Tested: внести email в test request → проверить что не в Sentry event ## Owner `backend-engineer` ## Effort ~1 день
Owner

Status check 2026-05-23

Issue остаётся в силе. Сегодняшний security pivot (PRs #426-#442) добавил новый источник PII для аудита:

  • GlitchTip 401 events содержат attempted_username (PR #436) + IP / User-Agent (через forwarder).
  • auth_audit.log пишется на VPS — нужно проверить retention + access controls.

Полный 152-ФЗ audit (logs / Sentry / БД) остаётся актуальным.

Priority после pilot demo 28.05: medium

Привязка: добавлен в umbrella epic(infra): Pilot infra status 2026-05-23 — после security pivot.

## Status check 2026-05-23 Issue остаётся в силе. Сегодняшний security pivot (PRs #426-#442) **добавил новый источник PII** для аудита: - GlitchTip 401 events содержат `attempted_username` (PR #436) + IP / User-Agent (через forwarder). - `auth_audit.log` пишется на VPS — нужно проверить retention + access controls. Полный 152-ФЗ audit (logs / Sentry / БД) остаётся актуальным. **Priority после pilot demo 28.05**: medium Привязка: добавлен в umbrella `epic(infra): Pilot infra status 2026-05-23 — после security pivot`.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#79
No description provided.