
Модуль «Правила»: автоматизация сценариев безопасности в BearPass
В продукте появилась возможность автоматизации получения уведомлений и запрета совершения определённых действий с помощью модуля «Правила». Он позволяет гибко настраивать условия и триггеры для улучшения процессов безопасности хранения и использования данных. Модуль предназначен для построения сценариев на основе событий в системе и выполнения действий — уведомлений или запрета операций — без ручного контроля. Подробное техническое описание доступно в документации.
Важно В релизе 2.24вышла первая версия модуля автоматизации. Мы будем рады идеям и предложениям по его развитию.
Назначение модуля «Правила»
Функционал предназначен для гибкой настройки:
- почтовых уведомлений о событиях в системе;
- запрета действий пользователей на основе условий;
- сценариев с использованием операторов и регулярных выражений.
Модуль позволяет перевести контроль безопасности из ручного режима в управляемые правила, которые работают автоматически.
Принцип работы
Правило срабатывает, когда в системе происходит выбранный тип события и выполнена логическая цепочка условий, заданная в конструкторе. После срабатывания правило выполняет действие:
- отправляет email-уведомление;
- или запрещает выполнение операции с показом сообщения пользователю.
Примеры использования
Посмотрите примеры решения задач бизнеса с помощью этого модуля, чтобы лучше понимать его возможности.
Доступ к функционалу
Если для вашей роли разрешено использование данного функционала, в административном разделе будет доступен пункт меню «Правила».

Просмотр списка правил
Основной интерфейс раздела содержит таблицу с перечнем созданных правил.
Таблица состоит из следующих колонок:
- ID — уникальный идентификатор правила в системе.
- Статус — указывает, активно ли правило в данный момент. Активные правила отмечены зеленой точкой рядом. Неактивные отображаются серым цветом.
- Название — пользовательское название правила для более удобного ориентирования в списке.
- Событие — тип события (триггера), при наступлении которого проверяется правило.
- Действие — действие, которое выполнит правило: «Запретить действие» или «Отправить уведомление».
Для каждого правила в правой части строки доступны иконки для его редактирования (карандаш) и удаления (корзина). Над списком правил расположена кнопка «Добавить» для создания нового правила.
Создание и редактирование правила
Для создания нового правила нажмите кнопку «Добавить», расположенную в правом верхнем углу над списком. Для редактирования существующего — воспользуйтесь кнопкой (карандаш) в строке нужного правила. Интерфейс создания и редактирования правила идентичен и состоит из следующих блоков:

Общие настройки
- Активно — включает или отключает правило. Неактивные правила не выполняются.
- Название — произвольное имя для удобства.
- Событие — тип события, при котором правило проверяется.
Доступные события (на момент текущей версии):
- Создание элемента
- Обновление элемента
- Перемещение элемента в корзину
- Удаление элемента из корзины
- Просмотр пароля
- Обновление права доступа к элементу
- Авторизация пользователя
Набор событий может отличаться в зависимости от версии продукта. Для доступа к актуальному списку рекомендуется использовать последнюю версию BearPass.
Условия
В этом блоке выстраивается логическая цепочка условий, которые должны быть соблюдены для срабатывания правила.

