Привет, Хабр!

Сегодня хочу поговорить о том, что такое безопасность данных, и какие свойства информации ее обеспечивают, где в BI-системах уязвимые места и как защитить свои данные. Поехали!

Что такое «Информационная безопасность»?

Информационная безопасность (ИБ) — это комплекс мер и средств, направленных на защиту конфиденциальности, целостности и доступности информации.

Информационные угрозы могут быть следующими:

  • Несанкционированный доступ

  • Запись новой информации

  • Исследование

  • Изменение

  • Искажение

  • Раскрытие

  • Использование

  • Уничтожение данных

Это в полной мере относится как к данным в электронном виде, так и к хранящимся на физических носителях (например, бумажным документам). Особенно серьезными считаются угрозы, связанные с «преступлением как услугой» (англ. Crime-as-a-Service), т.е. заказными атаками, Интернетом вещей, цепями поставок и усложнением требований регуляторов.

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

Основные свойства информации

Свойства информации претерпевали изменения с развитием самой IT-инфраструктуры.

В 1975 году Джерри Зальцер (Массачусетский технологический институт) и Майкл Шрёдер предложили три ключевых принципа, которые еще называют триадой CIA (Confidentiality, Integrity, Availability):

  • Конфиденциальность – это свойство информации быть недоступной или закрытой для неавторизованных лиц.

  • Целостность – это свойство информации сохранять правильность и полноту. Ее не должны неправомерно править снаружи и делать неконсистентной.

  • Доступность – данные должны быть готовы к использованию по запросу авторизованного субъекта, имеющего на это право.

В 1998 году Донн Паркер дополнил классическую триаду ещё тремя аспектами:

  • Владение или контроль (англ. Possession or Control)

  • Аутентичность (англ. Authenticity)

  • Полезность (англ. Utility)

Система из 6 пунктов получила название «Паркеровская гексада».

В 2009 и 2011 появились новые модели, но классической по-прежнему остается CIA. Хотя, в профессиональной среде постоянно поднимается вопрос о ее современности.

Например, Международный стандарт ISO использует следующую схему:

  • подлинность — свойство, гарантирующее, что субъект или ресурс идентичны заявленному;

  • невозможность отказа — способность удостоверять имевшее место событие или действие и их субъекты так, чтобы это событие или действие и субъекты, имеющие к нему отношение, не могли быть поставлены под сомнение;

  • подотчётность — ответственность субъекта за его действия и решения;

  • достоверность — свойство соответствия предусмотренному поведению и результатам.

Мы в статье будем опираться на триаду CIA.

Чем безопасность данных в BI отличается от других IT-систем?

Тем, что данных, собственно, очень много: BI работает с большими объемами информации. А значит, вопрос безопасности данных и разделения доступа к ним относится к первостепенной важности.

Кроме того, с точки зрения бизнеса определенные данные могут быть чувствительными.

Чувствительные данные – данные, раскрытие которых может нести риски для субъекта, к которому они относятся.

Нет единого стандарта, что относится к такого рода данным – каждая компания сама определяет, какую информацию считать конфиденциальной. Главное отличие – в степени последствий, которые наступят, если данные украдут или изменят. Это могут быть личные данные сотрудников и клиентов, номера счетов, данные по оплатам, клиентская база и т.п.

Но и к ним система должна предоставлять доступ по запросу авторизованного пользователя.

То есть, основные усилия должны быть направлены на соблюдение триады CIA – конфиденциальности, целостности и, в то же время, доступности. Это достигается за счет мер, которые развивают BI-системы.

Проверка подлинности пользователя

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

Для этого используют различные протоколы аутентификации и авторизации.

У нас в Modus (кроме внешних) есть еще свой встроенный протокол, который не использует стороннее ПО - аутентификация и проверка доступа происходят внутри нашего приложения.

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

Клиент аутентификации
Клиент аутентификации

Также могут использоваться другие протоколы - SAML, OAuth, позволяющие использовать стороннее ПО (keycloak, adfs, Битрикс).

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

При выполнении процедуры аутентификации взаимодействие с сервером должно выполняться с использованием защищенного протокола - https. Желательно иметь возможность организовать это взаимодействие как с помощью BI-системы, так и с помощью стороннего ПО, например, nginx.

В Modus организовать взаимодействие по https можно двумя способами. При организации httpsбез стороннего ПО мы поддерживаем несколько версий протокола TLS: от устаревших 1.0,1.1 до более современных 1.2 и 1.3.

