Требования к безопасности веб-проектов на «1С-Битрикс»
В вопросе создания веб-проектов безопасность является главным приоритетом.
«1С-Битрикс» — популярная система управления контентом, которая помогает создавать надежные проекты. Но она, как и любая CMS, не застрахована от угроз безопасности. Поэтому крайне важно принимать меры для защиты, что особенно актуально для крупных проектов, в которых выше шанс атак недоброжелателей и высокая стоимость реализации рисков.
В статье мы обсудим основные требования безопасности, которые следует учитывать при разработке и эксплуатации веб-проекта на «1С-Битрикс».
Типы атак
Два самых распространенных типа атак на веб-сайты — XSS и SQL-инъекция. Вот как они работают:
- XSS (межсайтовый скриптинг) — злоумышленник вводит код на веб-сайт, который затем выполняется посетителями сайта. Это позволяет злоумышленнику украсть конфиденциальную информацию: учетные данные для входа в систему или личные данные.
- SQL-инъекция — злоумышленник вводит SQL-код в веб-форму или ссылку, который затем выполняется внутренней базой данных веб-сайта. Это позволяет злоумышленнику получить доступ к базе данных и изменить эти данные, потенциально скомпрометировав конфиденциальную информацию.
Всегда проверяйте данные от пользователя — валидируйте их программными средствами
Напишите код проверки всех внешних данных. Если отправляемые данные не проходят какую-либо из проверок, исходите из того, что данные небезопасны.
Например, мы запрашиваем e-mail через форму. После отправки формы пользователем мы не должны слепо верить, что он указал e-mail, и без проверок начать использовать данную строку в наших скриптах.
Какие языки учить в 2023 году, если собираетесь в геймдевtproger.ru
Мы должны проверить данные на соответствие. Если данные соответствуют — продолжить работу скрипта. В противном случае — прервать работу и вывести ошибку. То же касается любых других данных: данные с отправленных форм, cookies, различные GET-параметры и т. д.
Настройте права доступа к веб-проекту
Разделите права доступа по ролям
Разделение ролей обязательно. В зависимости от зоны ответственности необходимо выдавать права к определенным блокам на сайте. Например, контент-менеджер получает доступ к админ-панели для наполнения контента на сайте.
Полный админский доступ выдается только сотрудникам с определенными компетенциями.
Ограничьте доступ в админку по IP
У каждого сотрудника, имеющего доступ к админке, должен быть статичный IP. Любые попытки авторизации по логину и паролю, но с другим IP, должны быть неуспешными.
Если этого сложно достичь (например, у вас распределенная команда по миру), можно настроить внутренний VPN — тогда все подключенные через него сотрудники будут иметь один статичный IP, которому будет разрешен вход в административную панель.
HTTP-авторизация
Добавьте HTTP-авторизацию на критичные ссылки проекта, в том числе на админскую панель — это еще 1 слой с логином-паролем (которые также можно создавать отдельно на каждого пользователя), которые нужно внести, чтобы посмотреть информацию по целевой ссылке.
Регулярно обновляйте версию «1С-Битрикс» и модули, которые вы устанавливали из маркетплейса
Устанавливайте критические обновления и продлевайте лицензию для исправления уязвимостей в системе безопасности и улучшения общей функциональности платформы. Помните: чтобы обеспечить безопасность вашего веб-проекта, важно быть в курсе последних обновлений и исправлений.
Осознанно используйте сторонние модули
Сторонние модули могут содержать уязвимости. Используйте проверенные модули, которые постоянно обновляются, поддерживаются и развиваются.
Важно! При приобретении конкретной редакции (например, «Бизнес») нежелательно активировать все модули. Активируйте только необходимые.
«1С-Битрикс» имеет модульную структуру, в которой каждый модуль выполняет свою функцию. Например, модуль инфоблоков отвечает за работу всех инфоблоков. В зависимости от необходимого функционала есть разные редакции «1С-Битрикс». В каждой редакции заложен свой набор модулей.
Не используйте фреймворки или наборы библиотек, расположенные на внешних неконтролируемых ресурсах
Нельзя подключать скрипты, которые располагаются на внешних ресурсах — разработчик не может их контролировать и гарантировать безопасность. Вместо этого используйте большие проверенные площадки, такие как Google и Яндекс.
Скрывайте служебную информацию об ошибке на сайте
Для ошибок на сайте (например, 404) обычно заранее готовят информацию для пользователя. При возникновении ошибок не нужно выводить служебную информацию, потому что она может заинтересовать злоумышленника. Он может посмотреть пути, в каком скрипте произошла ошибка, структуру на сервере и использовать информацию против владельца сайта. Также не раскрывайте информацию о том, какую версию ПО «1С-Битрикс» вы используете.
Внедрите брандмауэр и решения для резервного копирования
Брандмауэр и резервное копирование обязательны для защиты вашего веб-проекта «1С-Битрикс». Брандмауэры могут помочь предотвратить несанкционированный доступ к проекту, отслеживая входящий и исходящий сетевой трафик. Резервное копирование может помочь восстановить проект до его предыдущего состояния в случае потери каких-либо данных из-за нарушений безопасности или по другим причинам.
Данным вопросом на наших проектах занимается DevOps-инженер. Он настраивает резервное копирование сайта различными методами: резервное копирование средствами «1С-Битрикс», «сырое» копирование файлов и базы данных и др.
Как часто делать резервное копирование?
Это зависит от нагруженности и активности веб-проектов и критичности вашей операционной деятельности. Так, если на вашем сайте создается 1000 заказов в день, нужно делать резервное копирование несколько раз в сутки. Для обычных интернет-магазинов низкого и среднего сегмента будет достаточно делать резервную копию один раз в сутки. Корпоративные сайты — раз в несколько дней. И не забывайте проверять бэкапы на целостность..
Важно! Целесообразно регулярно тестировать снятые резервные копии с целью проверки того, как они разворачиваются и будет ли «жив» сайт, развернутый из бекапа.
Система контроля версий файлов (git и другие vcs)
На любых проектах необходимо использовать системы контроля версий файлов вашего сайта. Это позволит облегчить и ускорить работу программистов и даст возможность контролировать, какое состояние функционала сайта необходимо отразить в конкретный момент времени.
Используйте надежные пароли
Одним из самых простых способов повысить безопасность вашего веб-проекта является использование надежных паролей. Всем пользователям, имеющим доступ к админке, необходимо использовать надежные пароли, содержащие комбинацию заглавных и строчных букв, цифр и специальных символов (например, 9GZ$d7N@NJP30Q&hK5ZVedS).
Одна пара логин-пароль должна принадлежать только одному пользователю/аккаунту.
30 лучших deepnude ботов и программ для раздевания по фотографииtproger.ru
Использование одной пары логин-пароль для всех пользователей, имеющих доступ к админке, считается плохой практикой.
Также необходимо регулярно (например, 1 раз в месяц) менять пароли ко всем учетным записям.
Ограничьте количество вводимых паролей
Одним из эффективных методов повышения безопасности веб-проектов является ограничение количества попыток ввода пароля.
Это может помочь предотвратить атаки методом перебора, когда злоумышленник пытается угадать пароль пользователя, многократно пробуя различные комбинации. За счет ограничения количества попыток снижается способность злоумышленника угадать правильный пароль. После определенного количества неудачных попыток блокируется учетная запись пользователя.
Используйте двухфакторную аутентификацию
Включение двухфакторной аутентификации повышает дополнительный уровень безопасности вашего веб-проекта. Двухфакторная аутентификация требует от пользователей предоставления дополнительной формы идентификации, такой как уникальный код, отправляемый на их мобильные устройства (в виде смс или в отдельном приложении, например, Google Authenticator). Этот метод может предотвратить несанкционированный доступ к вашему веб-проекту, даже если пароль скомпрометирован.
Ограничьте время сессии пользователей, находящихся в админке
Чтобы ограничить время сеанса пользователей, находящихся в панели администратора, возможно реализовать функцию автоматического выхода из системы. Эта функция выводит пользователей из системы после определенного периода бездействия. Также возможно установить максимальное ограничение по времени сеанса. Как только лимит времени будет достигнут, пользователь выйдет из системы. Это может помочь предотвратить несанкционированный доступ к панели администратора.
Используйте CAPTCHA
Это мера безопасности, используемая в веб-проектах для гарантии того, что пользователи являются людьми, а не ботами.
CAPTCHA обычно включает в себя просьбу пользователей идентифицировать искаженные буквы или цифры, выбрать определенные изображения или выполнить другие задачи, которые трудно выполнить ботам. CAPTCHA позволяет предотвратить доступ автоматических скриптов к вашему сайту, и веб-разработчики могут помочь защитить свои проекты от спама, взломов и других форм вредоносной активности.
Используйте SSL-сертификаты
SSL-сертификаты шифруют данные, передаваемые между сервером и браузером, что затрудняет перехват данных кем бы то ни было.
Анализируйте логи сайта
Регулярный анализ логов ошибок и посещения сайта позволит оперативно выявлять угрозы и корректно реагировать на них, вычленять ненужных ботов и ограничивать их активность, банить надоедливые парсеры, ориентироваться в методах применяемых атак и планировать развитие защиты на будущее.
Внедрите и соблюдайте режим принятия на работу новых сотрудников и увольнения старых
У учетных записей уволенных сотрудников должны быть изменены логины-пароли и позже сами учетные записи должны быть деактивированы. У новых сотрудников должны быть уникальные логины и пароли.
Проверяйте похожие доменные имена вплоть до смешения
Желательно отслеживать и тем или иным образом контролировать схожие доменные имена с названием вашего проекта, чтобы недоброжелатели не могли использовать схожее доменное имя и вымогать у пользователей финансы без выполнения обязательств.
Выполните настройки встроенных средств защиты и журналирования
1. Настройки > Настройки продукта > Настройки модулей > Главный модуль > Журнал событий