Маскирование конфиденциальных данных в ЕдиномАгенте

Материал из Документация Ключ-АСТРОМ
Версия от 02:05, 23 июля 2026; IKuznetsov (обсуждение | вклад) (Новая страница: « = Маскирование конфиденциальных данных в ЕдиномАгенте = Ваши логи содержат информацию, которая может считаться конфиденциальной. Конкретные сообщения в логах могут включать имена пользователей, адреса электронной почты, параметры URL-адресов и другую...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Маскирование конфиденциальных данных в ЕдиномАгенте

Ваши логи содержат информацию, которая может считаться конфиденциальной. Конкретные сообщения в логах могут включать имена пользователей, адреса электронной почты, параметры URL-адресов и другую информацию, которую вы, возможно, не хотите разглашать. Функция мониторинга логов позволяет скрывать любую информацию, изменяя файл конфигурации на каждом ЕдиномАгенте, обрабатывающем информацию, которую вы считаете конфиденциальной.

Маскирование выполняется непосредственно в ЕдиномАгенте, что гарантирует, что конфиденциальные данные никогда не будут попадать в систему.

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

Правила по умолчанию

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

  • Версия ЕдиныйАгент 1.330 и ниже: данные замаскированы строкой <masked>.
  • Версия ЕдиныйАгент 1.331+: строка маскирования указывает тип данных. Например, значения URL-запросов маскируются строкой <masked-value-log>.

По умолчанию эти правила отключены во всех платных (не пробных) средах Ключ-АСТРОМ. Вы можете активировать и деактивировать правила маскирования в соответствии с вашими потребностями.

Создать правило

Вы можете настроить маскирование конфиденциальных данных на уровне хоста, группы хостов или среды.

  1. Перейдите в Настройки > Сбор и захват > Мониторинг логов > Настройка модуля логов > Маскирование конфиденциальных данных и выберите Новое правило, чтобы начать настройку правила.
  2. Название правила: Имя, которое будет отображаться для вашей конфигурации.
  3. Тип маскировки: Вы можете заменить свои данные строкой или алгоритмом безопасного хеширования SHA-256 (SHA-1 устарел).
    • Если вы выберете SHA-256, ваши данные будут заменены 40-символьной хеш-строкой.
    • Если вы выберете Заменить строкой, установите параметр Замена на строку, которая должна заменить ваши конфиденциальные данные.
  4. Поисковое выражение: регулярное выражение для поиска строки, которую вы хотите замаскировать. Используйте формат регулярного выражения.
  5. В разделе Сопоставители выберите атрибут из раскрывающегося списка и введите соответствующие значения, чтобы определить конкретное условие для этого правила. Выберите Добавить еще один сопоставитель, чтобы добавить больше условий. В одно правило можно включить несколько сопоставителей.
Атрибут Описание Логика выпадающего списка поиска
Группа процессов Сопоставление осуществляется на основе идентификатора группы процессов. Отображены атрибуты, видимые за последние 3 дня.
Источник лога Сопоставление основано на пути к файлу лога; поддерживаются подстановочные знаки в виде звездочки. Автозаполнение для источника лога является частичным. Вы можете либо выбрать одно из предопределенных значений, либо ввести свой источник лога. Можно ввести вручную. Без ограничения по времени.
Источник лога, источник Сопоставление основано на детекторе, который использовался агентом регистрации для обнаружения файла лога. Можно ввести вручную. Без ограничения по времени.
Тег хоста Сопоставление основано на теге хоста. Атрибут поддерживает только теги, заданные с помощью инструмента командной строки ЕдиногоАгента или в конфигурации удаленного доступа в формате key=value. В одном сопоставителе можно указать несколько тегов, но каждый тег должен иметь одинаковый ключ. Можно ввести вручную. Без ограничения по времени.
имя контейнера Kubernetes Сопоставление осуществляется на основе имени контейнера Kubernetes. Отображены атрибуты, видимые за последние 90 дней.
имя пространства имен Kubernetes Сопоставление осуществляется на основе имени пространства имен Kubernetes. Отображены атрибуты, видимые за последние 90 дней.
Название развертывания Kubernetes Сопоставление осуществляется на основе имени развертывания Kubernetes. Отображены атрибуты, видимые за последние 90 дней.
Аннотация пода Kubernetes Сопоставление основано на любой из выбранных аннотаций пода. Правильный формат — key=value. Требуется либо модуль логирования ЕдиногоАгента, управляемый оператором Ключ-АСТРОМ, либо включенный флаг функции Собирать все логи контейнеров. Можно ввести вручную.
Метка пода Kubernetes Сопоставление осуществляется на основе любой из выбранных меток пода. Правильный формат — key=value. Требуется либо модуль логирования ЕдиногоАгента, управляемый оператором Ключ-АСТРОМ, либо включенный флаг функции Собирать все логи контейнеров. Можно ввести вручную.
Название рабочей нагрузки Kubernetes Сопоставление осуществляется на основе любого из выбранных имен рабочих нагрузок. Требуется либо модуль логов ЕдиногоАгента, управляемый оператором Ключ-АСТРОМ, либо включенный флаг функции Собирать все логи контейнеров. Можно ввести вручную.
Тип рабочей нагрузки Kubernetes Сопоставление осуществляется на основе любого из выбранных типов рабочих нагрузок. Требуется либо модуль логов ЕдиногоАгента, управляемый оператором Ключ-АСТРОМ, либо включенный флаг функции Собирать все логи контейнеров. Можно ввести вручную.
имя контейнера Docker Сопоставление осуществляется на основе названия контейнера. Отображены атрибуты, видимые за последние 90 дней.
Идентификатор группы контейнеров сущности DT Подбор осуществляется на основе любой из выбранных групп контейнеров. Можно ввести вручную. Без ограничения по времени.
Технологическая технология Сопоставление осуществляется на основе названия технологии. Можно ввести вручную. Без ограничения по времени.
  1. Выберите Сохранить изменения.

Определенные правила можно переупорядочивать, и они выполняются в том порядке, в котором они отображаются на странице Маскирование конфиденциальных данных.

Ограничения конфигурации

В каждой области действия можно замаскировать максимум 256 объектов. Все правила сопоставления для источника логов имеют общее ограничение по времени выполнения в 10 секунд. Если это ограничение превышено, источник логов отключается до перезапуска агента логов или обновления конфигурации.

Иерархия правил

Выполнение правил маскирования происходит в заранее определенной иерархии, сверху вниз. Каждое последующее правило применяется к результату предыдущего правила. Иерархия выглядит следующим образом:

  1. правила конфигурации хоста
  2. правила конфигурации группы хостов
  3. правила настройки среды

правила конфигурации хоста

Правила конфигурации хоста доступны через настройки конкретного хоста.

  1. Перейдите в раздел Инфраструктура и операции.
  2. Найдите и выберите свой хост, чтобы отобразить страницу обзора хоста.
  3. В правом верхнем углу страницы обзора хоста выберите > Настройки хоста.
  4. В настройках хоста перейдите в раздел Мониторинг логов > Маскирование конфиденциальных данных.
  5. Настройте маскирование данных, добавив правила с набором сопоставителей, которые идентифицируют ваши конфиденциальные данные.

правила конфигурации группы хостов

Правила настройки групп хостов доступны через параметры групп хостов.

  1. Перейдите в раздел Инфраструктура и операции и выберите интересующий вас хост.
  2. На странице обзора хоста выберите Свойства и теги.
  3. На панели Свойства и теги найдите свойство Группа хостов, чтобы увидеть имя группы хостов, к которой принадлежит выбранный хост.
    • Свойство Группа хостов не отображается, если выбранный хост не принадлежит ни к одной группе хостов.
  4. Выберите имя группы хостов, чтобы отобразить список всех хостов в этой группе. При этом отобразится страница развертывания ЕдиногоАгента, отфильтрованная по выбранной группе хостов.
  5. Выберите имя группы хостов в любой строке.
  6. В настройках группы хостов выберите Мониторинг логов > Маскирование конфиденциальных данных.
  7. Настройте маскирование данных, добавив правила с набором сопоставителей, которые идентифицируют ваши конфиденциальные данные.

правила настройки среды

Область действия среды доступна в разделе Настройки.

  1. Перейдите в Настройки > Сбор и захват > Мониторинг логов > Настройка модуля логов > Маскирование конфиденциальных данных.
  2. Настройте маскирование данных, добавив правила с набором сопоставителей, которые идентифицируют ваши конфиденциальные данные.

REST API

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

  • Схема представления
  • Список сохраненных объектов конфигурации
  • Просмотреть отдельный объект конфигурации
  • Создание, редактирование или удаление объекта конфигурации

Чтобы проверить текущую версию схемы для конфигурации маскирования конфиденциальных данных, перечислите все доступные схемы и найдите идентификатор схемы builtin:logmonitoring.sensitive-data-masking-settings. Объекты конфигурации маскирования конфиденциальных данных доступны для настройки в следующих областях:

  • tenant — Объект конфигурации влияет на все хосты в данной среде.
  • host_group — Объект конфигурации влияет на все хосты, назначенные данной группе хостов.
  • host — Объект конфигурации влияет только на указанный хост.

Для создания конфигурации маскирования конфиденциальных данных с использованием API:

  1. Создайте токен доступа с правами на запись настроек (settings.write) и чтение настроек (settings.read).
  2. Используйте конечную точку GET для получения схемы, чтобы узнать формат JSON, необходимый для отправки вашей конфигурации. Идентификатор схемы конфигурации маскирования конфиденциальных данных (schemaId) — builtin:logmonitoring.sensitive-data-masking-settings. Вот пример полезной нагрузки JSON с конфигурацией маскирования конфиденциальных данных:
[
   {
      "schemaId": "builtin:logmonitoring.sensitive-data-masking-settings",
      "scope": "tenant",
      "value": {
         "config-item-title": "Added from REST API",
         "masking": {
            "expression": "run (\\d+?)",
            "type": "STRING",
            "replacement": "testing"
         },
         "matchers": [
            {
               "attribute": "log.source",
               "operator": "matches",
               "values": [
                  "/var/log/syslog"
               ]
            }
         ]
      }
   }
]

Примеры SHA-256

Вы можете скрыть такие данные, как номер кредитной карты или номер телефона, указав или не указав группу, осуществляющую сбор данных.

номер кредитной карты маски

В этом примере вы настроите правило маскирования конфиденциальных данных, которое будет нацелено на номер кредитной карты в следующей записи лога:

Имя пользователя: Джон Доу, Номер кредитной карты: 1234-1234-1234-1234

Правило дополнительно сужается до файлов c:\inetpub\logs\LogFiles\ex_*.log в двух группах процессов: IIS (PROCESS_GROUP-3D9D854163F8F07A) и IIS (PROCESS_GROUP-4A7B47FDB53137AE).

  1. Перейдите в Настройки > Сбор и захват > Мониторинг логов > Настройка модуля логов > Маскирование конфиденциальных данных.
  2. Выберите Создать правило и введите имя правила.
  3. В разделе Тип маскирования выберите SHA-256.
  4. В поле Поисковое выражение введите регулярное выражение для номера кредитной карты, например CreditCardNumber: (\d{4}-\d{4}-\d{4}-\d{4}).
  5. В разделе Сопоставители в поле Атрибут выберите Группа процессов. В поле Значения выберите IIS (PROCESS_GROUP-3D9D854163F8F07A) и IIS (PROCESS_GROUP-4A7B47FDB53137AE).
  6. Выберите Добавить еще один сопоставитель, в разделе Атрибут выберите Источник лога, а в поле Значения введите c:\inetpub\logs\LogFiles\ex_*.log.
  7. Выберите Создать.

Маскируется только содержимое, находящееся внутри захватывающей группы, и оно преобразуется в следующее:

Имя пользователя: John Doe, Номер кредитной карты: 7e938e089861f3975b38cff3a93cc3aa659f7779

Номер телефона маски

В этом примере вы настроите правило маскирования конфиденциальных данных, которое будет применяться ко всем телефонным номерам в следующей записи лога для всех файлов логов.

Имя пользователя: Джон Доу, Номер телефона: +48123010100
  1. Перейдите в Настройки > Сбор и захват > Мониторинг логов > Настройка модуля логов > Маскирование конфиденциальных данных.
  2. Выберите Создать правило и введите имя для вашей конфигурации.
  3. Выберите тип маскирования SHA-256.
  4. В поле Поисковое выражение укажите регулярное выражение для номера телефона. Например, PhoneNumber: [0-9\-\+]{9,15}.
  5. В разделе Сопоставители выберите атрибут из выпадающего списка и введите соответствующие значения.
  6. Выберите Сохранить изменения.

Группа захвата не указана, поэтому всё выражение рассматривается как одна группа захвата и маскируется, преобразуясь во всех файлах логов в следующий вид:

Имя пользователя: John Doe, 011897d555c81e88f286cbb74c59f4ad99ec2f8d

Расширенные примеры SHA-256

В приведенных ниже примерах показано, как можно маскировать различные комбинации конфиденциальных данных. Вы можете использовать указанные JSON-файлы полезной нагрузки в REST API или ввести указанные правила маскирования, сопоставители, регулярные выражения и атрибуты непосредственно при создании правил через веб-интерфейс Ключ-АСТРОМ.

Скрыть номера кредитных карт и адреса электронной почты

Чтобы скрыть все номера кредитных карт и адреса электронной почты в вашем контенте, вам необходимо создать два отдельных правила, каждое с разным сопоставителем:

{
  "masking": {
    "expression": "(\\d{4}-\\d{4}-\\d{4}-\\d{4})",
    "type": "STRING",
    "replacement": "MaskedCreditCardNumber"
  },
  "matchers": [
  ],
  "enabled": true
},
{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
  ],
  "enabled": true
}

Маскировка логов Apache

Чтобы скрыть логи, записанные Apache И имя файла лога которых совпадает с указанным error.log, можно создать одно правило с двумя сопоставителями:

{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "log.source",
      "values": [
        "/path/to/error.log"
      ]
    },
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-APACHEID"
      ]
    }
  ],
  "enabled": true
}

Чтобы скрыть записи в логах, созданные Apache, ИЛИ файлы логов с именем error.log, необходимо создать два правила, каждое из которых будет содержать один сопоставитель:

{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "log.source",
      "values": [
        "/path/to/error.log"
      ]
    }
  ],
  "enabled": true
},
{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-APACHEID"
      ]
    }
  ],
  "enabled": true
}

Чтобы скрыть записи в логах, созданные Apache, имена файлов которых начинаются с error и заканчиваются на log, вам потребуется одно правило с тремя сопоставителями, каждый из которых имеет одно значение.

{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "log.source",
      "values": [
        "/path/to/error*"
      ]
    },
    {
      "attribute": "log.source",
      "values": [
        "*log"
      ]
    },
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-APACHEID"
      ]
    }
  ],
  "enabled": true
}

Чтобы скрыть записи в логи Apache, имена файлов которых начинаются с error ИЛИ заканчиваются на log, необходимо использовать одно правило с двумя сопоставителями: один со значением группы процессов, а второй — с двумя значениями содержимого /path/to/error* и *log:

