bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


proves_de_seguretat

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
proves_de_seguretat [2024/04/07 19:42]
enric_mieza_sanchez creat
proves_de_seguretat [2024/04/07 20:18] (actual)
enric_mieza_sanchez [Escaneig automatitzat i informes de vulnerabilitats]
Línia 6: Línia 6:
  
 Les **proves** o **//tests// de seguretat** son el descobriment i intent d'explotació de vulnerabilitats. Les **proves** o **//tests// de seguretat** son el descobriment i intent d'explotació de vulnerabilitats.
 +
 +{{tag> #FpInfor #Ceti #Ciber #CetiMp03 #CiberMp03 #CetiMp05 #CiberMp05 #Daw #DawMp07 #DawMp07Uf3 #DawMp07Uf03 test scan proves sql_injection php dvwa }}
  
 \\ \\
Línia 24: Línia 26:
   * [[https://github.com/digininja/DVWA|DVWA o Damn Vulnerable Web Application]] : //digininja// ens facilita una web molt senzilla pensada per a aprendre a practicar //pentesting// amb un ample catàleg de vulnerabilitats i enllaços a tutorials. A més, disposa de diversos nivells de seguretat en la implementació i un examinador del codi emprat, pel què resulta molt adequada per il·lustrar com es donen les vulnerabilitats i les millores progressives del codi.   * [[https://github.com/digininja/DVWA|DVWA o Damn Vulnerable Web Application]] : //digininja// ens facilita una web molt senzilla pensada per a aprendre a practicar //pentesting// amb un ample catàleg de vulnerabilitats i enllaços a tutorials. A més, disposa de diversos nivells de seguretat en la implementació i un examinador del codi emprat, pel què resulta molt adequada per il·lustrar com es donen les vulnerabilitats i les millores progressives del codi.
  
 +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
 +
 +{{ :burp:dvwa-1.png?500 }}
 +
 +\\
 +
 +===== Eines de test per a aplicacions web =====
 +
 +Les dues eines d'anàlisi més populars per a proves de seguretat per a aplicacions web son les següents:
 +
 +  * [[https://www.zaproxy.org/|OWASP ZAP Project]]: és l'eina oficial i un dels projectes principals d'OWASP. És una aplicació de programari lliure i permet treballar amb //proxy// i l'escaneig automatitzat de les sites.
 +  * [[https://portswigger.net/burp|BURP Suite]]: eina privativa de PortSwigger, empresa dedicada a la ciberseguretat i que ofereix l'esmentada eina i diversos tutorials per a emprar-la. Té diverses edicions: //Community// (gratuïta), //Professional// (amb possible llicència de prova gratuïta temporal) i //Enterprise//. **BURP Suite Community** permet el treball d'exploració manual amb //proxy// però no permet un escaneig automàtic de vulnerabilitats. Per a aquest objectiu necessitarem la **versió Professional** o Enterprise.
 +
 +
 +==== Proxy per al navegador web ====
 +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. 
 +
 +{{ :burp:browser-no-proxy.png?500 }}
 +
 +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:
 +  * Deixar que el programari de //proxy// engegui el navegador en mode automàtic (similar a com fa la llibreria Selenium pels tests) i que automatitza la creació d'una excepció per confiar en els certificats que el //proxy// oferirà.
 +  * Utilitzar un //browser// de la nostra elecció, configurant-hi el //proxy// manualment i instal·lant-hi els certificats adequats perquè hi confii.
 +
 +En la següent seqüència es pot veure com treballar amb el mode //proxy// de BURP Suite:
 +
 +{{ :burp:burp-suite-proxy.png?500 }}
 +
 +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.
 +
 +{{ :burp:burp-suite-browser-2.png?500 }}
 +
 +La secció HTTP History de BURP Suite ens permet visualitzar les dades de les credencials transmeses.
 +
 +{{ :burp:burp-suite-http-history.png?500 }}
 +
 +<WRAP info>
 +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.
 +</WRAP>
 +
 +
 +==== Escaneig automatitzat i informes de vulnerabilitats ====
 +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:
 +
 +{{ :burp:burp-suite-scan-results-2.png?600 }}
 +
 +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ó.
 +
 +\\
 +
 +===== Exercicis =====
 +
 +<WRAP todo>
 +**Escaneig amb BURP Suite**
 +
 +  - Descarrega la versió Professional i subscriu una //trial key//.
 +  - Fes un //scan// sobre DVWA anant a ''New scan''.
 +    * Apunta  la URL ''http://localhost:4280'' (o aquella on hagis instal·lat DVWA
 +    * Per optimitzar l'escaneig convé afegir que NO segueixi les URLs:<code>
 +http://localhost:4280/logout.php
 +http://localhost:4280/setup.php
 +http://localhost:4280/security.php</code>
 +    * Ho pots configurar a<code>Scan details -> Detailed scope configuration -> Excluded URL prefixes</code>  
 +    * Quantes vulnerabilitats trobes?
 +  - Fes un //scan// configurant ara usuari i contrasenya al menú "Application Login". Quantes en trobes ara?
 +  - Esbrina el nivell de seguretat de DVWA que s'ha estat utilitzant durant l'escaneig.
 +  - Elabora un informe HTML de les vulnerabilitats trobades de categoria "High", "Medium" i "Low" (excloem "Info"). Etiqueta'l amb "DVWA security impossible".
 +
 +</WRAP>
 +
 +Configuració de credencials en un escaneig de vulnerabilitats en BURP Suite:
 +{{ :burp-suite-scan-config.png?500 }}
 +
 +
 +==== Registre de seqüències d'inici de sessió ====
 +
 +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:
 +
 +<WRAP todo>
 +**Escaneig amb BURP Suite i seqüència d'ordres d'inici**
 +
 +  - Instal·la el navegador Chrome i la seva extensió [[https://chromewebstore.google.com/detail/burp-suite-navigation-rec/anpapjclbjicacakeoggghfldppbkepg|Burp Suite Navigation Recorder]].
 +  - Ves a la configuració de l'extensió de Chrome i activa les opcions:
 +    * Permet en mode incògnit
 +    * Fixa a la barra d'eines
 +  - Obre una finestra d'incògnit de Chorme (ho necessitem així perquè és com l'escàner trobarà l'aplicació DVWA quan l'obri per primer cop).
 +  - Activa l'enregistrament:<code>BURP Suite Navigation Recorder -> New recording</code>
 +  - Vés a la URL d'inici ''http://localhost:4280''
 +  - Fes el login.
 +  - Comprova que el nivell de seguretat és "impossible" (per defecte ho hauria de ser).
 +  - Ves a la **secció Scurity** i selecciona el **nivell de seguretat "low"**.
 +  - Atura la gravació:<code>BURP Suite Navigation recorder -> Stop recording</code>
 +  - Copia la seqüència d'accions:<code>BURP Suite Navigation recorder -> Copy to clipboard</code>
 +
 +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:
 +  - New scan
 +  - Scan details: URLs to scan ''http://localhost:4280'' (only specified protocols)
 +  - Excloure paths (ecloem pàgina de //login// perquè ja no calen credencials):<code>
 +http://localhost:4280/login.php
 +http://localhost:4280/logout.php
 +http://localhost:4280/setup.php
 +http://localhost:4280/security.php</code>
 +  - Selecciona:<code>Application login -> Use recorded login -> New</code>
 +    * Enganxa la seqüència d'instruccions de login que hem aconseguit amb el //plugin// de Chrome.
 +    * Guardem la seqüència amb ''Save to library'' per posteriors scans.
 +  - Realitza el //scan//.
 +  - Elabora un informe HTML de les vulnerabilitats trobades de categoria "High", "Medium" i "Low" (excloem "Info"). Etiqueta'l amb "DVWA security low".
 +  - Compara els resultats dels dos informes.
 +</WRAP>
 +
 +\\
 +
 +==== Alternatives ====
 +
 +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//:
 +  * https://portswigger.net/support/manually-setting-a-cookie-for-burp-suites-crawl-and-audit
 +  * https://portswigger.net/burp/documentation/desktop/settings/sessions
 +
 +\\
  
  
proves_de_seguretat.1712518942.txt.gz · Darrera modificació: 2024/04/07 19:42 per enric_mieza_sanchez