メインコンテンツへ移動
AIチュートリアル

AI-Helper-Menuを安全に監査する:アーキテクチャ、ビルドプロセス、セキュリティチェック

このチュートリアルでは、AI-Helper-Menuが掲げる機能、技術、ビルドワークフロー、ブラウザー統合の手法を検証します。このプロジェクトは第三者サービスを変更し、Blooketの規約に違反する可能性があり、無関係なドメインから実行可能コードをダウンロードするインストーラーコマンドも含んでいるため、ソースコードの確認と隔離環境でのテストを重視します。

AI-Helper-Menuを安全に監査:アーキテクチャ、ビルドプロセス、セキュリティチェック
重要: AI-Helper-Menuは、Blooket用のチートスイートとして紹介されています。ライブセッションで使用すると、不公平な優位性を生み、Blooketの利用規約に違反し、アカウント停止につながったり、コンピューターを危険にさらしたりする可能性があります。このチュートリアルでは、サービスに対して展開する方法ではなく、安全なソースレビューと隔離環境での評価を扱います。

AI-Helper-Menuが主張する機能

AI-Helper-Menuは、Blooketのページにドラッグ可能なコントロールパネルを挿入するために設計された、依存関係不要のバニラJavaScriptプロジェクトです。READMEによると、fetchやWebSocketなどのブラウザー標準APIにフックし、ページの変更を監視してゲーム状態を変更します。

このリポジトリでは、バージョン2.0.0を、注入の高速化、ゲームモードの適応型検出、問題のキャッシュ、グラスモーフィズム風インターフェースを備えたモジュール式の書き直し版と説明しています。これらはリポジトリ上の主張であり、独立して検証された機能と解釈すべきではありません。

主張されている機能

  • 自動回答: 設定可能な遅延後に回答を選択し、過去に表示された問題をキャッシュします。
  • コインとアンロックの操作: コインの値を変更し、ブロックをアンロックすると主張しています。
  • 速度操作: タイマー、アニメーション、ループを1×から5×まで倍速化すると宣伝しています。
  • 報酬の自動化: デイリートークンやボーナスを自動収集すると主張しています。
  • ゲーム状態の変更: ペナルティからの保護や、モード別の自動化を宣伝しています。
  • 識別情報の操作: ライブロビーで表示されるユーザー名を「Anonymous」に置き換えると主張しています。
  • タイミングのシミュレーション: 人間らしく見せるため、ランダムな遅延や、ときどき不正解となる回答を導入します。

READMEには、Gold Quest、Tower Defense、Factory、Racing、Café、Crypto Hack、Fishing、Battle Royale向けの特殊な動作も記載されています。ただし、すべての機能が動作することを示すベンチマークやテストの証拠は提供されていません。

セットアップ前にリスクを理解する

このプロジェクトはBlooketと提携していません。独自の免責事項でも、チート行為がプラットフォームの規則に違反し、アカウントへの措置につながる可能性を認めています。「検出されない」「BAN対策」「ゴッドモード」といった主張は保証ではありません。

インストールにも重大な懸念があります。宣伝されているWindowsコマンドは、bitsadminを使ってhttps://devcodee.com/apiからMSIファイルをダウンロードし、その後msiexecでサイレント実行します。このドメインはGitHubリポジトリとは異なり、このコマンドは通常のインストール画面を表示しません。

READMEで「ワンクリック」と表示されているからといって、リモートからダウンロードしたインストーラーを実行しないでください。まずソース、出所、デジタル署名、暗号学的ハッシュを確認してください。READMEにはMSIのチェックサムや署名が記載されていません。

隔離したレビュー環境を準備する

分析には、使い捨ての仮想マシン、別のブラウザープロファイル、または個人アカウント、保存済みパスワード、ブラウザーCookie、学校の認証情報、機密ファイルを含まない別の環境を使用してください。検査中はBlooketにサインインしないでください。

推奨される予防策

  1. GitHubでリポジトリを開き、コミット履歴、ブランチ、Issue、ライセンスを確認します。
  2. 確認済みのリポジトリからのみソースをダウンロードまたはクローンします。
  3. READMEにあるサイレントMSIインストーラーや、未確認のドメインから取得されるスクリプトは避けます。
  4. Node.jsコマンドを実行する前に、パッケージのメタデータとビルドスクリプトを確認します。
  5. 管理者アカウントではなく、権限のないOSアカウントを使用します。
  6. テスト用ブラウザープロファイルには、拡張機能や認証済みセッションを入れないでください。

