OWASP Zed Attack Proxy (ZAP) è uno strumento integrato dedicato al penetration testing (pentesting) che consente di rilevare vulnerabilità in applicazioni e siti Web. È una soluzione semplice e flessibile che si adatta a vari livelli di utilizzo e competenza, da sviluppatori ai primi passi con il pentesting a professionisti nel campo.

owasp zap cover

ZAP è composto da due macro-sezioni. La prima è uno scanner automatizzato di vulnerabilità che consente di identificare problemi e fornisce un report per sviluppatori, sistemisti e addetti alla sicurezza con i dettagli delle vulnerabilità per poter sanare la falla.
La seconda permette a ZAP di operare come proxy che consente di ispezionare il traffico e tutta la comunicazione HTTP – richieste (requests) e risposte (responses) – e gli eventi, con la possibilità di modificarli o analizzare i loro trigger che sono potenzialmente pericolosi per il sistema.

Data la sua natura potenzialmente pericolosa, ed essendo uno strumento potente, il suo uso deve essere limitato in ambiti in cui si abbia sia il permesso di eseguire i test, sia la certezza che non vengano prodotti irreparabili, ossia ci sia una qualche forma di protezione a tutela della Web App.
Il pubblico a cui si rivolge è principalmente composto da professionisti della sicurezza, tester, sviluppatori, ma naturalmente non è limitato a questi: ZAP fornisce un’ampia documentazione così come OWASP fornisce diverso materiale formativo.


Installazione

Uno dei punti di forza di ZAP è la sua ampia disponibilità per piattaforme e sistemi operativi: noi lo abbiamo provato in ambiente Windows, ma è disponibile anche per Linux e macOS. (Download QUI). L’unico requisito richiesto è la presenza di Java 7 o più recente su Windows e Linux, mentre la versione per macOS include Java 8.
A testimonianza della sua flessibilità, ZAP può essere usato come container Docker accessibile tramite browser (how to), con Kali Linux, la distro Linux specifica per il pentesting, oppure si può sfruttare l’immagine dedicata a Raspberry PI.

La procedura di installazione su Windows segue le consuete modalità dei file eseguibili, con EULA da accettare, opzioni personalizzate e finalizzazione.


Interfaccia grafica

ZAP presenta un’interfaccia grafica reattiva e chiara, seppur densa: partendo dall’alto della schermata, troviamo 4 aree.

owasp zap interfaccia

La prima è la classica barra del menù con le opzioni riguardo sessione, modifica dati, visualizzazione, analisi, report, strumenti e i collegamenti ai siti di riferimento oltre che alle pagine d’aiuto (raggiungibili anche con il consueto tasto F1). In Analyse è possibile creare una policy personalizzata delle scansioni, impostando le azioni su valori personalizzati, mentre in Tools si trovano la maggior parte degli strumenti automatizzati e manuali, incluse le opzioni.
A seguire troviamo la toolbar, che contiene dei tasti di collegamento rapido alle azioni più comuni, oltre che alla selezione della modalità di operazione di ZAP: Safe, Protected, Standard e ATTACK. I pulsanti dedicati permettono di cambiare la visualizzazione grafica delle varie aree, adattandole di volta in volta alla posizione più consona in base all’attività in corso.

owasp zap attack mode

È importante capire bene queste quattro modalità per scegliere quella più appropriata all’attività svolta. Safe impedisce ogni azione potenzialmente dannosa, Protected permette azioni dannose negli URL definiti nello Scope (sostanzialmente, è l’insieme di URL aggiunte ad un Context e definisce cosa si può fare nella modalità di attacco selezionata e cosa è visualizzato nel tab History), Standard è l’usuale modalità in cui vengono eseguiti gli attacchi e ATTACK esegue una scansione attiva su tutti i nodi nello Scope non appena vengono scoperti ed aggiunti.
Si raccomanda di eseguire ZAP in modalità Protected in modo da limitare eventuali attacchi accidentali: in questa modalità e in modalità Safe non sono permesse azioni su URL non presenti nello Scope, nello specifico Spidering, Active Scanning, Fuzzing, Breaking e Resending Requests.

Gran parte della schermata è costituita dall’area di lavoro, a sua volta tripartita in un’area con la visualizzazione ad albero del sito, l’area di lavoro vera e propria (con le tab Request che mostra i dati che il browser/ZAP invia al sito, Response -i dati ricevuti- e Break, che consente di manipolare i dati) e l’area informazioni, che a sua volta contiene diverse tab, tra cui History, Alerts, Active Scan, Spider che mostrano, rispettivamente, gli avvisi riguardo vulnerabilità, le scansioni attive e l’attività di indicizzazione delle pagine del sito.
Conclude un footer con informazioni sullo stato della sessione (vulnerabilità trovate, suddivise per criticità, ma anche informazioni sulla scansione).


