В прошлом году охотнику за ошибками Алексу Бирсану удалось взломать цепочку поставок программного обеспечения 35 компаний, используя механизмы упаковки, используемые разработчиками JavaScript, Python и Ruby.

В записать опубликованный во вторник, Бирсан рассказывает, как ему удалось распространить доказательный вредоносный код через реестр npm, PyPI (индекс пакетов Python) и RubyGems, которые используются разработчиками для установки программных библиотек, которые добавляют функциональность их приложениям.

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

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

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

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

Имена частных пакетов оказалось довольно легко найти, особенно в экосистеме Node.js / JavaScript, поскольку частные файлы package.json довольно часто появляются в публичных репозиториях программного обеспечения.

Поэтому Биран создал библиотеки с одинаковыми названиями, которые он разработал для проникновения данных конфигурации системы через корпоративные брандмауэры. Его схема эксфильтрации основывалась на шестнадцатеричном кодировании информации и превращении ее в часть DNS-запроса к настраиваемому DNS-серверу, который он контролировал.

Читайте также:
Как сделать скриншот на любом Android?

Загрязнение потока кодирования

Тогда проблемой стало получение приложений, которые требуют, чтобы частные библиотеки искали эти имена файлов в загрязненном общедоступном источнике.

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

Ассортимент пластырей / пластырей

Новые патчи для SolarWinds Orion после того, как исследователи обнаружили недостаток, позволяющий пользователям с низким уровнем привилегий выполнять код, среди прочего

ЧИТАТЬ БОЛЬШЕ

«Внутренние разработчики публикуют свои пакеты в этом частном канале, а потребители проверяют как частные, так и общедоступные каналы на предмет лучших доступных версий требуемых пакетов», — поясняет Microsoft в бумага опубликовано вместе с раскрытием Бирсана. «Такая конфигурация представляет риск цепочки поставок: атака замещения».

Атака подмены — когда приложения ищут зависимости и извлекают вредоносные версии с одинаковыми названиями из плохо защищенного общедоступного источника, а не из источника, контролируемого компанией, — в конечном итоге сработала для Бирсана.

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

Читайте также:
Update 3 - это конец Windows RT?

Компании, которые Бирсану удалось атаковать с помощью этой техники, включают Apple, Microsoft, Netflix, PayPal, Shopify, Tesla, Uber и Yelp. И за свои усилия он был награжден не менее 130 000 долларов в рамках программ поощрения ошибок, в которых участвуют эти фирмы.

Успех Бирсана в проведении таких атак должен вызвать тревогу. Атаки цепочки поставок программного обеспечения представляют более высокую степень риска, чем многие сценарии угроз, поскольку они могут затронуть очень много нижестоящих жертв. Напомним, что компрометация системы сборки SolarWinds среди наиболее серьезных инцидентов безопасности программного обеспечения за последнее время была атакой на цепочку поставок.

Злонамеренные файлы подтверждения концепции Бирана были обнаружены компанией SonaType, занимающейся безопасностью, но компания разрешила эксперименту продолжить после переговоров с ним и обсуждения сроков раскрытия информации.

SonaType, технический директор которой много лет назад выразил обеспокоенность по поводу отсутствия надлежащего управления пространством имен в экосистемах с открытым исходным кодом, вчера выпустил сценарий чтобы помочь компаниям проверить, можно ли найти их внутренние имена пакетов в общедоступных реестрах пакетов. По данным компании, количество атак на цепочки поставок программного обеспечения в восходящем направлении выросло на 430%. ®