Оператор группы определяет логику для всех условий и вложенных групп. По умолчанию он установлен в положение «И» (AND), что означает, что все добавленные условия должны быть выполнены. Вы можете изменить его на «ИЛИ» (OR): в этом случае для срабатывания правила будет достаточно выполнения хотя бы одного из условий или групп условий.
Кнопками «Условие» и «Группа» вы добавляете новые элементы в конструктор.
- Условие — это одиночный элемент для проверки исполнения. В нем вы выбираете конкретный параметр (например, «Email пользователя»), оператор для его проверки (например, «содержит») и значение для сравнения (например, «@yandex.ru»). Условие считается выполненным, если выбранный параметр соответствует заданным критериям.
- Группа — это контейнер для объединения нескольких условий под одним логическим оператором («И» или «ИЛИ»). Группы можно вкладывать друг в друга для построения сложной логики.
Операторы
Ниже приведено описание логики работы каждого из доступных операторов сравнения:
равно ▾
равно — проверяет точное совпадение параметра с указанным значением.
Доступно для типов: string, integer, datetime, enum.
не равно ▾
не равно — проверяет, что параметр не совпадает с указанным значением.
Доступно для типов: string, integer, datetime, enum.
содержит ▾
содержит — проверяет, что параметр (строка) включает в себя указанную подстроку.
Доступно для типа: string.
не содержит ▾
не содержит — проверяет, что параметр (строка) не включает в себя указанную подстроку.
Доступно для типа: string.
начинается с ▾
начинается с — проверяет, что параметр (строка) начинается с указанной подстроки.
Доступно для типа: string.
заканчивается на ▾
заканчивается на — проверяет, что параметр (строка) заканчивается указанной подстрокой.
Доступно для типа: string.
совпадает с шаблоном ▾
совпадает с шаблоном — проверяет, что параметр (строка) соответствует указанному регулярному выражению.
Доступно для типа: string.
не совпадает с шаблоном ▾
не совпадает с шаблоном — проверяет, что параметр (строка) не соответствует указанному регулярному выражению.
Доступно для типа: string.
больше / меньше / больше или равно / меньше или равно ▾
больше, меньше, больше или равно, меньше или равно — производят сравнение числового значения или даты.
Доступно для типов: integer, datetime.
содержится в ▾
содержится в — проверяет, что значение параметра присутствует в указанном списке значений. Каждое значение списка вводится в отдельное поле.
Доступно для типов: string, integer, datetime, enum.
не содержится в ▾
не содержится в — проверяет, что значение параметра отсутствует в указанном списке значений.
Доступно для типов: string, integer, datetime, enum.
содержит (array) ▾
содержит (для типа array) — проверяет, что указанное единичное значение присутствует в массиве (списке) параметра.
не содержит (array) ▾
не содержит (для типа array) — проверяет, что указанное единичное значение отсутствует в массиве (списке) параметра.
Пример использования оператора

Если для параметра «Элемент → Название» выбрать оператор «содержит» и указать значение «Финанс», условие будет выполнено для элементов с названиями «Отчет по Финансам», «Финансовый отдел» и т.д. При этом, к элементу «финансовые показатели» правило применено не будет из-за разницы в регистре. Регистронезависимость можно создать самостоятельно через регулярные выражения.
Пример построения логики

Общий оператор: И
- Условие 1: Пользователь → Код роли не равно «admin»
- Группа 1 (Оператор: ИЛИ):
- Условие 2: Элемент → Название содержит 'Секретно'
- Условие 3: Элемент → Глубина равна 0
Правило сработает, если у пользователя НЕ административная роль И название элемента содержит ‘Секретно’ ИЛИ элемент с любым названием находится в корневой папке.
Регулярные выражения
При выборе операторов «совпадает с шаблоном» или «не совпадает с шаблоном» для строковых параметров вы можете использовать регулярные выражения для более гибких условий фильтрации.
Основные правила использования:
- Обработка происходит в соответствии с синтаксисом PCRE.
- Проверка выполняется с учетом регистра символов.
- Специальные символы (например, ., *, ?, [ ]) должны быть экранированы обратной косой чертой (), если должны трактоваться буквально.
- Квантификаторам (например, *, +) по умолчанию соответствует максимально длинная подходящая строка.
Пример использования в правиле:

- Событие: Создание элемента
- Условие: Элемент → Название совпадает с шаблоном « ~(пароль|password|pwd)~iu »
- Действие: Запретить с текстом уведомления «Политика безопасности нашей компании запрещает использование слова «пароль» в названиях элементов.».
Результат: Пользователю будет запрещено создавать папки или записи, в названии которых есть слова «пароль», «password» или «pwd» в любом регистре.

Действие
На данный момент возможны два типа действий при срабатывании правила:
1. Отправить почтовое уведомление

- Получатели — введите email-адреса. После ввода каждого адреса нажмите Enter, чтобы добавить его в список.
- Тема письма — укажите тему email-сообщения.
- Текст письма — составьте текст email-сообщения.
2. Запретить действие

