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