Tal i com s'explica a la web de l'eina ZAP Proxy, les proves de seguretat de programari comprenen l'avaluació i el test per descobrir riscos de seguretat i vulnerabilitats del sistema i les seves dades.
L'avaluació de riscos es pot definir com l'anàlisi i el descobriment de vulnerabilitats sense intentar explotar-les.
Les proves o tests de seguretat son el descobriment i intent d'explotació de vulnerabilitats.
Es poden establir diversos tipus o nivells de proves de seguretat:
Hi ha una sèrie de recursos d'aplicacions web vulnerables per a practicar el pentesting de les quals es poden destacar:
Per posar en marxa DVWA:
$ git clone https://github.com/digininja/DVWA $ cd DVWA $ docker-compose up -d --build
Es posarà en marxa i la podem visualitzar a http://localhost:4280
Les dues eines d'anàlisi més populars per a proves de seguretat per a aplicacions web son les següents:
La funció més destacable de les eines d'anàlisi d'aplicacions web és el proxy per al browser, a mode de man-in-the-middle de les comunicacions, el què facilita la seva anàlisi i examen per intentar detectar vulnerabilitats.
Si es desitja una anàlisi dels missatges HTTPS caldrà que el proxy pugui llegir-los. Per aconseguir-ho, aquest necessitarà poder descodificar el trànsit i requerirà que el browser confii en els certificats que el proxy li oferirà, enlloc dels autèntics certificats de la site que es vol testejar. Per a que el browser confii caldrà instal·lar-hi les AC (Autoritats de Certificació) del proxy.
Això es pot aconseguir de dues maneres:
En la següent seqüència es pot veure com treballar amb el mode proxy de BURP Suite:
Browser proxificat per BURP Suite: el navegador web adverteix del proxy i de la comunicació insegura en la barra d'adreces. Omplim formulari de login amb credencials.
La secció HTTP History de BURP Suite ens permet visualitzar les dades de les credencials transmeses.
Com hem pogut veure, un cop intervingudes dades sensibles (com usuari i contrasenya però també d'altres com tokens, cookies de sessió, etc.) es poden efectuar atacs de repetició i manipulació amb les eines Intruder i Repeater.
Una de les funcions més importants que realitzen aquestes eines és l'escaneig automatitzat de vulnerabilitats. BURP Suite resulta més fàcil de configurar que ZAP, però la versió gratuïta Community Edition no disposa d'aquesta funcionalitat. Cal emprar les versions de pagament, si bé la Professional Edition disposa d'un període de prova gratuït.
Els escanejos automatitzats poden trigar molt de temps (fàcilment poden arribar a vàries hores) ja que cal fer primer un catàleg de URLs a investigar (crawl) i després provar a cadascuna d'elles un catàleg d'atacs (audit). Quanta més estona d'anàlisi permetem, més vulnerabilitats podem detectar, i menys probabilitat de deixar escletxes de seguretat.
Vulnerabilitats detectades a l'aplicació DVWA en 30' d'anàlisi automatitzat amb BURP Suite: més de 17000 requests per trobar 14 vulnerabilitats greus i 17 de severitat mitjana:
A partir dels resultats trobats per l'eina d'anàlisi es poden crear informes amb les vulnerabilitats trobades, una explicació detallada d'aquestes i propostes per a la seva solució.
Escaneig amb BURP Suite
New scan
.http://localhost:4280
(o aquella on hagis instal·lat DVWAhttp://localhost:4280/logout.php http://localhost:4280/setup.php http://localhost:4280/security.php
Scan details -> Detailed scope configuration -> Excluded URL prefixes
Configuració de credencials en un escaneig de vulnerabilitats en BURP Suite:
Probablement trobis que l'escaneig s'ha fet en mode de seguretat «impossible», pel què el nombre de vulnerabilitats descobertes serà baix. Anem a assegurar que fem un escaneig en mode de seguretat «low». La solució serà que, enlloc de fer un login automàtic indicant credencials, iniciarem la sessió amb una seqüència d'entrada que enregistrarem prèviament amb un plugin per Chrome:
Escaneig amb BURP Suite i seqüència d'ordres d'inici
BURP Suite Navigation Recorder -> New recording
http://localhost:4280
BURP Suite Navigation recorder -> Stop recording
BURP Suite Navigation recorder -> Copy to clipboard
Amb la seqüència d'inici de sessions registrada, passarem a configurar un nou escaneig. Enlloc de login amb credencials ho farem amb la seqüència registrada:
http://localhost:4280
(only specified protocols)http://localhost:4280/login.php http://localhost:4280/logout.php http://localhost:4280/setup.php http://localhost:4280/security.php
Application login -> Use recorded login -> New
Save to library
per posteriors scans.
Una opció alternativa per assegurar que estem fent un escaneig en el mode adequat seria assegurar que posem les cookies adequades amb l'eina Cookie jar en Settings: