
Moxyは、最新のWebアプリケーションセキュリティテスト向けに設計されたオープンソースのDASTツールです。エージェント機能を備えた使いやすいインターフェースを提供し、ペネトレーションテストのワークフローを支援・自動化します。
Moxy(次世代Man-in-the-Middleプロキシ) エージェント型AI機能(Ollama対応)を搭載したペネトレーションテスト用のオープンソースDASTツール。browser-use上に構築されたMoxyは、動的アプリケーションセキュリティテスト(DAST)を効率化します。
🚀 驚くほど簡単に使えます
しかも無料です。無料が嫌いな人はいませんよね?
プレビューに関する注意:
🚧 Moxyは現在活発に開発中であり、プレビュー/ベータ版です。
破壊的変更、不安定性、不足機能が発生する可能性があります。
自己責任で使用し、最新の改善についてはプロジェクトの更新情報をフォローしてください。
現時点では、フロントエンドとバックエンドを個別に起動する必要があります。
Moxyを実行する前に、高速なPythonパッケージインストーラ兼リゾルバである uv (astral-uv) をインストールする必要があります。
uv のインストール:
uv をインストールしてください。注意:
uvはバックエンドのPython依存関係を管理するために必要です。インストールされていない場合、バックエンドコマンドは失敗します。
バックエンドディレクトリに移動:
cd backend
依存関係をインストールしてバックエンドサーバーを起動:
uv sync
uv run moxy
フロントエンドディレクトリに移動:
cd frontend
依存関係をインストール:
npm install
フロントエンド開発サーバーを起動:
npm run moxy
注意:
デフォルトでは、フロントエンドは http://localhost:8080、
バックエンドは http://localhost:5000 で動作します。
MoxyはDockerを使用して実行でき、デプロイが容易になり一貫した環境が得られます。
この方法で簡単に共同作業やインストールが可能です。
projects_data は必要なすべてのデータベースとログを保持するデータフォルダです。
GitHub Container Registryからビルド済みイメージをプルして実行:
docker run -d \
--name moxy \
-p 5000:5000 \
-p 8081:8081 \
-v $(pwd)/projects_data:/app/projects_data \
ghcr.io/matank001/moxy:latest
コンテナをビルドして起動:
docker-compose up -d --build
アプリケーションにアクセス:
プロキシを使用するようにブラウザを設定:
Dockerで実行する場合、手動でブラウザにプロキシを設定する必要があります:
localhost(または 127.0.0.1)8081注意:
プロキシはDockerコンテナ内で動作しますが、ホストマシンのlocalhost:8081からアクセスできます。
ブラウザのネットワーク設定でプロキシ設定を構成するか、プロキシ管理用のブラウザ拡張機能を使用できます。
ログを表示:
docker-compose logs -f
コンテナを停止:
docker-compose down
プロジェクトルートに .env ファイルを作成してアプリケーションを設定します(backend/ ディレクトリ内に配置する必要があります):
注意:
.envファイルはオプションです。Docker Composeは、存在する場合は自動的に読み込みます(存在しなくても警告は出ません)。
すべてのプロジェクトデータはprojects_dataディレクトリに保持され、ボリュームとしてマウントされます。
デフォルトでは、MoxyはAIの設定や認証情報を必要とせずに動作します。ブラウザベースのDASTフローも、有効にしない限りAIを使用しません。
Moxyはエージェント機能のために OpenAIのAPI と Ollama(ローカルAI)の両方をサポートしています。AI搭載機能を有効にするには:
ローカル開発の場合: backend ディレクトリに適切な設定で .env ファイルを作成します。
Dockerの場合: プロジェクトルート(docker-compose.yml と同じディレクトリ)に .env ファイルを作成します。
OpenAIを使用したクラウドベースのAI処理の場合、.envファイルを次のように設定します:
OPENAI_API_KEY=sk-proj-... # あなたのOpenAI APIキー
MODEL=gpt-4o-mini # オプション: 指定しない場合のデフォルトはgpt-4o-mini
Ollamaを使用したローカルAI処理の場合、.envファイルを次のように設定します:
USE_OLLAMA=true
OPENAI_API_KEY=test # 必須ですが、Ollama使用時は値は無視されます
OPENAI_BASE_URL=http://localhost:11434/v1/ # Ollama APIエンドポイント
MODEL=qwen3:8b # お好みのOllamaモデル
エージェントの機能:
エージェントはAIを使用してアプリケーションの攻撃対象領域を推論し、トラフィックの再生や変更、さらにはブラウザセッションを駆動して新しいテストシナリオを生成します。
警告:
エージェント型AIモードは現在実験的であり、不安定な可能性があります。
Moxyは MITMproxy をインターセプトHTTP/HTTPSプロキシとして活用し、動的アプリケーションセキュリティテスト中にトラフィックをキャプチャおよび変更します。
デフォルトでは、プロキシは ポート8081 で実行されます。
ブラウザまたはシステムのプロキシ設定で http://localhost:8081 を指定することで、トラフィックをMITMproxy経由でルーティングし、Moxyがリアルタイムでリクエストを分析および操作できるようにします。
FirefoxからのHTTPおよびHTTPSトラフィックをMoxyで分析するには、FirefoxがMoxyのプロキシを使用するように設定し、プロキシ証明書をインポートして、ブラウザトラフィック(HTTPSを含む)を適切にインターセプトできるようにする必要があります。
Moxy(およびそのMITMproxyプロセス)が実行されていることを確認します。
設定(システムによっては環境設定)に移動します。localhost、ポートを 8081 に設定します。
localhost:8081 に設定します。これで、すべてのブラウザトラフィックがMoxyのプロキシ
http://localhost:8081経由でルーティングされます。
mitmproxy-ca-cert.pem)をダウンロードします。設定 → プライバシーとセキュリティに移動します。これらの手順を完了すると、FirefoxはMoxyのプロキシによってインターセプトされたHTTPS接続を信頼するようになります。
これで、証明書警告なしにHTTPおよびHTTPS経由で動的にWebアプリケーションを分析およびテストする準備が整いました。
詳細については、MITMproxyの証明書ドキュメントを参照してください。
moxy.db - プロジェクトメタデータを保存するメインデータベースprojects_data/{project_name}.db - 個別のプロジェクトデータベース(プロジェクト名に基づき、サニタイズされた名前)
警告:
現段階では、データベースのマイグレーションやバージョン間の後方互換性は保証されていません。将来のバージョンでは古いデータベースファイルとの互換性が失われる可能性があります。アップグレードを予定している場合は注意して使用してください。
Moxyは倫理的なセキュリティテストおよび研究目的のみに設計されています。自身が所有する、または明示的なテスト許可を得たアプリケーションの脆弱性を特定し、修正するためのセキュリティ専門家、開発者、組織を支援することを目的としています。