552

Атака майнеров на Гитхабе

Приветствую.


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


I. Конкретнее


Что именно происходит это: человек делает форк вашего репозитория, меняет файлы конфигурации в Actions (CI, ну можно считать проверяющая система), пишет там скрипт, который скачивает майнер, и в 20 потоков его запускает, сделав pull request к основному репозиторию.


II. Что делать


Мой публичный репозиторий тоже попал под атаку этого человечка. Следующий алгоритм я рекомендую мейнтенерам:

1) Лочим conversation. Иначе наш замечательный умудряется открывать и закрывать pull request раз ~30, триггеря еще три десятка по 20 потоков

2) Блочим юзера. Иначе насоздает PR-ов

3) Останавливаем все workflows

4) Вот теперь репортим


III. Что это было


На момент написания этого поста прошло примерно около суток с момента, когда мой репозиторий попал под первую. Час назад юзеры beefybill1 и w0wn3r0 были удалены с гитхаба, именно они насрали суммарно порядка 200 PR x 30 workflows x 20 runners.


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


Его код я, разумеется, постить не буду. Хоть и меня позабавила строка

# Izvinite)))))

в его коде. С некоторой вероятностью ты, нехорошая личность, это читаешь. Ай-ай-ай!


IV. Подробности (для тех, кто ннп)


Гитхаб - это хостинг гит-репозиториев, в котором есть и открытые, и закрытые. В случаях открытых репозиториев, любой желающий может предложить изменение, оформив в соответствующем виде. При этом само изменение может касаться в том числе и проверяющей системы (Actions).


Такая заявка (pull request) будет проверяться Actions автоматически (если там так настроено). При этом сама проверка настраиваится в файлах репозитория, которые тоже можно поменять. Злоумышленник пишет там скрипт, который скачивает программу, ставит ее, и майнит для указанного кошелька.


При этом сам репозиторий не страдает (потому что эту заявку надо еще одобрить), страдает только GitHub Actions.

8
Автор поста оценил этот комментарий

Нихуя не понял, но очень интересно.

Гитхаб позволяет запускать скрипты на своих серверах?

Я думал, что это просто архив кода.

раскрыть ветку (1)
15
DELETED
Автор поста оценил этот комментарий

Типа архива, да. Но репозиториям часто хочется иметь автоматическую проверку, которая ранее делалась через сторонние сервисы. Ну ее и сейчас так можно делать, но часть реп перешли на GitHub Actions - такую же "проверялку", только от самого Гитхаба. И она очень халявная, прямо подарок опенсорсу. Но нашлись ублюдки...

показать ответы
11
DELETED
Автор поста оценил этот комментарий

А... ну и как можно было заметить, теперь есть отдельное соо для опенсора (включая свободно распрострямые звуки и изображения!). Может кому будет интересно.

показать ответы
6
Автор поста оценил этот комментарий
Круто! А скажи ещё что-нибудь по кампутерному!
раскрыть ветку (1)
6
DELETED
Автор поста оценил этот комментарий

Оперативка самый главный компонент в компуктере!

показать ответы
0
Автор поста оценил этот комментарий
Может я чутка тупой, но хочу уточнить: на гитхабе выкладывается код, и в тех местах, где код этот общедоступный для редактирования мамкины кулцхацкеры в этот код вписали скрипт или какую-то хуйню, которая начинает майнить крипту у тех, кто решит этот код использовать не читая его?
раскрыть ветку (1)
5
DELETED
Автор поста оценил этот комментарий

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

показать ответы
4
Автор поста оценил этот комментарий

Так быдлокодерам на бесплатных акках вообще есть смысл беспокоиться?

И если да, то что нужно сделать, простым языком инструкцию озвучить :0

раскрыть ветку (1)
4
DELETED
Автор поста оценил этот комментарий

Ну лично я прилагаю эти усилия, чтобы GH не стали из-за таких ограничивать Actions. Мои усилия, конечно, как капля в море - но видимо каждый должен заняться каким-то кажущемся бесполезным занятием. А так - в принципе нет, если к тебе такой придет, его накажут, а тебе ничего не будет, даже если ты его не будешь блочить.

1
Автор поста оценил этот комментарий

А майнил то редиска за счет чего?

раскрыть ветку (1)
6
DELETED
Автор поста оценил этот комментарий

Майнил на мощных (без сарказма) машинах GitHub Actions

