ディスカッション (11件)
Wikipediaで管理者アカウントが大規模に侵害されるという、極めて深刻なセキュリティ事象が発生しました。この攻撃を受け、さらなる被害の拡大を食い止めるためにサイト全体が一時的に「読み取り専用(リードオンリー)」モードへと移行され、編集ができない状態になっています。
報告によるとMeta-Wikiもハッキングの影響を受けているとのことで、現在RedditやWikipedia内の技術掲示板ではこの件に関するメガスレッドが立ち上がり、大きな騒ぎとなっています。特権アカウントの管理がいかに重要かを改めて思い知らされる事件です。
詳細については以下のリンクをご確認ください。
- Wikipediocracy フォーラム: https://wikipediocracy.com/forum/viewtopic.php?f=8&t=14555
- Wikipedia 技術掲示板 (Village pump): https://en.wikipedia.org/wiki/Wikipedia:Village_pump_(technical)#Meta-Wiki_compromised
- Reddit メガスレッド: https://old.reddit.com/r/wikipedia/comments/1rllcdg/megathread_wikimedia_wikis_locked_accounts/
追加のコンテキストね:
https://wikipediocracy.com/forum/viewtopic.php?f=8&t=14555
https://en.wikipedia.org/wiki/Wikipedia:Village_pump_(technical)#Meta-Wiki_compromised
https://old.reddit.com/r/wikipedia/comments/1rllcdg/megathread_wikimedia_wikis_locked_accounts/
JSワームのペイロードと思われるもの:https://ru.wikipedia.org/w/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ololoshka562/test.js&oldid=136952558
うわ、これ昔ながらのXSSワームみたいだ。https://meta.wikimedia.org/wiki/Special:RecentChanges?hidebots=1&translations=filter&hidecategorization=1&hideWikibase=1&limit=100&days=30&safemode=1&urlversion=2
MediaWikiが時々編集者にJavaScriptの埋め込みを許可してるの、ずっと危ないんじゃないかと思ってたんだよね。
わぁ、このワーム面白いな。どうやらこんな動きをしてるみたい:
-
グローバルに居座るために MediaWiki:Common.js ページに、フォールバックとして User:Common.js ページに自分自身を注入する
-
jQueryを使って、感染を隠すためのUI要素を非表示にする
-
20個のランダムな記事を、5000px幅の画像と basemetrika.ru の別のXSSスクリプトで荒らす
-
管理者が感染すると、Special:Nuke ページを使ってグローバル名前空間から3つのランダムな記事を削除し、さらに action=delete を指定した Special:Random を使って別の20記事を削除する
追記!Special:Nuke の挙動がマジで変。検索フィールドから削除対象のデフォルトリスト(どんな記事グループでも入り得る)を取得して、それをそのまま承認しちゃうんだ。これを3回連続でやってる。
こうなるのは時間の問題だったよね。
Wikipediaコミュニティはセキュリティに対して無頓着すぎる。「インターフェース管理者」の権限があれば、誰のレビューもなしに特定のWikiの全ユーザー向けグローバルJavaScriptやCSSを変更できちゃう。強制2要素認証(2FA)が導入されたのも、ほんの数年前だしね…。
それ以前は、英語版Wikipediaの管理者がMediaviewerの表示変更を差し戻したりしたせいで権限が剥奪されるまで、どの管理者でもその操作ができたんだ。
でもそれだけじゃない。ほとんどの「パワーユーザー」や管理者は「ユーザースクリプト」をインストールしてる。これはサンドボックス化されてないJavaScript/CSSのガジェットで、サイトの動作を完全に変えられちゃうんだよね。しかもそのスクリプトは、2FAも設定されてないような、ずっと放置されたアカウントでメンテナンスされてたりする。
今ユーザースクリプトがグローバルに無効化されてるのを見ると、そこが侵入経路だったんだろうな。
Wikimedia財団も、これがセキュリティ上の悪夢だってことは分かってるはず。自分も編集者だった頃、これについて文句を言ったことがあるし。でも、サイトを使ってる編集者のほとんどはプロの開発者じゃないから、スクリプトを制限しようとすると「Wikimedia財団による権力掌握だ」って捉えちゃうんだよね。
phabに上がってた説:「ロシア語版WikipediaのDiscordチャットでいくつか調査が行われた。参考になるかも。
-
2023年に、ロシア語の代替WikiプロジェクトであるWikirealityとCyclopediaに対して荒らし攻撃があった。ここにある記事(https://wikireality.ru/wiki/ РАОrg)が、その攻撃の首謀者についてのもの。
-
2024年、ruwikiユーザーのOloloshka562が、これらの攻撃で使われたスクリプトを含むページ(https://ru.wikipedia.org/wiki/user:Ololoshka562/test.js )を作成。その後1.5年間は動きがなかった。
-
今日、sbassettがグローバルAPIの制限テストのためか、他のユーザーのスクリプトを大量にMetaのglobal.jsに読み込んだ(https://meta.wikimedia.org/wiki/Special:Contributions/SBassett_(WMF) )。その中の一つの編集でOloloshkaのスクリプトを読み込み(https://meta.wikimedia.org/w/index.php?diff=prev&oldid=30167202 )、それを実行してしまった。」
「データベースの履歴自体がアクティブな配布経路になってるから、Wikimediaチームにとってこのクリーンアップは完全にフォレンジック上の悪夢になるだろうな」
まあ、ワームがルート権限を取ったわけじゃないし、Wikimediaがスナップショットを撮ってたり最近のバックアップがあれば、そこまで悪夢じゃないんじゃない? それなら差分(diff)から、動機の兆候を含めてかなり詳細な調査ができるはず。
スナップショット作成は負荷が低いから、頻繁に作成して一定期間で消すっていう運用もできるしね。
最近のウェブページで、なんでこんなにクライアントサイドの実行が重いのか理解できない。理論上は実行コストはわずかなはずだけど、実際にはバッテリー駆動のデバイスでブラウジングしてると、その演算能力がバッテリーを食いつぶすせいで、充電の持ちだけじゃなくバッテリー自体の劣化も早まるんだよね。あと、単純に遅すぎるページも多い。スマホは秒間数百億回の演算しかできないから、現代の肥大化したクライアントサイド処理を通すと、テキストや画像の配置(専用のハードウェアアクセラレーションで合成されるべきもの)すらスムーズにできない。サーバー側がこれだけ肥大化してたら、ちょっとアクセスが増えただけでリソース不足になるはずなのに。
あと、金融取引とかでもクライアントサイドの認証が多すぎる。iOSやAndroidでパスワードやPIN、生体情報をローカルで検証して、承認をサーバーに送るようなやつ。まあ、アメリカのクレカ決済なんて認証自体がオプションみたいなもんだから、それ以外は全部「セキュリティ劇場(やってる感)」でしかないんだけど、もしそれが重要なんだとしたら最悪のやり方だよ。
公開されてるphabチケットを見てみて:https://phabricator.wikimedia.org/T419143
要するに、Wikimedia財団のアカウントが、大量のユーザースクリプトを読み込む何らかのテストをやってたらしい。テスト用にスクリプトを作成するんじゃなくて、ランダムな既存スクリプトを読み込み始めちゃったんだね。
このテストを実行したユーザーはWMFのスタッフ・セキュリティエンジニアで、当然のように、全ページで動作するグローバルCSSやJSを編集できる特権持ちのスタッフアカウントでテストを行っていた。
そのランダムなスクリプトの中に、ロシア語版Wikiの2年前の悪質なスクリプトが混ざってた。このスクリプトは全ページのグローバルJavaScriptに自分を注入して、さらにそれを実行した全ユーザーのユーザースクリプトにも入り込むから、めちゃくちゃな速さで拡散して被害が広がった。これで大量のアラートが出て、最終的にWikiを読み取り専用にする決断が下されたってわけ。
Wiki編集者の友人からのコメント:
「今回の件はクロスサイトスクリプティング(XSS)ハックだったみたい。悪意のあるスクリプトの出所はロシア語版Wikipediaのユーザーページで、スクリプトにはロシア語のテキストが含まれてた。
シャットダウン中、[Metaの最近の更新ページ]を監視してたユーザーは、WMFのオペレーターがcommon.jsで増殖したワームらしきものを手動で差し戻してるのを目撃してる。
うまくいけば、データベースのロールバック、つまり編集内容の消失は避けられるかもね。」
今どき「ロシア人による仕業」に見せかけるのが、いかに簡単かってのは興味深いところだね。
AIが全部スクレイピングしちゃったから、もう誰もWikipediaなんて使ってないでしょ。