状況を想像してください:ゲームでは、人気のある有名なギルドのメンバーとして自分自身を紹介したキャラクターがあなたのところに来て、珍しいクールな要素、珍しい動物(旅行できる)武器などを約束します。 ほとんどの場合、このようなペルシャには珍しい要素も特別なコードもありません。 その結果、被害者は正しいコードまたはレアなアイテムを受け取りません。 攻撃者は、疑いを持たないプレーヤーにダイアログボックスにコマンドを1つだけ入力するよう誘導することができました。
/run RemoveExtraSpaces=RunScript
WoWインターフェイス(メニューバー、チャットウィンドウ、その他の2Dグラフィック要素など)とアドオンもLua言語で記述されています。 行の両側-RemoveExtraSpacesおよびRunScriptも有効な機能であり、WoW Lua APIの一部です。 ただし、ダイアログボックスにこのコード行を入力すると、WoWインターフェイスの動作が変わります。
このチームは本当に何をしていますか?
/run
run-次のテキストをLuaスクリプトとして解釈するコマンド。
RemoveExtraSpaces
は、テキストから不要なスペースを削除する組み込み関数です。
RunScript
テキストをLuaコードとして実行する関数(
/run
コマンドに類似)
これはどのように危険ですか?
RemoveExtraSpaces関数は、プレーヤーが新しいメッセージを受信するたびに呼び出されます。 上記の
/run
コマンドは、
RemoveExtraSpaces
関数を、元々ソフトウェアに存在していた
RemoveExtraSpaces
関数に置き換えます。 元の関数が上書きされると、新しいチャットメッセージはそれぞれLuaコードとして解釈され、すぐに実行されます。 シナリオは次のとおりです。
不注意なプレーヤーは、攻撃者の言葉に納得していたため、ダイアログボックスに悪意のあるコード行を入力します。 しかし、レアなアイテムを入手する代わりに、彼は犠牲者になります。
疑いを持たないプレーヤーが悪意のあるコード行を送信しようとしています
攻撃者がチャットメッセージを被害者に送信する
受信したメッセージはLuaコードとして解釈され、実行されます
上記に示したのは、この脆弱性の非常に無害な例、概念実証です。 しかし実際には、これは攻撃者が被害者のインターフェースをリモートで制御できることを意味します。 これは、トロイの木馬の動作に非常によく似ています。トロイの木馬は、何か有用なものになり、悪意のある機能を実行します。 実際の場合、攻撃者は「Test」というテキストを含むメッセージを作成する代わりに、別のスクリプトを実行します。その例を以下に示します。
チームを一時的に非表示にして保存する
被害者が自分のインターフェースでバックドアを開いた後、攻撃者は次のメッセージを送信します。
攻撃者は新しいデータチャネルを確立します
コマンドが実行された場合、上記のメッセージは被害者には見えませんが、すぐに実行されます。 チャット機能が機能しなくなったという事実は疑わしく思われ、被害者はゲームを再起動しようとする可能性があります。 攻撃者はこの問題を解決するのに十分な速さで行動しています。 新しい通信チャネルを確立する上記のコマンドを送信することで、彼らは疑いを引き起こすことなくチャットの通常の動作を再び復元します。
このコマンドの目的を理解するために、WoWには隠しチャネル(ローカルおよびリモート)を使用して通信する機能があることを知る必要があります。 このチャネルは、「CHAT_MSG_ADDON」イベントを使用して設定されます。
スクリプトは、さまざまなプロパティを設定できるフレーム(行2)を作成します。 このスクリプトは、特定のプレフィックス(行6および25)を使用してCHAT_MSG_ADDONイベントをログに記録します。 選択したプレフィックスを知っている人だけが、被害者のインターフェイスを密かに制御できます。 バックドアのパスワードのようなものです。
ハイジャックされたインターフェースがシークレットプレフィックスを持つイベントであるCHAT_MSG_ADDONを受信するたびに、コードは被害者の知らないうちに静かに実行されます。
結論:攻撃者が何が起こっているかを示すまで、残念ながらあなたはそれを知ることができません。
秘密のチャネルを介して通信できるアドオンについて話していますが、攻撃を成功させるために被害者がアドオンをインストールする必要はありません。
どんな害がありますか?
攻撃者は被害者のインターフェースに完全にアクセスできるため、攻撃者に関する完全な情報を収集できます。 しかし、クラッカーは他のプレイヤーに関する詳細な情報を収集することはできません。 WoWでは、プレイヤーは互いにアイテムを共有/販売することができます。 攻撃者が被害者のキャラクターの居場所を知っていて手の届く範囲にいる場合、彼はリモートで取引ウィンドウを開き、金、アイテム、転送可能なすべてのものを自分自身に転送できます。 被害者を実質的に奪います。
説明されているシナリオは、技術的な攻撃とともに社会的な攻撃を示しています。 これで、ハッカーは被害者を使用して、キャラクターが密接に通信している友人、同僚、および他のプレイヤーに説得力のあるメッセージを送信できるため、キャプチャされるキャラクターの数が増えます。
どうすれば自分を守ることができますか?
答えは簡単で明白です。この種のチームや、古い友人からも提供される他のチームに参加する必要はありません。
この例では、人気のあるギルドに属するゲームの攻撃キャラクターについて話していました。 しかし実際、彼はこのギルドに属していませんでした。 彼は有名なギルドを選択して名前をコピーし、「L」を「I」に置き換えました。 あなたはすでにこのフィッシング攻撃の方法に精通しているかもしれません。
また、アドオンをダウンロードするときは注意し、安全で人気のあるWebサイトを使用し、いつでも交換できるようにアドオンを保存します。 これらの更新の一部には、悪意のあるコードが既に含まれている可能性があります。 同様の問題は、アドオンの1つで「ElvUIバックドア」と呼ばれるものが発見された2014年に発見されました。
グリッチ自体はブリザードによってのみ修正できます。 そのような関数の上書きが将来不可能になることを保証する必要があります。 Blizzardは、今後のLegion拡張パックのプレビューリリースを既にリリースしています。 この補足では、悪意のあるキャラクターを含むメッセージを送信する前に、ここで説明したシナリオを考慮して警告を追加しました。
「はい」を選択すると、メッセージは永久に無効になり、再起動しても返されません。このため、問題は解決されたとは見なされません。 このメッセージを再度有効にするには、設定ファイルのコードを1行手動で削除する必要があります。
削除するコード:
SET AllowDangerousScripts "1"
ファイル:c
onfig-cache.wtf
パス:
World of Warcraft\WTF\Account\\