Configurazione SSL e Proxy

ZAP funziona essenzialmente come Proxy HTTP, ossia si frappone tra il browser dell’utente e il sito Web da analizzare. Funziona anche se sono già presenti proxy aggiuntive, come in un contesto aziendale.

owasp root certificate authority

Il certificato si esporta senza difficoltà dal menù Tools > Options > Dynamic SSL Certificates, quindi si salva in un percorso specifico con Save. Accertarsi che il file abbia estensione .cert

owasp zap cert salva

Dopodiché si installa il certificato nel sistema e si aggiunge OWASP AP come Root CA Authority. Il processo varia in base al sistema operativo adottato.
In Windows è alquanto semplice: infatti basta tornare alla visuale di prima e premere View anziché Save; nella finestra di dialogo che si apre, scegliere Install Certificate, decidere se installarlo per l’utente in uso o per la macchina locale, selezionare “Trusted Root Certification Authorities” nel Certificate Store, quindi finalizzare l’operazione.

owasp zap cert installazione sistema

Si può verificare la corretta installazione da Pannello di Controllo: in Internet Options > Content > Certificates > Certificates > Trusted Root Certification Authorities deve comparire OWASP Zed Attack Proxy Root CA.
Poi bisogna configurare il browser in modo che utilizzi ZAP come proxy.
Nel nostro caso abbiamo usato Firefox 57 e abbiamo aggiunto il certificato in Options > Privacy & Security > Security > Certificates > View Certificates > Authorities > Import.

owasp zap firefox proxy

Quindi occorre impostare il browser affinché usi ZAP come proxy. In Firefox, bisogna andare in Options > General > Network Proxy > Settings e scegliere Manual Proxy Configuration con i parametri localhost in HTTP Proxy e 8080 in Port (la porta è definibile in ZAP in Options > Local Proxy).

owasp zap firefox proxy

La procedura di aggiunta del certificato e impostazione della proxy variano da browser a browser, e OWASP fornisce una guida disponibile a questo indirizzo

Scansione automatica

Una modalità di uso di ZAP consiste in una scansione (attacco) automatico del sito da testare; si sceglie la modalità Standard nella toolbar oppure la modalità ATTACK, che si differenzia per il fatto che scansiona tutti i siti aggiunti automaticamente nello Scope, e si inserisce l’URL da analizzare nell’apposito campo nell’area di lavoro (tab Quick Start).
ZAP comincia l’attività di indicizzazione delle risorse del sito che ricostruisce la sitemap, il cui stato può essere verificato con il tab Spider, quindi passa alla fase di attacco (tab Active Scan).
In qualsiasi momento è possibile selezionare un elemento in uno dei due tab menzionati: nell’area di lavoro vengono mostrate le informazioni contenute in Header e Body di richieste e risposte nella comunicazione HTTP.
Il footer contiene diverse informazioni: a sinistra le Alerts trovate, a destra le attività in corso.

 

owasp zap scansione automatica footer attivita

Selezionando col tasto destro un elemento dalla visualizzazione ad albero del sito si accede a diverse opzioni, tra cui Alerts for this Node (mostra gli avvisi, cioè i problemi, trovati in questo URL), Break (inserisce un Break Point, cioè permette di intercettare la richiesta dal browser e modificarla prima che venga inviata al server in modo da poter verificare il comportamento dell’app al variare di determinate condizioni), Exclude from (per escludere l’URL da proxy, scansione o spider, utile quando non si vuole testare una certo elemento), Include in Context e Attack, che offre diverse opzioni.
AJAX Spider permette di indicizzare anche le pagine costruite in modo dinamico, così come Forced Browse scansiona le risorse che non hanno riferimenti, cioè non hanno collegamenti con altre risorse. Fuzz invia dati inattesi o invalidi per forzare dei comportamenti della Web app non standard e analizzare il comportamento.

owasp zap scansione automatica opzioni elemento


Scansione manuale

L’altra modalità d’uso è quella manuale, con ZAP che funziona da proxy frapposta tra browser e server ed intercetta il traffico HTTP. In questo modo è possibile navigare nel sito o utilizzare la Web app secondo canoni ben definiti ed eseguire azioni precise: ZAP registra tutte le informazioni delle requests e dei responses e li analizza in termini di possibili vulnerabilità e criticità.
Risulta particolarmente utile per verificare il comportamento di richieste e risposte specifiche, o controllare il comportamento del sistema al verificarsi di determinati eventi (input).

