Stiamo cercando di integrare le scansioni OWASP ZAP nel nostro ciclo di sviluppo. Quando una nuova build raggiunge il team di controllo qualità, esegue uno strumento di automazione simile a Selenium, che apre un browser Web Firefox in una macchina Windows e esegue i test case. Essendo completamente nuovo per ZAP, questo è quello che ho impostato ora per ottenere regolarmente i risultati di scansione da quei test.
-
Installato lo strumento ZAP in una macchina Linux e sta funzionando modalità demone con un tasto api sulla porta 8080
-
Apportate modifiche alle impostazioni di Firefox nella macchina Test di automazione che ogni nuovo profilo di Firefox aperto da Selenium avrà il proxy puntato su < IP_of_ZAP_Machine: 8080 >.
-
Un cronjob verrà eseguito ogni mezzanotte che effettua le seguenti operazioni in questo ordine:
-
Raccoglie gli URL scansionati chiamando l'URL
http://IP_of_ZAP_Machine:8080/XML/core/view/sites/?zapapiformat=XML
-
Genera un elenco di URL che mostra gli avvisi per ciascun "sito" ottenuto dal passaggio precedente.
Esempio:
http://IP_of_ZAP_Machine:8080/HTML/core/view/alerts/?zapapiformat=HTML&baseurl=https%3A%2F%2Fwww.example.com&start=&count=
per i risultati della scansione su link -
Scarica i risultati della scansione in formato
HTML
chiamando tutti gli URL del passaggio precedente e inserendo tutti gli HTML in un fileZIP
. -
invia il file ZIP al mio team.
-
Carica una nuova sessione in modo che i risultati inviati via e-mail dopo la mezzanotte conterranno i risultati solo dalla mezzanotte precedente. La nuova sessione viene caricata utilizzando l'URL
http://IP_of_ZAP_Machine:8080/JSON/core/action/newSession/?zapapiformat=JSON&apikey=<my_api_key>&name=${newsessionname}&overwrite=
-
Mentre ottengo i risultati della scansione come previsto ogni giorno, le domande sono: lo sto facendo bene? C'è un modo più corretto o stabilito per farlo?
Nota: i risultati di tutti i passaggi sono registrati in un file di registro per future verifiche.