OSB-Rastreator: Easy way for looking for bugs in open source

Anuncio
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
Descargar