При проектировании программного продукта «Битрикс24» в коробке» вопросам безопасности продукта уделялось особое значение на всех этапах разработки и тестирования.
Политика безопасности – набор правил, ограничивающих возможность авторизации пользователей в целях обеспечения определенного уровня безопасности сайта. Политика безопасности настраивается для группы пользователей.
Правила настройки безопасности:
- привязка сессии к IP-адресу или к сети по маске – включение данной защиты делает бесполезным перехват идентификатора сессии. Данный тип защиты является важнейшим для защиты от XSS/CSS;
- настройка срока активности сессии, чтобы скорректировать настройки PHP на хостинге;
- настройка срока активности авторизации, хранимой на компьютерах посетителей («запомнить себя»), а также привязка ее к IP-адресу или к сети по маске. Использование данной защиты делает неэффективным любые XSS/CSS атаки на компьютер пользователя, а также бесполезным похищение запомненных данных для авторизации с компьютера. Данные генерируются случайно, не содержат криптографической информации для анализа и не содержат IP-адрес данного компьютера.
- установка максимального количества одновременно запомненных авторизаций для одного пользователя. Если стоит ограничение 10, вы сможете запомнить себя только на 10 компьютерах с разными IP-адресами. После этого старые запомненные авторизации будут вытесняться и удаляться. Для администраторов данное правило устанавливается в 1.
- установка срока активности контрольного слова для восстановления пароля – это правило позволяет минимизировать риски взлома через механизм восстановления при перехвате писем.
Для группы Администраторов установлен повышенный уровень безопасности. Изменить настройки безопасности можно на странице редактирования параметров группы. Для пользователей, которые принадлежат к нескольким группам, действует самое строгое правило безопасности по каждому из пунктов, т.е. самая строгая политика безопасности.
Ядро продукта и непосредственно главный модуль содержит в себе общую для всех модулей и всего сайта в целом систему авторизации, регистрации и управления пользователями и группами пользователей. В общей базе данных регистрируются как сотрудники компании, так и пользователи веб-сайта.
Все права в системе распределяются исключительно для групп пользователей
Административный интерфейс позволяет завести любое число групп пользователей. Есть две группы, которые обязательно должны присутствовать в системе. Группа Administrator, к которой принадлежат пользователи с неограниченными правами и которым разрешается использовать на сайт программный код. И группа Everyone, к которой принадлежат все неавторизованные или незарегистрированные пользователи на сайте.
При установке продукта создается первый и единственный на этот момент пользователь в системе, который принадлежит к группе Administrator и который может выполнять на сайте все действия.
В системе заранее заведены и настроены по правам доступа следующие группы:
- Администраторы – администратор с полным доступом и правом программирования;
- Все пользователи – неавторизованный или незарегистрированный посетитель сайта;
- Сотрудники – все сотрудники компании, зарегистрированные на сайте;
- Отдел кадров – сотрудники отдела кадров;
- Руководство – руководители компании;
- Администрация портала – пользователи с полными возможностями по управлению всеми сервисами портала;
- Работает в панели управления – пользователи, которые могут работать в "Панели управления" портала.;
- Могут создавать рабочие группы – пользователи, которые могут создавать рабочие группы;
- Маркетинг и продажи – сотрудники отделов маркетинга и продаж;
- Техподдержка – сотрудники IT отдела, обеспечивающие техническую поддержку;
- Пользователи экстранета – все пользователи, имеющие доступ на сайт экстранета;
- Могут создавать рабочие группы в экстранете – все пользователи, имеющие право на создание рабочих групп на сайте экстранета;
- Администраторы сайта экстранета – пользователи с полными возможностями по управлению сервисами экстранета;
- Почтовые пользователи – пользователи, авторизуемые на портале по прямой ссылке из почтовых уведомлений.
В настройках модуля может быть проверен и настроен список пользователей, которые принадлежат к этой группе.
В настройках группы указываются права доступа к административной части модулей. Дополнительные настройки по правам доступа возможны непосредственно в модулях инфоблоков, форумов, веб-форм, опросов, торгового каталога, документооборота, рекламы, техподдержки.
Профайл пользователя содержит обязательную регистрационную информацию и необязательную информационную часть с описанием личных данных, информации о компании и данных для работы с форумом. Управление всеми пользователями выполняется в административном разделе в меню «Пользователи».
В профайле пользователя также настраивается, к каким группам принадлежит пользователь. Возможна привязка одновременно к неограниченному числу групп пользователей. От того, к какой группе принадлежит пользователь, будут зависеть его права на сайте.
Администратор системы безопасности может в любой момент получить список пользователей, которые принадлежат к той или иной группе, и скорректировать эту информацию при необходимости.
В программном продукте реализована двухуровневая система разграничения прав доступа:
- Уровень 1: доступ к файлам и каталогам
Настройка доступа к файлам и каталогам выполняется в меню Структура сайта > Управление. Достаточно отметить один или несколько каталогов или файлов и выбрать Доступ, чтобы определить какие группы пользователей имеют право на доступ к этим документам.
Права на доступ, назначенные на каталоги, наследуются для всех файлов и подкаталогов, расположенных ниже. Например, достаточно поставить на каталог / partners/ права на чтение только для группы Partners и убрать право на чтение у группы Everyone, никто из обычных посетителей уже не сможет зайти в каталог и у посетителей будет запрошена авторизация.
Если пользователь принадлежит нескольким группам, то берется максимальное право из всех прав доступа заданных для этих групп.
Если для текущего файла или каталога явно не задан уровень прав, то берется уровень прав заданный для вышележащих каталогов.
- Уровень 2: доступ к модулям и логическим операциям в модулях
Уровень 2 обеспечивает разграничение доступа к модулям и логическим операциям в модулях.
Если речь идет об обычных статичных публичных страницах, то к ним применяется только уровень 1 доступа на файлы и каталоги.
Если пользователь имеет на файл как минимум право R ("чтение") и если данный файл является функциональной частью, в которой используются API функции того или иного модуля, то проверяется 2-ой уровень прав, задаваемый в настройках соответствующего модуля.
На сегодняшний день используются две методологии разграничения прав доступа 2-го уровня: права и роли.
Отличие их заключается в том, что если пользователь обладает несколькими правами, то выбирается максимальное. Если же пользователь обладает несколькими ролями, то он соответственно будет обладать суммарными возможностями этих ролей.
Пример:
- Права. Если вы принадлежите группам, для которых в модуле "Статистика" заданы права "Полный административный доступ" и, к примеру, "Просмотр статистики без финансовых показателей", то вы будете обладать максимальным правом - "Полный административный доступ".
- Роли. Если вы принадлежите к группам, для которых в модуле "Техподдержка" заданы роли "Клиент техподдержки" и "Демо-доступ", то вы одновременно будете обладать возможностями этих двух ролей. Т.е. вы сможете видеть все обращения в режиме демо-доступа и одновременно с этим можете создавать свои обращения как клиент техподдержки.
Каждая страница сайта, созданного на базе «1С-Битрикс: Управление сайтом», начинается включением обязательного файла заголовка. Простое включение этого файла автоматически обеспечивает работу единой системы авторизации и разграничения доступа.
Система авторизации работает независимо от бизнес-логики размещенной в рабочем теле страницы. Принцип независимости системы авторизации от исполняемой части страницы обеспечивает гарантированную защиту приложениям от несанкционированного доступа и исполнения и означает, что если пользователь не будет иметь прав на доступ к странице, ему не удастся обойти систему авторизации.
Все модули в продукте обеспечивают проверку прав доступа непосредственно внутри модулей при обращении к API-функциям. Таким образом, приложения, написанные с использование API, обладают еще одним уровнем независимой защиты на уровне модулей и логических операций. И независимость работы системы авторизации при обращении к функциям API обеспечивает защищенную разработку клиентских приложений и бизнес-логики и удобное управление правами доступа в стандартном интерфейсе модулей.
При работе с административным разделом или закрытыми разделами сайта можно организовать шифрование данных.
Шифрование данных обеспечивает защиту при передаче имени и пароля пользователя, данных сессии, данных страницы и информации, размещенной на сайте, включая передачу графических файлов и любой другой информации с сайта.
Использование алгоритмов шифрования позволяет исключить целый класс потенциальных рисков, связанных с возможностью перехвата информации в канале передачи.
Промышленным стандартом для защиты веб-приложений является SSL-шифрация в рамках протокола HTTPS. Данный протокол поддерживается всеми браузерами и не требует установки дополнительных компонент для клиентов.
В качестве сертифицированных ГОСТ алгоритмов, на основе которых строится защита веб-ресурса, используются российские стандарты шифрования данных:
- ГОСТ Р 34.10-94 и ГОСТ Р 34.11-94 — операции создания и проверки электронной цифровой подписи (ЭЦП) для аутентификации клиента, а также авторизация и обеспечение юридической значимости электронных документов при обмене ими по TLS соединению;
- ГОСТ 28147-89 — операции шифрования данных и имитозащита для обеспечения конфиденциальности и контроля целостности передаваемой информации по TLS соединению.
Важнейшим инструментов в обеспечении безопасности является технология оперативного обновления SiteUpdate, которая обеспечивает возможность оперативного получения и установки без технических специалистов самых последних обновлений программного продукта «1С-Битрикс24».
Уникальная технология SiteUpdate позволяет без дополнительных расходов скачивать обновления продукта и новые модули. Данные загружаются с сайта компании «Битрикс» через веб-интерфейс административного раздела продукта. Обновления не затрагивают публичную часть сайта, полностью исключая потерю данных.
При загрузке обновлений запрашивается лицензионный ключ продукта. После проверки обновлений системы владельцу предлагается выбрать, какие обновления и модули необходимо загрузить. Все обновления и новые модули сначала сжимаются, а затем загружаются на сайт владельца. Компрессия данных в несколько раз увеличивает скорость загрузки обновлений продукта.
Таким образом, владелец продукта может поддерживать постоянную актуальность системы и оперативно получать новые модули.
Подробную информацию о работе технологии обновлений можно получить в статье Технология SiteUpdate.
Модуль веб-аналитики предоставляет возможность анализировать рекламные кампании, оценивать затраты на определенный канал рекламы, анализировать посещаемость разделов и страниц портала, получать исчерпывающую информацию о посетителях и многое другое.Основные возможности модуля веб-аналитики
- Статистика посещаемости портала
- Сегментация аудитории на потоки
- Анализ рекламных кампаний
- Пути по порталу и отрезки путей
- Ссылающиеся сайты
- Анализ активности поисковиков
- Учет событий на портале
- Экспорт любых данных в формате Excel
Подробнее о модуле Веб-аналитики можно прочитать в специальном разделе.
Большинство проблем и уязвимостей в программных продуктах связано с неправильной обработкой переменных поступающих из форм или с некорректной работой с внешними файлами или данными.
При разработке программного продукта «1С-Битрикс24» разработана методика обработки внешних переменными и файлов, поступающих извне.
Для обработки переменных в программном продукте реализованы функции по подготовке переменных к безопасному использованию в SQL-запросах и функциональных модулях.
Для приема файлов от пользователя реализованы специальные функции класса CFile, которые обеспечивают безопасную обработку файлов в программном продукте.
Такая концентрация ключевых участков кода с точки зрения безопасности в едином месте позволяет разрабатывать безопасные веб-приложения с минимальными усилиями.