Tests de intrusion (pentesting)

Anuncio
Francisco José Ribadas Pena
[email protected]
Departamento de Informática
Universidade de Vigo
Tests de Intrusión.
Análise da seguridade en
entornos GNU/Linux
Ferramentas de seguridade en GNU/Linux
Curso de Extensión Universitaria
25 de xuño de 2010
Indice
Tests de intrusión
¿Qué son? ¿Para qué sirven?
Tipología de los test de intrusión
Metodologías y buenas prácticas
Fases y tareas típicas
Distribuciones GNU/linux para pen testing
Backtrack 4
2
Tests de intrusión (I)
¿Qué son?
Mecanismo de evaluación de las medidas de protección de
una organización y de los servicios expuestos a Internet.
Analizan la efectividad de los controles de seguridad
implantados en una organización relizando una bateria de
acciones planificadas que simulan el comportamiento de un
atacante.
Otros nombres: tests de penetración (pen testing), hacking ético
(ethical hacking)
Objetivo: vulnerar la seguridad de los mecanismos
implantados para conseguir accesos no autorizados a la
organización, obtener información sensible, interrumpir un
servicio,…
Dependerá del alcance concreto del test realizado
Test de penetración != análisis de vulnerabilidades
Las vulnerabilidades detectadas se explotan
3
Tests de intrusión (II)
¿Para qué sirven?
Conforman un conjunto de actividades destinadas a estimar
el estado real de la seguridad de un sistema.
Son uno de los posibles métodos y técnicas a usar en las
auditorias de seguridad
Finalizan con un informe técnico (identificación del riesgo,
probabilidad de ocurrencia, impacto en la
organización,estimación de su gravedad, recomendaciones)
Beneficios
Encuentran brechas de seguridad no vistas
Documentan e informan a la dirección de problemas/amenazas
Verificación de configuraciones seguras (en redes y software)
Verificación real del cumplimiento de las políticas y medidas de
seguridad establecidas
4
Tests de intrusión (III)
Conceptos (ISO-27001)
Activo: Cualquier valor cuantificable de naturaleza material o
inmaterial de una organización
Amenaza: Factor de riesgo externo representado por un
peligro latente asociado a un fenómeno natural, tecnológico o
humano, pudiendo manifestarse en un sitio específico por un
tiempo determinado, produciendo efectos adversos a personas
o bienes
Vulnerabilidad: Factor de riesgo interno de un sistema
expuesto a una amenaza, y se corresponde con su
predisposición intrínseca a ser afectado o susceptible de daño
Riesgo: Probabilidad de que una amenaza explote una
vulnerabilidad
Impacto: Cuantificación del daño ocasionado una vez
materializada la amenaza
5
Test de intrusión (III)
Colecciones y catálogos de vulnerabilidades
CWE (Common Weakness Enumeration)
Cataloga más de 600 entradas dividas en: vulnerabilidades de
configuración, de código y de entorno.
Es la clasificación usada por CVE (Common Vulnerabilities and
Exposures).
NVD (National Vulnerability Database)
Desarrollada por el Instituto Nacional de Estándares y Tecnología
Norteamericano (NIST)
Define 23 tipos de vulnerabilidades.
OWASP (Open Web Application Security Project)
Colección de 24 tipos vulnerabilidades centrada exclusivamente en
la seguridad de aplicaciones web.
SAMATE (Software Assurance Metrics and Tool Evaluation)
Desarrollada y mantenida por el NIST
Centrada en los errores de codificación de aplicaticiones (buffer
overflow, etc)
6
Tipos de tests de intrusión (I)
White box pentest
Se posee un amplio conocimiento de la organización
(estructura, departamentos, responsabilidades) y de la red
(topología, dispositivos, SS.OO., bases de datos, IDS,
firewalls, ...)
Se cuenta con colaboración del personal y con acceso a
los recursos de la empresa.
Simula un atacante con conocimiento exhaustivo del
sistema
Análisis interno
Desde el punto de vista de un administrador o usuario que
cuentan con acceso (privilegiado o no) al sistema
Puede ser muy extenso (alcance muy amplio) y minucioso
(se dispone de un conocimiento completo)
7
Tipos de tests de intrusión (II)
Black box pentest
No hay conocimiento previo de la organización o la red
Sólo se dispone de información públicamente accesible
Pocas personas de la organización saben que esta será
atacada.
Simulación más realista de un ataque auténtico
Puede ser muy costoso (tiempo [recopilación info.] + personal
entrenado)
Grey box pentest (combina los anteriores)
Usa técnicas de un atacante real (black box) con conocimiento
del sistema analizado (white box)
Tests de intrusión específicos
Servicios/aplicaciones web, bases de datos, wireless, ...
Las tareas y pasos concretos a seguir varían ligeramente en
cada tipo
8
Tipos de tests de intrusión (III)
Otra visión:
Conocimiento del atacante vs conocimiento del atacado
9
Metodologías de Pen Test (I)

