Безопасность

Kworker зловред в centos Битрикс

Kworker зловред в centos Битрикс

На сайте смотрим тут --- >>> Рабочий стол Настройки Проактивная защита Поиск троянов Операционная система

Видим такое

> whoami

bitrix

> ps ux -u whoami

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND bitrix 1087 0.0 0.4 746636 9168 ? S May21 0:00 /usr/sbin/httpd -f /etc/httpd/conf/httpd-scale.conf -DFOREGROUND bitrix 1088 0.0 0.4 746636 9168 ? S May21 0:00 /usr/sbin/httpd -f /etc/httpd/conf/httpd-scale.conf -DFOREGROUND bitrix 1089 0.0 0.4 746636 9168 ? S May21 0:00 /usr/sbin/httpd -f /etc/httpd/conf/httpd-scale.conf -DFOREGROUND bitrix 1090 0.0 0.4 746636 9168 ? S May21 0:00 /usr/sbin/httpd -f /etc/httpd/conf/httpd-scale.conf -DFOREGROUND bitrix 9999 194 13.0 285796 267816 ? Ssl Jun03 59733:36 [kworker/u3:11] bitrix 13837 0.0 0.6 333976 13684 ? S May24 3:12 nginx: worker process bitrix 13838 0.0 0.8 338364 17788 ? S May24 23:41 nginx: worker process bitrix 13839 0.0 0.6 334232 14020 ? S May24 2:16 nginx: worker process bitrix 13840 0.0 0.6 333720 13324 ? S May24 4:20 nginx: worker process bitrix 13841 0.0 0.6 333464 13380 ? S May24 6:33 nginx: worker process bitrix 13842 0.0 0.6 333968 13868 ? S May24 3:11 nginx: worker process bitrix 13843 0.0 0.7 335000 15004 ? S May24 10:01 nginx: worker process bitrix 13844 0.0 0.6 333720 13236 ? S May24 2:24 nginx: worker process bitrix 15317 0.1 7.3 757004 150756 ? S Jun22 6:36 /usr/sbin/httpd -DFOREGROUND bitrix 15318 0.1 7.5 759000 153576 ? S Jun22 6:38 /usr/sbin/httpd -DFOREGROUND bitrix 15319 0.1 7.4 758920 152476 ? S Jun22 6:46 /usr/sbin/httpd -DFOREGROUND bitrix 15320 0.1 7.7 759004 159556 ? S Jun22 6:46 /usr/sbin/httpd -DFOREGROUND bitrix 15321 0.1 8.6 759036 176284 ? S Jun22 6:52 /usr/sbin/httpd -DFOREGROUND bitrix 15322 0.1 7.4 758936 152356 ? S Jun22 6:37 /usr/sbin/httpd -DFOREGROUND bitrix 15323 0.1 7.6 754964 157268 ? S Jun22 6:42 /usr/sbin/httpd -DFOREGROUND bitrix 15324 0.1 7.4 752884 153428 ? S Jun22 6:35 /usr/sbin/httpd -DFOREGROUND bitrix 15325 0.1 7.4 756424 153272 ? S Jun22 6:36 /usr/sbin/httpd -DFOREGROUND bitrix 15326 0.1 7.8 760452 160352 ? S Jun22 6:50 /usr/sbin/httpd -DFOREGROUND bitrix 17241 0.0 0.0 51728 1716 ? R 13:46 0:00 ps ux -u bitrix

> crontab -l

no corntab

> last -i whoami

bitrix pts/0 0.0.0.0 Sat Mar 15 16:24 - 16:24 (00:00)

wtmp begins Mon Jun 26 15:01:03 2023

Краткий вердикт: У вас на сервере с вероятностью 99.9% работает замаскированный майнер или другой троян.

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

Анализ ваших данных

1. Проверка процессов (ps ux)

 Вывод команды `ps` содержит огромный красный флаг, который практически однозначно указывает на взлом.
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...
bitrix    9999  194 13.0 285796 267816 ?       Ssl  Jun03 59733:36 [kworker/u3:11]
...
 Давайте разберем эту строку:


