Чем вообще занимается служба безопасности GitHub?

от автора

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

Такие репозитории существуют уже 2 года. У гитхаба есть миллиарды долларов, служба безопасности и искусственный интелект. Почему они за 2 года не решили эту проблему?


Сначала мы посмотрим на уже найденные репозитории, найдем в них одинаковые паттерны, а затем по этим паттернам найдем другие репозитории.

Посмотрите на эти репозитории, в каждом из них в readme находится ссылка на zip архив с трояном:

Ссылка на скачивание zip архива с трояном

Ссылка на скачивание zip архива с трояном

Если мы скачаем этот zip архив и отправим отдельные файлы из него в VirusTotal, то получим такую картину:

Проверка файлов из zip архива в VirusTotal

Проверка файлов из zip архива в VirusTotal

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

Давайте возьмем заголовок «📥 Download» и сделаем поиск по этой строке в гитхабе. Но нам нужно искать не по всему коду, а только по readme файлам. Откройте сайт github.com и сверху в строке поиска введите:

path:readme.md «## 📥 Download»

Количество результатов будет всегда разным. У меня он сначала показал 9К репозиториев, а когда я перешел на 2 страницу, то уже было 109 репозиториев. После обновления страницы снова 9К репозиториев.

В выдаче вам нужно визуально отбросить результаты, в которых есть какой-то другой текст, а не только заголовок. Варианты заголовков будут примерно такие:

  • ## 📥 Download Now

  • ## 📥 Download Now Again

  • ## 📥 Download the Software

  • ## 📥 Download & Install

Результаты первого поиска

Результаты первого поиска

Откройте эти репозитории. В них будет ссылка на zip архив с трояном.

Но в результатах поиска будет много легитимных репозиториев. Мы можем улучшить поиск, добавив поиск по zip архиву. Строка поиска получится такой:

path:readme.md «## 📥 Download» «.zip»

Это гораздо улучшит выдачу. Теперь прямо в поиске мы видим, в каких из репозиториев есть нужный нам заголовок и ссылка на zip архив.

Результаты второго поиска

Результаты второго поиска

Но и в этих результатах есть легитимные репозитории. Как еще можно улучшить поисковый запрос?

Все ссылки на zip архивы ведут на githubusercontent.com или на github.com. Также zip архив содержит номер версии, например Software-3.6.zip. Значит нам просто нужно написать регулярное выражение для поиска таких ссылок. Но как я и говорил в начале, вам не нужны знания для этого. С этим справится любая бесплатная ИИ модель. Отправляем ей 10 таких ссылок, и через несколько итераций получаем такой результат:

path:README.md /raw\.githubusercontent\.com\/.*\d+\.\d+\.zip|github\.com\/.*\/raw\/refs\/heads\/.*\d+\.\d+\.zip/

Вводим этот запрос и получаем репозитории, которые распространяют zip архив с трояном. Количество репозиториев всегда разное. В моем случае иногда 111, иногда 4.4К.

Результаты третьего поиска

Результаты третьего поиска

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

Может у службы безопасности гитхаба не было этих репозиториев?
Может они не знают об этом общем паттерне?

Месяц назад я опубликовал статью, в которой подробно разобрал эту схему. Я написал скрипт, который нашёл 10,000 таких репозиториев. Список всех репозиториев и этот скрипт я опубликовал на гитхаб.

Статья попала на главную страницу Hacker News. Об этой схеме написали другие сайты по кибербезопасности.

Вот полный список действий, которые предприняли в GitHub:

  1. Они удалили все 10К репозиториев, которые нашёл скрипт.

Всё. Больше они ничего не сделали.

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

Но мы можем сделать вывод: они прекрасно знают об этой схеме распространения вирусов.

Сколько бы я не пытался, я не могу найти ответа на вопрос, почему так происходит. Microsoft это корпорация с миллиардными доходами. У них тысячи сотрудников, безграничные возможности и искусственный интеллект. Всё что им нужно было это выделить несколько дней любого штатного сотрудника, чтобы он с помощью Copilot нашёл все эти репозитории и заблокировал их.

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

Но ведь они за несколько часов после публикации первой статьи удалили все 10К репозиториев.

Почему они остановились и больше не предприняли никаких действий?

ссылка на оригинал статьи https://habr.com/ru/articles/1063140/