Когда сайт тормозит – кто-то пытается заработать!

Вы замечаете, что ваш сайт начал работать невыносимо медленно, страницы открываются с большой задержкой, а панель управления хостингом показывает, что процессор (CPU) сервера постоянно загружен на 90-100%? Если при этом количество посетителей не увеличилось, велика вероятность, что ваш сервер был взломан и теперь используется для скрытого майнинга криптовалют (криптоджекинга).

Недавно мы столкнулись с подобной проблемой у одного из клиентов: сайт на 1С-Битрикс внезапно "лег" под необъяснимой нагрузкой. Виновником оказался один-единственный вредоносный файл.

Давайте пошагово разберемся, как диагностировать, "вылечить" и защитить ваш сервер от этой напасти.

Основные симптомы заражения

  • Высокая нагрузка на CPU: Процессор сервера постоянно загружен на 90-100% без видимых причин (нет наплыва посетителей, не выполняются ресурсоемкие задачи).
  • Замедление работы сайта: Время ответа сервера (TTFB) значительно увеличивается.
  • Перегрев и шум: Если у вас физический сервер, вы можете заметить, что его вентиляторы работают на максимальной скорости.
  • Предупреждения от хостинг-провайдера: Хостер может прислать уведомление о чрезмерном потреблении ресурсов.

Диагностика: ищем вредоносный процесс

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

Шаг 1: Проверяем запущенные процессы

Самый простой способ — использовать утилиты top или htop (если она установлена). Запустите htop — она более наглядна

htop

Вы увидите отсортированный список всех процессов. Вредоносный майнер, скорее всего, будет на самом верху, потребляя почти все ресурсы процессора. Обратите внимание на подозрительные имена процессов, например, kswapd0 (частая маскировка), kdevtmpfsi или просто случайный набор букв, запущенный от имени вашего веб-сервера (www-data, bitrix и т.д.).

Запомните его PID (Process ID) — он понадобится на следующих шагах.

Шаг 2: Определяем расположение файла

Зная PID процесса, мы можем легко найти сам исполняемый файл, который он запустил.

ls -l /proc/PID/exe

(Замените PID на номер, который вы записали на предыдущем шаге).

Эта команда покажет вам символическую ссылку на реальный файл. Чаще всего вредоносы прячутся в директориях, доступных для записи веб-серверу: /tmp/, /var/tmp/ или в папке для загрузок вашего сайта.

Шаг 3: Проверяем сетевые соединения

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

netstat -tulpn | grep PID

Вы увидите IP-адрес и порт, к которому подключился вредонос.

Очистка и лечение

  1. Убиваем процесс: Первым делом нужно остановить майнер.
    kill -9 PID
  2. Удаляем исполняемый файл: Теперь, когда мы знаем его расположение, удаляем сам вирус.
    rm /путь/к/вредоносному/файлу
  3. Ищем "точку входа": Майнер нужно было как-то запустить. Обязательно проверьте:
    * Задачи в cron:
    crontab -l -u www-data (проверьте для пользователя веб-сервера).
    * Подозрительные PHP/Python/Perl файлы: Ищите недавно 
    измененные файлы. Возможно, на сайт загрузили веб-шелл, через 
    который и попал майнер.
  4. Проводим полный скан: Чтобы найти другие возможные "закладки", просканируйте сайт антивирусом.
    * Maldet (Linux Malware Detect): Отличный бесплатный сканер.
    sudo maldet -a /home/bitrix/www/
    * ClamAV: Еще один популярный open-source антивирус
    sudo clamscan -r -i /home/bitrix/www/

Профилактика: как защититься в будущем

Удалить вирус — это только половина дела. Главное — закрыть уязвимость, через которую он попал на сервер

  • Своевременные обновления: Это правило №1. Регулярно обновляйте CMS (1С-Битрикс), все установленные плагины и ПО на самом сервере (PHP, Nginx, Apache).
  • Надежные пароли: Используйте сложные и уникальные пароли для SSH, FTP, баз данных и административных учетных записей сайта.
  • Web Application Firewall (WAF): Используйте брандмауэр для веб-приложений. В 1С-Битрикс есть встроенный "Проактивный фильтр", который блокирует многие атаки. Также можно использовать решения на уровне сервера (ModSecurity) или облачные (Cloudflare).
  • Изоляция сайтов: Если на сервере несколько сайтов, они должны работать от имени разных системных пользователей. Это не позволит инфекции с одного сайта распространиться на другие.
  • Мониторинг целостности файлов: Используйте "Контроль целостности" в 1С-Битрикс или утилиту AIDE на сервере. Они сообщат вам, если кто-то изменит ядро системы или важные файлы.

Заключение

Криптоджекинг — это серьезная угроза, которая не только замедляет ваш сайт, но и "сжигает" ваши деньги (или ресурсы хостинга). Регулярный аудит безопасности и соблюдение базовых правил гигиены помогут сохранить ваш сервер здоровым и быстрым.

Оставить комментарий