広告枠を募集中 ご相談ください

SteamワークショップMODの悪意あるLuaスクリプトとサプライチェーン攻撃の検知・防御手順

365Finds Editorial
Wiki 記事 11,430 本収録

あなたの AI で 365 Wiki を使う

下のプロンプトをコピーして、普段使っている AI に貼り付け、そのまま質問してください。

完全版 Skill をダウンロード

まずはプロンプトでお試しください。よく使う場合は完全版 365Wiki Skill をインストールすると、毎回貼り付ける必要がありません。普段使う AI がなければ、Gemini や Microsoft Copilot のウェブ版でも使えます。

SteamワークショップMODのサプライチェーン攻撃・不正検知マトリクス

SteamワークショップはGarry's ModやProject Zomboidなど多くのサンドボックスゲームで利用されています。攻撃者は長期間更新のない人気MODを買い取るか、作者のアカウントを乗っ取って悪意あるアップデート(サプライチェーン攻撃)を配布します。更新されたMODはユーザー端末に自動配信され、難読化されたLuaスクリプトによってDiscordトークンやSteamセッション情報を窃取します。

攻撃手法内部実行メカニズム標的とされる資産主な検知兆候
難読化LuaスクリプトBase64/XOR暗号化と RunString による動的実行Discordトークン、ブラウザ資格情報セキュリティソフトがキャッシュを検知
不正HTTP通信http.Fetch / http.Post による外部送信セッションCookie、グローバルIPオフラインプレイ時の不審な外部通信
不正バイナリ配置Luaを経由した外部悪意DLLのドロップシステム完全掌握、マイニング感染Windows DefenderがDLL作成をブロック
バックグラウンド自動更新乗っ取られた作者アカウントからの配信ユーザー操作なしで即時反映起動時の原因不明なポップアップや強制終了

ステップ1: ワークショップキャッシュ内の難読化スクリプト検索

ダウンロードされたMODファイルはSteamライブラリ内の数字フォルダに保存されます:

  1. 対象ゲームのワークショップフォルダを開きます:
[SteamLibrary]\steamapps\workshop\content\[AppID]\

(例: Garry's ModのAppIDは 4000)。 2. PowerShellを用いて危険な動的実行関数を一括検索します:

Get-ChildItem -Path "[SteamLibrary]\steamapps\workshop\content\4000" -Recurse -Filter "*.lua" | Select-String -Pattern "compilestring", "RunString", "fromhex", "base64"
  1. 一般的なゲームMODが難読化やBase64暗号化を用いることは稀です。外部URLや不審なエンコード文字列が見つかった場合は危険と判断します。

ステップ2: TCPViewによる不審なC2通信の遮断

MODが裏でセッション情報を外部サーバーに送信していないかを調査します:

  1. Microsoft公式の TCPView を起動します。
  2. 対象ゲームのプロセス(例: hl2.exe など)を監視します。
  3. ゲームを起動し、シングルプレイ(オフライン)でロードします。
  4. 単独プレイ中にもかかわらず、不審な外部IPやDiscord Webhook、外部APIへHTTP/HTTPS通信を試みている場合、不正なMODが動作しています。
  5. 直ちにタスクマネージャーからゲームを強制終了します。

ステップ3: 緊急対応とアカウントの保護

感染MODを実行してしまった場合の安全確保手順:

  1. Steamワークショップで対象MODの「サブスクライブを解除」し、該当するAppIDフォルダを完全削除します。
  2. すべての認証済みセッションを破棄します:
    • Steam「設定」>「セキュリティ」>「すべてのデバイスの認証を解除」。
  3. 感染していない別の安全な端末(スマートフォンなど)から直ちにSteamパスワードを変更します。
  4. Windows Defenderオフラインスキャンを実行します:
Start-MpWDOScan
  1. Steam APIキー管理ページ(https://steamcommunity.com/dev/apikey)を確認し、身に覚えのないAPIキーが登録されている場合は即座に「取り消し」を実行します。