LINUX.ORG.RU

В Linux-сборках эмулятора Cemu обнаружено вредоносное ПО

 , , ,


0

2

В течение шести дней — с 6 по 12 мая 2026 года — официальные Linux-сборки популярного эмулятора Wii U Cemu версии 2.6 были скомпрометированы. Вместо чистой программы пользователи скачивали вредоносное ПО, которое воровало пароли, ключи SSH, токены GitHub и учётные данные от облачных сервисов. Злоумышленникам удалось подменить бинарные файлы в официальном репозитории проекта на GitHub.

Под угрозой оказались пользователи, которые скачали и запустили:

  • Cemu-2.6-x86_64.AppImage (переносимый пакет)
  • cemu-2.6-ubuntu-22.04-x64.zip (архив для Ubuntu)

Важно: Flatpak-версия эмулятора, Windows и macOS-сборки не были затронуты атакой.

Cemu — это популярный эмулятор Nintendo Wii U, который позволяет запускать эксклюзивные игры, такие как The Legend of Zelda: Breath of the Wild, на персональных компьютерах. Проект был создан в 2015 году нидерландским разработчиком Exzap и изначально существовал только для Windows. Переломный момент наступил в 2022 году, когда Cemu открыл исходный код под лицензией MPL 2.0, что привлекло новых контрибьюторов и позволило портировать эмулятор на Linux и macOS. Сегодня Cemu написан на C++ и способен эмулировать не только основную консоль, но и GamePad, Pro Controller, а также поддерживает ввод с клавиатуры и геймпадов.

Подробности произошедшего:

  • Вектор атаки: Атака произошла на уровне цепочки поставок (supply chain attack). Один из контрибьюторов проекта случайно запустил у себя скомпрометированный Python-пакет, что привело к краже его GitHub-токена доступа. Используя этот токен, злоумышленники автоматически перезаписали «чистые» файлы релиза на вредоносные.
  • Целевая аудитория: Код нацелен в первую очередь на разработчиков и DevOps-инженеров. Вредонос крадёт данные для аутентификации в облачных провайдерах, системах контроля версий и CI/CD.
  • Израильский «сюрприз»: Выявлен деструктивный модуль для израильских пользователей. Если по локали и часовому поясу система определяет, что находится в Израиле, существует вероятность 1 к 6, что проиграется громкая сирена и выполнится команда rm -rf /, пытающаяся уничтожить все данные на диске.
  • Масштаб: По предварительным подсчётам, инфицированные файлы могли быть загружены почти 20 000 раз.

Что делать

  • Сбросьте всё: Обязательно смените все важные пароли, отозвите и сгенерируйте заново SSH-ключи и токены GitHub, которые хранились в заражённой системе.
  • Если вы запускали скомпрометированную версию, самый надёжный способ — переустановить операционную систему
  • Отсутствие явных признаков заражения не гарантирует безопасность. Вредонос тихо крадёт данные, сейчас неизвестен полный объём его возможностей.

>>> omgubuntu

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от hobbit

Так вот, первое требование: а теперь обеспечьте сборку всего этого ВАшего рантайма дотнета и джаваскрипта без доступа в интернет.

Меня всегда интересовало и продолжает интересовать, как такие вопросы решаются при разработке на Rust.

А точно интересовало? Ответ на этот вопрос гуглится за наносекунду: стандартная библиотека идёт в исходниках с компилятором, зависимости единожды скачиваются в исходниках. Никакой интернет ему для сборки никогда был не нужон.

Rust - это буквально голубая мечта гентушника.

r--r--r--
()
Ответ на: комментарий от gagarin0

Если ты делаешь все сам, то найти можно. Или самому таким стать. Примерно за год. А когда ты собираешь вот сейчас вот конкретный дотнет и у тебя в солюшене написано «пойди в Nuget вот туда и вынь оттуда вот это», то тебе остается только переделывать солюшен и менять в нем URLи. А сдавать на сертификацию продукт надо завтра. И переделка солюшенов с тетированием и раскладываеем всего Нугета по локальным полочкам займет месяца три.

gns ★★★★★
()
Ответ на: комментарий от gns

Поэтому надо не урлы переделывать, а создать локальный кэш.

P.S. Это, вообще, дичь, конечно, в 2К26 рассказывать людям азы пользования пакетными менеджерами на техническом форуме.

r--r--r--
()
Последнее исправление: r--r--r-- (всего исправлений: 1)
Ответ на: комментарий от firkax

и надо ограждать рута от юзера

Никто обратного не говорил. Но получив доступ к юзеру, уже не составит труда получить рута(кейлогер, fprint-перехват, etc)

MaZy ★★★★★
()
Ответ на: комментарий от MaZy

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

firkax ★★★★★
()
Ответ на: комментарий от gagarin0

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

gns ★★★★★
()
Ответ на: комментарий от gagarin0

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

gns ★★★★★
()
Ответ на: комментарий от gns

