Mòdul Professional 5: ACTITIVAT - Cryptographic Failures
Índex
1 Objectius
2 Enunciat
Cryptographic Failures
Bàsicament aquesta categoria de vulnerabilitats fa referència a sobre com circula o està emmagatzemada la informació sensible com passwords, targetes de crèdit, etc. Cal, per exemple, verificar si hi han passwords hardcoded o en comentaris o repositoris com GitHub i també veure si els algorismes i claus per xifrar la informació són actuals.
Un cop el professor hagi explicat la vulnerabilitat, cal que trieu cadascú de vosaltres un CWE diferent a la resta de companys i prepareu una petita explicació de 10 minuts per a la resta de la classe on hi constin els següents punts:
- Concepte de l'atac.
- On el podem trobar (punts on buscar).
- Verificació manual.
- Verificació automàtica.
- Un parell d'exemples reals com a mínim.
- A ser possible llocs on practicar (Wargames).
Un cop preparat, cadascú de vosaltres sortirà a fer una petita presentació de la CWE triada.
Finalment caldrà que proveu aquesta tècnica en el Programa de BBH que hagueu triat i feu un petit document amb les proves que hagueu fet per trobar aquesta vulnerabilitat a l'aplicació web. Tant fa si teniu o no éxit, el que es valorarà aquí és el procediment i l'esforç invertit (i demostrat en captures i explicacions).
2.1 Exemple: CWE-327
2.1.1 Concepte
El concepte del CWE-327 és bàsicament que s'està utilitzant algoritmes que no proporcionen seguretat ja sigui a que han quedat desfasats o simplement no estàn pensats per a aquesta funció.
2.1.2 Llocs on buscar
Els llocs on buscar són molt variats, ja que a tot arreu on es xifri dades és un potencial objectiu. Podem buscar en el codi font d'aplicacions, repositoris de GitHub, serveis, connexions…
2.1.3 Verificació manual
Baicament revisant codi o verificant connexions. Podem trobar una guia de OWASP aquí.
2.1.4 Automatització
- Programes d'anàlisis estàtic de codi com Klocwork, Coverity, etc.
- Programes d'anàlisi de vulnerabilitats: Nessus i OpenVAS.
- scrips de nmap:
2.1.5 Exemple
2.1.6 On practicar
2.1.7 BBH
Després d'obtenir tots els subdominis de Glovo he utilitzat el script ssl-enum-ciphers per treure tots els algorismes suportats a HTTPS mitjançant la comanda següent.
nmap -sV --script ssl-enum-ciphers -p 443 -iL sub.log | tee ciphers.log
A partir d'aquí cerco els servidors amb un algorismes pitjor de calssificació C o D (D no n'hi ha cap) i repasso a aquesta web si la parella algorisme, versió TLS és vulnerable. En cas que ho sigui reporto.
Per tant per exemple en aquest resultat del script es pot veure com apareix un cipher categoritzat com a C i a la web de ciphers apareix que per TLSv1.0 i TLSv1.1 és un algorismes dèbil de xifratge donades les vulnerabilitats trobades.
Figure 1: Resultats del script de nmap.
A més, el propi script ens informa que aquest cipher és vulnerable a l'atac sweet32. Buscarem més informació oficial (com la web oficial de Sweet32) i trobem que està relacionat amb dos CVEs (CVE-2016-2183, CVE-2016-6329). Ens aquests CVEs podem veure que un està classificat com a Medium i l'altre com a High, cosa que podem incloure al informe per donar-hi més pes (i de fet si llegim, el que afecta al TLS i HTTPS és el d'alt risc). Amb tot això podrem generar un petit informe sobre com hem trobat la vulnerabilitat, que implica i com resoldre-ho.
Figure 2: Explicació del CVE i valoració com a High per la NVD americana.
Tanmateix abans de fer el report, busco una mica més per HackerOne per veure exemples d'aquesta vulnerabilitat i en trobo un report on es considera del tipus Misconfiguration TLS/SSL que justament està fora del scope de Glovo. Caldrà continuar buscant.
Figure 3: Exemple de reports d'aquesta vulnerabilitat, considerada com Misconfiguration, i estranyament en un programa que tb el considera out of scope.
3 Entrega
- Document on s'expliquin aquestes seccions.
- Presentació del CWE a la classe.
- Document memoràndum sobre la recerca i proves de la CWE en el Programa de BBH triat.