3
Автор поста оценил этот комментарий
А как же мамка и видюха? А как же жёсткий диск?
раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий

В компьютере самое главное память. Сначала оперативная, потом диск (ssd >> hdd), потом кеши проца. А остальное - да насрать).


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

показать ответы
1
Автор поста оценил этот комментарий
Хочу понять просто как оно будет решаться на практике.
раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий

В настройках репы уже есть настройка Actions. Просто надо добавить галку. Ну либо я не понял, что тебя интересует

показать ответы
3
Автор поста оценил этот комментарий
Я хрен знает как оно в этих ваших гитхабах, но гитлаб умеет запускать си в любой ветке подтягивая правила только из протектед/мастера. Мне кажется публичных реп оно мастхэв
раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий
подтягивая правила только из протектед/мастера

Ну тогда аутсайдеры не могут поменять. Правильное решение тут ИМХО следующее: сделать галку, по которой CI активируется только по аппрувалу мейнтенера.

показать ответы
1
Автор поста оценил этот комментарий

А что именно они майнили?

раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий

Monero

Автор поста оценил этот комментарий

Что за гитхаб? Заходил туда но нихуя не понял.  ... Бля.

раскрыть ветку (1)
3
DELETED
Автор поста оценил этот комментарий

Хранилище репозиториев с кодом. Для закрытых и открытых IT-проектов (софта). Там можно настраивать проверяющую систему для своего проекта, чем и воспользовался злоумышленник

9
Автор поста оценил этот комментарий
Actions - в данном случае - CI-пайплайны от гитхаба, в бесплатной версии сильно ограничены по времени, в платной - не сильно. Т.е. персонажи за чужой счёт майнили на серверах гитхаба.
раскрыть ветку (1)
7
DELETED
Автор поста оценил этот комментарий

CI-пайплайны от гитхаба, в бесплатной версии сильно ограничены по времени
Без ограничений для бесплатных репозиториев. Вообще.

показать ответы
1
Автор поста оценил этот комментарий

Ну да, закрытая корпоративная платная репа)

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Ну вот. А для открытых реп ограничений нет

0
Автор поста оценил этот комментарий
Зачем лезть в доки, если каждый день с этим работаю и именно по этой причине мы заказали макмини, потому что макось считается как 3/1 от минуты на линукс
раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Так. Открываю настройки и смотрю расход своего репозитория. Ой, 0. Может ты имеешь ввиду закрытую репу, где есть ограничения?

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Почему 0-то? Такое огромное число раннеров это достаточно много вычислительных мощностей, учитывая, что машины на Actions очень мощные.

1
Автор поста оценил этот комментарий

да не, все понял. прикольные у тебя проекты, гитхаб твой покурил

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Хех :)

4
Автор поста оценил этот комментарий

И уже два подписчика.

@WhiteBlackGoose удачи новому соо!

раскрыть ветку (1)
2
DELETED
Автор поста оценил этот комментарий

Еее, спасибо!

3
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
4
DELETED
Автор поста оценил этот комментарий

Нуу, енто не тру OSS :). Ничего, скоро и тебя вылечат

DELETED
Автор поста оценил этот комментарий

Я вообще на гую вертел CI/CD. Всего раз пригодилось, когда для диплома на ЛаТеХе писал, и было удобнее работать с нескольких компуктеров и сразу смотреть результат. А вот в проде на работе такого нихуя нет и не предвидится. Код на гитлабе. Билдируется все через женкинс. Артефакты на нексусе. И вот вообще нефиг смешивать вот это вот все. Ну жека качает код с гитлаба, качает артефакты с нексуса по зависимостям, и загружает полученные артефакты на нексус. Зачем вмешивать репу кода в билд - непонятно, особенно учитывая что билд далеко не всегда нужен после каждого коммита или мердж реквеста.

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Подожди-ка, но Jenkins это тоже CI. То, что ты описал, оно и есть. Здесь Actions, у тебя Jenkins, вот и разница.)


Зачем вмешивать билд в репу - ну тут каждому свое, наверное. Большинство CI этого требуют, но видимо есть и исключения. Имхо это полезно, ибо безопасности это не угрожает (есть secrets у каждой репы на гх), а кто-нибудь может это все видеть и даже поправить.

показать ответы
0
Автор поста оценил этот комментарий
Спасибо, все понял, только что такое репозитарий?
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Хранилище кода проекта, условно

