Info-Expert.ru

Архитектура безопасности «Битрикс: Управление сайтом»

Архитектура безопасности «Битрикс: Управление сайтом»

При проектировании программного продукта «Битрикс: Управление сайтом» вопросам безопасности продукта уделялось особое значение на всех этапах разработки и тестирования.

Единая система авторизации

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

Все права в системе распределяются исключительно для групп пользователей.

Административный интерфейс позволяет завести любое число групп пользователей. Есть две группы, которые обязательно должны присутствовать в системе. Группа Administrator, к которой принадлежат пользователи с неограниченными правами и которым разрешается использовать на сайт программный код. И группа Everyone, к которой принадлежат все неавторизованные или незарегистрированные пользователи на сайте.

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

Начиная с версии 4.0, в системе заранее заведены и настроены по правам доступа следующие группы:

  • Administrators – администратор с полным доступом и правом программирования;
  • Everyone – неавторизованный или незарегистрированный посетитель сайта;
  • Registered users – зарегистрированный пользователь по умолчанию приписывается к этой группе. Изменить настройку или приписать пользователя сразу к нескольким группам можно в Настройках системы - Модули - Главный модуль;
  • Partners – партнеры компании;
  • Customers - клиенты;
  • Content editors - редакторы контента и данных инфоблоков;
  • Techsupport administrators – администратор техподдержки;
  • Techsupport staff - сотрудники техподдержки;
  • Advertising admin istrators администратор системы рекламы;
  • Advertisers – рекламодатель;
  • Advertising managers менеджер управления рекламой;
  • Workflow admin istrators – администратор системы документооборота;
  • Forum Moderators – модераторы форумов.

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

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

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

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

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

Разграничение прав доступа

В программном продукте реализована двухуровневая система разграничения прав доступа:

Уровень 1: доступ к файлам и каталогам.
Уровень 2: доступ к модулям и логическим операциям в модулях.

Уровень 1. Настройка доступа к файлам и каталогам выполняется в меню Структура сайта > Управление. Достаточно отметить один или несколько каталогов или файлов и выбрать Доступ, чтобы определить какие группы пользователей имеют право на доступ к этим документам.

Права на доступ, назначенные на каталоги, наследуются для всех файлов и подкаталогов, расположенных ниже. Например, достаточно поставить на каталог / partners/ права на чтение только для группы Partners и убрать право на чтение у группы Everyone, никто из обычных посетителей уже не сможет зайти в каталог и у посетителей будет запрошена авторизация.

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

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

Уровень 2 обеспечивает разграничение доступа к модулям и логическим операциям в модулях.

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

Если пользователь имеет на файл как минимум право R ("чтение") и если данный файл является функциональной частью, в которой используются API функции того или иного модуля, то проверяется 2-ой уровень прав, задаваемый в настройках соответствующего модуля.

Пример:

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

На сегодняшний день используются две методологии разграничения прав доступа 2-го уровня:

  • права
  • роли

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

Роли сейчас поддерживаются в двух модулях: "Техподдержка" и "Реклама". Во всех остальных модулях и используются права.

Пример:
  • Права. Если вы принадлежите группам, для которых в модуле "Статистика" заданы права "Полный административный доступ" и, к примеру, "Просмотр статистики без финансовых показателей", то вы будете обладать максимальным правом - "Полный административный доступ".
  • Роли. Если вы принадлежите к группам, для которых в модуле "Техподдержка" заданы роли "Клиент техподдержки" и "Демо-доступ", то вы одновременно будете обладать возможностями этих двух ролей. Т.е. вы сможете видеть все обращения в режиме демо-доступа и одновременно с этим можете создавать свои обращения как клиент техподдержки.

Независимость системы контроля доступа от бизнес-логики страницы

Каждая страница сайта, созданного на базе «Битрикс: Управление сайтом», начинается включением обязательного файла заголовка. Простое включение этого файла автоматически обеспечивает работу единой системы авторизации и разграничения доступа.

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

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

Возможность шифрования информации

При работе с административным разделом или закрытыми разделами сайта можно организовать шифрование данных.

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

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

Промышленным стандартом для защиты веб-приложений является SSL-шифрация в рамках протокола HTTPS. Данный протокол поддерживается всеми браузерами и не требует установки дополнительных компонент для клиентов. Сертификат может быть получен на сайте компании Verisign http://www.verisign.com/

В России сертификат SSL можно оформить через компанию провайдера или в компании RBC http://ssl.rbc.ru/

В качестве сертифицированных ГОСТ алгоритмов, на основе которых строится защита веб-ресурса, используются российские стандарты шифрования данных:

  • ГОСТ Р 34.10-94 и ГОСТ Р 34.11-94 — операции создания и проверки электронной цифровой подписи (ЭЦП) для аутентификации клиента, а также авторизация и обеспечение юридической значимости электронных документов при обмене ими по TLS соединению;
  • ГОСТ 28147-89 — операции шифрования данных и имитозащита для обеспечения конфиденциальности и контроля целостности передаваемой информации по TLS соединению.

Система обновлений SiteUpdate

Важнейшим инструментов в обеспечении безопасности является технология оперативного обновления SiteUpdate, которая обеспечивает возможность оперативного получения и установки без технических специалистов самых последних обновлений программного продукта «Битрикс: Управление сайтом».

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

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

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

Подробную информацию о работе технологии обновлений можно получить в разделе "Технология SiteUpdate".

Политика работы с переменными и внешними данными

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

При разработке программного продукта «Битрикс: Управление сайтом» разработана методика обработки внешних переменными и файлов, поступающих извне.

Для обработки переменных в программном продукте реализованы функции по подготовке переменных к безопасному использованию в SQL-запросах и функциональных модулях.

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

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


Также безопасности сайтов разработанных на "Битрикс: управление сайтом" способствуют:

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

Программному продукту «Битрикс: Управление сайтом 4.0» присвоена категория «Безопасное веб-приложение» и выдан сертификат соответсвия.