Три года в тени: тайпсквоттинг стал угрозой для всей экосистемы Go

Добро пожаловать на наш форум!

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


Gibby

Автор
Команда проекта

Регистрация
Сообщений
1,635
Репутация
45
Сделок
Как бессрочное кэширование модулей превратилось в инструмент для атак.

В экосистеме языка программирования Go обнаружен вредоносный пакет, остававшийся незамеченным три года. Аналитик по киберугрозам Кирилл Бойченко из Socket Security сообщил о находке в своём блоге , заявив, что злоумышленники подменили популярный пакет базы данных BoltDB, используемый тысячами организаций, включая Shopify и Heroku.

BoltDB, расположенный на GitHub по адресу github.com/boltdb/bolt , был создан девять лет назад и перестал обновляться спустя год после релиза. Атакующие использовали технику тайпосквоттинга, создав поддельный пакет github.com/boltdb-go/bolt. Разница в названии минимальна, но при установке подделки в проекте появляется бэкдор, позволяющий выполнять удалённый код.

9.jpg
Несмотря на то, что вредоносная версия оставалась доступной на Go Module Proxy в течение трёх лет, следов её массового использования не найдено. По данным Бойченко, поддельный пакет импортировался лишь дважды, причём оба раза — одним криптовалютным проектом, у которого всего семь подписчиков. Статистика скачиваний в Go не ведётся, но отсутствие звёзд и форков на GitHub за три года говорит о том, что модуль не получил широкого распространения.

Тем не менее, инцидент выявил уязвимость в системе управления пакетами Go. При первой загрузке новый пакет кешируется сервисом Go Module Mirror и остаётся доступным бессрочно. Злоумышленники воспользовались этим, сначала разместив безобидную версию, а затем изменив Git-теги, чтобы при проверке пакет выглядел легитимным. В то же время в кеше продолжала распространяться вредоносная версия.

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

Socket Security уже направила запрос в команду Go с требованием удалить boltdb-go, а также другой похожий модуль bolt-db, который вредоносным не признан. Пока официального ответа от разработчиков Go не поступало.
 
Сверху