Материал

ПДн в логах приложений: как исключить попадание, настроить маскирование и ретеншн

Опубликовано: 11.03.2026 · Обновлено: 11.03.2026 · Время чтения: 22 мин

Когда лог-файл становится источником утечки персональных данных

Зачем это вообще проблема

В 2024 году Роскомнадзор зафиксировал 135 утечек баз данных, в результате которых в сеть попало более 710 миллионов записей о россиянах [1]. По данным ГК InfoWatch, за весь 2024 год было скомпрометировано свыше 1,5 млрд записей персональных данных — рост более 30% к 2023 году [2]. При этом подавляющее большинство инцидентов носит умышленный характер, однако существенная доля утечек связана с неправильной конфигурацией систем, в том числе с некорректной настройкой логирования.

Разработчики и DevOps-инженеры нередко воспринимают логи как сугубо техническую сущность: строки в файле, нужные для отладки. Но в логах могут оседать имена пользователей, адреса электронной почты, номера телефонов, IP-адреса, идентификаторы сессий, фрагменты запросов к базам данных с реальными данными клиентов — и всё это превращает лог-хранилище в потенциальный источник утечки.

С 30 мая 2025 года в России действуют существенно ужесточённые штрафы за нарушения при работе с персональными данными — до 20 млн рублей для организаций по ряду составов [3]. Новая статья 272.1 УК РФ, введённая законом № 421-ФЗ от 30.11.2024, устанавливает уголовную ответственность за незаконное использование персональных данных, включая их хранение [4]. В этой ситуации игнорировать вопрос ПДн в логах — значит сознательно принимать регуляторный и репутационный риск.

Данная статья адресована разработчикам приложений, DevOps-инженерам, специалистам по информационной безопасности и compliance-менеджерам. Материал охватывает как технические практики (маскирование, токенизация, настройка фреймворков), так и организационные вопросы (политики ретеншна, документирование, аудит).

Часть 1. Почему ПДн оказываются в логах: корневые причины

1.1 Режим отладки в продакшне

Самая частая причина — включённый уровень DEBUG в производственной среде. При DEBUG большинство фреймворков пишут в лог полное содержимое объектов, включая поля с персональными данными. Ситуацию усугубляет то, что ORM-библиотеки (например, Hibernate, ActiveRecord) при DEBUG-режиме пишут полные SQL-запросы со значениями параметров, то есть фактически — реальные данные из БД.

Автор публикации в Medium с анализом семи типичных паттернов утечки ПДн в логи указывает, что ошибочное включение DEBUG в продакшне — один из самых распространённых инцидентов, с которыми он сталкивался на практике, и что эта ошибка способна вызвать «лавинообразный» рост объёма чувствительных данных в логах за считанные часы [5].

1.2 Логирование объектов целиком через toString()

Распространённый антипаттерн в Java-приложениях: передача объекта-сущности (например, User, Order) прямо в метод logger.info(). Стандартный метод toString() в этом случае включает все поля объекта. Если объект содержит имя, телефон, email или паспортные данные — всё это уйдёт в лог.

Платформа Piiano в детальном разборе этой темы (2024) приводит конкретный пример: вызов logger.info("Updated owner " + owner) выведет в лог полное имя и номер телефона клиента, тогда как для диагностики достаточно было бы записать только внутренний идентификатор [6].

1.3 URL и query-параметры как источник ПДн

Если приложение использует URL вида /users/john.doe@example.com/profile или передаёт данные через query-параметры (?email=john@example.com&phone=79001234567), веб-сервер (nginx, Apache) и прокси автоматически записывают эти адреса в access-логи. Рекомендация Skyflow — заменять чувствительные идентификаторы в URL на внутренние UUID или токены [7].

1.4 Трассировка ошибок (stack traces) и логи исключений

При выбросе исключения фреймворки нередко включают в трассировку значения, переданные в качестве параметров метода, — в том числе ПДн. Это особенно актуально для случаев валидации входящих данных: исключение может включать «сырой» пользовательский ввод.

1.5 Сторонние библиотеки с собственным логированием

Разработчик контролирует только собственный код. Сторонние библиотеки (HTTP-клиенты, SDK платёжных систем, email-сервисы) могут иметь собственные настройки логирования и при агрессивном режиме писать содержимое HTTP-запросов и ответов — включая тела с персональными данными.

1.6 Заголовки HTTP-запросов

Authorization-заголовки, cookie, API-ключи — всё это может оседать в логах, если настроено полное логирование входящих запросов (что нередко делают для отладки на ранних этапах и забывают отключить).

Часть 2. Что считается ПДн в контексте логов: российский правовой контекст

2.1 IP-адрес как персональное данное

Ключевой вопрос: являются ли IP-адреса в лог-файлах персональными данными? В российской практике — да, при наличии возможности идентификации. Постановление Конституционного суда РФ № 17-П от 16.07.2018 закрепило, что IP-адрес может квалифицироваться как персональные данные, если используется для идентификации лица [8]. Роскомнадзор также указывает, что IP-адреса в логах подлежат защите по тем же правилам, что и иные персональные данные [8].

Практический вывод: лог-файлы веб-серверов со стандартными полями (remote_addr, http_referer) в большинстве случаев содержат персональные данные и должны обрабатываться в соответствии с 152-ФЗ.

2.2 Что ещё в логах может считаться ПДн

По 152-ФЗ и разъяснениям Роскомнадзора, к персональным данным относятся любые сведения, прямо или косвенно позволяющие идентифицировать физическое лицо [9]. В контексте логов приложений это:

  1. Полное имя и фамилия пользователя в сообщениях об операциях.
  2. Email-адрес и номер телефона в логах регистрации, аутентификации, отправки уведомлений.
  3. IP-адрес — при наличии возможности сопоставить с конкретным лицом.
  4. Идентификатор сессии — если сессия связана с аутентифицированным пользователем.
  5. Содержимое запросов к API — если включает поля с данными пользователей.
  6. Фрагменты SQL-запросов при DEBUG-логировании ORM.
  7. Номера документов, СНИЛС, ИНН, паспортные данные — если попадают в логи через форм-данные или параметры запросов.

2.3 Требования 152-ФЗ к логированию действий

Статья 19, часть 1, пункт 7 Федерального закона № 152-ФЗ обязывает оператора обеспечивать регистрацию и учёт действий пользователей информационной системы персональных данных [10]. Это создаёт неустранимое противоречие: закон требует вести журналы аудита для подтверждения законности обработки, но при этом эти же журналы могут содержать персональные данные, к которым предъявляются требования защиты, ограниченного хранения и контроля доступа.

Решение этого противоречия — не отказ от логирования, а правильная его архитектура.

Часть 3. OWASP и международные стандарты о ПДн в логах

3.1 OWASP Top 10:2025 — A09: Security Logging and Alerting Failures

OWASP Top 10:2025 включает «Security Logging and Alerting Failures» в список десяти наиболее критичных рисков безопасности веб-приложений. Документ прямо указывает: приложение является уязвимым, если оно логирует чувствительную информацию, которая не должна логироваться — в том числе ПДн и PHI (protected health information) [11].

3.2 OWASP Logging Cheat Sheet

OWASP Logging Cheat Sheet содержит конкретный список данных, которые не должны записываться в логи напрямую: идентификаторы сессий, пароли, секретные вопросы/ответы, чувствительные ПДн (данные о здоровье, государственные идентификаторы), данные платёжных карт. Для этих данных OWASP рекомендует применять удаление, маскирование, хэширование или шифрование [12].

Отдельно Cheat Sheet рекомендует рассмотреть методы деидентификации для «не чувствительных» ПДн (имена, телефоны, email): удаление, скрамблинг или псевдонимизацию прямых и косвенных идентификаторов в случаях, когда личность пользователя не требуется для целей диагностики.

3.3 NIST SP 800-92 и revision 1

NIST SP 800-92 («Guide to Computer Security Log Management») — основополагающий документ по управлению логами, разработанный Национальным институтом стандартов и технологий США. Документ определяет управление логами как процесс генерации, передачи, хранения, доступа и уничтожения данных логов [13]. В 2023 году NIST опубликовал черновик версии Revision 1 — «Cybersecurity Log Management Planning Guide», расширяющий руководство на современные сценарии включая облако и микросервисы [14].

Стандарт подчёркивает: управление логами должно включать политики хранения, контроль доступа к лог-данным и процедуры их уничтожения — всё то, что в российском контексте регулируется 152-ФЗ.

Часть 4. Технические методы защиты ПДн в логах

Существует иерархия методов защиты, которые применяются последовательно — сначала на уровне кода приложения, затем на уровне фреймворка логирования, и наконец — в лог-пайплайне. Важно понимать: каждый следующий уровень является «последней линией обороны», а не основной.

4.1 Метод 1: Редактирование (Redaction) — не логировать вообще

Наиболее радикальный и наиболее надёжный метод: если данные никогда не попадают в лог, они не могут из него утечь. Суть — определить, какие поля реально нужны для диагностики, и не передавать остальные в вызовы логгера.

Практические правила:

  1. Вместо объекта User логировать только user_id (внутренний числовой или UUID-идентификатор).
  2. Вместо полного SQL-запроса — имя операции и время выполнения.
  3. Вместо URL с email — URL с анонимизированным идентификатором.
  4. Не логировать тела HTTP-запросов и ответов в продакшне — только статус-коды и заголовки без Authorization.

4.2 Метод 2: Маскирование (Masking)

Маскирование заменяет часть или всё значение нечитаемыми символами. В отличие от редактирования, в логе остаётся указание на тип данных и частичный контекст. Это необратимая операция [15].

Примеры реализации:

  1. Номер телефона +79001234567+7900***4567 (маска последних цифр).
  2. Email john@example.comj***@example.com.
  3. Номер карты 4111111111111111****-****-****-1111.
  4. Пароль → [REDACTED].

Маскирование удобно там, где операционной команде нужно подтвердить, что «данная категория данных поступила», не зная конкретного значения.

Известный инцидент 2018 года: Twitter был вынужден потребовать смены паролей у всех 330 миллионов пользователей после того, как обнаружил, что пароли пользователей записывались в внутренние лог-файлы в открытом виде до хэширования [16].

4.3 Метод 3: Токенизация (Tokenization)

Токенизация заменяет чувствительное значение случайно сгенерированным токеном, который хранится в защищённом хранилище (data vault) и может быть обратимо восстановлен при наличии прав доступа [7]. В лог пишется токен — бессмысленная строка без прямой связи с исходным значением.

Преимущество перед маскированием: в логе можно отслеживать поведение конкретного пользователя по токену, не зная его реальных данных. Это полезно для расследования инцидентов.

Платформы Google Cloud используют аналогичный подход (BigQuery Sensitive Data Protection, DLP API): токены, сгенерированные один раз для данного значения, воспроизводимы при одном ключе, что обеспечивает referential integrity при работе с лог-данными [17].

4.4 Метод 4: Псевдонимизация (Pseudonymization)

Псевдонимизация — это замена прямых идентификаторов на псевдонимы таким образом, что без дополнительной информации (ключа или таблицы соответствия) идентификация невозможна, но при наличии ключа — обратима [18]. В отличие от полной анонимизации, псевдонимизированные данные в России и Европе (GDPR) всё ещё считаются персональными данными, но с несколько меньшими ограничениями по ряду вопросов.

Практическая реализация: HMAC-SHA256 от значения с секретным ключом. Результат одинаков для одного значения при одном ключе (referential integrity), но необратим без ключа. Пример реализации на Python приведён в руководстве Last9 по GDPR и логированию [18].

4.5 Метод 5: Хэширование (Hashing)

Хэширование криптографически необратимо (в отличие от псевдонимизации с ключом) и даёт одинаковый результат для одного значения. Полезно для случаев, когда нужно посчитать уникальных пользователей или сопоставить события без знания реальных идентификаторов. IP-адреса часто хэшируются именно так: в лог уходит не 192.168.1.100, а SHA256(IP + SALT).

Часть 5. Настройка маскирования на уровне фреймворков логирования

5.1 Java: Logback

Logback — один из наиболее распространённых фреймворков логирования для Java-приложений (Spring Boot использует его по умолчанию). Инструмент предоставляет несколько встроенных механизмов маскирования [19]:

  1. %replace в паттерне ConversionLayout — регулярное выражение для замены паттернов в итоговой строке лога. Позволяет настроить маскирование на уровне конфигурации logback.xml без изменения кода приложения.
  2. Начиная с версии Logback 1.5.22, введено автоматическое маскирование переменных, чьё имя содержит слова password, secret или confidential при подстановке конфигурационных переменных.
  3. Кастомный PatternLayout — расширение класса, перехватывающее сообщения перед записью и применяющее regex-замены.
  4. Переопределение toString() у доменных объектов с использованием аннотации Lombok @ToString.Include для предоставления маскированного представления.

Важное ограничение: последний подход (переопределение toString()) затрагивает не только логирование, но и отладку — это может быть неудобно в процессе разработки.

5.2 Java: Log4j 2

