全環境の通信をAI解析!Anything Analyzer
「このリクエストヘッダーの X-Signature、一体どうやって計算してるんだ?」——深夜のオフィスで、難読化された数万行のJavaScriptを前にブラウザのデバッガと睨み合った経験は、Webエンジニアやセキュリティ担当者なら一度や二度ではないだろう。近年、フロントエンドのセキュリティ対策や難読化技術の向上により、APIの挙動を追跡したり、通信プロトコルをリバースエンジニアリングする作業は、完全に泥沼の職人芸と化している。
パケットキャプチャツールで通信を覗き見ても、ペイロードは暗号化され、ヘッダーには謎のハッシュが並ぶ。結局、人間が推測と勘を頼りにコードを一行ずつ読み解くしかなかった。プロトコル解析とはそういうものだ、と私たちは長年受け入れてきた。
しかし、ネットワークトラフィックの傍受から難読化された暗号化ロジックの解読、さらにはPythonによる再現コードの生成までを「AIに丸投げする」という極めて野心的なアプローチが現れた。それが「Anything Analyzer」である。
点在するツールを捨て、一つの「セッション」に統合する
これまで、私たちは対象によってツールを使い分けてきた。ブラウザの通信ならDevToolsのNetworkタブを開き、デスクトップアプリやスマホアプリならCharlesやFiddlerでプロキシを立て、より低レイヤーならWiresharkを起動する。そして、それらのツールが吐き出す数百、数千のログの中から、ノイズを除外して目的のAPIコールを探し出すのは常に人間の仕事だった。
Anything Analyzerの最大のブレイクスルーは、「すべてのトラフィックを一つのセッションに集約し、AIのコンテキストとして食わせる」というプラットフォームの設計にある。
| ツール | ターゲット環境 | 解析アプローチ | 暗号化・難読化対応 |
|---|---|---|---|
| DevTools | ブラウザのみ | 手動(目視検索) | 手動でJSをブレークポイントデバッグ |
| Charles / Fiddler | プロキシ経由(HTTP/HTTPS) | 手動(フィルタリング) | 対応不可(暗号化されたペイロードは読めない) |
| Wireshark | ネットワーク層全般 | 手動(パケット単位) | TLS復号は別途鍵が必要 |
| Anything Analyzer | 全環境(内蔵ブラウザ+MITMプロキシ) | AIによる自動ノイズ除去・解析 | JS Hookによる暗号化ロジックの自動抽出 |
このツールは内部にChromiumベースのブラウザ(CDP通信)と、ポート8888で待ち受けるMITM(中間者攻撃)プロキシを内包している。ブラウザでの手作業、ターミナルで叩いたcurlコマンド、スマホアプリからの通信など、あらゆるトラフィックが統合された同一のセッションに流れ込む。AIは「このブラウザでの操作が、最終的にこのAPIエンドポイントへの通信を生み出した」という一連の文脈を理解した上で解析をスタートできるのだ。
暗号化されたペイロードと難読化の壁を越える
単にパケットをLLMに投げるだけなら、既存のツールを少し拡張すればできる。Anything Analyzerが技術的に頭一つ抜けているのは、ブラウザ環境に対する「JS Hook注入」の機能だ。
現代のWebアプリケーションは、リクエストを送る直前に crypto.subtle や CryptoJS、あるいは独自のアルゴリズム(SM2/3/4など)を用いてペイロードを暗号化したり、署名を生成したりする。Anything Analyzerは、内蔵ブラウザの通信に対して自動的にフックを仕掛け、これらの暗号化関数の呼び出しをインターセプトする。そして、トラフィックのデータだけでなく「どのJSファイルの、どのコードブロックがこの暗号化を行ったのか」という情報を抽出し、AIに渡す。
AIは二段階(フェーズ1でノイズを除去し、フェーズ2でディープな分析を行う)の思考プロセスを経て、「このAPIはOAuth 2.0の亜種であり、署名にはこの難読化されたJS関数が使われています。リクエストを再現するためのPythonスクリプトは以下の通りです」といったレポートをストリーミングで出力してくれる。これはもはや、優秀なセキュリティエンジニアをペアプログラミングの相方にしているような感覚だ。
AI Agentの「感覚器官」としてのMCP連携
さらに見逃せないのが、システム全体のアーキテクチャが「AI Agent時代」を前提に作られている点だ。Anything Analyzerは単なるスタンドアロンのGUIツールにとどまらず、MCP(Model Context Protocol)サーバーとしての機能も内蔵している。
これにより、CursorやClaude Desktopといった外部のAI環境から、直接Anything Analyzerのキャプチャ機能や解析機能を呼び出すことができる。
import requests
# スクリプトの通信をAnything AnalyzerのMITMプロキシに流すだけ
proxies = {"http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}
res = requests.get("https://api.example.com/protected-data", proxies=proxies, verify=False)
例えば、あなたが自作のPythonスクリプトを書いていて「なぜかAPIから403エラーが返ってくる」と悩んでいるとしよう。上記のように数行のプロキシ設定を追加してスクリプトを回し、Cursor上のAIに「さっきのエラーの原因をAnything Analyzerのログから調べて」と指示するだけで、AIが自律的にネットワークログを解析し、ヘッダーの不足や署名の誤りを指摘してくれる。ネットワークトラフィックという物理的な世界に干渉するための「目」と「耳」を、AI Agentが手に入れた瞬間である。
職人芸の終焉
長らく、ネットワークのデバッグやプロトコルのリバースエンジニアリングは、限られたエキスパートの領域だった。しかし、膨大なトラフィックの中から意味を見出し、難解なコードを紐解く作業こそ、LLMが最も得意とする領域でもある。パケットの海を手動で泳ぐ時代は終わり、これからは「通信の意図」をAIと対話しながら解き明かすフェーズに入ったのだ。
参考リポジトリ: Mouseww/anything-analyzer
Photo by Sumaid pal Singh Bakshi on Unsplash