0
Автор поста оценил этот комментарий
Они убрали помесячный лимит минут?
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Для открытых вроде и не было, не помню

0
Автор поста оценил этот комментарий

ну так, чтоб понять насколько злится, сколько эта редиска там намайнила себе?

З.ы. а зачем гит хабу для проверки кода видеокарты?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Не знаю сколько намайнила. И у гитхаба нет видеокарт на тех машинах)

показать ответы
0
Автор поста оценил этот комментарий
Блядь, ах вот почему тесты сыпятся. Из-за них урезали время выполнения и цэппэшный проект не успевает даже собраться.
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий
не успевает даже собраться.

Это ж сколько он суммарно собирается по времени?

показать ответы
0
DELETED
Автор поста оценил этот комментарий

@NeAdminPikabu, привет, ты как?

0
DELETED
Автор поста оценил этот комментарий
0
Автор поста оценил этот комментарий

Можно в том же CI зашьедулить специальную джобу, которая будет дергать апи и ранать CI всех пулл реквестов.


(шутка. частично)

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Не удивлюсь, если это против правил ГХ

4
Автор поста оценил этот комментарий

Чтобы отправленный пулл-реквест прошёл весь комплект тестов, пока мейнтейнер спит. Если тестов много, а проект сложный, то это может занимать много времени. Заодно невнимательный автор может что-то поправит.

С учётом бесплатности, можно проверять всё подряд без особого одобрения, поскольку почти всегда пулл-реквесты делают адекватные добросовестные люди.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Это уже правда несколько месяцев назад ввели, но теперь, как я и опасался, приходится явно разрешать ранать CI для новых контрибьюторов(

показать ответы
0
Автор поста оценил этот комментарий
10к минут машинного времени ж на платке
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

Я явер, у меня лапки, и я не понимаю что такое дотнет рантайм) Для меня рантайм это место где запускается код (jre, CLR ), а где собирается- не рантайм, а CI. И раньше можно было собирать код без azure, по классике, запушил в репу, тимсити чтото там собрал.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Я имел ввиду репозиторий dotnet/runtime :).

0
Автор поста оценил этот комментарий

Но программисты же используют. И я думаю куча проектов использует в качестве CI тимсити. А другая куча использует azure.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Я говорил про дотнет рантайм. У них единственное CI - Azure pipelines на репе. При чем тут инструменты JB?

показать ответы
0
Автор поста оценил этот комментарий

Ну у Azure свой CI, у жетбрейнса свой, так что минимум 2) Я думаю еще накопать можно.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

При чем тут JB? Они не используют то, что является их конкурентом)

показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

В это время дотнет рантайм, работающий на одном CI: я для вас шутка какая-то?

показать ответы
Автор поста оценил этот комментарий

То есть если я качаю софт через гит есть вероятность подцепить майнер от левого хера только потому что функционал гитхаба это позволяет?

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Нет, такого шанса нет. Сами репозитории не страдают

5
Автор поста оценил этот комментарий
@WhiteBlackGoose , если ннп это- нихуя не понял, то ниже надо было сделать подробности для сннп ( совсем нихуя не понял) , потому что после ваших подробностей, честно говоря, понятнее не стало.
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

В следующий раз будет сннп, всннп, и авсннп)

0
Автор поста оценил этот комментарий
Специально пошел посмотреть, так вот прошлая успешна сборка + тесты заняла 10:58. Сейчас же падает после 5:32, 5:37.
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

10:58 минут? И падает после 5 минут? Или это в часах? Если в минутах, то у тебя беды какие-то. Если опен-сорс, могу чекнуть)

показать ответы
0
Автор поста оценил этот комментарий
Да вот как раз сборка быстрая, минут пять. А вот пока контейнер подтянется, пока пакеты с зависимостями. Только проходит сборка подпакетов, начинается сборка основного, как приходит капут.
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Сколько времени можешь сказать?

показать ответы
0
Автор поста оценил этот комментарий

На гитхабе есть ограничение на процессорное время

https://docs.github.com/en/github/setting-up-and-managing-bi...

Так что, как я понял, Github Actions для репозитория может фактически залочиться

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Это для приватных реп. Читаем первые две строки:

GitHub Actions usage is free for both public repositories and self-hosted runners. For private repositories, each GitHub account receives a certain amount of free minutes and storage

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества