Actualizado el 16 de Junio del 2017 (Publicado el 14 de Enero del 2017)
1.169 visualizaciones desde el 14 de Enero del 2017
3,5 MB
40 paginas
Creado hace 12a (17/04/2013)
Alejandro Ramos
www.securitybydefault.com
“IT Security Risk Analyst” en Banco Online
Profesor en el MOSTIC de la Universidad
Europea de Madrid
Editor del blog SecurityByDefault.com
… hasta he publicado un libro: Hacker Épico
Twitter: @aramosf
Método para evaluar la seguridad
de un sistema o red de sistemas
de información simulando el
ataque por un intruso
Parte por la necesidad de comprobar cual es
el impacto real de una vulnerabilidad
mediante la realización de pruebas
controladas.
Que no se diagnostique una enfermedad no
significa que no exista, se busca la detección
de vulnerabilidades no conocidas.
Foto temporal del estado global de
seguridad.
Cumplimientos normativos y legales.
Asegurarse de que no habrá riesgos en pases
previos a puestas en producción.
Documento base para lanzar otros proyectos
con contramedidas
Capa de aplicación
Análisis de visibilidad
T
E
S
Auditoría de código fuente (J2EE, C, ASPX, PHP…)
T
Auditoría de aplicaciones web y web services
Auditoría de Servicios (BBDD, WEB, Correo, etc)
Auditoría de sistemas Operativos
Capa comunicaciones
Auditoría entornos inalámbricos: WiFi, BT, RFID
Auditoría Accesos remotos: Wardialing, VPN
Auditoría Elementos de red: routers, switches
Auditoría Elementos de seguridad: FW, IDS, SEIM
Capa física
Ingeniería Social
Dumpster Diving
D
E
I
N
T
R
U
S
I
Ó
N
Externos, por ejemplo desde Internet
Internos, simulando un acceso físico
privilegiado.
Externo con accesos privilegiados.
◦ Acceso remoto con VPN
◦ Redes wireless
Recopilación de Información
• Buscadores: Google, MSN
• Ripe, whois, DNS
• Metadatos: jpg, doc, xls, pdf
Documentación
• Análisis de visibilidad
• Informe de Test de Intrusión
• Presentación de resultados
• Alertas
Enumeración
• Direccionamiento IP
• Nombres de usuario
• Servicios y aplicaciones
Explotación
• Intrusión en sistemas
• Obtención de evidencias
Análisis
• Infraestructura
• Sistema Operativos
• Servicios
• Aplicaciones
Objetivos:
Eliminación de falsos positivos.
Obtención de evidencias
Salto a la red interna y/o entre servidores
Muestra el impacto real
Precauciones:
Caída del servicio
Caída del sistema
Inestabilidad de los servicios
Obtención de información confidencial
◦ Revisión del alcance y autorización de trabajos
Código que explota una vulnerabilidad en
beneficio del que la ejecuta
◦ Corrupción de memoria
◦ Error de diseño / código
◦ Error de configuración
Categorías:
◦ Exploits de servicio - Server side
◦ Exploits en el cliente - Clientside
◦ Escalada local de privilegios
Dos tipos:
◦ Códigos independientes
◦ Frameworks de explotación
Afectan a un servicio que puede ser
explotado remotamente.
Algunos de los más críticos han acabado
convirtiéndose en un gusano, Ejemplos:
◦ Code Red -> MS01-033
◦ Slammer - >MS02-039
◦ Blaster -> MS03-026 / MS03-039
◦ Sasser -> MS04-011
◦ Conficker -> MS08-067
Vulnerabilidad (CVE-2012-2122):
Exploit:
$ for i in `seq 1 1000`; do mysql -u root --password=bad
-h 127.0.0.1 2>/dev/null; done
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2122
Formato de ficheros
◦ Adobe Reader
◦ Office
◦ RealPlayer
Navegadores
◦ Internet Explorer / ActiveX
◦ Firefox
◦ Chrome
◦ Java
◦ Flash
http://bugix-security.blogspot.com.es/
Conjunto de ordenes programadas en ensamblador
que son inyectadas en la stack para ser ejecutadas.
Son usadas en exploits que corrompen la memoria,
como buffer overflows.
Se suelen representar en notación hexadecimal
http://www.shell-storm.org
Escalada horizontal
◦ Cambiar entre usuarios con los mismos privilegios
Escalada vertical
◦ Obtener mayores privilegios:
Unix: UID>0 UID=0
Windows: usuario Administrador/SYSTEM
Vulnerabilidades no parcheadas
Venta legal y en el mercado negro
◦ Idenfese / zdi / vupen
◦ En algunos productos comerciales
◦ Malware
Ejemplo: Stuxnet, usa 4 0days:
◦ LNK (ms10-046), Print Spooler (ms10-061),
Win32k Keyboard Layout (ms10-073), Task
scheduler
http://dvlabs.tippingpoint.com/blog/2013/01/17/pwn2own-2013
http://www.forbes.com/sites/andygreenberg/2012/0
3/23/shopping-for-zero-days-an-price-list-for-
hackers-secret-software-exploits/
Pruebas de concepto generadas por la
comunidad
Mayor número de vulnerabilidades
No centralizado:
◦ http://www.exploit-db.com
◦ http://www.packetstormsecurity.org
Contienen errores o no funcionan
Pueden ser falsos
Distintos lenguajes, diseño, etcétera
http://m4rc0-
security.blogspot.com.es/2013/02/priv8-ssh-53-
remote-root-0day-exploit.html
Auditorías de código
fuente:
◦ Software libre.
Fuzzing.
◦ Protocolos
◦ Formatos de fichero
◦ APIs
Ingeniería inversa
sobre un parche
“BinDiffing”
Identificar
objetivo
Crear exploit
Crear Fuzzer
Identificar fallos
explotables
Ejecutar
herramienta
Monitorizar
resultados
Facilita la creación de exploits
Exploits desarrollados en un mismo lenguaje
Siguen un mismo estilo
Están probados y se conoce su ratio de éxito
Incluyen otras herramientas, no
necesariamente exploits.
◦ Pruebas de usuarios y contraseñas
◦ Detección de vulnerabilidades
◦ …
Metasploit
Core Impact
Canvas
Saintexploit
Adquirido por Rapid7
Licencia BSD
Multiplataforma Linux, Windows, MacOSX
Existe versión comercial
Varios interfaces de uso: web, comandos y
CLI.
Contiene 1085 exploits
MIENTRAS TANTO
EN EL MUNDO REAL …
Common Vulnerability Scoring System
Método para definir la severidad de las
vulnerabilidades del 0 al 10.
Es un conjunto de formulas.
Solventa el problema de incompatibilidades
entre otros sistemas de puntuación.
Actualmente en su versión 2 (2008)
Adoptada por múltiples compañías.
Cualidades más importantes de la vulnerabilidad
No cambia
Representa la severidad general
Se compone de:
◦ Vector de acceso: local, red secundaria o por red
◦ Complejidad de acceso: alto, medio o bajo
◦ Autenticación: múltiple, único o ninguno.
◦ Impacto en confidencialidad, integridad y
disponibilidad: nada, parcial o completo
Las cualidades que dependan del momento
temporal.
Representa la urgencia
Es opcional y se puede revisar con el paso del
tiempo.
Se mide mediante:
◦ Explotable: sin exploit, prueba de concepto,
funcional, alto y no definido.
◦ Nivel de remediación: solución oficial, solución
temporal, workaround, no disponible y no definido
◦ Credibilidad: no confirmado, no corroborado,
confirmado y no definido
Cualidades que son específicas del entorno
IT.
Opcional y completada por los usuarios
finales
Se componen de:
◦ Daño colateral potencial: ninguno, bajo, bajo-
medio, medio-alto, alto y no definido
◦ Distribución de activos: ninguno, pocos (1-25%),
medio (26-75%), alto (76-100%) y no definido.
◦ Requerimientos de seguridad: define en bajo,
medio, alto y no definido cada activo en su
clasificación CIA.
http://jvnrss.ise.chuo-u.ac.jp/jtg/cvss/cvss2.cgi?name=CVE-
9999-9999-
Example&vector=(AV:N/AC:L/Au:N/C:C/I:C/A:C/E:POC/RL:TF/R
C:UC/CDP:L/TD:H/CR:M/IR:M/AR:H)&g=999&lang=es
www.securitybydefault.com
@aramosf
Comentarios de: Seguridad en sistemas: explotando vulnerabilidades (0)
No hay comentarios