История одной DDOS атаки
В последнее время участились атаки на цепочку поставок через публичные репозитории. Рассказываем, как с этим бороться.
В прошлом году на новостных IT-сайтах появилась информация об «отравлении» репозитория RubyGems, официального канала распространения библиотек для языка Ruby. Некий злоумышленник загружал на этот ресурс поддельные сборки кода, дополненные вредоносным скриптом. То есть все программисты, которые использовали этот код в своих разработках, невольно заражали компьютеры своих пользователей зловредом, подменяющим адреса криптовалютных кошельков.
Разумеется, это не первая атака на цепочку поставок, проведенная через открытые репозитории. Но сейчас такой сценарий, похоже, набирает популярность. И это неудивительно — ведь в результате одной успешной атаки можно скомпрометировать десятки или сотни тысяч пользователей. Все зависит только от популярности ПО, разработчики которого воспользуются кодом из «отравленного» репозитория и станут звеньями в цепи.

Как вредоносные пакеты оказываются в репозиториях?
В случае с RubyGems злоумышленник создал в репозитории множество проектов с именами, похожими на популярные легитимные сборки кода. Эта техника называется typosquatting: она подразумевает, что разработчик может опечататься при вводе названия пакета и загрузить вредоносный, или, получив несколько пакетов в ответ на поисковой запрос, не понять, какой из них подлинный. Эту тактику злоумышленники применяли и при атаках через Python Package Index, и при загрузке фальшивых образов на Docker Hub. Да и вообще это самый распространенный метод «отравления».
В инциденте с криптокошельками Copay, о котором мы писали некоторое время назад, злоумышленники использовали библиотеку, репозиторий которой размещался на GitHub. Ее создатель потерял интерес к своему детищу и был только рад, когда какой-то новичок попросил права администратора, чтобы продолжить работу. В результате популярная библиотека, которую использовали многие разработчики в своих продуктах, была скомпрометирована.
Иногда злоумышленникам удается воспользоваться учетной записью легитимного разработчика без его ведома и заменить пакеты поддельными. Так случилось в инциденте с ESLint, библиотеки которого размещались в онлайновой базе данных npm (Node Package Manager).