owasp zap scansione manuale browser

Gran parte di quanto visto a proposito dell’attacco automatico è valido in questo caso, compresa l’aggiunta degli URL a Contexts e Scopes, le azioni sui singoli elementi URL e le informazioni disponibili nel work-space dai tab Alerts, Spider e Active Scan.
La differenza principale è che man mano che navighiamo nel sito tramite browser, la parte della schermata del programma dedicata alla visualizzazione ad albero dei siti si popola di elementi: sono tutti quegli URL che ZAP analizzerà, e non l’intero sito (è assente la parte di spidering generale).
Una delle funzioni più interessanti è quella dei break-points: permettono di intercettare una richiesta dal browser e cambiarla prima che raggiunga la Web app, così da poter cambiare o disabilitare campi nascosti, modificare i dati e bypassare la “client-side validation” (spesso rinforzata con l’uso di JavaScript). I break-points possono essere impostati o con il pulsante dedicato nella toolbar, oppure su singoli elementi tramite menu con click destro, quindi Add a custom HTTP break point.


Analisi e Report delle vulnerabilità trovate

Una volta che sono terminate le fasi di scansione e attacco occorre analizzare i risultati.
Il modo più semplice ed immediato per farlo è selezionare il sito interessato nella visuale ad albero dei siti, se sono presenti più siti, quindi selezionare il tab Alerts.
Qui vengono elencati i problemi presenti suddivisi per severità -bandiera rossa per quelli più gravi, poi arancione, gialla e azzurra per finire con quelli meno importanti- e tipologia.
Ad esempio nel nostro test abbiamo trovato 3 problemi gravi di tipo Cross Site Scripting, Remote File Inclusion e SQL Injection.
Clickando sulla tipologia vengono mostrate le azioni che contengono questa vulnerabilità, con URL, il livello di rischio (qui High), una descrizione dettagliata della stessa, una possibile soluzione e soprattutto degli utilissimi riferimenti a siti e documentazione tecnica, in particolar modo quella offerta da OWASP.

owasp zap risultati

ZAP offre naturalmente una funzione di esportazione dei risultati sotto forma di report in vari formati: HTML, XML e MarkDown (MD): basta andare in Report (barra del menù) e scegliere il formato di report desiderato.
Una funzione particolarmente apprezzata è la possibilità di confrontare gli esiti di due sessioni diverse, magari per verificare quali bug di un sito sono stati effettivamente risolti e quali hanno bisogno di ulteriore lavoro.
Così è possibile consultare i risultati in separata sede e inviarli a chi di dovere.

owasp zap risultati html

 

Andiamo oltre

ZAP non finisce qui: è presente un marketplace, accessibile direttamente dall’interfaccia tramite l’apposito tasto (un’icona con 3 parallelepipedi), che contiene componenti addizionali che si possono aggiungere a ZAP per espandere le sue capacità. In genere sono presenti componenti in fase beta o addirittura alpha, quindi non pronti per il rilascio; è tuttavia possibile provarli in anteprima e testarli, magari inviando un feedback agli sviluppatori. Ricordiamo che OWASP ZAP è un progetto totalmente open source e che sopravvive anche grazie al feedback degli utenti.

In seconda battuta è possibile invocare ZAP tramite script: sono infatti disponibili comandi eseguibili da CLI. In questo modo si possono automatizzare le procedure di pentesting, concetto chiave in quanto riduce gli errori, il tempo di esecuzione e la necessità di un “avvio” manuale.
Sono disponibili anche delle API che rendono ZAP interfacciabile con una Web app.

Infine, ZAP è un prodotto OWASP (Open Web Application Security Project), la community online specializzata in temi di sicurezza applicazioni Web.
Ricordiamo alcune iniziative interessanti, oltre a ZAP: WebGoat, una Web app appositamente non sicura (“A deliberately insecure Web Application”) che offre varie lezioni tematiche di imparare ad usare ZAP e a conoscere le tipologie di vulnerabilità, i progetti Top Ten, che consiste in un report annuale delle 10 vulnerabilità più diffuse nelle Web app (per ciascuna sono elencate informazioni come descrizione, esempi, esempi di attacco, prevenzione e riferimenti ad altre risorse correlate), Testing Guide (una guida al pentesting), Development Guide (guida e best practices di sicurezza in ambito sviluppo Jaca, ASP.NET e PHP), e tanti altri ancora.

Conclusioni

