Wikimedia Foundation сообщила о краткосрочном, но показателЬном инциденте кибербезопасности, связанном с самораспространяющимся JavaScript-червём. Вредоносный код сумел изменить тысячи страниц в Meta-Wiki и подменить пользовательские скрипты ряда редакторов, что вынудило организацию временно ограничить возможность редактирования во всех проектах Wikimedia.
Как был обнаружен инцидент в Meta-Wiki
Первые признаки атаки заметили сами участники сообщества. Редакторы обратили внимание на массовые автоматические правки, которые добавляли на случайные страницы скрытые скрипты и бессодержательный мусорный контент. Обсуждение проблемы началось на странице Village Pump (technical), после чего вопрос был оперативно эскалирован к инженерам Wikimedia Foundation.
В ответ на подозрительную активность команда разработчиков приняла превентивное решение: временно запретить редактирование во всех проектах Wikimedia. Такая мера часто используется крупными платформами при инцидентах информационной безопасности, чтобы остановить распространение вредоносного кода и стабилизировать систему.
Источник JavaScript-червя: пользовательский скрипт в русской Википедии
Согласно записи в баг-трекере Phabricator, точкой входа стал пользовательский JavaScript-файл, размещённый в русскоязычной Википедии по адресу User:Ololoshka562/test.js. Этот скрипт был загружен ещё в марте 2024 года и ранее уже связывался с инструментами, использовавшимися в других атаках на вики-проекты.
Как установило издание BleepingComputer, изучив историю правок, на прошлой неделе скрипт был запущен сотрудником Wikimedia при тестировании функциональности пользовательских скриптов. На данный момент не ясно, произошло ли это по ошибке, намеренно или же через скомпрометированный аккаунт. Это типичная серая зона многих инцидентов ИБ, когда технически корректный доступ используется для активации вредоносного кода.
Механизм атаки: эксплуатация пользовательских скриптов MediaWiki
Платформа MediaWiki, на которой работают Wikipedia и другие проекты Wikimedia, поддерживает глобальные и персональные JavaScript-файлы — например, MediaWiki:Common.js и User:<username>/common.js. Эти файлы выполняются в браузере авторизованных редакторов и используются для кастомизации интерфейса, автоматизации рутинных действий и расширения функциональности.
Именно этот механизм был превращён в канал атаки. Как только вредоносный test.js загружался в браузер залогиненного редактора, червь пытался модифицировать сразу два уровня скриптов — общие (глобальные) и пользовательские. Это позволяло коду закрепляться и автоматически выполняться при последующих посещениях сайта, повышая вероятность дальнейшего распространения по аккаунтам.
Дополнительно червь запрашивал случайную страницу через сервис Special:Random и внедрял в неё изображение и скрытый JavaScript-загрузчик. Последний подгружал внешний скрипт с домена basemetrika[.]ru. Такая архитектура характерна для XSS-червей: начальный код минимален и лишь загружает основной вредоносный функционал с внешнего ресурса, что облегчает маскировку и обновление атаки.
Масштабы последствий и реакция Wikimedia Foundation
По подсчётам журналистов, JavaScript-червь успел изменить около 3996 страниц в Meta-Wiki. Кроме того, примерно у 85 пользователей были подменены файлы common.js, что могло создать долгосрочный риск: даже после очистки страниц заражённые пользовательские скрипты продолжали бы выполнять вредоносный код при каждом входе редактора.
Команда Wikimedia Foundation провела массовый откат изменений в пользовательских common.js и скрыла скомпрометированные страницы так, чтобы они не отображались в публичной истории правок. После удаления внедрённого JavaScript и проверки целостности ключевых компонентов платформы возможность редактирования была восстановлена.
Представители фонда подчеркнули, что вредоносный код был активен всего 23 минуты и за это время затронул только Meta-Wiki. По официальным заявлениям, признаков атаки на основную Wikipedia и других проектов не выявлено, как и утечек пользовательских данных. Содержимое повреждённых страниц было восстановлено из резервных копий и архивов правок.
Уроки инцидента: риски пользовательского кода и дополнительные меры защиты
В Wikimedia Foundation сообщили, что инцидент произошёл в ходе проверки безопасности пользовательского кода. В процессе анализа был запущен ранее неактивный скрипт, который быстро идентифицировали как вредоносный. В качестве превентивной меры временно отключили редактирование во всех проектах, удалили вредоносный код и убедились в безопасности платформы.
Организация заявила, что работает над дополнительными механизмами защиты, чтобы минимизировать риск повторения подобных ситуаций. Для платформ с поддержкой пользовательских скриптов критически важны такие меры, как жёсткое разграничение прав, песочницы для выполнения кода, автоматический анализ скриптов на аномалии и усиленный контроль доступа к административным аккаунтам.
Инцидент в Meta-Wiki наглядно показывает, насколько мощным и одновременно уязвимым инструментом являются пользовательские JavaScript-скрипты. Владельцам веб-платформ и администраторам сообществ имеет смысл пересмотреть политику работы с кастомным кодом, внедрить регулярный аудит, мониторинг подозрительных правок и обучение пользователей основам безопасной разработки. Чем больше сообщество понимает природу таких угроз, тем меньше шансов, что следующий «безобидный» тестовый скрипт превратится в полноценный JavaScript-червь.