{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "log.source",
      "values": [
        "/path/to/error*", "*log"
      ]
    },
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-APACHEID"
      ]
    }
  ],
  "enabled": true
}

Маскировка логов Apache или MySQL

Для маскировки логов, записываемых Apache или MySQL, необходимо использовать либо два правила, либо одно правило с одним сопоставителем, имеющим два значения.

Сценарий с двумя правилами:

{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-MYSQL"
      ]
    }
  ],
  "enabled": true
},
{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-APACHEID"
      ]
    }
  ],
  "enabled": true
}

Сценарий с одним правилом, в котором сопоставитель принимает два значения:

{
  "masking": {
    "expression": "email: (.*),",
    "type": "SHA256"
  },
  "matchers": [
    {
      "attribute": "dt.entity.process_group",
      "values": [
        "PROCESS_GROUP-APACHEID", "PROCESS_GROUP-MYSQL"
      ]
    }
  ],
  "enabled": true
}

Примеры регулярных выражений

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

Конфиденциальный тип данных ReGEx
IPv4 \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Адрес электронной почты \b[\w\-\._]+?@[\w\-\._]+?\.\w{2,10}?\b
Номер кредитной карты \b[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}\b
Номер телефона \+?[0-9]{3}-?[0-9]{6,12}\b

Неподдерживаемые регулярные выражения

