Jenkins: от CI/CD до подпольной криптолаборатории
NewsMakerКак уязвимые серверы превращаются в невидимые майнинг-машины?
Недавнее исследование компании Trend Micro выявило, что злоумышленники могут использовать консоль сценариев Jenkins для запуска вредоносных скриптов, направленных на майнинг криптовалют. Это возможно при неправильной настройке аутентификации, что открывает доступ к консоли и позволяет выполнять удалённый код ( RCE ).
Jenkins, являясь открытым решением для непрерывной интеграции и доставки (CI/CD), предоставляет широкие возможности для автоматизации разработки программного обеспечения. Однако неправильные настройки серверов и устаревшие версии Jenkins могут стать целью для хакеров, стремящихся запустить криптомайнеры и другие вредоносные программы.
Консоль сценариев в Jenkins позволяет администраторам и авторизованным пользователям выполнять скрипты на языке Groovy с привилегиями системы. В случае неправильной настройки аутентификации, злоумышленники могут получить доступ к этой консоли и использовать её для запуска вредоносных скриптов.
Злоумышленники часто используют такие инструменты, как Shodan, для поиска уязвимых серверов Jenkins, доступных в интернете. Исследование показало, что многие из этих серверов не защищены должным образом и могут быть использованы в реальных атаках. Хотя не все публично доступные серверы Jenkins уязвимы, они вполне могут стать точками входа для хакеров.
В своих атаках злоумышленники внедряют в систему закодированный на Base64 скрипт, который запускается через консоль сценариев Jenkins. Этот скрипт проверяет, запускается ли он в среде BusyBox, и, если да, завершает работу. Затем скрипт ищет директории с разрешениями на запись, чтобы скачать и запустить криптомайнер.
Скрипт включает функцию проверки доступных ресурсов системы для эффективного майнинга. Он идентифицирует и завершает процессы, которые потребляют более 90% ресурсов ЦП, что позволяет освободить ресурсы для работы майнера. В случае отсутствия подходящих директорий, скрипт использует директорию /tmp и создаёт поддиректорию с максимальными разрешениями для выполнения операций.
Для поддержания работы майнера злоумышленники используют задания cron и утилиту systemd-run. Задания cron обеспечивают регулярный запуск майнера, а systemd-run следит за тем, чтобы майнер запускался каждый час. Эти методы гарантируют, что майнер будет работать непрерывно, несмотря на возможные перезапуски системы.
Cron-задания используют утилиту flock для блокировки файла, чтобы гарантировать, что только одна копия майнера работает в любой момент времени. Сценарий также удаляет все дублирующиеся записи cron, чтобы предотвратить многократный запуск майнера.
Чтобы защитить свои инстансы Jenkins от подобных атак, рекомендуется следовать следующим лучшим практикам:
Недавнее исследование компании Trend Micro выявило, что злоумышленники могут использовать консоль сценариев Jenkins для запуска вредоносных скриптов, направленных на майнинг криптовалют. Это возможно при неправильной настройке аутентификации, что открывает доступ к консоли и позволяет выполнять удалённый код ( RCE ).
Jenkins, являясь открытым решением для непрерывной интеграции и доставки (CI/CD), предоставляет широкие возможности для автоматизации разработки программного обеспечения. Однако неправильные настройки серверов и устаревшие версии Jenkins могут стать целью для хакеров, стремящихся запустить криптомайнеры и другие вредоносные программы.
Консоль сценариев в Jenkins позволяет администраторам и авторизованным пользователям выполнять скрипты на языке Groovy с привилегиями системы. В случае неправильной настройки аутентификации, злоумышленники могут получить доступ к этой консоли и использовать её для запуска вредоносных скриптов.
Злоумышленники часто используют такие инструменты, как Shodan, для поиска уязвимых серверов Jenkins, доступных в интернете. Исследование показало, что многие из этих серверов не защищены должным образом и могут быть использованы в реальных атаках. Хотя не все публично доступные серверы Jenkins уязвимы, они вполне могут стать точками входа для хакеров.
В своих атаках злоумышленники внедряют в систему закодированный на Base64 скрипт, который запускается через консоль сценариев Jenkins. Этот скрипт проверяет, запускается ли он в среде BusyBox, и, если да, завершает работу. Затем скрипт ищет директории с разрешениями на запись, чтобы скачать и запустить криптомайнер.
Скрипт включает функцию проверки доступных ресурсов системы для эффективного майнинга. Он идентифицирует и завершает процессы, которые потребляют более 90% ресурсов ЦП, что позволяет освободить ресурсы для работы майнера. В случае отсутствия подходящих директорий, скрипт использует директорию /tmp и создаёт поддиректорию с максимальными разрешениями для выполнения операций.
Для поддержания работы майнера злоумышленники используют задания cron и утилиту systemd-run. Задания cron обеспечивают регулярный запуск майнера, а systemd-run следит за тем, чтобы майнер запускался каждый час. Эти методы гарантируют, что майнер будет работать непрерывно, несмотря на возможные перезапуски системы.
Cron-задания используют утилиту flock для блокировки файла, чтобы гарантировать, что только одна копия майнера работает в любой момент времени. Сценарий также удаляет все дублирующиеся записи cron, чтобы предотвратить многократный запуск майнера.
Чтобы защитить свои инстансы Jenkins от подобных атак, рекомендуется следовать следующим лучшим практикам:
- Использовать функцию одобрения сценариев, предоставляемую Jenkins. Это ограничит выполнение неизвестных или потенциально вредоносных скриптов.
- Настроить правильные политики аутентификации и авторизации для доступа к веб-консоли. Следует использовать рекомендации Jenkins по управлению доступом.
- Включить функцию аудита логов для отслеживания действий на сервере и выявления подозрительной активности.
- Ограничить доступ к серверам Jenkins из интернета, чтобы предотвратить несанкционированный доступ.