Log4j 2 поддерживает маскирование через механизм RewritePolicy и кастомные Appender-ы, перехватывающие LoggingEvent перед записью [20]. Подход с кастомным Appender-ом и регулярными выражениями для маскирования в maskSensitiveData() описан в многочисленных руководствах и является стандартной практикой.

5.3 OpenTelemetry Collector: централизованное маскирование

Если приложение использует OpenTelemetry для сбора телеметрии (логи, трейсы, метрики), маскирование можно настроить централизованно на уровне Collector с помощью трёх процессоров [21]:

  1. Attributes processor — для удаления или замены известных полей с ПДн.
  2. Redaction processor — для фильтрации атрибутов по regex-паттернам (например, маска email или IP).
  3. Transform processor (OTTL) — для сложной условной логики редактирования.

Преимущество централизованного подхода: маскирование работает независимо от языка и фреймворка приложений, что критично в микросервисной архитектуре с командами на Python, Go, Java и Node.js.

5.4 Инфраструктурный уровень: New Relic, Elastic и другие

Ряд платформ централизованного управления логами предоставляет встроенные механизмы маскирования. New Relic, например, автоматически маскирует паттерны номеров кредитных карт (13–16 цифр) и социальных номеров страхования США, а также позволяет настроить кастомные правила обфускации через UI или NerdGraph API [22].

Elastic Stack (Logstash/Filebeat) поддерживает маскирование через фильтры mutate и ruby.

Критически важная оговорка: инфраструктурное маскирование — последняя линия обороны. Если ПДн ушли в лог на уровне приложения, до лог-хранилища они могут добраться по незащищённым каналам, попасть в промежуточные файлы или буферы. Маскирование на уровне приложения всегда предпочтительнее.

Часть 6. Структурированное логирование как профилактика утечек

6.1 Почему JSON-логи безопаснее текстовых

Структурированное логирование (JSON, key-value pairs) принципиально меняет ситуацию с контролем ПДн [23]. В текстовом логе строки вида INFO User john@example.com logged in from 192.168.1.1 — это неструктурированные данные, из которых сложно автоматически извлечь и замаскировать конкретные поля.

В JSON-логе:

{
  "timestamp": "2025-01-08T14:30:00Z",
  "level": "INFO",
  "event": "user_login",
  "user_id": "usr_7a3b9c",
  "ip_hash": "a3f8b2...",
  "success": true
}

— поля явно именованы, что позволяет:

  1. Настроить список exclude_fields на уровне конфигурации логгера.
  2. Применять маскирование к конкретным ключам, а не к произвольным строкам.
  3. Автоматически обнаруживать нежелательные поля (например, неожиданное появление поля email в логе).

6.2 Принцип минимализма: логировать только то, что нужно

Ключевой принцип безопасного логирования — не собирать данные «про запас». Каждое поле в логе должно иметь обоснованную диагностическую цель. Уровень INFO в продакшне должен включать только события с операционной ценностью, уровень DEBUG — только в тестовой среде.

Руководство Last9 по GDPR и логированию предлагает использовать конфигурационный блок, явно перечисляющий include_fields, exclude_fields и transform_fields (для полей, требующих хэширования или псевдонимизации) [18].

6.3 Корреляционные идентификаторы вместо ПДн

Вместо email или имени пользователя в лог следует писать корреляционный идентификатор — UUID или внутренний user_id, который однозначно привязан к субъекту в закрытом хранилище. При расследовании инцидента команда безопасности может раскрыть привязку через защищённый канал, не допустив широкого распространения ПДн.

Часть 7. Политика ретеншна: сколько хранить и как удалять

7.1 Российские требования по срокам хранения логов

Российское законодательство прямо не устанавливает единый срок хранения лог-файлов приложений — это определяется оператором исходя из целей и правовых оснований обработки (ст. 5 152-ФЗ) [10]. Тем не менее ряд ориентиров существует:

  1. Журналы аудита действий пользователей — 3 года с момента завершения работы с документами (по нормам архивного хранения журналов регистрации) [24].
  2. Логи безопасности — «несколько лет», но не более срока актуальности (Nubes) [25].
  3. Данные абонентов оператора связи — не менее 3 лет (ПП РФ 538) [24].
  4. Документы для защиты интересов в суде — 3–10 лет (срок исковой давности, ГК РФ, ст. 196) [24].

Общий принцип: нельзя хранить дольше, чем того требуют цели обработки. Если срок не установлен договором или законом — данные удаляются или обезличиваются при достижении цели [24].