ZAP è uno strumento molto completo, ma che deve essere utilizzato da personale preparato e con le giuste competenze, sia per quanto riguarda le modalità di attacco, che per l’interpretazione dei risultati ottenuti.
Inoltre la sua natura open source permette di spulciare il codice per capire come funziona e partecipare al suo sviluppo, e il marketplace permette di personalizzarlo con le patch fornite dagli sviluppatori, dagli utenti e dalla comunità.
I test eseguibili permettono di avere un’ampia e dettagliata panoramica del sito o della Web app analizzata con anche spunti specifici riguardo le vulnerabilità e i problemi trovati, con relativa documentazione tecnica, oltre che alla descrizione e ai possibili metodi di risoluzione. Ne deriva che ZAP non è solo uno strumento adottabile dal professionista, ma è anche un valido supporto per lo studio di quella nuova branca della sicurezza che si sta imponendo, cioè application security.
Infine, ZAP è un prodotto di OWASP, punto di riferimento nel mondo Web Application Security.

L'autore

Riccardo Gallazzi

Sistemista JR, tra i suoi campi di interesse maggiori si annoverano virtualizzazione con vSphere e Proxmox e gestione ambienti Linux. È certificato VMware VCA for Data Center Virtualization.

banner5

fb icon evo twitter icon evo

Parola del giorno

L'acronimo SoC  (System on a Chip) nasce per descrivere quei circuiti integrati che, all'interno di un singolo chip fisico, contengono un...

>

YAML è un formato utilizzato per serializzare (ovvero salvare oggetti su supporti di memoria ad accesso seriale) dati, in modo...

>

Il termine Edge Computing descrive, all'interno di infrastrutture cloud-based, l'insieme di dispositivi e di tecnologie che permettono l'elaborazione dei dati ai...

>

L'acronimo FPGA  (Field Programmable Gate Array), descrive quei dispositivi hardware formati da un circuito integrato e con funzionalità programmabili tramite...

>

Il termine Agentless (computing) descrive operazioni dove non è necessaria la presenza e l'esecuzione di un servizio software (demone o...

>
Leggi anche le altre...

Download del giorno

Fiddler

Fiddler è un server proxy che può girare in locale per consentire il debug delle applicazioni e il...

>

Adapter Watch

Adapter Watch è uno strumento che permette di visualizzare un riepilogo completo e dettagliato delle informazioni riguardanti una determinata...

>

DNS DataView

DNS Lookup  è un tool a interfaccia grafica per effettuare il lookup DNS dal proprio PC, sfruttando i...

>

SolarWinds Traceroute NG

SolarWinds Traceroute NG è un tool a linea di comando per effettuare traceroute avanzati in ambiente Windows...

>

Network Inventory Advisor

Network Inventory Advisor  è uno strumento che permette di scansionare la rete e acquisire informazioni riguardanti tutti i...

>
Tutti i Download del giorno...

Archivio numeri

  • GURU advisor: numero 21 - maggio 2019

    GURU advisor: numero 21 - maggio 2019

  • GURU advisor: numero 20 - dicembre 2018

    GURU advisor: numero 20 - dicembre 2018

  • GURU advisor: numero 19 - luglio 2018

    GURU advisor: numero 19 - luglio 2018

  • GURU advisor: numero 18 - aprile 2018

    GURU advisor: numero 18 - aprile 2018

  • GURU advisor: numero 17 - gennaio 2018

    GURU advisor: numero 17 - gennaio 2018

  • GURU advisor: numero 16 - ottobre 2017

    GURU advisor: numero 16 - ottobre 2017

  • GURU advisor: numero 15 - luglio 2017

    GURU advisor: numero 15 - luglio 2017

  • GURU advisor: numero 14 - maggio 2017

    GURU advisor: numero 14 - maggio 2017

  • 1
  • 2
  • 3
  • Teslacrypt: rilasciata la chiave

    Gli sviluppatori del temuto ransomware TeslaCrypt hanno deciso di terminare il progetto di diffusione e sviluppo e consegnare al pubblico la chiave universale per decifrare i file. Read More
  • Proxmox 4.1 sfida vSphere

    Proxmox VE (da qui in avanti semplicemente Proxmox) è basato sul sistema operativo Debian e porta con sé vantaggi e svantaggi di questa nota distribuzione Linux: un sistema operativo stabile, sicuro, diffuso e ben collaudato. Read More
  • Malware: risvolti legali

    tutti i virus e in particolare i più recenti Ransomware, che rubano i vostri dati e vi chiedono un riscatto, violano la legge. Vediamo insieme come comportarsi, per capire anche se e quando bisogna sporgere denuncia. Read More
  • 1