Доступ к информации и права пользователя

После прохождения аутентификации важная часть получения доступа к информации — это авторизация, которая определяет, что пользователь может делать в системе.

Управление доступом может быть:

- ролевое, когда права доступа группируются с учётом специфики их применения, образуя роли;

- избирательное, когда пользователь идентифицируется, как принадлежащий группе или процессу, которая имеет или не имеет доступ к определенной информации;

- мандатное – когда определенная информация помечается, как конфиденциальная, а пользователю, в свою очередь, присваивается или не присваивается право доступа к ней;

- гибридное (смешанное).

Мы в Modus используем гибридную схему на основе ролевого и избирательного управления доступом.

Присвоение роли
Присвоение роли

У нас есть три базовых роли (по степени уменьшения прав):

  • администратор (супер-пользователь);

  • аналитик;

  • пользователь.

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

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

Пользователь использует доступные ему дашборды, но ничего не настраивает и метаинформацию редактировать не может. Он может открывать отчеты, фильтровать данные, настраивать фильтры, возможно, экспортировать и выгружать данные. Это роль с наименьшим количеством прав.

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

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

С помощью ролей и профилей доступа BI-система решает, кому и какую информацию можно предоставить. Это касается и метаданных портала c настройками, и данных бизнеса.

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

Аналитический портал работает напрямую с разными базами данных в режиме SQL-запросов. Т.к. в портале есть инструменты для написания этих запросов (базовые действия аналитика), то для сохранения целостности данных необходимо контролировать то, какие запросы пишет аналитик.

Мы, как правило, дополняем возможности соответствующих СУБД, у которые есть свои механизмы, связанные с безопасностью, ролевым доступом, назначением прав на определенные таблицы. Поэтому очень важно следить за тем, какие права и привилегии предоставляет администратор СУБД. Если большое количество сотрудников будет работать с базой данных под ролью супер-пользователей, то волшебства не произойдет, и возможно нарушение целостности и конфиденциальности информации.

С точки зрения "доступности" данных мы принудительно ограничиваем объемы, с которыми может работать приложение и пользователь. Это позволяет регулировать нагрузку без потери достоверности данных.

Доступ пользователей к бизнес-данным

Выше я уже говорил, что необходимо следить за тем, какие данные на уровне таблиц и кубов должны быть доступны пользователям. Однако, зачастую в BI системах (и не только в них) возникает необходимость разграничить доступ для различных пользователей внутри одной таблицы или куба.

К примеру, фактические продажи одного подразделения не должны быть доступны для сотрудников другого подразделения.

Однако, для руководителей и топ менеджмента данные должны быть доступны все. Для подобного разграничения используются механизмы RLS - доступ на уровне строк.

RLS мы настраиваем 2 способами:

1. Удобный графический интерфейс, где все настраивается без программирования. Самый простой в использовании – достаточно посмотреть документацию. Этот способ хорошо подойдет для небольших данных и не очень больших компаний.

+ просто настроить

- на больших данных возможно замедление при получении данных

2. С помощью серверных пользовательских переменных - SQL-запрос дополняется секциями, в которых аналитик настраивает фильтры.

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

+ возможна интеграция с данными из внешних систем аутентификации/авторизации. Например, передача ИНН, имени подразделения, по которым должны быть отфильтрованы данные.

- сложность входа и первоначальной настройки. Но также есть документация и примеры настройки

Другие методы

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

Помимо анализаторов кода в целом следим за тем, чтобы не было возможности SQL-инъекции. SQL injection - это атака, во время которой вредоносный код вставляется в строки, которые будут переданы для анализа и выполнения.

Например, есть поле для ввода пароля. И злоумышленник может вместо пароля ввести некий SQL-запрос, который передается в СУБД и выполняется as is.

Также мы не храним такие данные, как пароли, в открытом виде – одни мы храним зашифрованными, другие в виде хэша.

И конечно, мы постоянно проводим аудит системы как собственными силами, так и с привлечением для этого партнеров.

Наши планы по развитию

Мы будем развивать RLS: построим серединное решение, чтобы RLS можно было настроить в интерфейсе, и это не сказывалось на скорости работы системы даже потенциально.

Также планируем совершенствовать механизмы логирования в части доступа к данным и их изменению.

Комментарии (0)