Niro について
Niroは、確認済みのセキュリティ問題と修正案を求める開発チーム向けの、リポジトリで動作するペネトレーションテストツールです。テスト状態を準備し、攻撃役と開発役のエージェントが連携して、検証証拠付きのプルリクエストを作成します。
主な機能
- 01アプリとテスト状態の自動準備
- 02HTTP サーフェスのセキュリティ検査
- 03再現可能なエクスプロイト証拠
- 04根本原因ごとの修正プルリクエスト
- 05回帰テストなどの検証証拠
- 06到達できない範囲のレポート
活用シーン
- 01稼働中の Web アプリや API の脆弱性検出
- 02セキュリティ問題のレビュー可能な修正案作成
- 03ローカルや CI でのスコープ指定テスト
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Niro Community Edition
セキュリティバグを発見し、修正を届けます。
Niro は、リポジトリ内で自律的に活動する二人一組のチームのように動作します。二つの役割が一つの目標を共有します。それは、実際のセキュリティバグを発見し、証拠を示して修正することです。
Niro はまず準備を整えます。アプリを起動するか、指定されたターゲットに接続し、テスト用の状態を作り、攻撃者に必要なユーザーとデータを用意するため、環境設定の大部分を省けます。次に、二人一組のチームが作業を始めます。
- 攻撃者エージェントは、実際の攻撃者のように起動中のアプリに攻撃を仕掛け、悪用可能なバグを見つけ、それぞれを実際に動作するエクスプロイトで実証します。コードは変更しません。
- 開発者エージェントは、安全に修正できるバグにパッチを当て、検証の証拠(通常はプロジェクトのテストスイートに含まれる回帰テスト)を記録するため、すべての PR に主張だけでなく証拠が添えられます。マージはしません。マージするのはあなたです。
ほとんどのセキュリティツールは、確証のない候補を大量に渡して、それきりです。Niro は実証済みの問題を見つけるだけではありません。修正モードでは、それぞれに対して対象を絞ったプルリクエストを作成します。差分を確認し、何をリリースするかを決めるのはあなたです。
3 チームのリレーから、1 回の実行へ
セキュリティバグの修正は、3 チーム間のリレーです。現在のツールはそれぞれ一部しかカバーしないため、残りは人がつなぎ合わせています。
- テスト環境をセットアップする — エンジニアリング。
- アプリを攻撃し、バグを見つけて悪用する — セキュリティ。
- 見つかった問題をすべてトリアージして修正する — 開発。
プログラムマネージャーが引き継ぎを追いかけますが、やり取りが一度ですっきり終わることはありません。ペンテスターが別のテスト用テナントを必要とすれば、エンジニアリングに差し戻しです。問題を再現できなければ、セキュリティチームと開発チームの間を行き来します。修正がリリースされると、セキュリティチームが再テストしなければなりません。数週間が過ぎ、十数人が関わる頃には、コードはすでに変わっています。
Niro はこのリレーを、エージェント主導の 1 回の実行にまとめます。 攻撃者エージェントがセキュリティチームの役割を、開発者エージェントが開発チームの役割を担い、エンジニアリングが担当していたセットアップも自動化します。対象範囲の指定、差分の確認、マージする内容の決定は引き続きあなたが行います。Niro がその間のやり取りを処理するため、3 チーム分の作業が数時間で、根本原因ごとにまとめられたレビュー可能なプルリクエストになります。それぞれのプルリクエストは小さく、実際にレビューできるサイズです。
クイックスタート
プロジェクトのルートから、前提条件を確認してから Niro をインストールし、修正の実行を開始します。
curl -fsSL https://raw.githubusercontent.com/apxlabs-ai/niro/main/install.sh | sh
niro fix
niro fix は、選択したエージェント CLI を対話的に起動し、Niro の最初のメッセージをすでに送信した状態にします。エージェント CLI は独自のサンドボックスと承認ポリシーを適用するため、すべての操作で確認が求められるとは限りません。確認を求めずに実行する場合は、--autonomous を指定すると、エージェント CLI に現在のユーザーのホストへの完全なアクセス権を与えます。使用する前に、エージェント CLI の権限と脅威モデルをお読みください。Niro はレビュー可能な修正 PR を作成します。マージする内容はあなたが決めます。
レポートのみの実行や対象範囲を限定した実行、サポート対象のエージェント CLI、CI、対話型の開発者エージェントのワークフローについては、Niro の実行をご覧ください。
実行時に行われること
セットアップが済むと、Niro は実際の攻撃者と同じように、起動中のアプリを調査します。そして、各バグが実証されるまで処理を続けます。
- 攻撃 — HTTP の各接点(Web アプリ、API、MCP サーバー)を調査し、実際に悪用可能なバグを探します。
- 障害を解消 — ログイン、空のデータベース、無効化された機能、またはテナントの不足によってテストが阻まれると、Niro はアプリのその部分を黙ってスキップするのではなく、テストを続けるために必要なものを用意します。
- 実証 — Niro が問題を再現し、実行可能な証明を残すまでは、すべての発見事項を誤検知として扱います。疑わしい問題の評価は引き下げます。決して誇張しません。
実証されたバグは、根本原因ごとにまとめられ、対象を絞ったレビュー可能な PR になります。原因ごとに 1 つの PR が作成され、それぞれに独自の検証証拠が添付されます。
言葉だけでなく、実例をご確認ください
固定されたソースと公開ワークフローから、編集されていないレポート、提案されたすべてのコード変更まで、Niro の実行全体をご自身でご確認いただけます。 Niro は公開されている Casdoor のデモフォークを こちらの正確なコミット でテストし、確認済みの指摘事項 33 件(クリティカル 9 件、ハイ 12 件、ミディアム 12 件)、カバレッジの不足 3 件、修正案のドラフト PR 28 件を記録しました。
代表的な修正を 3 件ご紹介します。
- 複数ステップにわたる攻撃チェーン: 別のテナントの LDAP 設定を読み取り、乗っ取る — 偽造した所有者セグメントを利用してテナント間の設定情報を開示させ、さらに同じレコードを上書きして、被害者の LDAP 統合を攻撃者が管理するインフラストラクチャへリダイレクトします。
- 実際にアクセスされるリソースに基づいて認可を 導出する — コントローラーが使用するものとは異なる識別子を検証することで発生していた、テナント境界のバイパスを防ぎます。
- 再利用可能なセッション 認証情報を返さない — 組織の管理者が別のユーザーの有効なセッション ID を再利用することを防ぎます。
信頼を築くために
AI によってコードのリリースは速くなりますが、信頼することは難しくなります。Niro はその信頼を取り戻すために開発されています。
- お使いの環境、お使いのプロバイダー。 Niro はモデルリクエストをプロキシせず、リポジトリ、認証情報、指摘事項、ログを Niro のバックエンドへアップロードするよう求めることもありません。AI プロバイダーとの境界、テレメトリ、オプトアウト設定については、セキュリティとデータをご覧ください。
- ホストへの権限は明示的です。 ローカル実行はデフォルトで対話形式です。無人実行には
--autonomousが必要です。このオプションで付与されるホストへの完全な権限については、エージェント CLI の脅威 モデルに記載しています。 - 影響範囲はご自身で設定できます。 攻撃ツールはカーネルレベルの送信制御を備えたサンドボックスで実行されます。ネットワーク層で適用される
scope.yamlで許可したターゲットにのみアクセスできます。 - カバレッジを透明化します。 Niro は実行のたびに、到達できなかった対象を報告するため、カバレッジがブラックボックスになることはありません。また、意図された動作を記憶するため、その動作を繰り返し指摘することもありません。日常的に悪用可能なクラスの検出に最も強く対応しますが、新規性のある複数ステップのビジネスロジックは引き続きご自身で確認する必要があります。
Niro Enterprise は、組織規模のガバナンス、監査、コンプライアンス、デプロイ、商用サポートを対象として、別途計画されています。
ドキュメント
- はじめに — 前提条件、インストール、最初の実行について説明します。
- アプリを準備する — 対象、範囲、認証情報、テスト用フィクスチャ、テスト状態について説明します。
- Niro を実行する — 検出または修正、ローカルまたは CI、アプリ全体または対象を絞った実行について説明します。
- 結果を確認する — 検出結果、エクスプロイト、検証の証拠、修正 PR について説明します。
- セキュリティとデータ — データフロー、AI プロバイダー、サンドボックス化、送信トラフィック、テレメトリーについて説明します。
- エージェント CLI のセキュリティ — 対話型および自律型の実行における、ファイルシステム、コマンド、環境、送信トラフィック、プロンプトインジェクションの境界について説明します。
- セキュリティポリシー — サポート対象のバージョンと、非公開での脆弱性報告について説明します。
- リリースと検証 — サポートライフサイクル、バージョンの固定、チェックサム、イメージダイジェスト、リリースノートについて説明します。
- カバレッジと制限事項 — Niro がテストする内容、報告する内容、人間が引き続き責任を負う範囲について説明します。
- リファレンス — コマンド、フラグ、設定について説明します。
- トラブルシューティング — よくある問題、診断、サポート用アーティファクトについて説明します。
エディションとライセンス
Niro Community Edition は無料で利用できるプロプライエタリソフトウェアで、ビルド済みバイナリとして配布されています。ソースコードは提供されておらず、「Community Edition」はオープンソースやソースコードの公開を意味しません。この公開リポジトリはドキュメントとバイナリの配布を目的としたものであり、Niro 製品のソースコードは含まれていません。
Niro をインストールして使用し、バックアップコピーを保管し、未変更のバイナリを組織内でミラーリングできます。Niro Community Edition License Agreement に基づき、公開での再配布、再販売、改変、リバースエンジニアリングは禁止されています。サードパーティーのコンポーネントにはそれぞれのライセンスが適用されます。NOTICE を参照してください。
課題
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。