自動化フレームワーク
このアドオンは、ZAPを簡単かつ柔軟な方法で自動化できるフレームワークを提供します。
以下のコマンドラインオプションを提供します:
- -autorun <source> ファイルまたはURLから指定された自動化ジョブを実行する。
- -autogenmin <filename> 主要なパラメーターを含む自動化ファイルのテンプレートを生成する。
- -autogenmax <filename> すべてのパラメーターを含む自動化ファイルのテンプレートを生成する。
- -autogenconf <filename> 現在の設定を使用した自動化ファイルのテンプレートを生成する。
- -autocheck <source> ファイルまたはURLで指定された自動化プランを検証します。
-autorunオプションがZAPの-cmdオプションと共に使用される場合、ZAPの終了値はデフォルトで以下のように設定されます:
- 0 - プランがエラーまたは警告なしで正常に完了しました
- 1 - プランが1つ以上のエラーを報告しました
- 2 - プランがエラーは報告しませんでしたが、1つ以上の警告を報告しました
これらの値は、exitStatusジョブによって上書きできます。
エラーまたは警告に遭遇した後にプランが完了するかどうかは、environmentで使用される設定によって異なります。
自動化フレームワークを使用するには:
-autogen*コマンドラインオプションのいずれかを使用して、自動化ファイルのテンプレートを生成します
- 要件に合わせてファイルを編集します
-autorunコマンドラインオプションを使用してファイルを実行します。例: ./zap.sh -cmd -autorun config.yaml
注: ジョブはプラン内に記述された順序 (上から下) で実行されます。
ほとんどの場合、ZAP デスクトップが表示されず、ファイルで定義されたジョブの生成または実行が完了するとすぐにZAPが終了するように、 -cmdコマンドラインオプションも併用することを推奨します。
ただし、問題のデバッグに役立てるため、ZAP デスクトップを使用して自動化フレームワークジョブを実行することもできます。
自動化フレームワークは、ZAPでサポートされているすべての認証メカニズムをサポートしています。
GUIは開発中であり、ますます多くの機能を提供しています。
自動化オプション画面では、特定のオプションを設定できます。
このアドオンは以下のAPIエンドポイントを提供します:
- Action: endDelayJob() - 現在実行中の遅延ジョブがあれば終了します
- Action: runPlan(filePath) - 指定されたファイル内のプランを読み込み、非同期で実行し、planIdを返します
- Action: stopPlan(planId) - planIdで識別される実行中のプランを停止します
- View: planProgress(planId) - 指定されたplanIdの進行状況の詳細を返します
ZAP デスクトップが使用されている場合、問題の診断を容易にするため、プランはGUIにも表示されます。
なお、認証が処理されている場合など、一部のジョブはすぐに停止しない場合があります。
ファイルの environment セクションでは、残りのジョブが操作できるアプリケーションを定義します。
すべてのファイルおよびディレクトリパスは、絶対パスまたはプランを含むディレクトリからの相対パスのいずれかを使用できます。
移植性のため、相対パスを推奨します。
このアドオンでは以下の自動化ジョブがサポートされています:
以下のオプションは、自動化プランまたはGUIを介して、すべてのジョブに適用できます:
enabled - 有効になっているジョブのみが実行されます。
alwaysRun - このオプションが設定されている有効なジョブは、プランが早期に終了した場合でも実行されます。
ジョブ順序の重要性
ジョブの順序は関連性があり重要です。 例えば:
- あらゆる種類のスパイダリングやインポートの前に passiveScan-wait ジョブを配置しても意味がありません
- パッシブまたはアクティブスキャンによってアラートが生成された後に alertFilter ジョブを設定しても、それらのコンポーネントが以前のジョブで発生させたアラートには効果がありません
ジョブテストをジョブに追加して、ジョブが期待どおりに実行されたかどうかを確認できます。
このフレームワークはプラグイン可能であり、他のアドオンが他のジョブのサポートを追加できます。より完全なリストについては、自動化フレームワークのWebサイトページを参照してください。
'min' および 'max' テンプレートには、フィールドに関する詳細情報を提供するコメントが含まれています。