PABLO $ WHOAMI • INGENIERO INFORMÁTICO & MÁSTER SEGURIDAD INFORMÁTICA • CO-FUNDADOR DE FLU PROJECT • 2009 – 2013 INFORMÁTICA 64 • 2013 - ?? ELEVEN PATHS (TDIP) • ALGUNOS LIBROS (0XWORD): • METASPLOIT PARA PENTESTERS • PENTESTING CON KALI • ETHICAL HACKING PABLO $ WHOAMI | BASE64 | LESS RXMGUHJVAMVJDCBNYW5HZ2VYIGVUIDEXUGF0AHMSIGVTCHJLC2EGCGVYDGVUZWNPZW50ZSBHIFRLBGVM825PY2EGRGLNAXRHBC4GSW5NZW5PZXJVIFTPY25P Y28GZW4GSW5MB3JT4XRPY2EGZGUGU2LZDGVTYXMGZSBJBMDLBMLLCM8GZW4GSW5MB3JT4XRPY2EGCG9YIGXHIFVUAXZLCNNPZGFKIFJLESBKDWFUIENHCMXV CY4GTEFZDGVYIFNLZ3VYAWRHZCBJBMZVCM3HDGLJYSBWB3IGBGEGVU5JUI4GQ2VYDGLMAWNHZG8GZW4GTUNUUYBXAW5KB3DZIDCSIENVBMZPZ3VYAW5NLCBN Q0LUUCBFBNRLCNBYAXNLIERLC2T0B3AGQWRTAW5PC3RYYXRVCIBXAW5KB3DZIDCSIE1DVFMGV2LUZG93CYA3IHKGT2ZMAWNLIDIWMTAGZGVWBG95BWVUDC WGTUNQIERLC2LNBMLUZYBTZWN1CML0ESBMB3IGYSBXAW5KB3DZIFNLCNZLCIAYMDAZIE5LDHDVCMSSIE1DVFMGV2LUZG93CYBTZXJ2ZXIGMJAWOCBSMIBTZXJ2Z XIGVMLYDHVHBGL6YXRPB24UIENLCNRPZMLJYWRVIGVUIEXQSUMTMSB5IFNTYWXSIEJ1C3NPBMVZCYBDSVNDTY4GRLRTQUKUIEFUDGVYAW9YBWVUDGUGAGEGDH JHYMFQYWRVIGNVBW8GUMVZCG9UC2FIBGUGZGUGU2VNDXJPZGFKIGVUIELUZM9YBEF0AWNHIDY0LIBQCMVTAW8GRXH0CMFVCMRPBMFYAW8GRMLUIGRLIENHC NJLCMEGCG9YIGXHIFVUAXZLCNNPZGFKIFJLESBKDWFUIENHCMXVCYBLBIBJBMDLBMLLCU1HIFTPY25PY2EGZW4GSW5MB3JT4XRPY2EGZGUGU2LZDGVTYXMGZW4G MJAWOS4GUHJLBWLVIGFSIG1LAM9YIGV4CGVKAWVUDGUGZGUGC3UGCHJVBW9JAFNUIHBVCIBSYSBFC2N1ZWXHIFTPY25PY2EGU3VWZXJPB3IGZGUGSW5NZW5P ZXLTYSBJBMZVCM3HDGLJYSBKZSBSYSBVBML2ZXJZAWRHZCBSZXKGSNVHBIBDYXJSB3MGZW4GMJAWOS4GRXMGCG9UZW50ZSBOYWJPDHVHBCBLBIBKAXZLCNN VCYBMB3JVCYB5IGNVBMDYZXNVCYBKZSBZZWD1CMLKYWQGYSBUAXZLBCBUYWNPB25HBCWGZW50CMUGBG9ZIHF1ZSBZZSBLBMN1ZW50CMFUIE5VIGNPTIBOY W1LLCBSB290ZWRDB24SIE5HDMFQYSBOZWDYYSB5IDHKB3Q4ICHJAGLSZSKUIENVBGFIB3JHZG9YIGVUIEHHY2TLCNMGJIBEZXZLBG9WZXJZLCBJB2XHYM9YYW5KB YBJB24GYXJ07WN1BG9ZIHJLBGFJAW9UYWRVCYBJB24GBGEGC2VNDXJPZGFKIGLUZM9YBEF0AWNHLG0KRXMGYXV0B3IGZGUGBG9ZIHNPZ3VPZW50ZXMGBGLICM9 ZOIANCK1LDGFZCGXVAXQGCGFYYSBWZW50ZXN0ZXJZLG0KUGVUDGVZDGLUZYBJB24GS2FSAS4NCKHHY2TPBMCGZGLZCG9ZAXRPDM9ZIGLPUZOGAVBOB25LICYGAV BHZC4NCLBVD2VYU2HLBGW6IEXHIG5HDMFQYSBZDWL6YSBKZSBSB3MGYWRTAW5PC3RYYWRVCMVZIGRLIHNPC3RLBWFZLG0KV2LUZG93CYBTZXJ2ZXIGMJAXMI BWYXJHIELUIFBYB3MUDQPIYXJKZW5PBMCGZGUGC2VYDMLKB3JLCYBHTLUVTGLUDXGNCKV0AGLJYWWGSGFJA2LUZW== ¿DE QUÉ HABLAREMOS? • BUGS … EXPLOITS • OPEN SOURCE • FUNCIONES INSEGURAS • REPOSITORIOS • OSB-RASTREATOR ¿QUÉ ES UN BUG? ¿QUÉ ES UN EXPLOIT? OPEN SOURCE • AÑO 2014 (HA SIDO SU AÑO) • HEARTBLEED • SHELLSHOCK • …Y EL AÑO 2015 EMPEZÓ BIEN • GHOST (GLIBC) OPEN SOURCE THEORY: FUNCIONES INSEGURAS ¿SE SEGUIRÁN UTILIZANDO DE FORMA MASIVA? THEORY: FUNCIONES INSEGURAS • GETS() • STRCPY() • SCANF() • SPRINTF() THEORY: ¿REALES? YES! • EJEMPLO GETS() -> SIMILAR A LA EXPLOTADA POR EL GUSANO MORRIS • EJEMPLO STRCPY() -> PHP.CGI EN PHP / FI 2.0BETA10 VULNERABLE A UN DESBORDAMIENTO DE BÚFER REMOTO CAUSADA POR UNA LLAMADA INSEGURA PARA STRCPY() • EJEMPLO SCANF() -> CÓDIGO DE W3-MSQL 2.0.11 VULNERABLE A UN DESBORDAMIENTO DE BÚFER REMOTO • EJEMPLO SPRINTF() -> CÓDIGO DE LA VERSIÓN 1.0 DEL DAEMON DE TELNET KERBEROS 5 REPOSITORIOS • PROBLEMA: EL CÓDIGO FUENTE • ¿QUIÉN LO REVISA? • ¿A CUANTOS MILLONES DE USUARIOS LLEGA EL CÓDIGO? • ¿Y SI LO MIRAMOS? REPOSITORIOS • ¿QUÉ REPOSITORIOS PODEMOS MIRAR? • LINUX • GITHUB •… • EN ESTE CASO OSB-RASTREATOR SE FIJA EN LINUX (UBUNTU) OSB-RASTREATOR • CONJUNTO DE SCRIPTS QUE PERMITEN DETECTAR FUNCIONES INSEGURAS EN CÓDIGO ESCRITO EN EL LENGUAJE C. • EL PUNTO DE BÚSQUEDA SON LOS REPOSITORIOS DE UBUNTU (APT-GET) PASO 1: ¿QUÉ SOFTWARE MIRO? PARTIMOS DE 45494 PAQUETES DE SOFTWARE PASO 2: DOWN.SH • FUNCIONAMIENTO: • 1. LEER PAQUETE DEL FICHERO OPEN.TXT • 2. DESCARGAR PAQUETE • 3. DESCOMPRIMIR TAR.GZ • 4. BÚSQUEDA DE CÓDIGO C • 5. BÚSQUEDA DE FUNCIÓN INSEGURA • 6. ELIMINAR PAQUETE (TAR.GZ Y CÓDIGO DESCOMPRIMIDO) PASO 3: ANÁLISIS DE CÓDIGO • DENTRO DE CADA PAQUETE => PUEDE HABER CIENTOS DE FICHEROS • EN CADA ARCHIVO PODEMOS ENCONTRAR UN STRCPY() • AÚN ASÍ PODEMOS ENCONTRAR… PASO 4: SEARCH.SH • CAMBIAMOS ESTRATEGIA, BUSQUEMOS PATRONES… PASO 5: BUFFER.SH • Y SI APROVECHAMOS LOS ARGV? • MANERA MÁS SENCILLA DE ENCONTRAR BUGS EN SOFTWARE • MANERA MÁS SENCILLA DE ENCONTRAR BUGS EN SOFTWARE PASO 6: APT-GET WARNING! • ¿QUÉ HEMOS APRENDIDO DE ESTO? • ANTES DE INSTALAR, SE PUEDE EVALUAR LAS FUNCIONES INSEGURAS PASO 7: DOWN.SH CUSTOMIZABLE PASO 8: REPORT BUG GITROB TRABAJOS FUTUROS INTEGRAR CON AUDITORÍA DE CÓDIGO CENTRALIZAR Y COMPARTIR RESULTADOS (RAAS) AMPLIAR REPOSITORIOS AMPLIAR FUENTES INTEGRAR HERRAMIENTAS CONCLUSIONES Gets 973 Scanf 1789 Strcpy 13670 Sprintf 13430 Comentario 22276 Accesible 45494 OLFATEANDO TOMATES CON OSBRASTREATOR Pablo González @pablogonzalezpe