Процессор на 100 %? Как майнеры проникают через уязвимости Qinglong
В начале 2026 года ИТ‑сообщество столкнулось с масштабной угрозой: множество серверов по всему миру начали испытывать экстремальную нагрузку на процессор — вплоть до 100 %. Виной тому стали киберпреступники, которые использовали слабые места в популярном инструменте автоматизации для размещения скрытого ПО для майнинга. Разберёмся, как это произошло и что нужно сделать, чтобы обезопасить свои системы.
Что за Qinglong и почему он оказался в центре атаки
Qinglong — это веб‑панель для планирования и автоматизации задач. Она поддерживает скрипты на Python, JavaScript и других языках программирования. Инструмент особенно распространён среди китайских разработчиков, но его также активно используют и в других странах — например, разворачивают на облачных виртуальных машинах или домашних серверах с открытым доступом из интернета.
Первые признаки проблемы: процесс .fullgc
Первые сообщения о подозрительной активности начали появляться 7–8 февраля 2026 года. Пользователи стали замечать, что на их серверах запускается процесс с загадочным именем .fullgc, который потребляет от 85 % до 100 % ресурсов процессора. Поначалу администраторы могли не придавать этому значения: в среде Java термин Full GC (полная сборка мусора) ассоциируется с обычной нагрузкой. Злоумышленники намеренно выбрали такое название, чтобы замаскировать вредоносную активность под штатные процессы.
Изначально обсуждение проблемы шло преимущественно на китайских форумах и в репозиториях GitHub, поэтому англоязычное сообщество узнало о ней с задержкой.
Уязвимости, открывшие дверь злоумышленникам
К концу февраля специалисты выявили корень проблемы: в версиях Qinglong 2.20.1 и более ранних обнаружены две критические уязвимости обхода аутентификации:
CVE‑2026‑3965 — связана с некорректной обработкой URL‑адресов в серверной части на базе Express.js. Из‑за ошибки приложение могло перезаписывать запросы, позволяя злоумышленнику сбросить учётные данные администратора одной командой. После этого панель управления полностью переходила под контроль атакующего.
CVE‑2026‑4047 — уязвимость, основанная на несоответствии в обработке регистра символов. Система проверки доступа учитывала регистр в URL, а сам сервер — нет. Достаточно было изменить написание части адреса, чтобы обойти защиту и выполнить произвольные команды без ввода пароля.
Как работает атака: пошаговая схема
Используя найденные слабые места, хакеры последовательно выполняли следующие действия:
Получали доступ к панели управления без аутентификации.
Изменяли конфигурационный файл, встраивая вредоносный скрипт.
Скрипт загружал бинарный файл с удалённого сервера и сохранял его под именем .fullgc.
Запускал майнер в фоновом режиме и настраивал автозапуск при перезагрузке системы.
Скрывал следы присутствия, маскируя нагрузку под стандартные процессы Java.
Примечательно, что атака работала даже на серверах за обратными прокси‑серверами и с включённым шифрованием. Некоторые облачные провайдеры, включая Alibaba Cloud, начали автоматически помечать такие системы как участвующие в майнинге. В одном из зафиксированных случаев злоумышленники получили доступ к системе мониторинга и обнаружили сотни заражённых машин.
Почему временные меры не помогли
На первых порах разработчики предложили простое решение: блокировать выполнение подозрительных команд (например, curl и wget) внутри заданий. Однако этот подход оказался неэффективным, поскольку проблема лежала глубже — в механизме проверки доступа. В итоге команда сосредоточилась на исправлении именно этой логики, что и стало правильным решением.
Рекомендации по защите
Владельцам серверов на базе Qinglong следует предпринять следующие шаги:
Проверить наличие процесса .fullgc. Используйте команды мониторинга системы (например, top или htop в Linux), чтобы выявить подозрительную активность.
Обновить Qinglong до последней версии. Убедитесь, что вы используете версию, в которой устранены уязвимости CVE‑2026‑3965 и CVE‑2026‑4047.
Пересоздать контейнеры из чистых образов. Простое удаление заражённого контейнера недостаточно: вредоносный код может сохраняться в подключённых томах данных.
Сменить все учётные данные. Даже если уязвимость закрыта, злоумышленники могли получить доступ к учётным записям.
Провести аудит конфигурации. Проверьте, открыт ли доступ к панели из интернета без необходимости. Если да — ограничьте доступ по IP‑адресам или используйте VPN.
Настроить мониторинг нагрузки. Регулярно отслеживайте использование процессора и оперативной памяти, чтобы вовремя заметить аномалии.
Вывод: уроки инцидента
Этот случай наглядно демонстрирует, что любой сервис с доступом из интернета становится потенциальной мишенью для злоумышленников. Даже узкоспециализированные инструменты, такие как планировщики задач, могут быть использованы для монетизации взлома — например, через скрытый майнинг криптовалюты. Нагрузка на процессор заметна, но её источник часто ищут слишком долго, что даёт хакерам время для достижения своих целей.
Ключевые меры защиты — своевременное обновление ПО, строгий контроль доступа и постоянный мониторинг системы.