В начале года (17 января) исследователи из компании Oversecured выпустили отчет, содержащий детальную информацию о новом типе атак на цепочку поставок для Java и Android-проектов.
Главные цифры: из 33 938 проанализированных доменов 6 170 (18,18%) оказались уязвимыми для MavenGate, позволяя злоумышленникам перехватить зависимости с открытым исходном кодом и внедрить свой собственный код. Но это еще не предел, ведь скомпрометированные библиотеки могут входить в состав других библиотек, делая их также уязвимыми к этому типу атаки. И таким образом, через «транзитивные» зависимости может быть уязвимо еще большее количество библиотек и применяющих их конечных проектов.
Возможность атаки заключается в специфике подтверждения владением библиотеки для Java-проектов посредством DNS-записей. Владелец домена, например, stingraymobile.ru, имеет право загружать любые пакеты, которые начинаются с ru.stingraymobile.* (то есть перевернутый домен). Но если домен заброшен и свободен для покупки, любой желающий может его купить и выдать себя за владельца.
Простой пример для реализации атаки со стороны злоумышленника на примере библиотеки com.xmlmatchers:
Повторяем это действие для всех найденных библиотек со свободными доменами.
Вниманию всех, кто использует библиотеки с открытым исходным кодом! Специалисты Swordfish Security проверили возможность реализации атаки и обнаружили более 15 доменов, которые были перерегистрированы на новых владельцев. И сейчас неизвестно, сколько проектов уже скомпрометировано.
Исследователи отмечают, что потенциально все технологии на базе Maven, включая Gradle, уязвимы для атаки, в связи с чем отчеты по этому поводу были направлены Oversecured в более чем в 200 компаний, включая Google, Facebook, Signal, Amazon, Adobe, LinkedIn, Netflix и другие.
Специалисты Swordfish Security подчеркивают, что защититься от данного типа атаки можно, реализовав несколько непростых шагов. Необходимо проанализировать все библиотеки в проекте и исключить потенциально опасные, проверить хэш-суммы загружаемых файлов с оригиналами или проверить цифровую подпись при загрузке.
Нажимая на кнопку, я даю Согласие на обработку персональных данных в соответствии с Политикой обработки.