Тысячи разработчиков проигнорировали важное обновление Jenkins, оставаясь уязвимыми перед взломщиками спустя несколько месяцев после публикации патча. Брешь в коде позволяет злоумышленникам перехватывать контроль над серверами разработки, похищать данные и внедрять код в чужие программные продукты.

Написанная на Java cистема Jenkins позволяет внедрить подходы непрерывной интеграции в процесс создания ПО. Решение выросло из проекта Hudson, который в 2004 году запустили эксперты Sun Microsystems. В 2011 году создатели продукта взяли его развитие в свои руки после серии разногласий с купившей Sun корпорацией Oracle. Они переименовали Hudson в Jenkins и сделали его одним из ведущих решений для автоматизации разработки в мире.

В июле создатели системы сообщили об уязвимости CVE-2018-1999001, которая позволяла неавторизованным пользователям получить права администратора. Как пояснили эксперты, из-за ошибки в работе системы злоумышленник мог удалить файл с настройками безопасности и обеспечить себе максимальные привилегии после перезагрузки сервера. В дальнейшем он получал возможность просматривать и менять код в разрабатываемых продуктах.

Угрозу усугубляла уязвимость CVE-2018-1999043, избавлявшая взломщика от необходимости ждать перезагрузки атакованного сервера. Используя слишком длинные имена несуществующих пользователей, специалисты смогли исчерпать память виртуальной машины и вызвать отказ в обслуживании с последующей перезагрузкой.

Разработчики Jenkins исправили баги двумя патчами — первую брешь закрыли в июле, вторая получила заплатку в августе. Однако, как выяснили эксперты, тысячи серверов продолжают работать на уязвимых версиях ПО до 2.131.

Специалисты сделали такой вывод по данным интернет-поисковика Shodan, где можно найти доступные онлайн хосты. Основная их часть расположена в США и Китае. Представленной на сайте информации достаточно для проведения атаки, подчеркнул Нимрод Столер (Nimrod Stoler), исследователь компании CyberArk.

«[Кроме открытых серверов,] Jenkins используется в закрытых сетях, которые нельзя увидеть в Shodan, — рассказал эксперт. — Поэтому мы видим только часть гораздо большего количества [уязвимых инфраструктур]. Напомню, провернуть атаку может любой пользователь с интернет-подключением».

Оценить возможную угрозу можно по февральской атаке криптоджекеров, от которой пострадали тысячи серверов Jenkins. Злоумышленники встроили на машины майнер, генерирующий Monero, и получили цифровую валюту на $3,4 млн. Примечательно, что это промежуточная сумма — для полного устранения угрозы нежелательное ПО следует удалить со всех пораженных серверов, а до тех пор оно продолжает приносить прибыль организаторам кампании.

Специалисты отмечают, что злоумышленники могут не ограничиваться воровством корпоративных мощностей. Комбинация двух брешей позволяет встроить в разрабатываемые приложения любой код, включая бэкдоры, шпионские зловреды и шифровальщики. Учитывая, что Jenkins используют многие крупные компании, уязвимость может стать орудием направленных атак.

Для защиты инфраструктуры администраторам рекомендуется не только установить необходимые обновления, но и изолировать Jenkins от внешних подключений. Кроме того, следует фильтровать поступающие запросы, чтобы вовремя блокировать попытки брутфорса мастер-сервера или виртуальной Java-машины.

Категории: Уязвимости