Разработка системы обезличивания баз данных
Компания
Компания «Crosstech Solutions Group» («CTSG»), была создана в 2018 году и является российским разработчиком решений в сфере информационной безопасности для мониторинга, контроля и комплексной защиты от внутренних угроз с учетом специфики каждой отдельной организации. На 2024 год в ней трудятся более 200 сотрудников, а продукты входят в реестр российского ПО и рекомендованы для импортозамещения на предприятиях России. Компания работает с заказчиками из разных областей и сфер: банки, государственные компании, крупный ритейл и другие.
Ситуация
На текущий момент у многих организаций, которые работают с чувствительной информацией, есть потребность в обезличивании собственных баз данных во избежание их утечек и «сливов». Это касается персональных данных, коммерческой тайны или любой другой конфиденциальной информации. По статистике около 90% из компрометируемых данных в РФ составляет доля именно персональных данных, так как они являются самыми дорогими и востребованными на «черном» рынке.
С уходом зарубежных решений с российского рынка компания «Crosstech Solutions Group» поставила перед собой задачу разработать отечественный продукт, который позволил бы решить проблему обнаружения и обезличивания чувствительных данных в базах клиентов.
Решение
«CTSG» смогли создать микросервисное приложение, которое работает с базами данных разных типов и объёмами более 30 терабайт.
Для реализации была выбрана платформа Jmix по ряду причин:
- Большое количество встроенной функциональности, который можно использовать «из коробки»;
- Вместо целой команды front и back часть может реализовать один fullstack-разработчик;
- Гибкая функциональность ролей, с помощью которого разграничивается доступ к функциям системы;
- Встроенная интеграция с LDAP и конструктор дашбордов, которые требуются каждому клиенту;
- «Под капотом» Jmix использует Spring Boot, что позволяет применять все преимущества последнего, в том числе набор инструментов для управления микросервисами Spring Cloud.
Система выполняет следующие ключевые функции: подключается к базе данных, автоматически обнаруживает чувствительную информацию в её таблицах и столбцах и обезличивает её разными методами: по словарям, заменой на константное значение, случайной заменой части значения и другими способами.
Одновременно система позволяет работать с несколькими базами данных. Подключения к ним настраиваются в планах обезличивания. Статус работы с тем или иным подключением подсвечивается определённым цветом.
В результате выполнения процессов система отображает статистику по созданным планам обезличивания.
Архитектура
На рисунке ниже приведена архитектурная схема решения. Система поддерживает распределённую установку на несколько виртуальных машин, позволяя запускать много экземпляров сервисов на каждой из них.
Компонент UI-интерфейса «JMIX» – микросервис, отвечающий за графический интерфейс. Он не поддерживает масштабирование и представляет собой приложение, разработанное на базе Jmix.
Сервисы «DATAPROCESSOR», «ANALYZER» и «MASKING» являются масштабируемыми и занимаются работой с базой данных, анализом информации и маскированием данных соответственно. Они также реализованы в виде приложений на платформе Jmix.
Система также предоставляет ряд служебных сервисов: «REGISTRY» отвечает за регистрацию экземпляров других микросервисов, «GATEWAY» – обеспечивает единую точку входа в систему для пользователей (по единому IP и порту), «REDIS» – быстрое «In memory» хранилище данных для обеспечения хранения кэша, «RabbitMQ» – программный брокер сообщений, обеспечивающий равномерное распределение нагрузки на остальные микросервисы.
Помимо этого, в состав системы входит популярная тройка инструментов Grafana + Prometheus + Loki, использующиеся для мониторинга и сбора данных в современных системах.
Одним из основных преимуществ продукта является скорость обнаружения чувствительных данных и их обезличивания – она достигает нескольких тысяч значений в секунду. Помимо этого, скорость работы системы может регулироваться масштабированием количества микросервисов анализатора или маскировщика чувствительных данных.
В процессе разработки решения были использованы следующие дополнения (AddOns):
- Русская локализация – для перевода интерфейса на русский язык;
- Email – для отправки уведомлений о начале/завершении процессов профилирования или маскирования;
- Quartz – для запуска процессов обезличивания по расписанию;
- Rest API – для взаимодействия между микросервисами и внешнего обращения;
- LDAP – для бесшовной интеграции с MS Active Directory и подключения доменной аутентификации;
- Dashboards и Charts– для отображения статистических дашбордов и инфопанелей.
Кто заказчики
Система Jay Data используется крупными финансовыми организациями для подготовки тестовых ландшафтов и полигонов с тестовыми данными. С такими полигонами могут работать любые подрядчики, разработчики, бизнес-аналитики, дата инженеры и тестировщики, не получая при этом прав доступа к реальным персональным и чувствительным данным, что исключает риск их компрометации и утечки. Также это избавляет от необходимости оформления допуска разработчиков к таким данным и сокращает количество бюрократических процедур и требований безопасности к тестовым полигонам.
В отличие от варианта с подготовкой обезличенной версии баз данных «вручную», выполнение этой задачи с помощью Jay Data имеет ряд неоспоримых преимуществ:
- Обезличенная база данных сохраняет оригинальный объем;
- В обезличенной базе данных сохраняется консистентность (например, количество уникальных имён и фамилий в исходной и обезличенной базах остаётся прежним);
- Исключаются пропуски чувствительных данных из-за человеческого фактора;
- Сохраняются связи между строками и таблицами баз данных;
- Сохраняются и проверяются контрольные суммы в специальных полях (например, в номерах банковских карт или ИНН);
- Контролируется целостность данных (например, уникальность или обязательность значений в полях).
В результате работы системы клиент получает базу, в которой данные выглядят как реальные, но на самом деле таковыми не являются. Злоумышленник даже не всегда сможет понять, что перед ним обезличенная версия базы. При этом бизнес-аналитики по-прежнему могут выявлять закономерности в данных, а разработчики и тестировщики дорабатывать бизнес-системы, которые с этими базами работают.
Примеры результата обезличивания приведены в таблице ниже.
Дополнительным сценарием применения Jay Data является обеспечение банков соответствию стандартам PCI DSS с целью выполнения требований платежной системы Мир и сотрудничества с Union Pay. При внедрении решения Jay Data для хранения номеров карт PAN (Primary Account Number) в замаскированном виде только персонал банка при бизнес-необходимости может видеть все платежные данные клиентов. Это даёт возможность успешно пройти процесс сертификационного аудита на соответствие требованиям международного стандарта безопасности данных PCI DSS.
Результат
Использование Jmix для реализации продукта Jay Data позволило в сжатые сроки создать российское решение по обезличиванию данных, которое используется крупными компаниями для импортозамещения ушедших с рынка зарубежных аналогов. Благодаря большому количеству встроенных функций разработчики были сосредоточены на реализации бизнес-логики системы, а не на типовых операциях, что позволило значительно сэкономить на размере команды и повысить скорость разработки. Помимо этого, данный кейс показывает возможность применения Jmix для реализации микросервисных приложений, работающих с огромными объёмами данных.