За последний месяц участились случаи взломов сайтов на 1С-Битрикс и Битрикс24.
Статья будет дополняться. Добавьте в закладки, чтобы не потерять.
28 июня 2022 года (в день независимости Украины) появились сообщения о взломе десятков сайтов (точные цифры неизвестны). Вот так стали выглядеть взломанные ресурсы:
Надо отдать должное, 1С-Битрикс закрыл все известные уязвимости еще в мае и разослал информационные письма. Так что взлому подвержены только сайты на старых версиях CMS.
В официальном заявлении 1С-Битрикс также говорит об отсутствии уязвимостей в актуальной версии CMS.
Как обновить 1С-Битрикс самостоятельно
Если вы еще не обновили свой битрикс, крайне советуем это сделать. Если вдруг вы поддерживаете сайт своими силами, напомню порядок действий:
- Обновить можно сайт только на активной лицензии. Да, придется покупать продление, если у вас его нет.
- Сделайте свежий бэкап сайта (проверьте его наличие).
- По возможности разверните резервную копию на тестовом сервере и обновите сайт там.
- Если вы уверены, что обновления у вас проходят без проблем, в ядро вы не вмешивались, а весь код поддерживает PHP 7.4 – обновляйте.
- Если нужно обновить PHP и MySQL до актуальных версий – обновляйте. Предварительно лучше сделать бэкап на уровне сервера / хостинга.
- Проверьте работоспособность всех разделов сайта.
Как еще обезопасить сайт?
Универсальные рекомендации следующие:
- Периодически меняйте пароли.
- Настройте регулярное резервное копирование в облако. Резервные копии в папке сайта легко удалить.
- Деактивируйте административные аккаунты, если вы не знаете кому они принадлежат или если сотрудник уже не работает у вас.
- Просканируйте сайт на наличие уязвимостей с помощью встроенного функционала Битрикса.
Понимаем, что не все читатели статьи технические специалисты, поэтому давайте вкратце расскажем про основные моменты.
Смените пароли
Поменяйте пароли не только Администраторов, но и всех, кто имеет доступ к админке (контент-менеджеры, администраторы магазина и т.д.).
Пароли должны быть сложными: не менее 8 символов, а также должны содержать буквы в разном регистре, цифры и символы.
Смените пароль к Хостингу и к FTP/SFTP аккаунтам. Это можно сделать в настройках Хостинга.
Повысьте уровень безопасности Администраторов
Установите “Повышенный” уровень безопасности администраторов.
Сделать это можно на странице: Настройки - Пользователи - Группы пользователей. Далее переходите в редактирование группы “Администраторы”.
Включите встроенную в 1С-Битрикс защиту
Включите Проактивную защиту: Настройки – Проактивная защита – Проактивный фильтр.
Включите Веб-антивирус: Настройки – Проактивная защита – Веб-антивирус.
Включите защиту сессий: Настройка – Проактивная защита – Защита сессий.
Включите защиту от редиректов: Настройка – Проактивная защита – Защита редиректов.
Включите защиту от фреймов: Настройка – Проактивная защита – Защита от фреймов.
Если у вас используется статический IP, включите защиту Административного раздела: Настройки – Проактивная защита – Защита административного раздела.
Если возможно, включите двухфакторную авторизацию.
Просканируйте сайт на наличие уязвимостей
Зайдите в Настройки – Проактивная защита – Сканер безопасности и запустите сканирование.
Смотрите какие тесты сайт не прошел и выполните рекомендации. Также рекомендации можно посмотреть тут: Настройки – Проактивная защита – Панель безопасности.
Установите модуль “Поиск троянов” из Маркетплейса: https://marketplace.1c-bitrix.ru/solutions/bitrix.xscan/
Просканируйте сайт и устраните недочеты. После установки модуль можно найти здесь: Настройки – bitrix.xscan – Поиск троянов.
Поищите файлы, которые были изменены недавно. Если есть доступ к консоли, это можно сделать командой:
find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
Проверяем каждый файл из списка вручную.
Удалите файл /bitrix/tools/putin_***lo.php
Проверьте агенты на наличие подозрительных записей
Переходите в Настройки – Настройки продукта – Агенты.
Удалите подозрительные.
Что делать если уже взломали и нет доступа в админку?
Мы писали как можно авторизоваться под администратором без пароля в этой статье: https://ydmitry.ru/blog/avtorizatsiya-pod-adminom-bez-logina-i-parolya-v-bitrix/.
Восстановить сломанный сайт зачастую намного сложнее, чем обезопасить его от взлома. Самое простое решение: развернуть сайт из последней резервной копии, после чего проделать все рекомендации выше.
Если резервных копий 1С-Битрикс нет – попробуйте запросить резервную копию у Хостера. Если и такой нет – скорее всего придется восстанавливать сайт вручную. Как правило, удаляют файлы /bitrix/.settings.php и /bitrix/php_interface/dbconn.php, изменяют главную страницу, удаляют инфоблоки. Перед восстановлением обязательно обезопасьте сайт, иначе результат многочасовой работы будет спущен в унитаз.
Что если обновить Битрикс нельзя?
Бывает, что проект давно не обновлялся, не поддерживает актуальную версию PHP, были внесены изменение в ядро или сайт падает после обновления по непонятным причинам, а разбираться нет времени.
В данный момент взлом идет через модуль vote. Существует три способа защиты.
Первый способ: вставляем код в файлы
- /bitrix/tools/upload.php
- /bitrix/tools/mail_entry.php
- /bitrix/modules/main/include/virtual_file_system.php
- /bitrix/components/bitrix/sender.mail.editor/ajax.php
- /bitrix/tools/vote/uf.php
- /bitrix/tools/html_editor_action.php
- /bitrix/admin/site_checker.php
перед required:
if ($_SERVER['REQUEST_METHOD'] === 'POST') { header("Status: 404 Not Found"); die(); }
Второй способ: ограничить на уровне nginx. Вариант для тех, у кого свой сервер.
# ломает загрузку файлов в ИБ location /bitrix/tools/upload.php { if ($request_method = POST ) { deny all; } } location /bitrix/tools/mail_entry.php { if ($request_method = POST ) { deny all; } } location /bitrix/tools/vote/uf.php { if ($request_method = POST ) { deny all; } } location /bitrix/tools/html_editor_action.php { if ($request_method = POST ) { deny all; } } location /bitrix/admin/site_checker.php { if ($request_method = POST ) { deny all; } }
Третий способ: защита с помощью .htaccess. Подойдет тем, у кого Хостинг. В директориях, в которых лежат уязвимые файлы создаем файлы .htaccess (если их нет) и прописываем конструкцию:
<Files ~ "^(имя файлов)\.php$> deny from all </Files>
Вместо “имя файлов” – пишите список уязвимых файлов в данной директории, разделенных символом “|” (без кавычек).
Для /bitrix/tools/:
<Files ~ "^(html_editor_action|mail_entry|upload)\.php$> deny from all </Files>
Для /bitrix/tools/vote/:
<Files ~ "^(uf)\.php$> deny from all </Files>
Для /bitrix/modules/main/include/:
<Files ~ "^(virtual_file_system)\.php$> deny from all </Files>
Для /bitrix/components/bitrix/sender.mail.editor/:
<Files ~ "^(ajax)\.php$> deny from all </Files>
Для /bitrix/admin/:
<Files ~ "^(site_checker)\.php$> deny from all </Files>
Внимание: решение временное, часть функционала админки сайта при использовании любого из трех методов будет недоступна.
Заключение
Актуальную информацию можно посмотреть в этой ветке: https://dev.1c-bitrix.ru/support/forum/forum6/topic147346/
Описание уязвимости: https://bdu.fstec.ru/vul/2022-01141
Если возникнут проблемы с восстановлением, обновлением или защитой сайта – пишите нам, поможем решить вашу проблему.