Маскирование данных происходит внутри всего выражения или захватывающей группы. Выражение должно соответствовать синтаксису механизма регулярных выражений и не может:

  • Примите участие в нескольких группах захвата.
  • Поместите lookbehind-утверждение нулевой длины в захватывающую группу.
  • Поместите backreference-утверждение нулевой длины в захватывающую группу.
  • Используйте жадные квантификаторы (например x?, x*, x+) или притяжательные квантификаторы (например x?+, x*+, x++). Вместо них используйте ленивые/неохотные квантификаторы (например, x?? и x+?).

Часто задаваемые вопросы

Где происходит маскирование конфиденциальных данных? Вы можете выполнить маскирование конфиденциальных данных в своей среде, чтобы конфиденциальная информация не покидала вашу инфраструктуру без защиты. Если вы импортируете данные в Ключ-АСТРОМ через стандартный механизм приема, вам необходимо замаскировать конфиденциальные данные на уровне источника, до приема. В качестве альтернативы вы можете замаскировать конфиденциальные данные во время обработки логов. Однако, если вы выберете маскирование данных во время обработки логов, ваши данные покинут вашу среду, поскольку обработка логов будет происходить на стороне Ключ-АСТРОМ. Поэтому безопаснее маскировать их внутри вашей среды.

Сколько групп захвата данных поддерживается? Один. Если ни один не указан, то весь диапазон предоставленного вами регулярного выражения рассматривается как одна захватывающая группа.

Ограничения на маскирование конфиденциальных данных

Учитывайте следующие ограничения, связанные с маскированием конфиденциальных данных:

  • Если процесс маскирования занимает слишком много времени, затронутый файл лога блокируется до перезапуска ЕдиногоАгента или внесения каких-либо изменений в конфигурацию, после чего появляется соответствующее сообщение File not monitored - incorrect sensitive data masking rule.