7.2 Матрица ретеншна по типу логов

Практический подход — классифицировать логи по типу и назначить каждому классу обоснованный срок хранения:

  1. Отладочные логи (DEBUG/TRACE) — не хранить в продакшне. Максимум 24–48 часов при временном включении.
  2. Операционные логи (INFO) — 30–90 дней: достаточно для диагностики текущих проблем и не избыточно для накопления ПДн.
  3. Логи безопасности и аудита (аутентификация, авторизация, изменение данных) — 1–3 года: нужны для расследования инцидентов и доказательства законности обработки при проверках Роскомнадзора и ФСТЭК.
  4. Логи ошибок и исключений — 90–180 дней: для анализа трендов и повторяющихся проблем.

Для международного контекста: GDPR предполагает срок 30–90 дней для операционных логов, SOX — 7 лет для финансовых аудит-записей, HIPAA — 6 лет для записей доступа к PHI [26].

7.3 Технические механизмы ретеншна

  1. Rolling файловые appender-ы (Logback RollingFileAppender с maxHistory и totalSizeCap) — автоматическое удаление старых файлов.
  2. Политики жизненного цикла в облачных хранилищах (AWS S3 Lifecycle, Azure Blob Lifecycle) — автоматический переход на «холодное» хранение и удаление.
  3. Индексные политики в Elasticsearch (Index Lifecycle Management) — автоматическое удаление индексов старше заданного порога.
  4. Централизованная конфигурация в лог-менеджменте — один файл конфигурации с правилами для всех сервисов.

Важно: правила ретеншна должны быть зафиксированы документально в политике обработки персональных данных организации — это требование ст. 19 152-ФЗ.

7.4 Право на удаление и логи

С введением «права на забвение» в российском праве (аналог GDPR «right to erasure») возникает практическая проблема: как исполнить запрос субъекта на удаление его ПДн, если они «размазаны» по многочисленным лог-файлам за три года?

Решение — именно псевдонимизация и токенизация: если в логах хранятся токены, а не реальные данные, «удаление» сводится к удалению записи из data vault без перезаписи тысяч лог-файлов.

Часть 8. Практический чек-лист: что сделать прямо сейчас

8.1 Аудит текущего состояния (Discovery)

  1. Запросить у команды разработки полный список типов логов (access-логи, application-логи, audit-логи, error-логи) и форматов.
  2. Проверить настройки уровней логирования в продакшне: отсутствие DEBUG/TRACE в конфигурации.
  3. Провести выборочный просмотр актуальных лог-файлов с поиском паттернов ПДн (regex для email, телефонов, СНИЛС, ИНН, номеров карт, IP-адресов).
  4. Проверить, логируются ли полные URL входящих запросов на уровне веб-сервера (nginx, Apache) — и содержат ли они чувствительные query-параметры.
  5. Определить, какие сторонние библиотеки имеют собственные настройки логирования и на каком уровне они работают.

8.2 Архитектурные изменения в коде

  1. Ввести корпоративный стандарт: никогда не передавать объекты-сущности с ПДн напрямую в методы логгера.
  2. Переопределить toString() для всех объектов-сущностей с маскированием чувствительных полей или использовать специализированные аннотации.
  3. Заменить чувствительные идентификаторы в URL на внутренние UUID.
  4. Добавить конфигурацию явного исключения полей для структурированного логгера (exclude_fields: [email, phone, ssn, password, token]).
  5. Проверить настройки ORM: убедиться, что SQL-параметры не логируются в продакшне.

8.3 Конфигурация фреймворков логирования

  1. Для Logback — настроить %replace в конвертере PatternLayout для маскирования известных паттернов (email, телефонов, номеров карт).
  2. Для Log4j 2 — реализовать кастомный RewritePolicy или Appender с маскированием.
  3. Для OpenTelemetry Collector — настроить Redaction processor с правилами для чувствительных полей.
  4. Для централизованных лог-платформ (Elastic, New Relic, Graylog) — настроить обфускационные правила второго уровня.

8.4 Политика ретеншна

  1. Документально зафиксировать сроки хранения для каждого класса логов в политике обработки ПДн.
  2. Настроить автоматическое удаление через rolling appender-ы или lifecycle policies.
  3. Ограничить права доступа к лог-хранилищу принципом минимальных привилегий.
  4. Организовать шифрование логов в покое (at rest) и при передаче (in transit).