- `USER: bitrix`: Процесс запущен от имени пользователя `bitrix`.

- `COMMAND: [kworker/u3:11]`: Процесс маскируется под `kworker`. Это и есть главная улика.


	<li>Настоящие `kworker` — это системные процессы ядра (kernel workers). Они всегда запускаются от пользователя `root`.

	- Процесс ядра, запущенный от обычного пользователя (`bitrix`), — это классический признак вредоносного ПО, которое пытается спрятаться от администратора.

	- Квадратные скобки `[]` также используются, чтобы имитировать вид системного процесса.
- `%CPU: 194`: Это аномально высокое потребление процессорного времени. `%CPU` в `ps` показывает среднее потребление с момента запуска процесса. Такая цифра (больше 100%) говорит о том, что процесс постоянно и очень активно использует как минимум два ядра CPU. Это типичное поведение для криптомайнеров.
- `TIME: 59733:36`: Процесс наработал огромное количество процессорного времени — более 59 тысяч минут (это ~41 день непрерывной работы). Это подтверждает, что он работает давно и постоянно "жрет" ресурсы.

- `START: Jun03`: Процесс был запущен 3 июня, что совпадает с огромным накопленным временем работы.


 Остальные процессы:


- `httpd` (Apache) и `nginx` — это стандартные и ожидаемые процессы для веб-сервера под управлением BitrixVM / BitrixEnv. С ними, на первый взгляд, все в порядке.


 Вывод по процессам: Процесс `kworker` с PID `9999`, запущенный от `bitrix`, — это вредонос.

2. Проверка Crontab (crontab -l)

no corntab
 Это означает, что для текущего пользователя (`bitrix`) нет запланированных заданий. Это хорошо, но недостаточно. Злоумышленник мог добавить задание для пользователя `root` или в системные директории crontab.

3. Проверка SSH-ключей

 Вы не предоставили вывод этой проверки. Обязательно выполните ее.

4. Проверка логов входа (last)

bitrix   pts/0        0.0.0.0          Sat Mar 15 16:24 - 16:24  (00:00)
 Запись очень старая, она не имеет отношения к текущему инциденту. Однако стоит помнить, что злоумышленник мог почистить логи (`/var/log/wtmp`, откуда `last` берет данные), поэтому доверять этому выводу на 100% нельзя.

План действий: Что делать ПРЯМО СЕЙЧАС

 Шаг 0: Получите права `root` Дальнейшие действия требуют повышенных привилегий. Выполните `sudo -i` или `su -`.


 Шаг 1: Уничтожить вредоносный процесс


 Немедленно остановите процесс-майнер, чтобы он перестал потреблять ресурсы и отправлять данные злоумышленнику.

bash Скопировать

Закрыть блок

kill -9 9999
 (`-9` — это сигнал принудительного завершения, который нельзя проигнорировать).


 Шаг 2: Найти исполняемый файл трояна


 Процесс вы убили, но его файл остался на диске. Его нужно найти и удалить. Так как процесс маскировался, лучший способ — посмотреть, какой файл был связан с запущенным процессом через файловую систему `/proc`.


 До того как вы убили процесс (или если он перезапустился под другим PID), можно было выполнить:

bash Скопировать

Закрыть блок

# Эта команда покажет путь к исполняемому файлу процесса с PID 9999
readlink -f /proc/9999/exe
 Если вы уже убили процесс, ищите файл по имени. Часто они прячутся в `/tmp`, `/var/tmp` или используют имена, похожие на системные.

bash Скопировать

Закрыть блок

# Искать файлы, измененные примерно в дату взлома (например, 3 июня)
find / -mtime -30 -user bitrix -type f -ls 2>/dev/null | grep 'kworker'

# Искать файлы с подозрительными именами в нестандартных местах
find /tmp /var/tmp /dev/shm -name "*" -user bitrix
 Шаг 3: Найти и удалить механизм автозапуска


 Троян должен как-то запускаться после перезагрузки. Проверьте:


