Красный код для GitHub: 15 000 репозиториев Go на грани компрометации

Красный код для GitHub: 15 000 репозиториев Go на грани компрометации

VulnCheck предупреждает о беспрецедентной уязвимости цепочек поставок программного обеспечения.

image

Новое исследование компании VulnCheck, специализирующейся на проверке уязвимостей веб-приложений, показало , что более 15 тысяч репозиториев модулей Go на GitHub уязвимы для атаки методом «захват репозитория» или «RepoJacking».

Данный тип атаки позволяет хакерам злонамеренно использовать смену имени или полное удаление аккаунта на GitHub, выполненную его законным владельцем. Чтобы сделать это, злоумышленники создают абсолютно новый репозиторий, имя которого совпадает со старым, а затем используют его связи с другими звеньями в цепочке поставок ПО для распространения вредоносного кода.

По данным VulnCheck, уязвимость перед подобными атаками обнаружена более чем у 15 000 репозиториев модулей Go. «Более 9000 репозиториев уязвимы из-за смены имён пользователей GitHub. Ещё более 6000 — из-за удаления аккаунтов», — прокомментировал результаты главный технический директор компании Джейкоб Бейнс.

Эти репозитории в совокупности содержат не менее 800 тысяч версий модулей Go, которые используются разработчиками по всему миру. Следовательно, захват хотя бы части этих репозиториев может привести к серьёзным последствиям для кибербезопасности множества программных продуктов.

Особую угрозу представляют модули на языке программирования Go. В отличие от других решений вроде npm или PyPI с централизованными репозиториями, модули Go публикуются децентрализованно на платформах вроде GitHub или Bitbucket.

«Любой может проинструктировать зеркало модулей Go и сайт pkg.go.dev кэшировать детали модуля в обход репозитория», — отмечает Бейнс. Таким образом, злоумышленнику достаточно захватить имя старого пользователя и имя популярного репозитория, не взаимодействуя напрямую с GitHub.

Компания GitHub пытается бороться с подобными атаками, блокируя создание репозиториев под ранее удалёнными популярными именами. Но это не эффективно в случае с модулями Go, которые кэшируются в обход основного репозитория.

«К сожалению, смягчение всех этих потенциальных захватов репозиториев — задача для компаний Go или GitHub. Третья сторона не может разумно зарегистрировать 15 000 защитных аккаунтов», — констатирует Бейнс. Он призывает разработчиков Go быть бдительными и тщательно отслеживать статус используемых ими модулей и репозиториев.

Таким образом, угроза атак «захвата репозитория» весьма серьёзна для экосистемы GitHub и может нанести ощутимый ущерб кибербезопасности в целом. Компаниям GitHub и Go следует как можно быстрее разработать эффективные контрмеры для защиты модулей и репозиториев от подобных атак.

Тени в интернете всегда следят за вами

Станьте невидимкой – подключайтесь к нашему каналу.