8.5 Процессы и документация

  1. Включить проверку логирования ПДн в чек-лист code review.
  2. Настроить автоматические тесты, проверяющие отсутствие ПДн в выводе логгера при типичных операциях.
  3. Проверить, что staging-среда имеет те же конфигурации логирования, что и продакшн.
  4. Назначить ответственного за мониторинг и периодический аудит лог-файлов на предмет ПДн.

Часть 9. Типичные ошибки и как их избежать

9.1 «Мы маскируем в конце пайплайна — этого достаточно»

Ошибка: полагаться только на маскирование в лог-коллекторе или централизованной платформе. До достижения этого уровня данные могут быть записаны в локальные файлы на сервере приложения, переданы по незащищённым каналам в агрегатор, попасть в буферы.

Решение: многоуровневая защита, начиная с кода приложения.

9.2 «У нас внутренняя сеть — логи никуда не уйдут»

Ошибка: переоценка защищённости периметра. По данным InfoWatch за 2024 год, почти каждый пятый инцидент с компрометацией ПДн (18,5%) происходит по вине внутренних нарушителей [2]. Доступ к лог-серверу для IT-специалистов — стандартная практика, а значит нежелательные данные в логах достигают широкого внутреннего аудитора.

9.3 «Строгий контроль лог-пайплайна на 100% решает проблему»

Критическая позиция: инструменты автоматического маскирования не в состоянии выловить все типы ПДн, особенно нестандартные форматы или контекстно-зависимые данные. Medium-автор с опытом в распределённых системах указывает: ни один из доступных инструментов не покрывает все возможные паттерны утечки, и постоянное совершенствование подхода к логированию — более надёжная стратегия, чем надежда на инструмент [5].

9.4 Одинаковая конфигурация staging и prod

Частая проблема: в staging используется DEBUG-режим для удобства разработки, а конфигурация отличается от продакшн. В результате ПДн утекают именно в тестовой среде, которая менее защищена.

9.5 Игнорирование сторонних библиотек

Разработчики контролируют собственный код, но не всегда проверяют настройки логирования используемых HTTP-клиентов, ORM, SDK платёжных систем. Рекомендация: при внедрении любой новой библиотеки проверять её документацию в части логирования и явно отключать verbose-режим.

Часть 10. Кейсы и инциденты

10.1 Twitter (2018): пароли в логах

В мае 2018 года Twitter сообщил, что из-за программной ошибки пароли пользователей записывались во внутренние лог-файлы в открытом виде до прохождения процедуры хэширования. Компания была вынуждена рекомендовать всем 330 миллионам пользователей сменить пароли [16]. Инцидент произошёл именно потому, что данные логировались до их обработки — то есть на самом раннем этапе, до какого-либо маскирования.

10.2 DreamHost (2021): незащищённые лог-файлы

В 2021 году хостинговая компания DreamHost допустила утечку более 814 миллионов записей из неоткрытой базы данных и незашифрованных внутренних лог-файлов системы мониторинга [7]. Данные включали имена пользователей, email-адреса, информацию о предоставленных услугах.

10.3 Российские инциденты в сфере торговли (2024)

По данным Роскомнадзора, в 2024 году наибольшее количество утечек зафиксировано у компаний в сфере торговли и оказания услуг — 27,8% всех случаев [1]. Часть инцидентов связана с некорректно настроенными системами логирования, в которых данные заказов и клиентов попадали в открыто доступные лог-файлы или передавались сторонним аналитическим сервисам без должного маскирования.

Часть 11. Тренды и будущее

11.1 OpenTelemetry как стандарт де-факто

OpenTelemetry всё активнее вытесняет разрозненные подходы к сбору логов, трейсов и метрик. Централизованный Collector с процессорами редактирования становится стандартным местом применения политик маскирования — один раз настроил, работает для всех сервисов [21]. Это существенно упрощает управление ПДн в микросервисных архитектурах.

11.2 Privacy-by-design в DevSecOps

Включение проверки безопасного логирования в CI/CD пайплайны (статический анализ, автоматические тесты на наличие ПДн в выводе) становится частью DevSecOps-практик. OWASP прямо рекомендует создавать внутренние гайдлайны для разработчиков и покупать или строить системы мониторинга [11].

11.3 Рост требований российских регуляторов к логированию

С учётом новых штрафов (до 20 млн руб.) и уголовной ответственности, введённых в 2025 году, следует ожидать усиления внимания Роскомнадзора и ФСТЭК именно к технической защите данных, включая логирование. Конференция «Персональные данные 2026» (itsecexpo.ru) включает отдельный трек по «сквозным процессам логирования, аудита и реагирования» [27].