Вопрос к тому, что зависимости нужно скачивать и потом обновлять. Сами собой они не появятся в замкнутом контуре. Кеширование может помочь в решении временных проблем, а может, наоборот, заморозить проблему, если внешние зависимости были скачаны как раз во время сбоя. Это вопрос скорее санкций, но не безопасности.

usermod
()
Ответ на: комментарий от r--r--r--

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

Сам руст через версию и хуже сам себя компилировать не умел. Про библиотеки не знаю точно, но полагаю что там подобный принцип. Оно ещё и llvm в каком-то виде для сборки хочет. Причём не всегда той же версии что меса или файерфокс. Нет уж, спасибо.

Andrew-R ★★★★★
()
Ответ на: комментарий от gns

Ок. Для узенькой задачи сертификации в текущих условиях можно (и нужно) все скачать и не трогать.

Но тема-то про безопасность? А такой подход не только не повысит ее, но уронит в пол. Кто поручится, что в единожды закачанном коде нет заботливо подложенного вируса? И уж точно со временем в нем будут обнаруживаться дыры. И оставаться под сертификатом уже навсегда…

usermod
()
Ответ на: комментарий от usermod

Гарантий нет, конечно. Поэтому вообще тянуть зависимости — дело рискованное. Ну, как минимум, можно загнать сборку в контролируемое окружение, есть шанс оценить зловреда по проявлениям, вдруг полезет куда не туда. Ну и аудит кода никто не отменял.

И уж точно со временем в нем будут обнаруживаться дыры. И оставаться под сертификатом уже навсегда…

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

Ну и сам будешь отслеживать CVEшки, которые твой продукт аффектят.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от usermod

Сертификация теоретически как раз должна среди прочего проверить, что вирусов и прочего там нет. И проверять она должна раз и навсегда фиксированные версии, а не «последнее оттуда-то».

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

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

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от gns

Поставка апдейтов от поставщика софта (и они же тоже должны сертифицироваться?), а не поставка апдейтов каких-то сторонних библиотек от третьих лиц.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Апдейты конечно, только от поставщика. Если у него сертифицировано производство, то апдейты можно не сертифицировать. Но у поставщика есть какие-то обязанности перед регулятором, типа CVE фиксить, Ну и там разработка должна следовать процедуре. Как это проверяется я толком не знаю.

gns ★★★★★
()
Ответ на: комментарий от MaZy

Android-style системы для десктопов

Это ещё в 2005 году на Symbian завезли, обратную совместимость при этом поломали. Хочешь в системных папках на телефоне что нибудь сделать - купи сертификат по паспорту, для персонального развлечения есть сертификат разработчика на 1 IMEI.

Вирус заразил exe на карте памяти - контрольные суммы не совпадут и все, запуск вирусни заблокирован. Хочешь втихую встроить gps tracking - не пройдешь проверку или вообще не стартует без явного указания capability.

zanac1
()

Нельзя во время сборки, в самом процессе сборки, что-то тянуть из сети. Нельзя. Точка. Кто не согласен, протестируйте прочность монолитного бетона.

Какой-то идиот придумал этот бред, а теперь весь мир сошел с ума. Ну впрочем как всегда, обычная планета Земля.

James_Holden ★★★★★
()
Ответ на: комментарий от MaZy

Почему игра(эмулятор) имеет доступ к SSH-ключам?

Потому что в свободной ОС никому не уперлось ограничивать такие вещи. В этом нет смысла. Бороться надо с причиной проблем - то есть с идиотами, тянущими что-то в процессе сборки из сети, и тянущими что-то не из репозитория без полной проверки, тем более в бинарном виде, а не со следствиями.

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

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

James_Holden ★★★★★
()

Масштаб: По предварительным подсчётам, инфицированные файлы могли быть загружены почти 20 000 раз.

Судя по лотерее в 1/6, Cemu зацепило гитхабовской эпидемией червя Mini Shai-Hulud. Общая же оценка количества загрузок всех подмененных и зараженных пакетов - 500 млн.

jetstalker
()
Последнее исправление: jetstalker (всего исправлений: 1)
Ответ на: комментарий от James_Holden

и тянущими что-то не из репозитория без полной проверки

А то ты весь репозиторий проверил.


Ещё раз: весь софт в любом репозитории может содержать баги и бэкдоры, любой софт должен рассматриваться как недоверенный.

Большое кол-во сторонних зависимостей, динамическое исполнение, множественные абстракции — это данность, факт, реальность. Даже в случае если ты сидишь в столяров-mode с выключенным JS в браузере.

Единственно правильный подход — изоляция, позволяющая снизить потенциальный ущерб.

Это как с паролями: один пароль на всё — одна утечка, и полная компрометация. Можно сказать: «Проблема не в моём пароле, а в дебилах, которые хранят пароль в базе», — но ты не можешь на это повлиять, а зачастую даже не можешь об этом знать.

Это очень печально, что этого не понимают посетители технического, «админского» форума.

MaZy ★★★★★
()
Последнее исправление: MaZy (всего исправлений: 1)

были скомпрометированы

…намеренно авторами ПО.

IIIypuk ★★★★★
()

@moderator второй скрин не имеет отношения к новости.

IIIypuk ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.