OWASP ZAPスキャンをビルドサイクルに統合しようとしています。新しいビルドがQAチームに届くと、Seleniumと同様の自動化ツールが実行され、WindowsマシンでFirefox Webブラウザーが開き、テストケースが実行されます。これはZAPの完全な新機能なので、これらのテストから定期的にスキャン結果を取得するために設定したものです。
LinuxマシンにZAPツールをインストールし、ポート8080でAPIキーを使用してデーモンモードで実行している
Seleniumによって開かれた新しいFirefoxプロファイルごとにプロキシが<IP_of_ZAP_Machine:8080>を指すように、Automation TestマシンのFirefox設定を変更しました。
Cronjobは毎晩深夜に実行され、次の順序で実行されます。
URL http://IP_of_ZAP_Machine:8080/XML/core/view/sites/?zapapiformat=XML
を呼び出してスキャンしたURLを収集します
前のステップで取得した各「サイト」のアラートを示すURLのリストを生成します。
例:http://IP_of_ZAP_Machine:8080/HTML/core/view/alerts/?zapapiformat=HTML&baseurl=https%3A%2F%2Fwww.example.com&start=&count=
https://www.example.com のスキャン結果
上記の手順からすべてのURLを呼び出し、すべてのHTMLをHTML
ファイルに入れることにより、スキャン結果をZip
形式でダウンロードします。
チームにZipファイルをメールで送信します。
新しいセッションをロードして、翌深夜に電子メールで送信される結果に、前の深夜の結果のみが含まれるようにします。新しいセッションはURL http://IP_of_ZAP_Machine:8080/JSON/core/action/newSession/?zapapiformat=JSON&apikey=<my_api_key>&name=${newsessionname}&overwrite=
を使用して読み込まれます
スキャン結果を毎日期待どおりに取得している間、問題は次のとおりです。これを行うためのより正確または確立された方法はありますか?
注:すべてのステップの結果は、将来の検証のためにログファイルに記録されます。
それはあなたのために働いていますか?もしそうなら、はい、あなたはおそらくそれを正しく行っています;)ZAPは非常に柔軟なツールであり、多くの人々がさまざまな方法でそれを使用しています。 1つの質問-ZAPインスタンスを再起動していますか?たとえば、スキャンごとに、または一定期間後に? ZAPは実際には長時間実行されるプロセスとして実行されるように設計されていないため、そうでない場合は問題が発生する可能性があります。私たちはそれを変えるために努力していますが、まだそこにはありません。
Jenkins用の ZAPプラグイン もあり、これは、実行しようとしている種類の自動テストに適しています。