Как бессрочное кэширование модулей превратилось в инструмент для атак.
В экосистеме языка программирования Go обнаружен вредоносный пакет, остававшийся незамеченным три года. Аналитик по кибер угрозам Кирилл Бойченко из Socket Security сообщил о находке в своём блоге , заявив, что злоумышленники подменили популярный пакет базы данных BoltDB, используемый тысячами организаций, включая Shopify и Heroku.
BoltDB, расположенный на GitHub по адресу github.com/boltdb/bolt , был создан девять лет назад и перестал обновляться спустя год после релиза. Атакующие использовали технику тайпосквоттинга, создав поддельный пакет github.com/boltdb-go/bolt. Разница в названии минимальна, но при установке подделки в проекте появляется бэкдор, позволяющий выполнять удалённый код.
Несмотря на то, что вредоносная версия оставалась доступной на Go Module Proxy в течение трёх лет, следов её массового использования не найдено. По данным Бойченко, поддельный пакет импортировался лишь дважды, причём оба раза — одним криптовалютным проектом, у которого всего семь подписчиков. Статистика скачиваний в Go не ведётся, но отсутствие звёзд и форков на GitHub за три года говорит о том, что модуль не получил широкого распространения.
Тем не менее, инцидент выявил уязвимость в системе управления пакетами Go. При первой загрузке новый пакет кешируется сервисом Go Module Mirror и остаётся доступным бессрочно. Злоумышленники воспользовались этим, сначала разместив безобидную версию, а затем изменив Git-теги, чтобы при проверке пакет выглядел легитимным. В то же время в кеше продолжала распространяться вредоносная версия.
«Это один из первых задокументированных случаев эксплуатации бессрочного кеширования модулей Go», — отмечает Бойченко. По его мнению, неизменяемость модулей одновременно улучшает безопасность экосистемы и создаёт возможности для атак. Он призвал разработчиков тщательно проверять целостность пакетов перед установкой, анализировать зависимости и использовать инструменты для глубокого аудита кода.
Socket Security уже направила запрос в команду Go с требованием удалить boltdb-go, а также другой похожий модуль bolt-db, который вредоносным не признан. Пока официального ответа от разработчиков Go не поступало.
6 февраля в 14:00 — не пропустите!
Реклама. Рекламодатель АО «Позитив Текнолоджиз», ИНН 7718668887, 18+