Лечим сайт от вирусов и закрываем дыры

Основные причины взлома

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

  1. Уязвимости пользовательского кода - неактуальная (не обновленная) версия CMS и ее модулей, плагинов, тем, которые содержат ошибки безопасности в коде; - ошибки безопасности в скриптах, используемых на сайте.

  2. Утечка информации о реквизитах доступа к панели управления аккаунтом, к FTP и SSH или административной панели используемой CMS. Причины, по которым конфиденциальная информация может попасть к злоумышленникам, как правило, следующие: - вредоносное программное обеспечение на локальном компьютере; - использование протоколов передачи данных без шифрования (примеры протоколов, использующих шифрование: SSH, SFTP, HTTPS).

Что делать, если произошел взлом

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

Анализ логов

Для анализа запросов к сайтам вы можете включить логи доступа в разделе "Логи" панели управления. После включения логи будут доступны в директории сайта (файл access_log). При необходимости с нашей стороны могут быть предоставлены логи доступа к веб-серверу за прошедшие дни. Для их получения создайте обращение в службу поддержки и уточните даты, за которые вам необходимы логи.

Так же можно запросить у хостера логи:

  • Apache (access_log)

  • Apache (error_log)

  • Qmail

  • FTP

Анализ статистики веб-сервера (mod_status)

Модуль mod_status позволяет получить дополнительную информацию о процессах Apache.

Включить mod_status можно по следующей инструкции:

  • в разделе "Сайты" отвяжите доменное имя от директории сайта и привяжите снова;

  • перейдите в директорию сайта в "Файловом менеджере" и добавьте в начало файла .htaccess сайта следующую строку:

RewriteRule ^(s-stat) - [L]
  • подключитесь по SSH;

  • выполните команду ниже, указав вместо username логин, который будет использоваться вами для авторизации на странице s-stat:

htpasswd -c ~/.htpasswd username
  • укажите пароль и подтвердите его.

Страница mod_status будет доступна по адресу вида ваш_домен/s-stat.Подробную информацию по работе с mod_status вы можете получить из официальной документации Apache.

Сканирование сайта на вирусы

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

  1. Проверьте сайт с помощью специального ПО, например, AI-Bolit.

php ai-bolit.php --skip=jpg,png,gif,jpeg,JPG,PNG,GIF,bmp,xml,zip,rar,css,avi,mov,svg --mode=2 --size=900K

Для того, чтобы скрипт не завершался из-за превышения лимитов, при запуске используйте следующую команду (устанавливает задержку в 500ms):

php ai-bolit.php --delay=500

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

php ai-bolit.php pv -L 2M

Подробнее о командах AI-Bolit здесь: https://revisium.com/kb/ai-bolit-console-faq.html.

Аудит кода

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

Смена паролей

  1. Измените все пароли доступа к панели управления, FTP, административной части сайтов и баз данных.

  2. Обновите CMS и ее плагины до актуальных версий.

Last updated