11.4 AI/ML и новые риски: логирование ИИ-систем

С распространением ИИ-ассистентов в корпоративных средах возникает новый класс риска: ПДн из запросов пользователей к ИИ могут оседать в логах LLM-систем. OWASP выделяет эту проблему как самостоятельную уязвимость «Sensitive Information Disclosure» в OWASP Top 10 for LLM Applications [28].

Заключение: от разовых мер к процессу

Защита персональных данных в логах — не разовая задача и не «галочка» в чек-листе. Это непрерывный процесс, который требует участия как минимум трёх команд: разработки (правила кодирования, архитектура логирования), DevOps/SRE (конфигурация пайплайна, ретеншн) и безопасности/compliance (аудит, документация, мониторинг).

Ключевые выводы для практики:

  1. Начинайте с аудита: поймите, что именно сейчас оседает в ваших логах — запустите grep/regex по актуальным файлам.
  2. Вводите структурированное логирование с явным управлением полями: JSON-формат делает контроль ПДн значительно проще.
  3. Не полагайтесь только на маскирование в конце пайплайна — работайте на уровне кода.
  4. Документируйте политику ретеншна: это требование 152-ФЗ и основа доказательной базы при проверках.
  5. Встраивайте проверки в code review и CI/CD: безопасное логирование должно стать частью культуры разработки, а не внешним требованием.

Компании, выстраивающие эти практики системно, не только снижают риск штрафов и утечек, но и существенно сокращают время аудитов и проверок: вся история обработки ПДн прозрачна, задокументирована и не содержит «сюрпризов» в виде нежелательных данных в неожиданных местах.

О платформе «Пятый фактор»

Одна из ключевых сложностей в борьбе с ПДн в логах — не столько знание методов защиты, сколько понимание того, где именно персональные данные уже находятся. Ручной аудит лог-источников, баз данных, API и интеграций занимает недели и оставляет слепые зоны: новые сервисы, новые поля в схемах БД, новые интеграции появляются постоянно.

Именно эту проблему решает Пятый фактор — on-prem платформа для автоматического обнаружения, инвентаризации и контроля персональных данных в корпоративных системах. Платформа работает с метаданными, структурой и агрегатами — без передачи и хранения «сырых» значений ПДн, что само по себе исключает риск создания дополнительного источника утечки.

Применительно к теме логов: Пятый фактор может автоматически обнаружить источники (включая лог-хранилища и централизованные лог-системы), где есть поля или паттерны, соответствующие персональным данным, — и выдать живую карту рисков с указанием владельцев и статусов. Вместо недельного ручного аудита — актуальная картина в реальном времени. Это позволяет раньше замечать новые риски: появился новый сервис с verbose-логированием, изменилась схема БД — платформа зафиксирует изменение и подсветит новый риск до того, как он превратится в инцидент.

Источники

[1] Роскомнадзор / ТАСС — Итоги 2024 года по утечкам персональных данных — https://www.tadviser.ru/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%A3%D1%82%D0%B5%D1%87%D0%BA%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8

[2] ГК InfoWatch — Количество слитых персональных данных в 2024 году выросло на треть — https://www.infowatch.ru/company/presscenter/news/kolichestvo-slitykh-personalnykh-dannykh-v-dve-tysyachi-dvadtsat-chetvertom-godu-vyroslo-na-tret

[3] Bitrix24 / Правовест Аудит — Закон о персональных данных 2025: изменения, штрафы до 20 млн рублей — https://pravovest-audit.ru/nashi-statii-nalogi-i-buhuchet/izmeneniya-v-obrabotke-personalnykh-dannykh-s-30-maya-2025-goda/

[4] Правовест Аудит — Изменения в обработке персональных данных с 30 мая 2025 года, включая ст. 272.1 УК РФ — https://pravovest-audit.ru/nashi-statii-nalogi-i-buhuchet/izmeneniya-v-obrabotke-personalnykh-dannykh-s-30-maya-2025-goda/

[5] Joe Crobak, Medium — Seven Best Practices for Keeping Sensitive Data Out of Logs — https://medium.com/@joecrobak/seven-best-practices-for-keeping-sensitive-data-out-of-logs-3d7bbd12904

[6] Piiano — Why Spilling PII to Logs Is Bad and How To Avoid It — https://www.piiano.com/blog/spilling-pii