- Системный crontab и cron-директории:bash Скопировать

  Закрыть блок
crontab -l -u root
ls -la /etc/cron.*
cat /etc/crontab
- Systemd сервисы: Злоумышленники любят создавать свои сервисы.bash Скопировать

  Закрыть блок
systemctl list-unit-files --type=service | grep enabled
# Ищите сервисы с подозрительными именами
	 Часто они маскируются под что-то вроде `systemd-network.service` (а настоящий называется `systemd-networkd.service`).







- Скрипты автозапуска:bash Скопировать

  Закрыть блок
cat /etc/rc.local
 Шаг 4: Проверить посторонние SSH-ключи (теперь под `root`)

bash Скопировать

Закрыть блок

cat /home/bitrix/.ssh/authorized_keys
cat /root/.ssh/authorized_keys
 Удалите все ключи, которые вы не добавляли.


 Шаг 5: Проанализировать, как произошел взлом


 Это самый сложный этап. Взлом сервера с Битриксом чаще всего происходит через:


- Уязвимость в модуле сайта: Проверьте, все ли модули обновлены.

- Уязвимость в ядре Битрикса: Убедитесь, что платформа обновлена до последней версии.

- Слабый пароль: Пароль от FTP, SSH или админки сайта.

- Загрузка "шелла" через один из компонентов сайта.


 Проанализируйте логи веб-сервера (`/var/log/httpd/` или `/var/log/nginx/`) за дату `Jun03`. Ищите подозрительные POST-запросы, обращения к странным PHP-файлам, попытки сканирования.


 Рекомендация: Самый надежный способ — сделать бэкап сайта и базы данных, полностью переустановить сервер с нуля и развернуть бэкап после тщательной проверки его файлов на наличие посторонних скриптов. Лечить скомпрометированную систему очень сложно, и нет гарантии, что вы найдете все "закладки".


 Мы продолжаем расследование, и новые данные помогают сузить круг поиска.

Анализ новой информации

-

	 Systemd Services (продолжение):





	<li>Список по-прежнему не содержит ничего явно вредоносного. `zabbix-agent.service` — это легитимный сервис мониторинга (если вы его используете). `xinetd.service` — супер-сервер, который может запускать другие сервисы, но сам по себе не вредоносный.
-

/etc/rc.local:

	<li>`touch /var/lock/subsys/local` — стандартная команда.

	- `/opt/webdir/bin/update_network.sh eth0` — стандартный скрипт окружения Битрикса для обновления сетевой конфигурации.

	- Вывод: В `rc.local` нет ничего подозрительного.
-
	 SSH-ключи:





	<li>`/home/bitrix/.ssh/authorized_keys`: Файл отсутствует. Это хорошо. Значит, под пользователем `bitrix` нельзя зайти по ключу.

	- `/root/.ssh/authorized_keys`: Содержит один ключ с комментарием `ANSIBLE_KEY_vds-fialkaexpsar.timeweb.ru`. Это ключ, который, скорее всего, был добавлен вашим хостинг-провайдером (Timeweb) для автоматизации управления сервером с помощью Ansible. Если вы заказывали сервер у Timeweb, этот ключ является легитимным. Если нет — это повод для беспокойства. Предполагаем, что ключ легитимный.

Промежуточные итоги и дальнейший план

 Мы проверили все "классические" и самые очевидные места автозапуска (cron, systemd, rc.local) и не нашли прямых улик. Троян с высокой вероятностью использует один из двух оставшихся методов:


- Модификация легитимного скрипта/конфигурации.

- Запуск через веб-шелл, загруженный на сайт.


 Наш главный подозреваемый сейчас — это сам код сайта и скрипты, которые он вызывает. Вредоносный процесс `kworker` был запущен от пользователя `bitrix`, что с огромной вероятностью указывает на то, что точка входа — это веб-сервер и PHP-скрипты.

