Перейти к содержанию

Безопасность

Безопасность слоя данных

Система оперирует графовой базой данных. Данные хранятся в СУБД Apache Ignite. Безопасность данных обеспечивается следующими механизмами:

  • настройками прав доступа к службе Apache Ignite средствами операционной системы;
  • настройками прав доступа к директории с базой данных средствами операционной системы;
  • специфическим форматом хранения данных, чрезвычайно затрудняющим злоумышленнику реверс-инжиниринг базы и получение данных в понятной форме.

Безопасность слоя приложений

Архитектура разрешений в системе

Модуль контроля разрешений в Системе предназначен для контроля прав доступа пользователей как при работе через клиенты (веб-браузер, мобильное приложение), так и при запросах через API. При запросах к серверу используется одна и та же логика проверки разрешений, позволяющая реализовать централизованную политику прав доступа к данным и операциям в системе.

В ядре Системы для разрешений определяется контекст применения. Выделяется 3 основных контекста:

  • Глобальный контекст
  • Контекст шаблона записи/процесса
  • Контекст экземпляра записи/процесса/задачи

Диаграмма разрешений системы

Диаграмма разрешений системы

Защита от атак

Взаимодействие клиента и сервера происходит по протоколу HTTPS.

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

  • При работе с веб-интерфейсом осуществляется контроль вводимых данных.
  • Средствами NGINX/IIS обеспечивается контроль потока запросов:
    • С помощью RequestFiltering настраивается фильтрация запросов по:
      • Сегментами URL, которыми может попытаться воспользоваться злоумышленник.
      • Расширению файлов, которые находятся в запросе (может использоваться для блокировки запросов к файлам типа Web.config).
      • URL адресам, которые запрещено запрашивать.
      • Параметрам запроса.
    • С помощью IP Address and Domain Restrictions происходит составление «белых» и «черных» списков IP-адресов.
    • С помощью Dynamic IP Address Restrictions возможны:
      • блокировка IP-адресов, превысивших максимальное число запросов;
      • настройка поведения при запросе с заблокированного IP-адреса: дефолтный возврат HTTP ошибки 403.6 или игнорирование запроса;
      • прокси-режим блокировки, когда блокировка IP-адресов происходит по контенту запроса, а не только по IP-адресу отправителя.
  • При обмене данными между браузером и сервером происходит HMAC-подпись и последующая проверка сообщений.
  • Сервер проверяет данные и операции с точки зрения бизнес-задач и конфигурации безопасности.
  • При работе сервера происходят проверка и автоматическая очистка пользовательского контента.
  • SQL-инъекция невозможна по дизайну Системы, поскольку для запросов к графовой базе данных используется нотация N3 RDF, а не SQL.