Выявлена подстановка вредоносного изменения в репозиторий проекта changed-files, развивающего обработчик к системе GitHub Actions, позволяющей автоматически запускать сценарии сборки и тестирования кодовых баз при срабатывании определённых событий, таких как поступление push-запроса, создание релизов, открытие/закрытие issue и открытие/закрытие pull-запросов. Обработчик changed-files использовался в 23 тысячах репозиториях, применяющих GitHub Actions в инфраструктуре непрерывной интеграции, для отслеживания изменения файлов и каталогов...Подробнее: https://www.opennet.me/opennews/art.shtml?num=62892
> nikitastupinнаш слон базовичок дискредитирует американский гитхаб?
Прошу прощения, уточните пожалуйста, а “ваш” это чей будет? Мексика, Канада, Дания… Еврозоюз? Какая-то из стран восточной Европы, граждани которой имею претензии к 🇺🇸 ?
> Всем привет! Я Никита Ступин, специалист по информационной безопасности Почты Mail.Ru. Не так давно я провел исследование уязвимостей мобильного OAuth 2.0. Для создания безопасной схемы мобильного OAuth 2.0 мало реализовать стандарт в чистом виде и проверять redirect_uri. Необходимо учитывать специфику мобильных приложений и применять дополнительные механизмы защиты.Мексика, да
Китаец Ni Kita Stu Pin.
На филиппинский похоже. Сравните, всемирно известный хит: Bakit Nga Ba Mahal Kita
Их имеется в виду часть граждан РФ сочувствующих кремлю.
> Who is nikitastupin? Он автор этого изменения, или его взломали?Судя по всему он просто автор скрипта memdump.py, написанного в рамках исследования (https://github.com/nikitastupin/pwnhub), который заюзали атакующие
Молодец, Никитос, надеюсь, товарищмаёр довольны и уже представили себя к госнаградам.P.S. отдельно доставляет что "знающие гит" девляпсы без понятия как ты этого добился - так что можем повторить!
А в гитхаб профиле у него звание, адрес места “службы” , герб и прапор страны?> Штирлиц брёл по улицам тихого немецкого городка. "Ничто не выдавало в нём советского разведчика — разве что волочившийся сзади парашют да ушанка с красной звездой могли привлечь к нему внимание случайного прохожего"
Никитос - просто автор дампилки памяти, которой воспользовался злоумышленник
А Никитоса к Статье 272
Никтос-то тут причём? Я о нём слышал как минимум с 2018 года, легитимный ресёрчер. Вернее не совсем: на Huawei он работал. Ну раз ему так КНР мила - вот пусть туда на ПМЖ и едет. И о соц. "кредитном рейтинге" пусть обеспокоиться не забудет.
у тебя уровень критического мышления равен нулю?
Лол, опять пострадали только те, кто тянул в рот всё самое неизвестное.
> Подобные коммиты могут свидетельствовать о добавлении не в основной репозиторий, а в его форк (при прямом обращении через основной репозиторий в GitHub коммиты из форков остаются видимыми).O_O
Ничего себе! То есть человек может сделать форк моего проекта, закоммитить туда объект, а затем скачивать его "типа из моего проекта"?
> Примечательно, что атакующий добился добавления вредоносного коммита почти во все git-тэги и релизы проекта changed-files, без отображения в git-логе коммитов в соответствующих ветках.
Снимаю шляпу. Талантливый парень.
> GitHub в целях оптимизации и исключения дубликатов хранит вместе все объекты из основного репозитория и форков, лишь логически разделяя принадлежность коммитов.
Сама концепция гита - ущербна.
Пытался я как то небольшой репорт отправить, мне сказали,
- сделайте форк нашего проекта к себе(!),
- сделайте исправление кода у себя в форке,
- пришлите нам ваши изменения в вашем форке и мы подумаем принимать ли.
А я хотел им тупо на ошибку указать в одном месте.Ну то весь гитхаб это есть форк форка и форком погоняет. и мне без разницы сколько раз они хранят код, тысячу или один (прописывая реляции между проектами).
> А я хотел им тупо на ошибку указать в одном месте.Git вообще изначально - инструмент для разработчиков. Всякие багтрекеры и проч - весьма опциональный довесок, который как таковой не часть гита.
Более того - разработчикам довольно часто не интересна информация о ошибках в чем либо кроме самой последней версии в максимально свежем состоянии. Потому что возможно они уже починили это полгода назад. Поскольку это ваша проблема - вам и разбираться как и что. Если оно вам надо. Не надо - окей, но это ВАША проблема. Свои - разработчики как правило починят сами.
А секрет прост: время разработчиков не резиновое. Вы либо подыгрываете по максимуму, экономя их время, и к вам одно отношение. Или нет - тогда отношение может быть и другое. Весьма зависит от команды и доступных им ресурсов.
Git сам по себе - к багрепортам вообще ортогонален, внезапно.
> А секрет прост: время разработчиков не резиновое.а мое - резиновое? Напоминаю - там человек ошибку нашел. Не свою.
> Вы либо подыгрываете по максимуму, экономя их время
им и так сэкономили дофига времени, ткнув носом в ошибку.
> Весьма зависит от команды и доступных им ресурсов.
в целом, если кому-то недостаточно issue и требуют чего-то еще - надо от этой команды и ее продукта просто держаться подальше.
Ты им и так бесплатным преальфатестером (судя по качеству кода, позволяющему кому-то в первый раз с ним встретившимся ткнуть в ошибку) поработал. Делать за них остальную их работу - какая-то совершенно неэффективная бизнес-стратегия.> окей, но это ВАША проблема
нет, это проблема в их софте. Я ее решу выбрасыванием недоделка в помойку, а не вылизыванием всяких мест разработчику-криворучке.
А если уж создам форк - то это будет - форк. И тут уже разработчики-криворучки пусть приходят и клянчат. Ну или разбираются в собственном лапшекоде заново и ищут что я там понаисправлял (причем чтоб им не мешать - мы так не договаривались)
> нет, это проблема в их софте.ну так не пользуйся их софтом, напиши свой... ой, что с лицом?
> а мое - резиновое? Напоминаю - там человек ошибку нашел. Не свою.Это твои проблемы. Баг же - у тебя :). Как ты понимаешь, явные баги долбавшие вот именно разработчиков, в их конфигах - долго не живут.
> им и так сэкономили дофига времени, ткнув носом в ошибку.
Совсем не факт. Это могло быть починено полгода назад - и тогда это безблагодатный профак времени на какого-то овоща который сам это найти поленился. ЧСХ это довольно частая ситуация и поэтому девы вполне могут оптимизнуть свое время за счет такого нерюха.
Это такой базовый протокол взаимодействия разработчиков. Подразумевается что репортер проверит свой трабл на чем-то уровня git master. Если там проблема тоже есть - окей, велкам, а если ты еще и фикс знаешь, или бисект сделал и проч - будут на руках носить. За вот именно экономию времени и возможность выкатить дешево и сердито радикальный фикс. И вот так можно получить фикс на крутой баг быстро и эффективно. И с помощью зала. Но вот этот опыт очень зависит от понимания этого топика.
> в целом, если кому-то недостаточно issue и требуют чего-то еще - надо от этой
> команды и ее продукта просто держаться подальше.Так тебя ж никто под дулом пулемета не загонял юзать их продукт? Или как это выглядело? Эти господа вообще так по дефолту тебе ничем не обязаны. Это ж тебе от них чего-то надо, например - продукт, а чего доброго еще и фиксы.
Не надо? Оки, а о чем тогда разговор? Это взаимодействие свободных людей. Не нравится одной из сторон - наши дорожки расходятся, гудбай.
> Ты им и так бесплатным преальфатестером
Только если это был git master или эквивалент. Иначе это мало кому интересно. Раскапывать починено ли это полгода назад - время жрет. Но ты можешь проплатить проекту пару триажеров багов, кто ж откажется?! Они это разрулят в лучшем виде тогда, за тебя. Но ожидать что такой объем по дефолту за тебя кто-то иной сделает - ага, ща.
> нет, это проблема в их софте.
Или нет. Может они ее полгода назад починили уже. А у тебя версия годичной давности и ты приполз - делать мозг. Ни на что.
> Я ее решу выбрасыванием недоделка в помойку, а не вылизыванием всяких
> мест разработчику-криворучке.И, собственно, что разработчик теряет от этого?
> А если уж создам форк - то это будет - форк.
Принцип опенсорса - форкайся наздоровье если здоровья хватает. И вот тут мы посмотрим как тебе ощущается кекс делающий мозг багом который ты полгода назад - зафиксил, но ему видите ли вломы git master взять и проверить.
> (причем чтоб им не мешать - мы так не договаривались)
Вы и правда ни о чем не договаривались. Но при сильной двиергенции форка от апстрима работенки подвалит почему-то таки - тебе :)
> Как ты понимаешь, явные баги долбавшие вот именно разработчиков,
> в их конфигах - долго не живут.еще как живут. Годами.
(достаточно вспомнить баг который разработчики net/3 "ловили всем аулом" ГООООД - а там не какие-то мелочи, там kernel panic был)> Вы и правда ни о чем не договаривались. Но при сильной двиергенции форка от апстрима
> работенки подвалит почему-то таки - тебе :)от криворучек не желающих признавать собственные ошибки и исправлять их - не подвалит.
> Сама концепция гита - ущербна.GitHub не Git
> Пытался я как то небольшой репорт отправить, мне сказали,
> - сделайте форк нашего проекта к себе(!),
> - сделайте исправление кода у себя в форке,
> - пришлите нам ваши изменения в вашем форке и мы подумаем принимать ли.этот набор действий означает просто PR (Pull Request), просто вам расписали подробно, вдруг вы новичек и не знаете? Cоздавать форки у себя абсолютно нормально, а вот когда в основном репозитории разрешают гадить и плодить ветки это ненормально, это нужно делать в форках. Более оптимального способа отправить PR нет, если вам, кажется, что можно сделать ещё проще, то как?
> А я хотел им тупо на ошибку указать в одном месте.
Тогда просто пишите ошибку в Issues, если вас просят создать ещё и PR, это не обязывает вас его создавать, вас просто побуждают сделать хороший поступок, это примерно, как, когда человек убирает поднос с объедками за собой в общественной забегаловке, а не взваливает эту ношу на персонал, хотя персонал всё равно это сдлеает, это им надо и это их работа.
> Подобные коммиты могут свидетельствовать о добавлении не в основной репозиторийТо-есть мерзкософт с своими типа-ништяками - довел инфраструктуру до состояния когда даже не знает откуда им прилетело? И эти люди лезут учить других на тему supply chain с своими 2FA?
Не совсем.
Они знают, но просто нам не говорят, что бы еще больше мамкиных хацкеров не начали деструктивно дестроить все подряд.
А проблема в том, что при откате назад, теги не откатываются на старые - (Вот новость то!) а значит можно злоупотребить.
Почему вредоносные теги прописались в родительском проекте, переписав оригинальные - этот факап надо чинить.
Старая технология МелкоМягких, сначала что то внедрить не подумав, а потом бросится доблестно устранять. Приводу древний пример с письмами (в 4?) оутлуке в HTML+JS, в которых ВНЕЗАПНО оказалось можно рассылать вирусы, и даже письмо не обязательно было открывать.
> Они знают, но просто нам не говорят, что бы еще больше мамкиных
> хацкеров не начали деструктивно дестроить все подряд.А таки - примеры уже есть, так что - начнут.
> Почему вредоносные теги прописались в родительском проекте, переписав оригинальные - этот
> факап надо чинить.Очень стебно что эти индусы что-то смеют вещать про "цепочки поставок" и навязывать 2FA, сами сидючи с такими плюхами.
> HTML+JS, в которых ВНЕЗАПНО оказалось можно рассылать вирусы, и даже письмо
> не обязательно было открывать.Ога, прикольно придумали. И активиксы примерно так же еще были. Улучшили, так что все корпфаеры теперь такую почту просто под нож пускают, от греха. Лучше чем очередной вариант пакости типа мсбласта пытаться по всему энтерпрайзу удалить.
да-да, это ж они написали р-опую vcs в которой подмена истории не катастрофа с записью во все логи, а рутинная операция. Ой, нет. Ее б-жок с пальцем наляпал задней левой ногой.Ему не жмет, у него на локалхосте никто форсед пуш кроме него не сделает.
А что вы жрете с лопаты любой навоз лишь бы забесплатно - тоже корпорация зла виновата.
> да-да, это ж они написали р-опую vcs в которой подмена истории не
> катастрофа с записью во все логи, а рутинная операция. Ой, нет.
> Ее б-жок с пальцем наляпал задней левой ногой.В этой DVCS самой по себе всего вон того - вообще нет. Факапище чисто в майкрософтовском обесе :D. Тут совсем не отмажешься.
> Ему не жмет, у него на локалхосте никто форсед пуш кроме него не сделает.
Зато у майкрософт индусы которые сперва накодят ништяков - потом с удивлением узнают что оказывается эвон как можно было. Где были пм и архитекты кхе-кхе "решения" мы вообще тактично помолчим. Видимо - еще чистили индийский сортир, а i++ итерация собеса только через недельку.
> А что вы жрете с лопаты любой навоз лишь бы забесплатно -
> тоже корпорация зла виновата.Вот не надо грязи в женской бане, я уже забыл кренделя на гитхап. Так что не жру.
> В этой DVCS самой по себе всего вон того - вообще нет.А в ней своего вообще ничего нет. Поделка для локалхоста с подделкой историй, ни авторизации, ни логинга, ни разделения прав, нихрена. Потому что подельщик не умел и не хотел учиться.
И исправить ничего не получится, хоть microsoft, хоть архангел Гавриил - потому шта савместимасть.
> Вот не надо грязи в женской бане, я уже забыл кренделя на гитхап. Так что не жру.
так твой код и не нужен никому.
> Ничего себе! То есть человек может сделать форк моего проекта, закоммитить туда объект, а затем скачивать его "типа из моего проекта"?да, это называется Open Sources, т.е. программное обеспечение с открытым исходным кодом, а гитхаб продемонстрировал беспрецедентную открытость!
Пофиг, third party (не от самого гитхаба и не от себя, любимого) Github Actions обычно по тегам гвоздями прибивают (это если не делать свой форк). Как раз от такого.
Тэги перебиваются на раз-два, git push —tags —force
Нет тегов - нет уязвимости!
(мем с умным негром.)
>\{"value":"[^"]*","isSecret":true\}'Молодцы, GitHub, все секреты промаркировали в JSON, чтобы их удобнее извлекать было.
Как уже сказали чуть выше - там погромист особо "одаренный".
Извините, но я не понял вот эту часть> и обновления всех тегов в родительском репозитории с учётом нового SHA-хэша форка.
Понятно, что он сделал форк и залил туда вирьё. Но как он обновил тэги в основном репе? У тебя же должен быть доступ, чтоб запушить или сменить тэги.
Похоже, если сделать правильный набор действий в форке, то окажется, что "должен то должен, но не обязательно""Кроилово ведёт к попадалову". Решили сэкономить и форки делаются путём линков на родителя... Похоже что не все случаи проверили и не всегда при изменениях в форке расцепляются линки с папой, и .... "получилось как всегда"