
xalgorix v4.6.78
自律型AIペンテストエージェント — リアルタイム偵察、脆弱性検出、およびエクスプロイトオーケストレーション。Go + TypeScript。
Xalgorix — 脆弱性を証明するオープンソースAIペンテスター
ほとんどのスキャナは検出する。Xalgorixは証明する。 自律型LLMエージェントが完全なペネトレーションテスト手法を実行し、その後独立した検証者がすべての検出結果を再エクスプロイトしてから報告します — つまり、トリアージが必要な不確かなものの山ではなく、証明が得られます。セルフホスト、プライベート、そしてBring-Your-Own-LLM。Go + TypeScriptで構築。
🚀 クイックスタート · 💡 Xalgorixを選ぶ理由 · ✨ 機能 · 🎯 ユースケース · ☁️ ホステッドクラウド · 📖 ドキュメント
📸 スクリーンショット
🖥️ セルフホストダッシュボード — 127.0.0.1:9137 でローカルに実行
| 概要ダッシュボード | スキャン詳細 | 検出結果 |
|---|---|---|
![]() | ![]() | ![]() |
☁️ ホステッドクラウドダッシュボード — www.xalgorix.com で完全マネージド版を提供
🚀 クイックスタート
インストール(ワンライン):```bash curl -sSL https://www.xalgorix.com/install | bash
これにより、お使いのプラットフォーム(Linux または macOS、amd64/arm64)用のビルド済みバイナリが最新リリースからダウンロードされます。次に、対話形式のセットアップウィザードを実行します:```bash
xalgorix --setup
プロバイダーを選択し、モデルを確認し、プロンプトが表示されたら API キーを入力します。最良の結果を得るには、強力な推論、長いコンテキストでの性能、信頼性の高いツール呼び出しを備えた最新のフロンティアモデル(利用可能な最新の高性能な GPT、Claude、Gemini モデルなど)を使用してください。小規模なモデルやローカルモデルも引き続きサポートされていますが、長時間の自律スキャンではより多くの監督が必要になる場合があります。Xalgorix はキーを ~/.xalgorix.env(モード 0600)に非公開で保存し、ダッシュボードを起動できます。ローカルの Ollama には API キーは不要です。
すぐに起動しない場合は、後で xalgorix --web で起動し、http://127.0.0.1:9137 を開いてください。プロバイダーや詳細オプションは Settings → LLM でいつでも変更できます。または xalgorix --setup を再実行してください。
または Docker で実行 — 必要なものがすべて揃い、ツールチェーンは不要:```bash
docker run --rm -p 9137:9137
--privileged
-v xalgorix-data:/data
xalgord/xalgorix:latest
`--privileged` は、ネイティブで root として実行したときと同じホスト相当のアクセス権をツールセットに付与します。Docker のデフォルトサンドボックスはケーパビリティ(`NET_ADMIN` など)を剥奪し、seccomp フィルタを適用するため、低レベルツール(iptables/route の変更、ARP スプーフ/MITM、tun/tap VPN、ptrace ベースのデバッガ、masscan のインターフェース調整)が壊れます。イメージ自身がこれらを付与することはできないため、実行時に設定する必要があります。このコンテナは、root として実行される使い捨てのネットワーク分離スキャンサンドボックスです — privileged が意図された姿勢です。認証なしでダッシュボードを公開しないでください。最小権限を優先しますか? `--privileged` を `--cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined` に置き換えてください。
`http://localhost:9137` を開きます。**開始するのに LLM キーは必要ありません** — ダッシュボードはキーなしで起動します。モデルと API キーは **Settings → LLM** で設定してください(`/data` ボリュームに永続化されます)。`XALGORIX_USERNAME`/`XALGORIX_PASSWORD` を渡さない場合、初回実行時にランダムな管理者パスワードが生成され、コンテナログに出力されます。
**最も簡単 — Docker Compose**(ポートと永続ボリュームをマッピングします):```bash
curl -sSLO https://raw.githubusercontent.com/xalgorix/xalgorix/main/docker-compose.yml
docker compose up -d
docker compose logs -f # shows the generated admin password on first start
このイメージには、攻撃的セキュリティツールセット(nmap、nuclei、httpx、subfinder、katana、ffuf、gobuster、sqlmap、masscan、dalfox、feroxbusterなど)が多数プリインストールされており、さらにすべてのパッケージマネージャー(apt、go、cargo、pipx、npm)も利用可能なため、エージェントは実行時に不足しているものを自動インストールできます。設計上、コンテナ内でrootとして実行されます。コンテナは使い捨ての、ネットワークから隔離されたスキャンサンドボックスとして扱い、認証なしでダッシュボードを公開しないでください。イメージはamd64とarm64の両方で公開されています。
またはソースからビルドする(Go 1.26+とNode.jsが必要):```bash git clone https://github.com/xalgorix/xalgorix.git cd xalgorix make build sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
> [!TIP]
> セットアップ不要をお望みですか?フルマネージド版は [www.xalgorix.com](https://www.xalgorix.com/) で動作しています — クリックでスキャン、インストールも API キーも不要です。
### 🤖 プルリクエストを自動レビュー — 無料の GitHub App
セットアップ不要で、すべてのプルリクエストにセキュリティレビューを実施したいですか? **[Xalgorix GitHub App](https://github.com/apps/xalgorix)** をインストールしてください。各 PR の diff を読み取り、セキュリティレビューをコメントします — インジェクション、認証の破綻/IDOR、SSRF、シークレット、安全でないパターン — をプルリクエスト上に直接。新しいコミットでその場で更新され、**`@xalgorix review`** とコメントすればオンデマンドで再実行できます。ワークフローファイルも、API キーも、アカウントも不要 — しかも無料です。
<div align="center">
[**➕ Xalgorix を GitHub に追加 →**](https://github.com/apps/xalgorix/installations/new)
</div>
マージゲートや CI での完全なエクスプロイト検証済みペネトレーションテストには、[ホステッドスキャナー](https://www.xalgorix.com/) または GitHub Action をご利用ください。
> [!IMPORTANT]
> Xalgorix は、あなたが所有するシステム、またはテストの明示的な許可を得たシステムでのみ使用してください。
> [!TIP]
> セルフホストを避けたいですか?フルマネージド版は [www.xalgorix.com](https://www.xalgorix.com/) で利用可能です — クリックでスキャン、インストールも API キーも不要です。
## 📚 目次
| | | |
| --- | --- | --- |
| 📸 [スクリーンショット](#-screenshots) | 🔩 [設定](#-configuration) | 🧾 [環境変数](#-environment-variables) |
| 🚀 [クイックスタート](#-quick-start) | 🆙 [アップグレード](#-upgrading-from-previous-versions) | 🔤 [プロバイダープレフィックス](#-provider-prefixes) |
| 🔎 [概要](#-overview) | 🏃 [実行](#-running) | 💻 [CLI リファレンス](#-cli-reference) |
| 💡 [Xalgorix を選ぶ理由](#-why-xalgorix) | 🧰 [サービスモード](#-service-mode) | 📡 [API サマリー](#-api-summary) |
| 🎯 [ユースケース](#-use-cases) | 🔁 [Web UI ワークフロー](#-web-ui-workflow) | 💾 [データストレージ](#-data-storage) |
| ✨ [機能](#-features) | 🔀 [スキャンモード](#-scan-modes) | 🧪 [開発](#-development) |
| 📥 [インストール](#-installation) | 📂 [コードをスキャン](#-scan-your-code-no-target-needed) | 🚨 [安全上の注意](#-safety-notes) |
| 🧭 [方法論](#-methodology) | 📄 [レポート](#-reports) | 📜 [ライセンス](#-license) |
| 🔧 [設定](#-settings) | 🔗 [リンク](#-links) | |
## 🔎 概要
Xalgorix は、許可されたセキュリティテスト、脆弱性評価、バグバウンティワークフローのためのセルフホスト型 AI ペネトレーションテストプラットフォームです。LLM 駆動の自律エージェント、ブラウザ自動化、ターミナルツール、包括的な 22 フェーズのテスト方法論、ライブ WebSocket テレメトリ、CVSS スコアリング付きの検出事項管理、ブランド化された PDF レポート生成、そして AgentMail、Discord、Telegram との連携を組み合わせています。
クラウド専用の DAST スキャナーとは異なり、Xalgorix は完全にあなたのマシン上で動作します。独自の LLM プロバイダー(OpenAI、Anthropic、DeepSeek、Gemini、Groq、Ollama、MiniMax)を持ち込み、モデル、推論の労力、レート制限、プロキシ設定を制御できます。スキャンデータ、API キー、ターゲット情報があなたのインフラストラクチャから外に出ることはありません。
デフォルトの体験は Web UI です。1 つのローカルダッシュボードから、スキャンの開始、実行中の監視、検出事項の検査、モデル/プロバイダー設定の構成、環境変数の管理、ブランド化された PDF レポートの生成、過去のスキャンの削除や再開ができます。
## 💡 Xalgorix を選ぶ理由
ほとんどのスキャナーは**検出**します。Xalgorix は**証明**します。自律エージェントが 22 フェーズの方法論を進め、その後、独立した検証者が報告前にすべての候補検出事項を再テストします — つまり、「かもしれない」の山をトリアージするのではなく、証拠を伴うエクスプロイト検証済みの結果が得られます。
- 🧠 **テンプレートエンジンではなく AI エージェント** — 認証フロー、ビジネスロジック、IDOR/BOLA、シグネチャスキャナーが見逃す連鎖エクスプロイトについて推論します。
- ✅ **エクスプロイト検証済みの検出事項** — 別の検証者が各検出事項を独立して再現します。結論が出ないものはレビュー用にフラグが立てられ、確認済みとして偽装されることは決してありません。
- 🔒 **セルフホストでプライベート** — 独自の LLM キーであなたのマシン上で動作します。ターゲットデータ、キー、検出事項があなたのインフラストラクチャから外に出ることはありません。
- 🧩 **独自の LLM を持ち込み** — OpenAI、Anthropic、DeepSeek、Gemini、Groq、Ollama、MiniMax — または [LiteLLM](#-litellm--openai-compatible-gateways-github-copilot-claude-opus-codex-openrouter-azure-local-models)(GitHub Copilot、Codex、OpenRouter、Azure)のような OpenAI 互換ゲートウェイ。モデル、推論の労力、コストを制御できます。
- 📄 **監査対応レポート** — CVSS スコア、概念実証、修復を含むブランド化された PDF。
### 📊 比較
| | **Xalgorix** | テンプレートスキャナー(例:Nuclei) | クローリングスキャナー(例:OWASP ZAP) | 商用 DAST |
| -------------------------------------------- | ------------------------ | ------------------------------- | ---------------------------------- | ---------------------- |
| アプローチ | 自律 AI エージェント | シグネチャ / テンプレート | スパイダー + アクティブルール | シグネチャ + ヒューリスティック |
| ビジネスロジック / IDOR / 認証バイパスのカバレッジ | ✅ | 限定的 | 限定的 | 部分的 |
| エクスプロイト検証済み(影響を証明) | ✅ 独立した検証者 | ❌ | ❌ | 部分的 |
| 誤検知の負荷 | 低い(証明済み) | テンプレート依存 | 高い | 中程度 |
| セルフホスト / データがローカルに留まる | ✅ | ✅ | ✅ | 通常はクラウド |
| 独自の LLM を持ち込み | ✅ | — | — | ❌ |
| ブランド化された PDF レポート | ✅ | ❌ | 基本 | ✅ |
| コスト | オープンソース + あなたの LLM | 無料 | 無料 | $$$ |
> 方向性を示す比較です — Nuclei と ZAP はそれぞれの領域で優れています。Xalgorix は、推論を多用する発見とエクスプロイト検証のレイヤーをその上に追加します。
### ☁️ セルフホスト vs ホステッドクラウド
Xalgorix は無料でオープンソースです — 永久にセルフホストでき、条件はありません。[ホステッドクラウド](https://www.xalgorix.com/)は**同じ**エクスプロイト検証済みエンジンを実行します。これは、API キー、インフラストラクチャ、予測不能な LLM の請求を管理したくない人のために存在します。どちらも第一級です — 自分に合ったものを選んでください。
| | **セルフホスト**(このリポジトリ) | **[ホステッドクラウド](https://www.xalgorix.com/)** |
| ---------------------------------- | ---------------------------------------- | ----------------------------------------------- |
| 開始時の価格 | 無料、Apache-2.0 | 無料枠 · 完全スキャン 1 回 $1 から |
| LLM API キー | 独自に持ち込み・管理 | 含まれる — 手間なし |
| スキャンあたりのコスト | 生の LLM トークン — 変動し、急増する可能性あり | ライブホスト 1 件につき 1 クレジット — 予測可能 |
| セットアップと運用 | ツールチェーンをインストール、更新、実行 | 実行するものなし — 約 60 秒でスキャン |
| アウトオブバンドインフラ(SSRF/ブラインド RCE) | 独自の OOB サーバーを立ち上げる | マネージド OOB 込み |
| スケジューリング · チーム · RBAC | 自分で行う | 組み込み |
| 更新 | `git pull` + 再ビルド | 常に最新エンジン |
| データレジデンシー / オフライン | ✅ あなたのインフラに留まる · エアギャップ OK | 当社のインフラ上で実行(DPA 利用可能) |
**セルフホストを選ぶ場合** データがあなたのネットワークに留まる必要がある、完全な制御を望む、またはオフライン/エアギャップで実行する場合 — まさにそのためのものです。**クラウドを使う場合** API キー、インフラ、予期しないトークン請求を避け、実際にスキャンするライブホストに対してのみ支払いたい場合。
<div align="center">
[**☁️ ホステッドクラウドを試す — 無料 →**](https://www.xalgorix.com/) · [**⚖️ 実際のコストを比較(計算機) →**](https://www.xalgorix.com/hosted-vs-self-hosted)
</div>
Xalgorix がトリアージサイクルを節約してくれたなら、**[⭐ リポジトリにスターを付けてください](https://github.com/xalgorix/xalgorix)** — 他の人が見つける助けに本当になります。
## 🎯 ユースケース
| ユースケース | Xalgorix がどのように役立つか |
| -------- | ------------------ |
| **ペネトレーションテスト** | 許可されたターゲットに対して完全な 22 フェーズの方法論を実行します。AI エージェントが偵察、脆弱性の発見、インジェクションテスト、SSRF、IDOR、認証バイパス、競合状態などを処理し、報告前に検出事項を検証します。 |
| **バグバウンティハンティング** | Xalgorix をスコープ内のターゲットに向け、エージェントに攻撃対象領域を列挙させ、一般的な脆弱性クラスをテストさせ、CVSS スコアと概念実証の証拠を伴う検証済みの検出事項を浮かび上がらせます。 |
| **レッドチームオペレーション** | ワイルドカードおよびマルチターゲットスキャンモードを使用して、組織の外部攻撃対象領域をマッピングします。ブラウザ支援の DAST は、静的スキャナーが見逃す認証フロー、フォーム、ランタイム動作を処理します。 |
| **セキュリティリサーチ** | 新規脆弱性発見フェーズは、エージェントを既知のテンプレートマッチングを超えて押し進めます。独自の LLM(OpenAI、Anthropic、DeepSeek、Gemini、Ollama、MiniMax)を持ち込み、推論の深さとコストを制御できます。 |
| **継続的なセキュリティテスト** | `xalgorix --start` でシステムサービスとして実行します。スケジュールでスキャンし、検出事項を Discord や Telegram にストリーミングし、ステークホルダー向けにブランド化された PDF レポートを生成します。 |
| **DAST 自動化** | Web アプリケーション向けのブラウザ駆動テスト — 認証フロー、フォーム、JavaScript でレンダリングされたコンテンツ、ランタイム動作。プロキシトラフィック検査のために Caido と統合します。 |
## ✨ 機能
| 領域 | 機能 |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| 📊 ダッシュボード | デフォルトで `127.0.0.1:9137` 上のローカル Web UI、スキャン管理、ライブステータス、一括スキャンアクション、過去のスキャン復元。 |
| 🔍 スキャン | 選択可能な方法論フェーズを備えたシングルターゲット、DAST、ワイルドカード、マルチターゲットフロー。 |
| 📡 ライブテレメトリ | WebSocket 経由のツール呼び出し、エージェントメッセージ、検出事項、エラー、HTTP アクティビティ、LLM アクティビティ。 |
| 🐞 検出事項 | スキャン詳細ページ、重大度フィルター、CVSS 詳細、検出事項インデックス、検証済み検出事項ワークフロー。 |
| 📄 レポート | ターゲット/会社名、アップロードされたロゴ、レポート一覧、開く/ダウンロード/削除アクションを含むブランド化された PDF レポート。 |
| 🔔 連携 | AgentMail テスト受信トレイ、検証メール、OTP フロー、メールトリアージイベント、Discord および Telegram 通知。 |
| ⚙️ 設定 | LLM、AgentMail、Discord、Telegram、プロキシ、ランタイム、ブラウザ、認証、レート制限、リソースのダッシュボード設定。 |
| 🛡️ ランタイム安全性 | リソースを考慮したインスタンス制限と、認証付きで外部アクセスが明示的に構成されない限りループバックのみのバインド。 |
## 📥 インストール
最速の方法ではツールチェーンがまったく不要です。
### ⚡ ワンラインインストール(ビルド済みバイナリ)```bash
curl -sSL https://www.xalgorix.com/install | bash
お使いのプラットフォーム(Linux または macOS、amd64/arm64)向けの最新リリースバイナリをダウンロードし、/usr/local/bin(sudo なしの場合は ~/.local/bin)にインストールします。XALGORIX_INSTALL_DIR で上書きするか、XALGORIX_VERSION=vX.Y.Z でバージョンを固定できます。
初回設定は対話形式で完了でき、環境ファイルを手動で編集する必要はありません:```bash xalgorix --setup
ウィザードは再実行時に既存の設定を保持し、ターミナルでは API キー入力を非表示にし、完了時にオプションで Web UI を起動します。
### 🐳 Docker```bash
docker run --rm -p 9137:9137 \
--privileged \
-e XALGORIX_LLM=openai/gpt-5.6 \
-e XALGORIX_API_KEY=your_openai_api_key \
-v xalgorix-data:/data \
ghcr.io/xalgord/xalgorix:latest
--privileged(またはより限定的な --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_PTRACE --security-opt seccomp=unconfined)は、ツールセットにホストと同等のアクセス権を与えます。Docker のデフォルトサンドボックスはケイパビリティを剥奪し、システムコールをフィルタリングするため、低レベルのツール(iptables/route/インターフェース変更、ARP スプーフ/MITM、tun/tap VPN、ptrace ベースのデバッガ)が動作しなくなります。イメージが自身にこれらの権限を付与することはできません — これは実行時の判断であるため — フラグを渡すか、提供されている docker-compose.yml を使用してください。これは自動的に設定を行います。
このイメージは batteries-included です。広範なオフェンシブセキュリティツールセットがプリインストールされており(nmap、nuclei、httpx、subfinder、dnsx、naabu、katana、ffuf、gobuster、dalfox、feroxbuster、sqlmap、masscan、nikto、whatweb、hydra など)、さらにブラウザ支援 DAST 用の Chromium も含まれます。また、完全なパッケージマネージャセット(apt、go、cargo、pipx、npm)も利用可能な状態に保たれているため、エージェントは実行時に不足しているものを自動インストールします。スキャンデータは /data ボリュームに永続化され、サーバーはコンテナ内で 0.0.0.0 にバインドされます — localhost 以外に公開する前に XALGORIX_USERNAME/XALGORIX_PASSWORD を設定してください。
コンテナは設計上 root として実行されます(エンジンは uid 0 の場合のみ実行時の自動インストールを有効にし、apt/go/cargo のインストールにはシステムへの書き込みアクセスが必要です)。使い捨ての、ネットワーク分離されたスキャンサンドボックスとして扱ってください。同じタグで linux/amd64 と linux/arm64 のマルチプラットフォームマニフェストが公開されるため、Docker は自動的にネイティブイメージを選択します。
初回実行時、ダッシュボード認証を設定しない場合、コンテナは ランダムな管理者パスワードを生成し、ログに出力します(イメージは 0.0.0.0 にバインドしますが、エンジンは認証なしではこれを行いません)。独自のものを使用するには XALGORIX_USERNAME + XALGORIX_PASSWORD(または XALGORIX_PASSWORD_HASH)を設定してください。バイナリはコンテナ内で自己更新されることはありません(XALGORIX_NO_AUTO_UPDATE=1)— アップグレードするには新しいイメージタグをプルしてください。nuclei エンジンとその脆弱性テンプレートは、イメージビルドごとに最新に更新されます(リリース CI と redeploy.sh がこれを強制します)。エンジンを固定するには --build-arg NUCLEI_VERSION=vX.Y.Z を渡すか、Docker のキャッシュを再利用するには NUCLEI_REFRESH=0 ./redeploy.sh を渡してください。
📋 要件(ソースからのビルド)
| 要件 | 備考 |
|---|---|
| OS | Linux または macOS(amd64/arm64)。 |
| Go | 1.26 以降。 |
| Node.js + npm | バンドルされた React Web UI をソースからビルドする場合に必要。 |
| セキュリティツール | 自動インストールが有効な場合にのみオンデマンドでインストールされます。 |
Go のバージョンを確認する:```bash go version
### 🔨 ソースからビルド```bash
git clone https://github.com/xalgorix/xalgorix.git
cd xalgorix
make build
sudo install -m 755 build/xalgorix /usr/local/bin/xalgorix
make build は React Web UI を internal/web/static にビルドし、その後 Go バイナリをビルドします。
📦 Go でのインストール```bash
GOPROXY=direct GOSUMDB=off go install github.com/xalgord/xalgorix/v4/cmd/xalgorix@latest
## 🔩 設定
Xalgorix はこの順序で設定を読み込みます。後のソースが前のソースを上書きします。
| 順序 | ソース |
| ----- | -------------------------------------------------------------- |
| 1 | `/etc/xalgorix.env` |
| 2 | `sudo` 経由で起動された場合の `/home/<sudo-user>/.xalgorix.env` |
| 3 | `~/.xalgorix.env` |
| 4 | プロセスに既に存在する環境変数 |
ローカル環境ファイルを作成します:```bash
nano ~/.xalgorix.env
🧩 最小構成
最も強力な自律スキャン結果を得るには、最新のフロンティアモデルを選択してください。以下のモデルIDは具体的な例です。Xalgorixのリリースを待たずに、より新しい互換モデルIDを入力できます。```bash XALGORIX_LLM=openai/gpt-5.6 XALGORIX_API_KEY=your_openai_api_key
### 🔌 プロバイダーの例
OpenAI:```bash
XALGORIX_LLM=openai/gpt-5.6
XALGORIX_API_KEY=sk-...
カスタムOpenAI互換プロバイダー:```bash XALGORIX_LLM=custom/security-model XALGORIX_API_BASE=https://your-provider.example/v1 XALGORIX_API_KEY=your_provider_api_key
#### 🌉 LiteLLM / OpenAI 互換ゲートウェイ(GitHub Copilot、Claude Opus、Codex、OpenRouter、Azure、ローカルモデル)
`XALGORIX_API_BASE` は任意の OpenAI 互換 `/v1/chat/completions` エンドポイントを受け付けるため、
Xalgorix は [LiteLLM](https://docs.litellm.ai/) プロキシとそのまま動作します — Xalgorix 側の
変更は不要です。LiteLLM が上流プロバイダーの認証(Copilot デバイス
ログイン、Azure キー、OpenRouter、Ollama など)を処理し、Xalgorix はゲートウェイに対して
OpenAI として通信するだけです。
LiteLLM を実行します(`config.yaml` の例):```yaml
model_list:
- model_name: claude-opus-5
litellm_params:
model: github_copilot/claude-opus-5 # or openrouter/…, azure/…, ollama/…
general_settings:
master_key: sk-local-litellm-key
Xalgorix をそれに向けてください — custom/ プレフィックスを使用すると、モデル名がそのまま送信され、
OpenAI chat-completions プロトコルが使用されます:```bash
XALGORIX_LLM=custom/claude-opus-5 # the LiteLLM model_name
XALGORIX_API_BASE=http://localhost:4000/v1 # your LiteLLM proxy
XALGORIX_API_KEY=sk-local-litellm-key # LiteLLM master_key / virtual key
同じパターンは、GitHub Copilot Business/CLI、Claude Opus、Codex スタイルのモデル、OpenRouter、Azure OpenAI、およびローカルの Ollama モデルなど、LiteLLM がルーティングできるあらゆるものに対応します。`custom/`(または `openai/`)プレフィックスと、Anthropic/Gemini 以外の `XALGORIX_API_BASE` を維持することで、Xalgorix は LiteLLM が期待する標準の OpenAI リクエスト形式を使用します。
### 🔔 オプションの統合```bash
GEMINI_API_KEY=AIza...
AGENTMAIL_POD=am_us_pod_47
AGENTMAIL_API_KEY=ak_...
XALGORIX_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
XALGORIX_DISCORD_MIN_SEVERITY=high
🔐 ダッシュボード認証```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this-password
> [!TIP]
> 本番環境へのデプロイでは `XALGORIX_PASSWORD_HASH` を推奨します。
## 🆙 以前のバージョンからのアップグレード
このリリースでは、安定性とワークスペース分離のための調整が行われており、1つの破壊的変更といくつか知っておくべき新しい設定項目があります。
### 💥 破壊的変更: デフォルトのワークスペースが `~/.xalgorix/data/` に移動
スキャン出力、ノート、スケジュール、その他の生成された成果物は、`$CWD` (バイナリを起動したディレクトリ) ではなく `~/.xalgorix/data/` の下に配置されるようになりました。
以前の動作を維持するには、`XALGORIX_DATA_DIR` を現在の作業ディレクトリに指定してください:```bash
export XALGORIX_DATA_DIR=$(pwd)
[MIGRATION] 警告は、レガシーマーカー(notes.json、_schedules/、vulnerabilities.json、または YYYY-MM-DD/scan-* ディレクトリ)が $CWD で検出され、かつ XALGORIX_DATA_DIR が未設定の場合に起動時に出力されます。Xalgorix はこれらのレガシーファイルを自動的に読み取り、コピー、削除することはありません。この警告は情報提供を目的としており、プロセスごとに一度だけ出力されます。
🆕 新しい環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
XALGORIX_LLM_MAX_INFLIGHT | 4 × EffectiveMaxInstances | 実行中のすべてのスキャンにわたる同時送信 LLM 呼び出しを制限します。最小値は 1。キャンセルされた待機者はスロットを消費しません。 |
🩺 新しいヘルスエンドポイントカウンター
GET /api/status は以下を公開するようになりました:
| フィールド | 意味 |
|---|---|
panics_recovered | クラッシュせずに回復された Goroutine、HTTP ハンドラー、およびツールのパニック。 |
path_rejections | Path_Policy によって拒否されたファイルシステム書き込み(data_dir / ~/.xalgorix/ / /tmp の外側)。 |
watchdog_kills | ツールごとのハードタイムアウトウォッチドッグによって終了されたサブプロセス。 |
admission_refusals | 同時実行数の上限により拒否されたスキャン受付リクエスト。 |
llm_inflight_cap | このプロセスの有効な XALGORIX_LLM_MAX_INFLIGHT 値。 |
data_dir | 使用中の解決済み Data_Dir。 |
allow_list | Path_Policy によって受け入れられたファイルシステムルート。 |
🏃 実行
🪟 Web UI```bash
xalgorix --web
開く:```text
http://127.0.0.1:9137
別のポートを使用します:```bash xalgorix --web --port 8080
### 🌐 外部アクセス
ダッシュボード認証を有効にした後にのみ、別のインターフェースにバインドしてください:```bash
XALGORIX_USERNAME=admin XALGORIX_PASSWORD=change-this xalgorix --web --bind 0.0.0.0
[!WARNING] サーバーはダッシュボード認証なしでの外部バインドを拒否します。
🏹 CLI スキャン```bash
xalgorix --target https://example.com
カスタム命令を使用する場合:```bash
xalgorix --target https://app.example.com --instruction "Focus on SQL injection, IDOR, and auth bypass. Avoid destructive tests."
🧰 サービスモード
システムサービスとしてインストールして起動します:```bash sudo xalgorix --start
サービスを管理します:```bash
sudo xalgorix --restart
sudo xalgorix --stop
sudo xalgorix --uninstall
ログを表示:```bash journalctl -u xalgorix -f
### 🌍 リモートサービスアクセス
ダッシュボード認証を有効にした後にのみ、サービスをリモートブラウザに公開してください:```bash
sudo tee -a /root/.xalgorix.env >/dev/null <<'EOF'
XALGORIX_BIND=0.0.0.0
XALGORIX_USERNAME=admin
XALGORIX_PASSWORD=change-this
EOF
sudo xalgorix --restart
その後、http://<server-ip>:9137 を開きます。
プロセスがリッスンしているのにページがリモートから読み込まれない場合は、サーバーのファイアウォールまたはクラウドセキュリティグループで TCP ポート 9137 を許可してください。
🏠 ローカル/内部ターゲットのスキャン
デフォルトでは、Xalgorix はループバック、localhost、プライベートレンジ、または自身のインターフェースアドレスのスキャンを拒否します。これらは Xalgorix が動作しているマシンであり、ターゲットではないためです。セルフホスト型のシングルテナント環境では、ローカルでホストされているデモ/ステージングアプリのスキャンをオプトインできます:```bash
echo 'XALGORIX_ALLOW_LOCAL_TARGETS=true' | sudo tee -a /root/.xalgorix.env
sudo xalgorix --restart
ダッシュボード自身のリスナーは、これが有効になっていても**常に**保護されます。
> **⚠️ 共有 / マルチテナント / ホスト型デプロイメント: これはオフのままにしてください。** これを有効にすると、
> ユーザーのスキャンがオペレーター自身のマシンや内部ネットワークに到達できるようになります。
> デフォルトではオフなので、安全を保つために何もする必要はありません —
> `XALGORIX_ALLOW_LOCAL_TARGETS` を設定しないでください(または `XALGORIX_ALLOW_LOCAL_TARGETS=false` を固定してください)。
> また、エンジンの Settings ページを信頼できないユーザーに公開しないでください。
## 🔁 Web UI ワークフロー
1. `http://127.0.0.1:9137` でダッシュボードを開きます。
2. Settings に移動し、LLM プロバイダー、API キー、レート制限、およびオプションの統合を確認します。
3. New Scan からスキャンを作成します。
4. スキャンモードを選択します。
5. 集中的な実行を行いたい場合は、methodology フェーズを選択します。
6. 特定の重大度のみをリアルタイムで報告したい場合は、severity フィルターを設定します。このフィルターはリアルタイムダッシュボードのフィードと通知にのみ影響します。PDF レポートと `/api/findings` には、エージェントが発見したすべての脆弱性が常に含まれます。
7. ブランド化されたレポート用に会社名を追加し、ロゴをアップロードします。
8. Overview、Scan Detail、または Live Feed から進捗を監視します。
9. Scans と Reports から、検出結果の詳細を開いたり、レポートをダウンロードしたり、過去のスキャンを管理したりできます。
## 🔀 スキャンモード
| モード | 最適な用途 |
| ---------------- | ------------------------------------------------------------------------------- |
| 🎯 単一ターゲット | 既知の 1 つの URL またはホストをテストする。 |
| 🌐 ワイルドカード / マルチ | 関連するターゲットを列挙し、発見された攻撃対象領域をスキャンする。 |
| 🧭 DAST | Web アプリ、認証フロー、フォーム、ランタイム動作に対するブラウザ支援テスト。 |
## 📂 コードをスキャンする(ターゲット不要)
Xalgorix をコードベース(Git URL、ローカルパス、またはアップロードされた zip)に向けると、
ソースを直接スキャンします。デプロイされた URL も、立ち上げるインフラストラクチャも不要です。```bash
# Source review (SAST): audit the code, no running target required
xalgorix --source ./my-app --code-scan review
# Provision + DAST: build & run the app locally, then pentest the running instance
xalgorix --source https://github.com/org/app.git --code-scan provision
| コードスキャンモード | 動作内容 | 検証レベル |
|---|---|---|
review | ソースを読み、エントリポイントから危険なシンクまでのユーザー入力を追跡し、到達可能な脆弱性を報告します。ライブターゲットは不要です。 | ソース検証済み — コード内で到達可能であることが証明済み(ランタイムで悪用されたものではないと明示的にラベル付けされます)。 |
provision | リポジトリを検査し、アプリをループバックポートでビルド・実行してから、実行中のインスタンスに対してホワイトボックス誘導型 DAST を実行します。アプリをビルドできない場合は review にフォールバックします。 | エクスプロイト検証済み — 実行中のアプリに対して再現済み。 |
--sourceは Git URL(シャロークローン)、ローカルディレクトリ、またはアップロード/展開済みアーカイブへのパスを受け付けます。Web UI/ホスト型アプリでは、コードベースの.zipをアップロードすることもできます(POST /api/upload-source)。- 従来のホワイトボックス拡張のために、リポジトリとライブターゲットを組み合わせることも引き続き可能です — このパスは変更されていません。コードスキャンモードは、コードベースが対象の全体である場合に使用します。
Provision モードは、エージェントのサンドボックス内でアプリのビルド/起動コマンドを実行し、アプリを立ち上げた単一のループバックポートのみをペネトレーションテストします — ダッシュボードおよびマシン上のその他すべてはスコープ外のままです。
🧭 方法論
Xalgorix は自律テストを 22 のフェーズに整理します。
| フェーズ | 焦点 |
|---|---|
| 1 | 偵察 |
| 2 | 手動による脆弱性の発見 |
| 3 | ディレクトリおよびファイルの探索 |
| 4 | CORS および Cookie の分析 |
| 5 | 認証およびセッションのテスト |
| 6 | インジェクションのテスト |
| 7 | SSRF のテスト |
| 8 | IDOR およびアクセス制御の不備 |
| 9 | API および GraphQL のテスト |
| 10 | ファイルアップロードのテスト |
| 11 | デシリアライゼーションおよび RCE |
| 12 | 競合状態およびビジネスロジック |
| 13 | サブドメイン乗っ取り |
| 14 | オープンリダイレクトのテスト |
| 15 | メールセキュリティのテスト |
| 16 | クラウドおよびインフラストラクチャ |
| 17 | WebSocket のテスト |
| 18 | CMS 固有のテスト |
| 19 | リンク切れハイジャックおよびコンテンツスプーフィング |
| 20 | エクスプロイトの検証 |
| 21 | 新規脆弱性の発見 |
| 22 | 最終レポート |
Web UI でのフェーズ選択により、すべてのフェーズを実行することも、特定のエンゲージメントに必要なサブセットのみを実行することもできます。
📄 レポート
レポートは PDF ファイルとして生成され、以下を含めることができます:
| セクション | 含まれる内容 |
|---|---|
| 📌 サマリー | エグゼクティブサマリー、ターゲットメタデータ、スキャンメタデータ、および深刻度の概要。 |
| 🐞 検出結果 | 検証済みの検出結果、CVSS の詳細、技術分析、およびエクスプロイトの証拠。 |
| 🔬 証拠 | 概念実証のコマンド、スクリプト、ペイロードのメモ、および裏付けとなる観察結果。 |
| 🩹 修復 | 修正ガイダンスおよび優先順位付けされた次のステップ。 |
| 🎨 ブランディング | 会社名/ターゲット名およびアップロードされたロゴ。 |
レポートはスキャン詳細ページおよびレポートページから利用できます。レポートの行は開く、ダウンロード、削除をサポートします。
🔧 設定
ほとんどの運用設定は、Web UI の設定から変更できます。
| 領域 | 例 |
|---|---|
| 🤝 エンゲージメント | ダッシュボードのリクエストレート制限 |
| 🧠 LLM | モデル、API キー、API ベース、推論エフォート、リトライ、最大イテレーション |
| 📬 AgentMail | Pod および API キー |
| 🔔 通知 | Discord Webhook および最小深刻度、Telegram ボットトークン、チャット ID、最小深刻度、およびオプトインのスキャン完了サマリー |
| 🕵️ プロキシ | プロキシ URL、プロキシファイル、ローテーション、TLS 検証 |
| 🧱 ランタイム | ワークスペース、ブラウザパス、自動インストール制御 |
| 🔐 セキュリティ | ダッシュボードのユーザー名、パスワード、パスワードハッシュ、バインドアドレス |
| 📈 リソース | CPU/RAM/ディスクのしきい値およびスキャン同時実行バジェット |
一部の設定は、プロセスの起動やサーバーバインディングに影響するため、再起動が必要です。UI ではそれらのフィールドがマークされます。
🧾 環境変数
🧱 コア
| 変数 | デフォルト | 説明 |
|---|---|---|
XALGORIX_LLM | なし | LLM リクエストに使用されるプロバイダーネイティブのモデル ID。 |
XALGORIX_LLM_PROVIDER | なし | ダッシュボードによって選択されるプロバイダー。モデル ID とは別に保存されます。 |
XALGORIX_API_KEY | なし | 必須の LLM プロバイダー API キー。 |
XALGORIX_API_BASE | プロバイダーのデフォルト | カスタムの OpenAI 互換 API ベース URL。 |
XALGORIX_REASONING_EFFORT | high | 推論エフォート:none、low、medium、high、または xhigh(Ollama では xhigh は high にマップされます)。 |
XALGORIX_LANGUAGE | en | AI 生成の文章(エージェントの推論、ノート、検出結果、レポート内容、スキャン後のチャット)の出力言語。en または zh-CN。技術トークン(ペイロード、コマンド、URL、CVE/CWE ID)は常に元の形式のままです。非ラテン言語はダッシュボードおよび HTML レポートで自動的にレンダリングされます。 |
XALGORIX_PDF_CJK_FONT | なし | エクスポートされる PDF レポートで非ラテン言語(例:簡体字中国語)をレンダリングするために使用される、CJK グリフを持つ TrueType(.ttf)フォントへの絶対パス。.ttf のみがサポートされます(.ttc/.otf は不可)。これがない場合、PDF はコアフォントにフォールバックし、非ラテングリフはレンダリングされません(HTML レポートは影響を受けません)。 |
XALGORIX_OLLAMA_COMPATIBLE | false | 非標準ポートのカスタムエンドポイントに Ollama の推論セマンティクスを適用します。ポート 11434 は自動的に検出されます。 |
XALGORIX_LLM_MAX_RETRIES | 5 | 一時的な LLM 障害に対するリトライ回数。 |
XALGORIX_MEMORY_COMPRESSOR_TIMEOUT | 30 | コンテキスト圧縮のタイムアウト(秒)。 |
XALGORIX_MAX_ITERATIONS | 0 | エージェントのイテレーション上限。0 は無制限を意味します。 |
XALGORIX_PPROF_ADDR | なし | オプトインの Go プロファイラ。設定すると(例:127.0.0.1:6060)、CPU/ヒープ診断用にそのアドレスで /debug/pprof/ にスタンドアロンの pprof サーバーを起動します。デフォルトでは無効です。プロセスの内部を公開するため、ループバックにバインドし、SSH トンネル経由でアクセスしてください。公開してはなりません。 |
GEMINI_API_KEY | なし | Web 検索エンリッチメント用のオプションの Gemini キー。 |
🔒 Web およびセキュリティ
| 変数 | デフォルト | 説明 |
|---|---|---|
XALGORIX_BIND | 127.0.0.1 | Web サーバーのリッスンアドレス。 |
XALGORIX_ALLOW_LOCAL_TARGETS | false | セルフホストインストールでローカルにホストされたアプリ(localhost/127.0.0.1/プライベート IP)のスキャンを許可します。ダッシュボード自身のリスナーは常に保護されます。共有/ホスト型デプロイではオフのままにしてください。 |
XALGORIX_USERNAME | なし | ダッシュボードのユーザー名。 |
XALGORIX_PASSWORD | なし | ダッシュボードのパスワード。 |
XALGORIX_PASSWORD_HASH | なし | 推奨される bcrypt パスワードハッシュ。 |
XALGORIX_WORKSPACE | カレントディレクトリ | スキャン実行のワークスペースルート。 |
🤝 統合
| 変数 | デフォルト | 説明 |
|---|---|---|
AGENTMAIL_POD | なし | AgentMail Pod 識別子。 |
AGENTMAIL_API_KEY | なし | AgentMail API キー。 |
XALGORIX_DISCORD_WEBHOOK | なし | グローバル Discord Webhook。 |
XALGORIX_DISCORD_MIN_SEVERITY | なし | Discord に送信される最小深刻度。 |
XALGORIX_TELEGRAM_BOT_TOKEN | なし | @BotFather からの Telegram ボットトークン。 |
XALGORIX_TELEGRAM_CHAT_ID | なし | Telegram チャット/チャンネル ID(数値または @username)。 |
XALGORIX_TELEGRAM_MIN_SEVERITY | なし | Telegram に送信される最小深刻度。 |
XALGORIX_NOTIFY_SCAN_COMPLETE | false | 設定された Discord/Telegram の宛先にスキャン終了サマリーを送信します。これはオプトインであり、脆弱性ごとのアラートには影響しません。 |
CAIDO_PORT | 0 | Caido プロキシポート。0 は自動検出を意味します。 |
CAIDO_API_TOKEN | なし | Caido API トークン。 |
🚦 レート制限、プロキシ、およびランタイム
| 変数 | デフォルト | 説明 |
|---|---|---|
XALGORIX_RATE_LIMIT_REQUESTS | 60 | ウィンドウあたりのダッシュボードリクエスト数。 |
XALGORIX_RATE_LIMIT_WINDOW | 60 | ダッシュボードのレート制限ウィンドウ(秒)。 |
XALGORIX_RATE_RPS | 10 | 持続的なアウトバウンドリクエストレート。 |
XALGORIX_RATE_BURST | 20 | アウトバウンドバーストサイズ。 |
XALGORIX_USE_PROXY | false | プロキシルーティングを有効化。 |
XALGORIX_PROXY_URL | なし | 単一のプロキシ URL。プロキシファイルを上書きします。 |
XALGORIX_PROXY_FILE | なし | 1 行につき 1 つのプロキシを含むファイル。 |
XALGORIX_PROXY_ROTATION | roundrobin | プロキシローテーション戦略:roundrobin または random。 |
XALGORIX_TLS_SKIP_VERIFY | false | テストトラフィックの TLS 検証をスキップ。 |
XALGORIX_DISABLE_BROWSER | false | ブラウザ自動化を無効化。 |
XALGORIX_BROWSER_PATH | 自動 | カスタムの Chrome/Chromium 実行ファイルパス。 |
XALGORIX_ALLOW_AUTO_INSTALL | root のみ | 自動パッケージインストールを許可。 |
XALGORIX_AUTO_INSTALL_SUDO | false | sudo プレフィックス付きの自動インストールを許可。 |
🔤 プロバイダープレフィックス
XALGORIX_API_BASE が空の場合、Xalgorix はモデルプレフィックスからプロバイダーのデフォルトを推測します。
| プレフィックス | デフォルト API ベース |
|---|---|
openai/ | https://api.openai.com/v1 |
anthropic/ | https://api.anthropic.com |
deepseek/ | https://api.deepseek.com/v1 |
groq/ | https://api.groq.com/openai/v1 |
google/ | https://generativelanguage.googleapis.com/v1 |
gemini/ | https://generativelanguage.googleapis.com/v1 |
ollama/ | http://localhost:11434/v1 |
minimax/ | https://api.minimax.io/v1 |
モデル名はこのリストにハードコードされていません。設定ページは入力されたモデル ID を受け付けるため、UI ドロップダウンの更新を待たずに新しいプロバイダーモデルを使用できます。
💻 CLI リファレンス
| フラグ | エイリアス | 説明 |
|---|---|---|
--web | -w | Web UI を起動。 |
--port <port> | -p | Web UI ポート。デフォルト:9137。 |
--bind <addr> | なし | バインドアドレス。デフォルト:127.0.0.1。 |
--target <target> | -t | ターゲット URL、ホスト、IP、またはパス。繰り返し可能。 |
--instruction <text> | -i | カスタムスキャン指示。 |
--model <model> | -m | この実行で XALGORIX_LLM を上書き。 |
--update | -up | 最新リリースに更新。 |
--version | -v | バージョンを表示。 |
--start | なし | システムサービスをインストールして起動。 |
--stop | なし | システムサービスを停止。 |
--restart | なし | システムサービスを再起動。 |
--uninstall | なし | システムサービスを削除。 |
--help | -h | ヘルプを表示。 |
📡 API サマリー
| メソッド | エンドポイント | 目的 |
|---|---|---|
POST | /api/scan | スキャンを開始または保存。 |
POST | /api/stop | 実行中のすべてのスキャンを停止。 |
GET | /api/status | 現在のグローバルステータス。 |
GET | /api/scans | スキャンを一覧表示。 |
GET | /api/scans/:id | スキャン詳細を取得。 |
DELETE | /api/scans/:id | スキャンおよびそのレポートデータを削除。 |
GET | /api/findings | すべての検出結果を一覧表示(スキャン間で重複排除)。 |
GET | /api/findings/summary | すべてのスキャンにわたる深刻度の集計。 |
GET | /api/report/:id | PDF レポートをダウンロード。 |
GET | /api/instances | ライブおよび履歴のインスタンスを一覧表示。 |
GET | /api/instances/:id/events | バッファリングされたイベント履歴を取得。 |
POST | /api/instances/:id/stop | 特定のインスタンスを停止。 |
POST | /api/instances/:id/start | 保存済みまたは完了したスキャンを新しい実行として開始。 |
POST | /api/instances/:id/restart | 同じ設定で再起動。 |
POST | /api/instances/:id/pause | 実行中のスキャンを一時停止。 |
POST | /api/instances/:id/resume | 一時停止したスキャンを再開。 |
POST | /api/upload-logo | レポートロゴをアップロード。 |
POST | /api/upload-targets | ターゲットリストをアップロード。 |
GET | /api/settings/environment | 編集可能な環境設定を一覧表示。 |
POST | /api/settings/environment | 環境設定を保存。 |
GET | /api/settings/llm | LLM 設定を取得。 |
POST | /api/settings/llm | LLM 設定を保存。 |
GET | /api/settings/agentmail | AgentMail 設定を取得。 |
POST | /api/settings/agentmail | AgentMail 設定を保存。 |
GET | /ws | WebSocket ライブイベントストリーム。 |
💾 データストレージ
Web モードのスキャンデータは以下に保存されます:```text
~/xalgorix-data/
|-- _saved/
|-- logos/
|-- queue_state.json
-- <target>/ -- /
-- <scan-id>/ |-- scan.json -- report.pdf
サーバーは履歴スキャンレコードをディスク上に保持するため、UI はリフレッシュや再起動後に復元できます。
## 🧪 開発
| タスク | コマンド |
| --------------------------- | ----------------------------- |
| 📦 Web UI の依存関係をインストール | `make webui-install` |
| 🔨 すべてをビルド | `make build` |
| ✅ テストを実行 | `go test ./...` |
| 🖥️ ソースから Web UI を実行 | `go run ./cmd/xalgorix --web` |
| ⚡ フロントエンド開発サーバーを実行 | `make webui-dev` |
## 🚨 安全上の注意
- Xalgorix は許可されたターゲットに対してのみ使用してください。
- 許可なく第三者システムに対してアクティブテストを実行しないでください。
- 起動前にスキャン手順を確認してください。
- エンゲージメントルールに合わせてレート制限とプロキシ設定を構成してください。
- ダッシュボードを外部に公開するには認証が必要です。
- 自動インストールは非 root ユーザーではデフォルトで無効になっており、環境を信頼できる場合にのみ有効にしてください。
## 📜 ライセンス
Xalgorix は Apache License 2.0 の下でリリースされています。[LICENSE](https://github.com/xalgord/xalgorix/blob/main/LICENSE) を参照してください。
## 🔗 リンク
| リソース | リンク |
| ------------- | -------------------------------------------------------------------------------- |
| ☁️ ホスト版 (クラウド) | [www.xalgorix.com](https://www.xalgorix.com/) |
| 📖 ドキュメント | [docs.xalgorix.com](https://docs.xalgorix.com) |
| 🐛 イシュー | [github.com/xalgorix/xalgorix/issues](https://github.com/xalgorix/xalgorix/issues) |
| ☕ サポート | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord) |