План действий: Фокусируемся на файлах и процессах

 Шаг 1: Найти исполняемый файл вредоноса (ПРИОРИТЕТ №1)


 Мы знаем, что процесс-майнер существует (или существовал). Нам нужно найти его файл на диске. Это самая важная задача сейчас.


 Попробуем найти его через файловую систему `/proc`. Если вы еще не убили процесс `kworker` с PID `9999` (или он перезапустился под новым PID), выполните:

bash Скопировать

Закрыть блок

# Сначала найдем PID вредоноса. Он будет запущен от bitrix и потреблять много CPU
ps aux | grep 'kworker' | grep 'bitrix'

# Допустим, новый PID - 12345. Выполняем:
ls -l /proc/12345/exe
# Эта команда покажет символическую ссылку на реальный файл, который был запущен.
# Например: /proc/12345/exe -> /tmp/kworker

ls -l /proc/12345/cwd
# Покажет рабочую директорию, из которой был запущен процесс.

cat /proc/12345/cmdline | xargs -0 echo
# Покажет полную команду запуска.
 Если вы уже убили процесс и он не перезапустился, этот метод не сработает. Тогда переходим к поиску по диску.


 Шаг 2: Глубокий поиск подозрительных файлов на диске


 Давайте проведем более агрессивный поиск. Майнеры часто прячутся в "мусорных" директориях и имеют атрибут "исполняемый".

bash Скопировать

Закрыть блок

# Ищем исполняемые файлы в /tmp и /dev/shm (очень популярные места)
find /tmp /var/tmp /dev/shm -type f -perm /a=x -ls 2>/dev/null

# Ищем любые файлы, принадлежащие пользователю bitrix, вне его домашней директории
# Это может найти файлы, которые троян создал в системных папках
find / -path "/home/bitrix" -prune -o -user bitrix -ls 2>/dev/null
 Внимательно изучите вывод. Любой исполняемый файл (`-rwxr-xr-x`) в `/tmp` или `/dev/shm` — это почти 100% вирус.


 Шаг 3: Поиск веб-шеллов на сайте


 Взлом почти наверняка начался с загрузки PHP-шелла. Его нужно найти и удалить.

bash Скопировать

Закрыть блок

# Ищем файлы, содержащие потенциально вредоносные PHP-функции.
# Эта команда может дать ложные срабатывания, но часто находит шеллы.
# Она ищет функции, которые часто используются во вредоносах.
grep -rPl --include=\*.php "eval\(|base64_decode|gzuncompress|str_rot13|shell_exec|passthru|proc_open" /home/bitrix/www/
 Просмотрите список файлов, который выдаст эта команда. Откройте каждый из них и посмотрите на код. Легитимный код Битрикса может использовать `eval` или `base64_decode`, но если вы видите длинную, запутанную, нечитаемую строку в `eval(base64_decode(...))`, — это точно веб-шелл.


 Шаг 4: Проверка целостности Битрикса


 В Битриксе есть встроенный инструмент, который проверяет, не были ли изменены файлы ядра и стандартных модулей.


- Зайдите в административную панель сайта.

- Перейдите в `Настройки -> Инструменты -> Проверка системы -> Сканер безопасности`.

- На вкладке "Контроль целостности" запустите проверку.


 Если сканер покажет, что какие-то файлы ядра были изменены, — это прямое указание на то, что их модифицировал злоумышленник.


 Резюме для вас:


- Главная цель: Найти файл майнера (`kworker`). Используйте `ps` и `/proc` (Шаг 1).

- Вторая цель: Найти веб-шелл на сайте. Используйте `grep` по PHP-файлам и сканер безопасности Битрикса (Шаги 3 и 4).

- Как только найдете вредоносный файл, удалите его.

- Как только найдете веб-шелл, удалите его и проанализируйте логи веб-сервера (`/var/log/httpd/access_log` или `/var/log/nginx/access.log`) за дату изменения этого файла, чтобы понять, как его загрузили.