ビルド前にソースを検査する

READMEでは、Node.jsをビルドツールとして使用し、コンパイル済みブックマークレットをdist/bookmarklet.jsに書き出すと説明しています。ただし、すべてのビルド依存関係やソースファイルについては記載されていないため、進める前に実際のリポジトリの内容を確認してください。

隔離環境にリポジトリをクローンします。

git clone https://github.com/bansheepatronmake/AI-Helper-Menu.git
cd AI-Helper-Menu

npmスクリプトを実行する前に、package.jsonを確認します。scripts、依存関係の宣言、preinstall、install、postinstall、prepare、prebuildなどのライフサイクルフックに特に注意してください。

node --version
npm --version
npm run

最後のコマンドは、ビルドタスクを選択せずに利用可能なnpmスクリプトを一覧表示します。出力をREADMEに記載されたnpm run buildコマンドと比較してください。スクリプトの実行内容を確認してからビルドを実行します。

npm run build

READMEによると、ビルドが成功するとdist/bookmarklet.jsが生成されます。このファイルは実行せず、テキストとして開いてください。

検索する項目

  • fetch、XMLHttpRequest、WebSocket、または動的に作成された要素から参照されるネットワーク接続先。
  • Cookie、ローカルストレージ、セッションストレージ、トークン、ユーザー名、ブラウザーフィンガープリントの収集。
  • eval、Function、またはデコードされた文字列による動的実行。
  • 予期しないダウンロード、リダイレクト、リポジトリやBlooketと無関係なドメインへの接続。
  • window.fetchやwindow.WebSocketなど、ブラウザーのグローバルオブジェクトの上書き。
  • 可読なソースファイルにたどれない、最小化または難読化された部分。

ソースとビルド出力を比較する

ブックマークレットは、多くの場合、javascript:で始まる1行に圧縮されています。最小化されていることだけで悪意のある動作の証拠になるわけではありませんが、手動での検査は難しくなります。生成されたファイルは、レビュー済みのソースとビルドプロセスに対応している必要があります。

有用な完全性確認の手順は次のとおりです。

  1. レビュー対象の正確なGitコミットを記録する。
  2. クリーンな環境でプロジェクトをビルドする。
  3. 生成されたファイルの暗号学的ハッシュを保存する。
  4. 2つ目のクリーンな環境でビルドを繰り返す。
  5. 出力を比較し、説明できない差異を調査する。

たとえば、Windowsでは次のコマンドでSHA-256ハッシュを計算できます。

certutil -hashfile dist\bookmarklet.js SHA256

macOSまたはLinuxでは、同等のレビュー用コマンドは次のとおりです。

shasum -a 256 dist/bookmarklet.js

ハッシュで確認できるのはファイルの同一性であり、安全性ではありません。信頼できるレビュー済みソースから生成された出力と比較した場合にのみ役立ちます。

文書化された読み込み方法を理解する

READMEでは、コンパイル済みスクリプトを実行する3つの方法として、ブックマークレット、Tampermonkeyユーザースクリプト、ブラウザーコンソールからの直接注入を説明しています。いずれも、アクティブなページとそのJavaScriptコンテキストへのコードアクセスを許可します。

ブックマークレット

文書化されたブックマークレット方式では、dist/bookmarklet.jsから生成された1行をブラウザーのブックマークにコピーします。そのブックマークをクリックすると、現在のページ上でスクリプトが実行されます。便利な一方で、ブックマークレットはそのページ上のJavaScriptから利用できるデータを読み取ったり変更したりできます。

Tampermonkeyユーザースクリプト

READMEでは、生成されたコードをhttps://*.blooket.com/*に一致するよう設定したユーザースクリプトでラップする方法を提案しています。自動的に読み込まれるユーザースクリプトは、一致するページ上で継続的なアクセス権を持つため、マッチパターンと更新元はいずれも重要なセキュリティ境界となります。

記載されたメタデータではバージョン2.0.0を示し、@grant noneを使用しています。この設定によってスクリプトが無害になるわけではありません。特権ユーザースクリプトAPIを使わず、ページコンテキストでコードが動作することを意味します。

ブラウザーコンソール

コンソール方式では、javascript:プレフィックスを削除し、残りのコードを開発者ツールから実行します。未知のコードをコンソールに貼り付けるのは特に危険です。開いているページへのアクセス権を持って、直ちに実行されるためです。