[7] Skyflow — How to Keep Sensitive Data Out of Your Logs: 9 Best Practices — https://www.skyflow.com/post/how-to-keep-sensitive-data-out-of-your-logs-nine-best-practices

[8] ICTech — Являются ли лог-файлы сервера с IP-адресами персональными данными? — https://ic-tech.ru/blog/faq/questions-152fz-site/yavlyayutsya-li-log-fayly-servera-s-ip-adresami-personalnymi-dannymi/

[9] Альфа-Курс — Персональные данные: изменения на 2025 год — https://kurs.alfabank.ru/articles/personalnye-dannye-izmeneniya/

[10] ICTech — Какие документы нужны для хранения логов работы системы? — https://ic-tech.ru/blog/faq/questions-152fz/kakie-dokumenty-nuzhny-dlya-hraneniya-logov-raboty-sistemy/

[11] OWASP Top 10:2025 — A09: Security Logging and Alerting Failures — https://owasp.org/Top10/2025/A09_2025-Security_Logging_and_Alerting_Failures/

[12] OWASP — Logging Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html

[13] NIST — SP 800-92: Guide to Computer Security Log Management — https://csrc.nist.gov/pubs/sp/800/92/final

[14] NIST — SP 800-92 Rev. 1 (Draft): Cybersecurity Log Management Planning Guide — https://csrc.nist.gov/pubs/sp/800/92/r1/ipd

[15] Better Stack — Best Logging Practices for Safeguarding Sensitive Data — https://betterstack.com/community/guides/logging/sensitive-data/

[16] eyer.ai — Log Data Masking: 7 Best Practices for 2024 (Twitter incident reference) — https://www.eyer.ai/blog/log-data-masking-7-best-practices-for-2024/

[17] Google Cloud Blog — Get started with built-in tokenization for sensitive data protection — https://cloud.google.com/blog/products/identity-security/get-started-with-built-in-tokenization-for-sensitive-data-protection

[18] Last9 — GDPR Log Management: A Practical Guide for Engineers — https://last9.io/blog/gdpr-log-management/

[19] copyprogramming.com — Mask Sensitive Data in Logs with Logback: Complete Guide for 2026 — https://copyprogramming.com/howto/mask-sensitive-data-in-logs-with-logback

[20] Bubu Tripathy, Medium — Safeguarding Sensitive Data in Log4j Logs — https://medium.com/@bubu.tripathy/safeguarding-sensitive-data-in-log4j-logs-34b12067ca67

[21] Dash0 — Scrubbing Sensitive Data from OpenTelemetry Logs, Traces & Metrics — https://www.dash0.com/guides/scrubbing-sensitive-data-with-opentelemetry

[22] New Relic — 4 Ways to Manage PII in Your Log Pipeline — https://newrelic.com/blog/how-to-relic/4-ways-manage-pii-in-log-pipeline

[23] Uptrace — Structured Logging: Best Practices & JSON Examples — https://uptrace.dev/glossary/structured-logging

[24] RPPA — Законные сроки хранения некоторых категорий ПДн — https://rppa.pro/ask/2011_01

[25] Nubes — Персональные данные в 2025 году: новые правила обработки и защиты для бизнеса — https://nubes.ru/blog/articles/personal-data-2025

[26] Edge Delta — What is Log Retention? A Complete Compliance Guide in 2025 — https://edgedelta.com/company/knowledge-center/what-is-log-retention

[27] itsecexpo.ru — Персональные данные в 2026 году: новые требования и инструменты — https://www.itsecexpo.ru/2025/program/personal-data

[28] StackHawk — Essential Guide to Preventing Sensitive Information Disclosure Risks (OWASP LLM Top 10) — https://www.stackhawk.com/blog/sensitive-information-disclosure/

Быстрые вопросы и ответы

Почему ПДн попадают в логи?

Основные причины — включенный режим DEBUG и логирование объектов целиком.

Как защитить логи от утечек ПДн?

Используйте маскирование, токенизацию и настройте уровень логирования.

Что считается ПДн в логах?

К ПДн относятся имена, email, номера телефонов и IP-адреса.

Каковы требования к логированию по 152-ФЗ?

Оператор обязан вести журналы аудита, но защищать содержащиеся в них ПДн.

Что такое OWASP Top 10?

Это список критичных рисков безопасности, включая утечки ПДн в логах.

Нужна консультация по вашему контуру?
Покажем, где появляются персональные данные и какие риски требуют внимания в первую очередь.