Técnicas del Penetration Testing

Anuncio
“Técnicas del
Penetration Testing”
Victor H. Montero
[email protected]
Septiembre de 2005
Buenos Aires - ARGENTINA
Técnicas del Penetration Testing
© 2005
Agenda
- ¿Qué es un Penetration Test?
- El rol del PenTest en la Seguridad Informática.
- Objetivo y alcance.
- Metodología de Penetration Test.
- Casos de la vida real.
2
Técnicas del Penetration Testing
Qué es un Penetration Test?
© 2005
Consiste en emular y simular comportamientos y técnicas que
pueden ser utilizadas por los intrusos con el objetivo de
analizar el nivel de seguridad y la exposición de los sistemas
ante posibles ataques.
Permite detectar
vulnerabilidades en
los Sistemas
Informáticos y
corregirlas en forma
rápida y eficaz.
3
Técnicas del Penetration Testing
Qué es un Penetration Test?
© 2005
Es un conjunto de metodologías y técnicas que permiten
realizar una evaluación integral de las debilidades de los
sistemas informáticos.
Consiste en un modelo que reproduce
intentos de acceso de un potencial
intruso desde los diferentes puntos
de
entrada
que
existan,
tanto
internos como remotos, a cualquier
entorno
informático,
permitiendo
demostrar los riesgos funcionales de
las vulnerabilidades detectadas
4
Técnicas del Penetration Testing
La Seguridad Informática en los sistemas
© 2005
La Seguridad Informática es Dinámica.
Día a día se reportan vulnerabilidades que podrían poner en
jaque los sistemas informáticos de cualquier organización.
Esto conlleva a la constante actualización de los sistemas y
de los conocimientos necesarios para afrontar los nuevos
riesgos que aparecen con las distintas vulnerabilidades.
“Ahora podemos estar seguros.
En diez minutos, ya no.”
5
Técnicas del Penetration Testing
La Seguridad Informática en los sistemas
© 2005
Vulnerabilidades de Seguridad Informática reportadas
En los últimos años, se registra
una estabilidad en la cantidad de
vulnerabilidades reportadas.
Esto se debe principalmente al
incremento en los controles de
seguridad
en
el
proceso
de
desarrollo de software.
© CERT/CC
6
Técnicas del Penetration Testing
La Seguridad Informática en los sistemas
© 2005
Cómo hacen los intrusos para ingresar en los sistemas?
Definitivamente,
no como en Hollywood.
Los intrusos aprovechan vulnerabilidades de seguridad, descuidos, y
configuraciones inseguras para ingresar en forma no autorizada.
“El nivel de seguridad informática global de toda una instalación
es igual al componente de menor nivel de seguridad”.
7
Técnicas del Penetration Testing
La Seguridad Informática en los sistemas
© 2005
Metodología de una intrusión
Los ataques pueden ser perpetrados
en forma Externa o Interna.
Servidores
Internos
Los ataques externos son
más fáciles de detectar y
repeler que los ataques
internos. El intruso interno ya
Barreras de
Protección
tiene acceso a la red interna o
incluso al mismo Server que
quiere atacar.
8
Técnicas del Penetration Testing
Objetivos de un Penetration Test
© 2005
- Evaluar un proyecto o sistema informático.
- Demostrar los riesgos existentes.
- Conocer la situación real de la Organización.
- Mantenimiento de la seguridad informática.
9
Técnicas del Penetration Testing
Alcance de un Penetration Test
© 2005
La composición del Penetration Test se define a través del
alcance del mismo.
Éste debe concretarse en reuniones previas; puede tener un
alcance amplio y cubrir toda la organización, o puede ser
focalizado sobre un determinado sistema o equipo, por ejemplo
un sistema de Home Banking conectado a Internet.
También se define en esta instancia el tiempo de ejecución. El
Penetration Test debe ser una “foto” que refleje el estado de la
seguridad informática de las instalaciones, por lo tanto, los
proyectos de este tipo no suelen extenderse a más de 30 días.
10
Técnicas del Penetration Testing
Alcance de un Penetration Test
© 2005
En forma general, y de acuerdo al alcance, los proyectos de
Penetration Test pueden categorizarse en:
Externos.
Internos.
11
Técnicas del Penetration Testing
Alcance de un Penetration Test
© 2005
Penetration Test Externo
Durante su ejecución se somete a los sistemas a pruebas de
seguridad informática que simulan las que se producen durante la
realización de un ataque y/o intento de intrusión desde afuera de la
instalación. Algunas de las actividades principales pueden ser:
•
Barrido de líneas telefónicas.
•
Situación de la seguridad en centrales telefónicas.
•
Análisis del sistemas de acceso remoto.
•
Situación de la seguridad en la conexión a Internet.
•
Seguridad en la conexión con otras redes.
•
Seguridad en aplicaciones Web.
•
Seguridad en redes wireless.
12
Técnicas del Penetration Testing
Alcance de un Penetration Test
© 2005
Penetration Test Interno
Durante su ejecución se somete a los sistemas a pruebas de
seguridad informática que simulan las que se producen durante la
realización de un ataque y/o intento de intrusión desde dentro de la
instalación. Algunas de las actividades principales pueden ser:
•
Testing
del
nivel
de
seguridad
en
los
dispositivos
de
red
Internos.
•
Testing de seguridad de los principales servidores.
•
Testing de seguridad general de las estaciones de trabajo.
•
Testing de seguridad de las aplicaciones.
13
Técnicas del Penetration Testing
Quien realiza el Penetration Test?
© 2005
• Equipo interdisciplinario de personas, con know-how y
experiencia en proyectos de Penetration Testing
• Normalmente se contratan
informática especializadas.
a
Empresas
de
seguridad
• Confianza en la Empresa a contratar
(referencias).
• Explicación detallada de las actividades
a realizar.
14
Técnicas del Penetration Testing
Metodologías y Estándares
© 2005
A nivel mundial existen estándares relacionados con Penetration
Testing:
•
BS 7799 e ISO 17799 (Internacional)
•
Open Source Security Testing Methodology Manual
•
Federal Information System Controls Audit Manual (FISCAM)
15
Técnicas del Penetration Testing
Principales etapas de un Penetration Test
© 2005
16
Técnicas del Penetration Testing
Metodología
© 2005
¿Cómo se realiza un Penetration Test?
Se utiliza una metodología de evaluación de seguridad informática
que incluye cuatro grandes etapas:
1)
Descubrimiento
2)
Exploración
3)
Evaluación
4)
Intrusión
Si bien el orden de las etapas no es arbitrario, en muchos casos se
paralelizan o adelantan tareas dependiendo de las características de
la plataforma evaluada.
17
Técnicas del Penetration Testing
Metodología - Descubrimiento
© 2005
Etapa de Descubrimiento
Se centra en entender los riesgos del negocio asociado al uso de los
activos informáticos involucrados.
Se realizan investigaciones tratando de recolectar información pública
sobre la plataforma tecnológica del cliente, utilizando para ello
técnicas pasivas de relevamiento de información.
Este procedimiento permite empezar a delimitar las áreas sobre las
que luego se focalizará la evaluación.
18
Técnicas del Penetration Testing
Metodología - Descubrimiento
© 2005
En esta fase, se recolecta la mayor cantidad de evidencia sobre la
Empresa para la cual se van a realizar las pruebas.
Esta información suele ser:
- Rangos de direcciones IP asignados
- Direcciones IP de servicios tercerizados
- Dirección física de la empresa
- Números telefónicos
- Nombres de personas y cuentas de correo electrónico
- Fuentes de información
- Análisis de la página WEB
- Existencia de redes inalámbricas (WiFi)
19
Técnicas del Penetration Testing
Metodología - Descubrimiento
© 2005
20
Técnicas del Penetration Testing
Metodología - Exploración
© 2005
Etapa de Exploración
Se busca focalizar los objetivos para las posteriores etapas de
Evaluación e Intrusión, trabajando en base a los datos obtenidos
durante la etapa de Descubrimiento.
En esta etapa se aplican técnicas no intrusivas para identificar todos
los potenciales blancos.
Incluye el análisis de protocolos, relevamiento de plataforma y
barreras de protección, scanning telefónico, scanning de puertos TCP
y UDP, detección remota de servicios y sistemas operativos, análisis
de banners y búsqueda de aplicaciones web.
21
Técnicas del Penetration Testing
Metodología - Exploración
© 2005
En el trascurso de esta fase, se exploran todas las posibles puertas
de entrada a los sistemas, utilizando para ello (a diferencia de la
etapa anterior) técnicas activas de reconocimiento.
Las tareas que predominan en esta etapa son:
- Detección de módems activos
- Confirmación de rangos de direcciones IP
- Detección de equipos activos e identificación de Sistemas Operativos
- Detección de servicios activos e identificación Software y versiones
- Detección de barreras de protección
- Relevamiento de aplicaciones Web
- Análisis de características de configuración en redes WiFi
22
Técnicas del Penetration Testing
Metodología - Exploración
© 2005
Técnica de Scanning
La técnica de scanning permite a los intrusos barrer todo un conjunto
de potenciales blancos en busca de alguna característica.
Se utiliza por sobre todo en la detección de equipos, servicios y
módems activos.
- ¿El scanning es legal?
- Acceso público y gratuito a las herramientas
- La utilización de los mismos puede traer graves consecuencias
- Existen países con leyes que repudian y castigan esta actividad
23
Técnicas del Penetration Testing
Metodología - Evaluación
© 2005
Etapa de Evaluación
Se basa en el análisis de todos los datos encontrados para la
detección
y
determinación
de
vulnerabilidades
de
seguridad
informática que afectan a los sistemas evaluados.
Durante esta etapa se realizan las evaluaciones de seguridad en
todos los posibles niveles, destacándose las siguientes tareas:
- Ejecución de herramientas de scanning de vulnerabilidades.
- Búsqueda manual de vulnerabilidades.
- Enumeración de usuarios y datos de configuración.
24
Técnicas del Penetration Testing
Metodología - Evaluación
© 2005
Herramientas de scanning de vulnerabilidades
- Buscan
automáticamente
vulnerabilidades
“conocidas”
en
los
Sistemas Operativos y servicios que se estén ejecutando.
- Permiten,
en
algunos
casos,
“explotar”
las
vulerabilidades
detectadas.
- Poseen mecanismos para la generación y administración de
reportes de distinta índole (Gerenciales, Técnicos, etc).
- Facilitan la actualización de las bases de datos de vulnerabilidades.
- Algunas herramientas (gratuitas y comerciales): Nessus, Languard,
ISS, Retina...
25
Técnicas del Penetration Testing
Metodología - Evaluación
© 2005
Búsqueda manual de vulnerabilidades
Como complemento a la ejecución de herramientas automáticas, es
necesario verificar la existencia de vulnerabilidades conocidas que
puedan afectar a las versiones del software identificado en cada
servicio.
Existen numerosos sitios con información sobre vulnerabilidades
reportadas.
Algunos de ellos poseen bases de datos con exploits
públicos, que deben ser descargados y examinados para verificar si
pueden ser útiles en la etapa de Intrusión.
26
Técnicas del Penetration Testing
Metodología - Evaluación
© 2005
Búsqueda manual de vulnerabilidades
Sitios de interés...
- Security Focus: http://www.securityfocus.com/bid
- Packet Storm Security: http://packetstormsecurity.org
- SecuriTeam: http://www.securiteam.com
- Security Tracker: http://www.securitytracker.com/
- Open Source Vulnerability Database: http://osvdb.org/
- Security Forest: http://www.securityforest.com/
- CERT: http://www.cert.org/
- CVE: http://cve.mitre.org/
- Exploit World: http://www.insecure.org/sploits.html
- Phrack: http://www.phrack.org/
27
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
Etapa de Intrusión
Se focaliza en realizar pruebas de los controles de seguridad y
ataques por medio de secuencias controladas a las vulnerabilidades
propias de los sistemas identificados.
Aquí se utiliza el conocimiento adquirido en etapas previas para
buscar alternativas que permitan acceder a los sistemas y obtener el
control de los mismos.
Es en esta fase donde se prueba la eficiencia del equipo que lleva a
cabo el Penetration Test.
28
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
La etapa de Intrusión puede categorizarse como la más compleja de
las 4 etapas en un proyecto de Penetration Testing.
También es la más emocionante para el equipo de trabajo, ya que es
donde
se
ve
reflejado
en
mayor
medida
el
conocimiento
y
profesionalismo del mismo.
Durante esta etapa se utiliza toda la información recabada en las
fases previas, para evaluar todas las alternativas posibles que
puedan permitir efectuar una intrusión y escalación de privilegios
exitosa.
Es importante que el cliente esté informado de aquellas pruebas que
pueden acarrear problemas en el funcionamiento de servicios, de
modo que se planifique en conjunto el momento más indicado para
realizar las tareas.
29
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
¿Qué datos tenemos?
- Nombres de usuarios de diversos equipos
- Exploits remotos
- Líneas telefónicas que admiten el acceso remoto
- Ubicación y características de nodos Wireless
- Mapa de la plataforma, surgido del análisis de
barreras de protección, seguimiento de rutas
y detección de hosts activos
- Aplicaciones Web vulnerables
- Recursos compartidos
30
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
¿Y con esto qué podemos hacer?
- Fuerza bruta sobre servicios que autentiquen vía nombre de usuario /
contraseña
- Ejecución de Exploits remotos
- Prueba de usuarios y contraseñas por defecto en accesos telefónicos y
servicios conocidos
- Cracking de clave de encriptación WEP (si es necesario) y asociación
con red Wireless
- Explotación de vulnerabilidades en aplicaciones Web que permitan la
ejecución de código remoto.
- Búsqueda de información de accesos en recursos compartidos
- Ingeniería Social
31
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
Escalación de privilegios
Es
raro
que
en
el
primer
intento
consigamos
una
cuenta
administrativa en el servidor más crítico del cliente.
Sin embargo, ese es uno de nuestros objetivos.
La escalación de privilegios es el proceso por el cual se logra obtener
nuevos niveles de acceso en una plataforma dada.
Muchas veces, este proceso no es inmediato,
y requiere la explotación combinada de dos
o más vulnerabilidades para hacerse efectivo.
32
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
Escalación de privilegios
Ejemplo 1: Caso real en un Penetration Test Interno
-
Servidores UNIX con servicios por defecto habilitados.
-
A través del servicio RUsers se enumeran usuarios válidos del sistema y
estaciones de trabajo clientes.
-
Se analizan las estaciones de trabajo usadas como cliente, y se encuentran
recursos compartidos con información de accesos administrativos a
equipos UNIX de desarrollo.
-
Se accede a estos equipos UNIX, y se detecta en los mismos la existencia
de relaciones de confianza establecidas desde equipos productivos.
-
Con este dato, se comienza a analizar si existen relaciones de confianza de
servidores de desarrollo a servidores productivos.
33
Técnicas del Penetration Testing
© 2005
Escalación de privilegios
Ejemplo 1: Caso real en un Penetration Test Interno
-
Se logra acceder a un equipo productivo, explotando una relación de
confianza para el usuario root del equipo.
-
Este equipo productivo, a su vez, posee relaciones de confianza con otros
equipos productivos, y de desarrollo, lo que posibilita la toma de control de
la plataforma productiva del negocio.
-
La escalación continúa, hasta tomar el control total no solo a nivel sistema
operativo
sino
de
aplicaciones
(bases
de
datos)
y
dispositivos
de
comunicaciones centrales..
34
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
Escalación de privilegios
Ejemplo I1: Caso real en un Penetration Test Externo
-
El cliente es un banco del extranjero.
perímetro de la entidad.
Se detecta un servidor Web en el
El servidor se usa principalmente para testing,
pero está activo y publicado en Internet.
-
Se detecta que el equipo corre una versión de IIS cuya instalación por
defecto no ha sido modificada.
-
Bajo estas condiciones, se utiliza el cmd.exe que se incluye en el directorio
de scripts para generar en el servidor un archivo .ASP con el código
necesario para poder ejecutar comandos remotamente desde un formulario
web de manera más “comoda”. El mismo formulario permite también subir
archivos al servidor.
35
Técnicas del Penetration Testing
Metodología - Intrusión
© 2005
Escalación de privilegios
Ejemplo I1: Caso real en un Penetration Test Externo
-
Investigando el servidor, se detecta una base de datos local activa, y se
encuentran
archivos
con
información
privilegiado a la base de datos.
que
permite
obtener
acceso
La misma, resulta ser una copia
desactualizada de la base utilizada en el sistema de Home Banking.
-
Investigando un poco la topología de la plataforma, se da con el equipo que
mantiene la base de datos productiva de Home Banking.
El usuario DBA
existente en la copia también existe en la base productiva, con los mismos
privilegios, y la misma contraseña…
36
Técnicas del Penetration Testing
© 2005
Preguntas?
37
Descargar