これらの読み込み方法を、実際のアカウントや進行中の授業セッションでテストしないでください。ソースレビューを行っても、アカウントへのペナルティ、サービスの停止、データ漏えいが起こらないことは保証されません。

基本的な安全分析の例

Blooket上でスクリプトを実行するのではなく、まず静的検査から始めてください。生成ファイルとソースツリーを検索し、ブラウザーのフックや外部アドレスを確認します。利用できる正確なコマンドは、オペレーティングシステムとインストール済みツールによって異なります。

grep -R "WebSocket" .
grep -R "fetch" .
grep -R "localStorage" .
grep -R "https://" .

各一致箇所について、データの発生元、変換方法、送信先を追跡してください。すべての外部ホストが必要であり、文書化されているか確認します。エンコードされたURLや動的に組み立てられたホスト名は、より深いレビューが必要な検出事項として扱ってください。

READMEで言及されているインストーラードメインがビルド出力に含まれているかどうかも確認できます。

grep -R "devcodee.com" .

一致が見つからなくても安全性の証明にはなりません。文字列がエンコードされているか、実行時に構築されている可能性があるためです。

高度なレビューのヒント

ネイティブAPIフックを監査する

READMEでは、fetchとWebSocketの傍受を明示的に主張しています。元の関数が保持されているか、どのメッセージが読み取られたり変更されたりするか、メニューを閉じたときにフックが復元されるかを確認してください。実装の不十分なフックは、悪意がなくてもページの動作を壊す可能性があります。

状態変更の境界を確認する

コイン、アンロック、報酬、傍受した状態に関する主張は、第三者サービスが使用するデータを変更しようとしていることを示唆します。変更が単に表示上またはローカルだけのものなのか、それともコードが変更された値をリモートシステムに送信するのかを判断してください。許可なく本番サービスへテストトラフィックを送信しないでください。

自動更新を調べる

FAQでは、スクリプトURLがraw配布ファイルを指している場合、Tampermonkeyユーザーは自動更新できると説明しています。自動更新にはサプライチェーンリスクがあります。後続のコードが、最初にレビューしたバージョンと異なる可能性があるためです。分析中は変更可能なブランチを追跡せず、特定のコミットに固定してください。

リリースの出所を確認する

署名付きタグ、再現可能なリリース成果物、公開ハッシュ、文書化されたメンテナーを探してください。READMEではGitHub Actionsを計画中としているため、確立済みの自動テストおよびリリースパイプラインがあるとは主張していません。

インターフェースの主張とセキュリティの主張を分ける

ドラッグ可能な暗色インターフェース、キーボードショートカット、CSSスタイルは、「アンチBAN」動作とは別に評価できます。ランダムなタイミングや時折のミスがあるからといって、サーバー側の検出を回避できるとは限りません。透明性のある手法と許可を得たテストによる裏付けがない限り、検出耐性に関する主張は未検証として扱ってください。

READMEに記載されたキーボード操作

プロジェクトのドキュメントでは、F11でメニューの表示を切り替え、Ctrl+Shift+Aで自動回答を切り替え、Ctrl+Shift+Cで無限コインを切り替えるよう割り当てています。また、メニューのヘッダーをドラッグして移動できると説明しています。ブラウザーでは通常、F11を全画面モードに予約しているため、これらの操作が競合しないか確認してください。

ライセンスと責任ある利用

リポジトリには、MITライセンスの下で配布されると記載されています。オープンソースライセンスは、定められた範囲でのコードの利用、変更、配布を許可しますが、第三者プラットフォームへの干渉や、その利用規約の無視を許可するものではありません。

README自体が競争目的での使用を推奨しておらず、利用停止の可能性も認めています。したがって、責任ある調査はローカル環境で隔離し、許可を得たうえで行うべきです。セキュリティ上の懸念は、認証情報やその他の機密情報を公開せず、リポジトリのIssueトラッカーから報告できます。

結論

AI-Helper-Menuは、ブラウザーAPIにフックし、Blooketのゲーム動作を変更するJavaScriptブックマークレットおよびユーザースクリプトについて説明しています。依存関係のないアーキテクチャとブラウザー統合はJavaScriptとして研究できますが、不正行為を目的としていること、検証されていない検出回避の主張、そして説明なく提供される第三者製MSIインストーラーには注意が必要です。ソースを分離した環境で確認し、すべてのビルド手順を検証し、実際のアカウントは使用せず、許可なくシステムに導入しないでください。