Миллионы репозиториев на GitHub потенциально уязвимы для взлома

Миллионы репозиториев на GitHub потенциально уязвимы для взлома

Миллионы репозиториев на GitHub потенциально уязвимы для взлома данных PlatoBlockchain. Вертикальный поиск. Ай.

Миллионы репозиториев корпоративного программного обеспечения на GitHub уязвимы для перекупка, относительно простой вид атаки на цепочку поставок программного обеспечения, при которой субъект угрозы вместо этого перенаправляет проекты, зависящие от определенного репозитория, на вредоносный.

Проблема связана с тем, как GitHub обрабатывает зависимости, когда пользователь или организация GitHub меняет название проекта или передает право собственности другому лицу, говорится в отчете исследователей Aqua Security на этой неделе.

Риски смены имени

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

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

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

Широко распространенная проблема

То, что обнаружила Aqua, было двояким: миллионы таких репозиториев, в том числе принадлежащих таким компаниям, как Google и Lyft, присутствуют на GitHub; Злоумышленникам легко доступны инструменты для поиска этих репозиториев и их захвата. Одним из таких инструментов является GHTorrent, проект, который ведет почти полную запись всех общедоступных событий, таких как коммиты и запросы на извлечение, на GitHub. Злоумышленники могут использовать GHTorrent для сбора имен GitHub репозиториев, которые организация ранее использовала. Затем они могут зарегистрировать репозиторий под этим старым именем пользователя, воссоздать репозиторий и доставить вредоносное ПО в любой проект, который его использует.

Любой проект, который напрямую ссылается на репозиторий GitHub, уязвим, если владелец репозитория изменит или удалит имя пользователя для своего репозитория.

«Мы представили значительный набор данных, который злоумышленники могут использовать для сбора имен предыдущих репозиториев, принадлежащих организациям», — говорит Якир Кадкода, исследователь безопасности в Aqua Nautilus.

«Организации не должны предполагать, что их старые названия останутся нераскрытыми», — предупреждает Кадкода. «Для них крайне важно требовать и сохранять свои старые имена пользователей на GitHub и сканировать URL-адреса и ссылки GitHub в своем коде, чтобы идентифицировать любые репозитории, которые потенциально могут быть захвачены злоумышленником».

Обход защиты

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

Блог Aqua указал на уязвимость GitHub, которая Checkmarx обнаружен в прошлом году как один из примеров доступных злоумышленникам способов обойти попытки GitHub защититься от повторного взлома. Уязвимость заключалась в механизме под названием «упразднение пространства имен популярного репозитория» и затрагивала все переименованные имена пользователей на GitHub, включая более 10,000 XNUMX пакетов в менеджерах пакетов, таких как Swift, Packagist и Go. «Repojacking — это метод перехвата трафика переименованных URL-адресов репозитория и направления его в репозиторий злоумышленника путем использования логической уязвимости, которая нарушает исходное перенаправление», — говорится в отчете Чекмаркса об уязвимости. «Репозиторий GitHub уязвим для повторного взлома, когда его создатель решил переименовать свое имя пользователя, в то время как старое имя пользователя доступно для регистрации».

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

Отметка времени:

Больше от Темное чтение