Специалисты Avast предупредили, что им удалось обнаружить четыре вредоносных игровых мода для Dota 2, которые использовались злоумышленниками для внедрения бэкдоров в системы игроков.
Исследователи рассказывают, что авторы вредоносных модов не стали распространять их через тематические форумы или иными путями, а сразу опубликовал их в Steam, стремясь привлечь внимание игроков. Моды назывались Overdog no annoying heroes (id 2776998052), Custom Hero Brawl (id 2780728794), и Overthrow RTZ Edition X10 XP (id 2780559339). Также был и еще один мод — test addon plz ignore (id 1556548695), однако, судя по отсутствию реальной полезной нагрузки, злоумышленники только тестировали с его помощью свои атаки.
«Прежде мод смогут использовать обычные игроки, он должен быть опубликован в магазине Steam. Процесс публикации включает в себя проверку, проводимую компанией Valve. Хотя в теории это помогает отсеять некоторые вредоносные моды, ни один процесс проверки не идеален, и как минимум четырем вредоносным модами удалось проскочить мимо него. Мы считаем, что процесс проверки используется в основном для модерации, чтобы предотвратить публикацию нежелательного контента. Существует множеством способов скрыть бэкдор в коде, и попытки обнаружить их все в ходе проверки займут очень много времени», — поясняют эксперты.
Проблема, которой воспользовались злоумышленники, крылась в использовании Dota фреймворка Panorama, разработанного самой компанией Valve с использованием известной «веб-триады»: HTML, CSS и JavaScript.
По словам специалистов, JavaScript-часть здесь является весьма проблемной, так как полагается на уязвимую версию движка V8 (Dota использовала устаревшую сборку v8.dll, скомпилированную еще в декабре 2018 года). В итоге целью злоумышленников стала уязвимость CVE-2021-38003, несколько лет назад обнаруженная в V8 JavaScript и WebAssembly. Эта проблема еще в 2021 году использовалась в атаках как 0-day, для нее давно доступны PoC-эксплоиты, и она была устранена разработчиками еще в октябре 2021 года.
Благодаря эксплуатации этого бага, вредоносный JavaScript получал возможность использовать уязвимость в V8 и получить контроль над машиной игрока. При этом эксплоит был внедрен в легитимный файл, который добавлял в игру функциональность табло, что затрудняло его обнаружение.
«Бэкдор позволял выполнить любой JavaScript-код, полученный через HTTP, предоставляя злоумышленнику возможность как скрывать, так и изменять код своего эксплоита по собственному усмотрению (без повторного прохождения процесса проверки), а также возможность полного обновления всего мода, — рассказывают в Avast. — Поскольку V8 в Dota не был изолирован, эксплоит позволял использовать удаленное выполнение кода против игроков».
Кроме того, помимо бэкдора атакующий встроил в свои моды файл с именем evil.lua, который использовался для тестирования возможностей выполнения Lua на стороне сервера. Этот вредоносный сниппет мог применяться для ведения журнала, выполнения произвольных команд, создания сопрограмм и отправки HTTP GET-запросов.
Аналитики Avast сообщил о своей находке разработчикам Valve, и 12 января 2023 года те обновили уязвимую версию V8 . Кроме того Valve удалила из Steam вредоносные игровые моды и предупредила всех игроков, пострадавших от этой атаки.
«Можем сказать, что эта атака была не очень масштабной. По данным Valve, то нее пострадало менее 200 игроков», — резюмируют в Avast.