
oxo v2.9.8
モジュール式のセキュリティスキャンオーケストレーターで、ネットワーク、Webアプリ、モバイルアプリ、API全体で脆弱性検出、偵察、フィンガープリンティングを行う専門エージェントを組み合わせます。
OXO スキャンオーケストレーションエンジン
OXO は、モジュール性、拡張性、シンプルさを重視して構築されたセキュリティスキャンフレームワークです。オープンソースであり、Ostorlab によってメンテナンスされています。
OXO Engine は、専門的なツールを組み合わせて連携させ、脆弱性の発見や、偵察、列挙、フィンガープリンティングなどのアクションを実行します。

主な機能
- モジュール式で拡張可能: 複数の専門エージェントを簡単に組み合わせて、包括的なスキャンを実行できます。
- 幅広いアセットのサポート: IP アドレスやドメインから、モバイルアプリケーション (Android、iOS、HarmonyOS)、API スキーマまで、あらゆるものをスキャンできます。
- エージェントストア: 一般的なセキュリティツール向けの、コミュニティおよび公式エージェントの拡大するライブラリにアクセスできます。
- 拡張可能: シンプルな Python ベースのフレームワークを使用して、独自のエージェントを作成および公開するためのサポートが組み込まれています。
- API ファースト: GraphQL API を備えており、CI/CD パイプラインやその他の自動化ワークフローに簡単に統合できます。
要件
ローカルでスキャンを実行するには Docker が必要です。Docker をインストールするには、こちらの 手順に従ってください。
インストール
OXO は PyPI 上の Python パッケージとして提供されています。インストールするには、pip がすでに
インストールされている場合、次のコマンドを実行するだけです。
pip install -U ostorlab
はじめに
OXO には、Nmap、Nuclei、Tsunami などのネットワークスキャンエージェント、ZAP などの Web スキャナー、WhatWeb や Wappalyzer などの Web フィンガープリンティングツール、Subfinder や Dnsx などの DNS ブルートフォースツール、VirusTotal などのマルウェアファイルスキャンなど、数十のエージェントを誇るストアが付属しています。
これらのツールを組み合わせて実行するには、次のコマンドを実行するだけです:
OXO CLI は
oxoまたはostorlabコマンドを使用してアクセスできます。
oxo scan run --install --agent agent/ostorlab/nmap --agent agent/ostorlab/tsunami --agent agent/ostorlab/nuclei ip 8.8.8.8
このコマンドは、以下のスキャンエージェントをダウンロードしてインストールします:
そして、ターゲット IP アドレス 8.8.8.8 をスキャンします。
エージェントは標準の Docker イメージとして提供されます。
スキャン管理
スキャンのステータスを確認するには、次を実行します:
oxo scan list
スキャンが完了したら、スキャン結果にアクセスするには、次を実行します:
oxo vulnz list --scan-id <scan-id>
oxo vulnz describe --vuln-id <vuln-id>
実行中のスキャンを停止するには、次を実行します:
oxo scan stop --scan-id <scan-id>
Docker イメージ
コンテナ内で oxo を実行するには、公開されているイメージを使用して次のコマンドを実行します:
docker run -v /var/run/docker.sock:/var/run/docker.sock ostorlab/oxo:latest scan run --install --agent agent/ostorlab/nmap ip 8.8.8.8
注:
- コマンドは
scan runで直接始まります。これはostorlab/oxoイメージがoxoをentrypointとして持っているためです。 - OXO がホストマシン上でエージェントを作成できるように、Docker ソケットをマウントすることが重要です。
オンプレミススキャナーログ
OXO をオンプレミススキャナーとして実行する場合、--persist-logs を使用してスキャナーログをディスクに書き込みます:
oxo scanner --scanner-id <scanner-uuid> --persist-logs
デフォルトでは、ログは ~/.ostorlab/scanner.log に書き込まれます。別のファイルを選択するには:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-file /var/log/ostorlab/scanner.log
永続化されるログの詳細度を変更するには:
oxo scanner --scanner-id <scanner-uuid> --persist-logs --log-level DEBUG
アセット
OXO は複数のアセットタイプのスキャンをサポートしており、異なるプラットフォームやプロトコルにわたる包括的なセキュリティカバレッジを可能にします。
| カテゴリ | アセット | 説明 |
|---|---|---|
| ネットワーク | ip | IP アドレスまたは IP 範囲 (v4 および v6)。 |
domain-name | ドメイン名。 | |
| Web | link | Web リンク。URL、メソッド、ヘッダー、リクエストボディを受け付けます。 |
api-schema | API スキーマ (OpenAPI、GraphQL など)。 | |
| モバイル | android-apk / android-aab | Android パッケージファイル (.APK、.AAB)。 |
android-store | Google Play ストアの Android アプリ。 | |
ios-ipa | iOS パッケージファイル (.IPA)。 | |
ios-store | Apple App Store の iOS アプリ。 | |
ios-testflight | TestFlight の iOS アプリ。 | |
harmonyos-apk / harmonyos-hap | HarmonyOS パッケージファイル。 | |
| その他 | file | 汎用ファイル。 |
phone-number | 電話番号。 | |
agent | エージェントのメタスキャン。 |
ストア
OXO はすべてのエージェントを公開ストアに掲載しており、検索したり、独自のエージェントを公開したりできます。

最初のエージェントを公開する
最初のエージェントを作成するには、完全な チュートリアルをこちらで確認できます。
手順は基本的に次のとおりです:
- すべてのファイルがすでに設定されたテンプレートエージェントをクローンします。
template_agent.pyファイルを変更してロジックを追加します。Dockerfileを変更して、追加のビルド手順を加えます。ostorlab.yamlを変更して、セレクター、ドキュメント、イメージ、ライセンスを追加します。- ストアに公開します。
エージェントを作成したら、ストアに公開して他のユーザーが使用および発見できるようにできます。ストアは エージェントのビルドを処理し、Git リポジトリから新しいリリースを自動的に取得します。

作成するエージェントのアイデア
以下のような一般的なツールの実装:
semgrep: ソースコードスキャン用。- nbtscan: ターゲットのネットワーク上で開いている NetBIOS ネームサーバーをスキャンします。
- onesixtyone: 公開されている SNMP サービスを検出する高速スキャナー。
- Retire.js: 既知の脆弱性を持つ JavaScript ライブラリの使用を検出するスキャナー。
snallygaster: HTTP サーバー上のファイル漏洩やその他のセキュリティ問題を検出します。testssl.sh: Heartbleed、CRIME、ROBOT など、さまざまな TLS/SSL の弱点を特定します。TruffleHog: Git リポジトリを検索して高エントロピー文字列やシークレットを探し、コミット履歴を深く掘り下げます。- cve-bin-tool: バイナリをスキャンして脆弱なコンポーネントを検出します。
- XSStrike: 生成ペイロードを備えた XSS Web 脆弱性スキャナー。
Subjack: サブドメイン乗っ取りスキャンツール。- DnsReaper: サブドメイン乗っ取りスキャンツール。
- Gitleaks: ハードコードされたシークレットを検出および防止するための SAST ツール。
- ffuf: Go で書かれた高速 Web ファザー。
- Gobuster: URI、DNS サブドメインなどをブルートフォースするために使用されるツール。
クレジット
急速に発展する分野のオープンソースプロジェクトとして、私たちは常に貢献を歓迎しています。新機能、インフラストラクチャの改善、ドキュメントの充実など、どのような形でも構いません。 始めるには CONTRIBUTING.md をご覧ください。
OXO をより良いツールにするためにご協力いただいた以下のコントリビューターに感謝します: