По данным Aqua Nautilus, три ошибки дизайна галереи PowerShell, о которых Microsoft сообщила почти год назад, остаются неустраненными, что делает пользователей реестра уязвимыми для опечаток и атак на цепочку поставок.
В отчете, опубликованном в среду, инженер-программист отдела безопасности Мор Вайнбергер и специалисты по поиску недостатков Якир Кадкода и Илай Голдман говорят, что они сообщили Microsoft в конце сентября.
Тем не менее, несмотря на то, что Microsoft подтвердила наличие недостатков — и дважды сообщила команде Aqua, что исправления исправлены и проблемы решены — на сегодняшний день ошибки все еще воспроизводятся, как утверждается. Трио Aqua говорит, что они сделали экспериментальный эксплойт для двух из трех проблем безопасности.
Гигант Windows не сразу отреагировал на Регистри мы обновим эту историю, если или когда получим ответ.
Галерея Microsoft PowerShell — это огромный репозиторий скриптов, модулей и ресурсов конфигурации желаемого состояния (DCS). Он может похвастаться тем, что на сегодняшний день у него было около 10 миллиардов загрузок пакетов. Это делает ее привлекательной мишенью для злоумышленников: если они смогут злоупотребить галереей, чтобы внедрить вредоносный код в развертывание людей, это может привести к широко распространенным нарушениям информационной безопасности и краже данных.
Первая проблема связана с политикой имен модулей PowerShell Gallery. Нам говорят, что для кого-то слишком просто создать в галерее пакет с именем, близким к законному пакету, загрузить поддельный пакет с вредоносным ПО и дождаться, пока разработчики, опытные пользователи и администраторы подтянутся. плохая зависимость.
«Мы установили, что в галерее PowerShell отсутствует какая-либо защита от опечаток модулей, в отличие от других популярных менеджеров пакетов, таких как npm», — отметили три руководителя Aqua.
Например: большинство официальных пакетов Microsoft Azure используют определенный шаблон именования «Az[dot]package_name», — объяснили они, например Az.Accounts. Но один популярный модуль, поддерживаемый Microsoftie с более чем 10 миллионами загрузок, Aztable, не следует этому шаблону, потому что у него нет точки после «Az».
Это позволяет злоумышленникам относительно легко провести атаку с опечаткой, загрузив новый пакет с именем Az.Table — обратите внимание на точку — и обманом заставив пользователей установить вредоносный модуль PowerShell под контролем злоумышленника. Чтобы доказать свою точку зрения, команда сделала то же самое с POC и вставила скрипт для отслеживания загрузок фальшивого пакета.
Аналитики написали, что в течение нескольких часов они получили ответы от «нескольких хостов из различных облачных сервисов, в которых подчеркивалась эффективность опечаток и подчеркивались опасности, связанные с этими недостатками безопасности».
Эта уязвимость может быть использована для масштабной атаки на цепочку поставок, взлома нескольких облаков и компрометации многих организаций, считают они: «Серьезность воздействия будет фатальной».
Как ни странно, Microsoft должна знать об этой проблеме, которая мешает другим хранилищам кода, потому что один из ее инженеров создал Az.Table для обнаружения опечаток, хотя пакет отсутствует в списке или скрыт от поиска — подробнее об этом позже.
Вторая проблема существует на целевых страницах для модулей PowerShell, например, этот — в том смысле, что не сразу понятно, кто на самом деле написал и загрузил ресурс.
Это связано с тем, что злоумышленники могут загрузить вредоносный пакет и написать все, что захотят, в полях «Автор», «Авторские права» и «Описание» на целевой странице. Таким образом, кто-то может создать плохой пакет и поделиться им в галерее с Microsoft или AWS, указанными в качестве автора, который будет показан пользователям. Если пользователь развернет «Сведения о пакете», он увидит список учетных записей пользователей, связанных с этой загрузкой, но эти профили также могут быть подделаны.
По словам Аква, «определение фактического автора модуля PowerShell в галерее PowerShell представляет собой сложную задачу». Это также означает, что мошенникам немного легче маскировать плохие пакеты под код законного, надежного разработчика.
Третий недостаток позволяет получить доступ к незарегистрированным или скрытым пакетам, например, содержащим конфиденциальные данные, любому, кто готов копаться достаточно, чтобы найти случайную иголку в стоге сена.
Хотя незарегистрированные пакеты не должны отображаться в API поиска галереи, команда Aqua нашла XML-файл по адресу /api/v2/Packages
который содержал «всеобъемлющую информацию обо всех пакетах в галерее PowerShell», включая незарегистрированные.
В конце файла XML формата /api/v2/Packages?$skip=[number]
. Путем изменения [number]
, можно просмотреть каждый пакет, указанный или не указанный в списке, и их конкретные версии. Исследователи полагают, что этот тип доступа может быть особенно полезен для преступников, которые ищут конфиденциальные данные для кражи с целью вымогательства или шпионажа.
«Этот неконтролируемый доступ дает злоумышленникам возможность искать потенциально конфиденциальную информацию в незарегистрированных пакетах», — заявила команда Aqua. «Следовательно, любой незарегистрированный пакет, содержащий конфиденциальные данные, становится очень уязвимым для компрометации».
Они продолжили: «Мы были удивлены, увидев издателей, которые по ошибке загрузили свой файл .git/config, содержащий ключи API GitHub, или сценарий публикации модуля, содержащего ключ API, в саму галерею».
Поскольку все эти три недостатка все еще существуют, по словам Аква, исследователи призывают к осторожности при использовании галереи PowerShell, «пока Microsoft не исправит недостатки».
Мы видели, что мошенники будут использовать опечатки и прочую чистку репозиториев пакетов, чтобы заразить разработчиков и приложения вредоносными программами; Скрестим пальцы, злодеи не переходят из GitHub, NPM, PyPI и других в галерею PowerShell. ®