Test de penetración supone definir y ejecutar multitud de tareas
muy complejas y variadas => necesidad de guias
Metodologías que definan y organicen los procedimientos a ejecutar
para mantener la coherencia en las acciones a realizar
Open Source Security Testing Methodology Manual
(OSSTMM)
Metodología del ISECOM para la realización de evaluaciones de
seguridad, incluidos test de penetración
Metodología Open Source, disponible en http://www.osstmm.org
Define, organiza y secuencia las tareas y comprobaciones a realizar
para analizar 3 aspectos (alcance) de la seguridad:
COMMSEC (communication security): redes y transferencia de datos
PHYSEC (physical security): personal y equipos físicos
SPECSEC (spectrum security): comunicaciones wireless
Entre esos pasos/tareas/comprobaciones se incluye un marco para
la realización de tests de penetración
10
Metodologías de Pen Test (II)

ISSAF(Information Systems Security Assessment Framework)
Framework del OISSG (Open Information Systems Security Group)
que define procediemientos de aseguramiento y comprobación de la
seguridad incluido pen testing
Web: http://www.oissg.org/
OWASP Testing Guide de OWASP
Framework del proyecto Open Web Application Security Project
(OWASP) exclusivamente dedicado a seguridad de aplicaciones web.
Web: http://www.owasp.org/
Productos:
Guia de desarrollo y testing de aplicaciones web
http://www.owasp.org/index.php/OWASP_Guide_Project
Define listas de comprobaciones en un test de intrusión web
Top 10 de amenazas web
http://www.owasp.org/index.php/OWASP_Top_Ten_Project
11
Fases y tareas típicas
Recopilación de información
Etapa 1: Rastreo
Etapa 2: Exploración
Análisis de datos
Etapa 3: Enumeración
Informe final del test
Informe técnico.
Resumen del proceso
realizado
Clasificación de las
vulnerabilidades encontradas
y su nivel (alto, medio, bajo)
Propuesta de correcciones y
sugerencia de buenas
prácticas
Informe ejecutivo.
Explotación
Etapa 4: Acceso
Etapa 5: Escalada de privilegios
Etapa 6: Daño
Etapa 7: Borrado de huellas
12
Fases y tareas típicas (I)
Etapa 1: Rastreo
Obtener información del sistema/organización/red/máquina
bajo análisis
Nombres de dominio, direcciones IP, nombres de usuarios,
responsables, …
Bases de datos públicas: whois, RIPE, DNS, …
Buscadores
Genéricos: Google hacking, bing hacking, ...
Específicos: Goolag (http://www.goolag.org), KartOO (http://kartoo.org)
Herramientas genéricas de gestión de red: dig, nslookup,...
Herramientas específicas: FOCA (análisis metadatos), Maltego
13
Fases y tareas típicas (II)
Etapa 2: Exploración
Analizar el sistema objetivo para identificar servicios
activos, máquinas disponibles, recursos/dispositivos de
red (routers, firewalls, ...), sistema operativo, ...
Herramientas genéricas de gestión de red: ping, traceroute,...
Herramientas específicas
escáneres de puertos: nmap, hping3, xprobe, ...
14
Fases y tareas típicas (III)
Etapa 3: Enumeración
Pruebas y tests para identificar recursos específicos y sus
características concretas
Identificar SS.OO., sus versiones y parches de seguridad
(service packs, etc)
Versiones concretas de servicios/aplicaciones
Cuentas de usuario válidas
Herramientas específicas
Escáneres puertos e identificadores de servicios: nmap, xprobe...
Escáneres de vulnerabilidades: nessus, openvas, …
Escáneres de vuknerabilidades específicos: w3af (escaner de
wulnerabilidades web)
15
Fases y tareas típicas (IV)
Etapa 4: Acceso
Obtener un acceso no autorizado o no previsto a alguno/s de
los recursos o servicios identificados en el sistema objetivo.
Rotura de contraseñas
Por fuerza bruta, ataques de diccionario (Rainbow tables), prueba de
contraseñas por defecto o contrseñas débiles
Herramientas: THC hydra, John the Ripper, Abel and Cain,...
Sniffing/escucha de contraseñas o datos sensibles: wireshark, tcpdump,
ettercap, ...
Inyección de tráfico: ettercap, dnsniff, sslsniff, ...
Explotación de vulnerabilidades específicas de las versiones concretas
de los servicios/recursos identificados.
Exploits específicos: http://milw0rm.com
Herramientas automatización exploits:Metasploit, CORE Impact, SAINTexploit
Uso de valores de entrada no previstos
fuzzers: exploraciones exhaustiva automatizada de los posibles datos de
entrada, buscando (a ciegas) situaciones no previstas
16
Fases y tareas típicas (V)
Etapa 5: Escalada de privilegios
Obtener control completo del sistema, adquiriendo (y manteniendo)
permisos, credenciales y privilegios propios de los administradores.
Objetivo: Validar si para el supuesto atacante sería posible
adquirir privilegios que le permitieran ejecutar acciones
maliciosas o acceder a datos restringidos.
Suele requerir incluir código específico en el sistema objetivo
(payload) que permitan realizar determinadas acciones:
Normalmente ofrecen algún tipo de acceso remoto al mismo
(habilitan puertas traseras):
abrir shells del sistema con privilegios (bash), habilitar
conexiones de escritorio remoto (VNC),...
Explotación de vulnerabilidades específicas de las versiones
concretas de los servicios/recursos identificados.
Exploits específicos: http://milw0rm.com
Herramientas automatización exploits: Metasploit, Core Impact
Puertas traseras: BackOrifice,LCP 5.0
17
Fases y tareas típicas (VI)
Etapa 6: Daño
Valorar y evaluar la capacidad del atacante que ha
“escalado” privilegios de realizar acciones maliciosas
que causen daño:
Daños posibles:
Acceso a datos confidenciales
Robo de información
Alteración de información: datos protegidos, páginas web, ...
Denegación de servicio (DoS)
Imposibilitar el acceso o uso de determinados componentes
del sistema a sus usuarios legítimos.
Extensión del ataque
Evaluar la posibilidad de usar el sistema controlado como
punto de partida para iniciar ataques a otras parte del propio
sistema objetivo o a sistemas ajenos
18
Fases y tareas típicas (VII)
Etapa 7: Borrado de huellas
Verificar hasta que punto el potencial atacante tendría
capacidad de eliminar el rastro de sus acciones maliciosas
y mantener su control del sistema de forma permanente
sin ser detectado.
Objetivo: Eliminación de los registros y logs que contengan
información que releve la existencia del ataque y que
pudiera ser de utilidad en un análisis forense o una auditoría
de seguridad.
19
Distribuciones GNU/Linux para pen testing
BackTrack 4
Live-cd con multitud de herramientas de análisis de seguridad
preconfiguradas.
Orientado principalmente a tests de intrusión.
Herramientas organizadas en 11 categorias que se
corresponden con las fases típicas de una intrusión.
Information Gathering
Network Mapping
Vulnerability Identification
Web Application Analysis
Radio Network Analysis (802.11,Bluetooth,Rfid)
Penetration (Exploit & Social Engineering Toolkit)
Privilege Escalation
Maintaining Access
Digital Forensics
Reverse Engineering
Voice Over IP
Web: http://www.backtrack-linux.org/
Otras distribuciones:
Pentoo [web: http://www.pentoo.ch/]
DVL (damm vulnerable linux) [web:http://www.damnvulnerablelinux.org/]
ejercicios de intrusión, sistemas vulnerables para pruebas,...
20
Descargar