Текст уведомления — укажите текст сообщения, которое увидит пользователь в интерфейсе BearPass при попытке выполнить запрещенное действие.
Переменные для уведомлений
Во всех уведомлениях вы можете использовать специальные коды переменных (например, %user.name%, %item.name%), которые будут автоматически заменены на актуальные данные в момент срабатывания правила. Список доступных переменных динамически отображается в блоке «Переменные». Для удобства копирования наведите курсор на нужную переменную. Обратите внимание, что у разных типов событий возможен разный набор типов переменных.
Пример использования переменных

Результат:

Примеры решения задач бизнеса с помощью модуля «Правила»
Мы выбрали несколько обращений в техническую поддержку, чтобы показать, как они могут быть решены с помощью модуля «Правила»:
1. Запретить выдавать доступ на корневые папки проектов
У нас есть проекты наших клиентов. Каждый проект - папка в BearPass в корне дерева. Проектному менеджеру выдан доступ на управление папкой проекта. Но мы сталкиваемся с ситуациями, когда некоторые менеджеры шарят всю папку клиента всем подряд. Можно ли сделать так, чтобы менеджеры не могли шарить основные папки клиентов, а только элементы внутри?
Решение:
- Событие: Обновление права доступа к элементу
- Условия:
Глубина → равно → 0 (корень) Название группы пользователей → содержит → PM
- Действие: Запретить действие с уведомлением «Для предоставления доступа к корневым папкам обратитесь к Сергею Никифорову.»
2. Уведомление об авторизации пользователя
Есть сервисный аккаунт, которым пользуется сразу несколько сотрудников. Мы хотели бы получать уведомления при каждой авторизации этого аккаунта в BearPass.
Решение:
- Событие: Авторизация пользователя
- Условие: ID пользователя → равно → NNN
- Действие: Отправить уведомление
3. Убедиться, что никто не просматривал/менял пароль и не получал к нему доступов
Как узнавать, когда кто-то получает доступ к паролю от сервиса ХХХ ?
Решение:
Первое правило:
- Событие: Просмотр пароля
- Условие: ID элемента → равно → NNN
- Действие: Отправить уведомление
Второе правило:
- Событие: Обновление прав доступа к элементу
- Условие: ID элемента → равно → NNN
- Действие: Отправить уведомление
4. Соответствие названий паролей определенным правилам
Для работы наших интеграций нам требуется, чтобы названия записей соответствовали определенной логике. При этом, записи регулярно вбиваются и обновляются десятком инженером вручную в разных условиях. Регулярно случаются опечатки из-за которых интеграции начинают сбоить. Можно ли задать проверку соответствия названий паролей определенному шаблону?
Решение:
Первое правило:
- Событие: Создание элемента
- Условие: Название → не совпадает с шаблоном → [описать регулярным выражением допустимый шаблон]
- Действие: Запретить действие
Второе правило:
- Событие: Обновление элемента
- Условие: Название → не совпадает с шаблоном → [описать регулярным выражением допустимый шаблон]
- Действие: Запретить действие
Модуль «Правила» — это первый шаг к автоматизации сценариев безопасности в BearPass.
Он позволяет:
- убрать ручной контроль;
- формализовать требования безопасности;
- автоматически реагировать на события;
- снижать риск ошибок и нарушений.
Функционал будет развиваться, и мы будем рады обратной связи от пользователей.
Рекомендуем к прочтению
- Импортозамещение менеджеров паролей: как перейти на BearPass без потерь — Как безопасно заменить зарубежный менеджер паролей и перейти на BearPass: этапы миграции, риски и практические рекомендации.
- Модуль «Правила»: автоматизация сценариев безопасности в BearPass — В BearPass появился модуль «Правила» — инструмент автоматизации сценариев безопасности. Настройка уведомлений, запрета действий, условий, триггеров и регулярных выражений для контроля хранения и использования данных.
- Переезд с Пассворк в BearPass — без ручной миграции — Автоматизированный переезд с Пассворк в BearPass: перенос пользователей, групп, ролей, прав доступа, структуры папок и LDAP без ручной настройки. Полная миграция корпоративного менеджера паролей.
- Блог BearPass — В блоге BearPass пишем о защите корпоративных доступов, управлении паролями и секретами, импортонезависимых решениях и построении безопасной ИТ-инфраструктуры.