You are on page 1of 35

PwC

Penetration Testing
Conceptos generales y situacin actual
A/S Rodrigo Guirado, CISA, CGEIT
Senior Manager Advisory Services
rodrigo.guirado@uy.pwc.com
Agenda / Contenido
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 4
Penetration Testing Conceptos generales y situacin actual
La prctica actual de Penetration Testing
Cada vez ms considerada como un recurso ms dentro de las tareas
usuales de seguridad de una organizacin
Se est viendo como un requerimiento formal en muchos casos (e.g.
normas PCI)
Ha adquirido un mayor grado de formalizacin en los ltimos aos
(incluyendo publicacin de cdigos de tica asociados)
No obstante lo anterior, existen servicios de Penetration Testing de
alcance muy diferente por lo cual es importante conocer sus diferencias
y usos adecuados
Si bien en general las actualizaciones automticas del software de
base han mejorado (hasta cierto punto) la situacin general en cuanto
a vulnerabilidades de infraestructura, por otra parte las aplicaciones
web (en muchos casos crticas) siguen presentando problemas graves
Motivacin
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 6
Penetration Testing Conceptos generales y situacin actual
Terminologa
Penetration Testing
- Mtodo para evaluar la seguridad de un sistema o red informtica
simulando un ataque de origen hostil (Wikipedia)
- Una prueba de seguridad con un objetivo especfico que termina
cuando dicho objetivo se obtiene o se acaba el tiempo disponible
(OSSTMM Open Source Security Testing Methodology Manual)
- Prueba de seguridad donde los evaluadores copian ataques reales
para subvertir las funciones de seguridad de un aplicativo, sistema o
red (NIST National Institute of Standards and Technology)
Lo ms relevante a destacar es que un Penetration Testing es un
conjunto de pruebas con el objetivo de detectar vulnerabilidades en
un sistema en otras palabras, nunca puede considerarse como una
certificacin de que un sistema es seguro o inviolable
Definiciones Generales
PricewaterhouseCoopers
Abril 2009
Diapositiva 7
Penetration Testing Conceptos generales y situacin actual
Terminologa
Variantes de Penetration Testing
- Black Box / Blind: el consultor no cuenta con ninguna informacin
del sistema/red que debe analizar
- White Box / Full Disclosure: el consultor tiene acceso a toda la
informacin (incluyendo datos internos, cdigo fuente, etc.) del
sistema/red que debe analizar
- Gray Box / Partial Disclosure: cualquier caso intermedio a los
anteriores (e.g. el consultor cuenta con un mapa de la red y los
segmentos de direcciones relevantes, pero no con el cdigo fuente
de los aplicativos disponible)
En este caso es importante considerar que cada variante simula
diferentes situaciones de la realidad y por lo tanto la eleccin de la
variante correcta puede afectar significativamente el valor de la prueba
Definiciones Generales
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 9
Penetration Testing Conceptos generales y situacin actual
Cundo utilizar un Penetration Testing?
Los dos conceptos principales a analizar son la adecuacin de las
tcnicas para el objetivo de prueba especfico y luego la relacin costo-
beneficio
Algunas consideraciones sobre los Penetration Testing:
- No son un reemplazo para una correcta revisin / auditora de la
configuracin de cierta infraestructura
- No analizan las prcticas operativas asociadas a determinado
ambiente (que pueden acarrear sus propios problemas de
seguridad)
- Son acotados en el tiempo y reflejan la situacin en un momento
especfico (foto de la realidad)
- Las tcnicas que puede aplicar el consultor posiblemente no
puedan llegar hasta los lmites de lo que hara un atacante
Usos Recomendados
PricewaterhouseCoopers
Abril 2009
Diapositiva 10
Penetration Testing Conceptos generales y situacin actual
Cundo utilizar un Penetration Testing?
Los mejores usos para un Penetration Testing podran incluir:
- Confirmar / verificar los resultados de una revisin / auditora de
configuracin
- Cumplir con requerimientos internos / externos
- Como alternativa ms econmica y rpida a una auditora de cdigo
en aplicativos crticos
En cualquiera de los casos, es importante exigir en cualquier servicio
de este tipo garantas al proveedor en cuanto a la privacidad de
cualquier hallazgo y la tica del personal que trabajar en el proyecto
Para lograr adecuadamente los objetivos anteriores es importante
definir adecuadamente la variante metodolgica a utilizar segn se
mencionaba previamente (black/gray/white box)
Usos Recomendados
PricewaterhouseCoopers
Abril 2009
Diapositiva 11
Penetration Testing Conceptos generales y situacin actual
Ventajas y desventajas de cada modalidad
Black Box
- Ventajas
El consultor no recibe ninguna informacin ni acceso autorizado
a los sistemas o aplicativos
Es tpicamente el ms rpido y barato de los servicios (en
algunos casos, el servicio es enteramente automtico)
- Desventajas
Tiene la menor probabilidad de detectar vulnerabilidades
Es comn que el foco sea exclusivamente la infraestructura y se
ignoren los aplicativos
Simula solamente el mejor caso para la organizacin por lo
cual puede generar un falso nivel de confianza
Usos Recomendados
PricewaterhouseCoopers
Abril 2009
Diapositiva 12
Penetration Testing Conceptos generales y situacin actual
Ventajas y desventajas de cada modalidad
White Box
- Ventajas
Tiene la mayor probabilidad de detectar vulnerabilidades
Suele incluir un foco importante en los aplicativos (donde
usualmente se presentan ms problemas)
Simula el peor caso para la organizacin lo cual ofrece un nivel
importante de confianza
- Desventajas
Tiene una duracin mayor (ms horas de consultor en
comparacin a herramientas automticas) y mayor costo
Requiere de un nivel importante de confianza en el consultor que
va a recibir todos los detalles de la instalacin
Usos Recomendados
PricewaterhouseCoopers
Abril 2009
Diapositiva 13
Penetration Testing Conceptos generales y situacin actual
Ventajas y desventajas de cada modalidad
Gray Box
- Segn las caractersticas particulares del proyecto, se combinan las
ventajas y desventajas de los dos casos anteriores
- Si los escenarios de prueba son definidos adecuadamente, es en
general la modalidad que ofrece la mejor relacin costo-beneficio,
dado que para cada vulnerabilidad detectada se puede estimar qu
atacantes tendran mayor probabilidad de explotarla y de este modo
definir un plan preventivo razonable
- Debera ser la primer modalidad a considerar al solicitar un servicio
de Penetration Testing (excepto que existan argumentos de gran
peso para elegir una de las otras)
Usos Recomendados
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 15
Penetration Testing Conceptos generales y situacin actual
Aspectos bsicos a considerar
Definicin de Escenarios
Determinar
blancos
Seleccionar
agentes
Determinar
Oportunidades
Determinar medio
de ataque
Determinar
motivacin
Escenario
Macro
Determinar
Pruebas
Determinar blancos
y amenazas
Analizar agentes
y mtodos
Definir pruebas
Pruebas de plata-
formas especficas
Pruebas de
Acceso Interno
Pruebas de
Acceso Externo
Pruebas sobre
Aplicaciones
PricewaterhouseCoopers
Abril 2009
Diapositiva 16
Penetration Testing Conceptos generales y situacin actual
Aspectos bsicos a considerar
Agentes
- En general es difcil prever quien puede ser el agente que ejecute
un determinado ataque aunque dependiendo de las operaciones de
la organizacin se pueden hacer suposiciones
- Es preferible siempre asumir que el atacante cuenta con
conocimientos significativos (particularmente si en el anlisis previo
no se logr acotar demasiado la lista de posibles agentes)
- Es importante recordar que los agentes internos a una organizacin
son en general los responsables del mayor porcentaje de ataques
efectivos
Definicin de Escenarios
PricewaterhouseCoopers
Abril 2009
Diapositiva 17
Penetration Testing Conceptos generales y situacin actual
Aspectos bsicos a considerar
Objetivo
- Algunos posibles objetivos (que suelen requerir diferentes niveles
de acceso / compromiso de la instalacin) incluyen:
Defacing (daar la imagen del sitio como protesta o
demostracin de habilidades)
Denegacin de servicios (como protesta o para crear una
disrupcin en las operaciones de un competidor)
Obtencin de informacin sensitiva (datos privados, listas de
clientes, nmeros de tarjeta de crdito, etc.)
Introduccin de transacciones no autorizadas
Utilizacin del sitio para futuros ataques (zombies)
- Es importante considerar el concepto de materialidad cuando se
realiza el anlisis de los objetivos
Definicin de Escenarios
PricewaterhouseCoopers
Abril 2009
Diapositiva 18
Penetration Testing Conceptos generales y situacin actual
Aspectos bsicos a considerar
Recursos
- Es preferible asumir que el atacante cuenta con informacin
detallada sobre los protocolos y mecanismos de seguridad
utilizados (el concepto de security through obscurity es en general
sumamente dbil, particularmente contra ataques internos)
- Tambin debe considerarse que el atacante pueda lograr cierto
nivel de acceso bsico al ambiente a atacar, particularmente en
sitios pblicos o de clientela masiva (e.g. home banking) o travs de
tcnicas de ingeniera social
- Si se asume que el atacante cuenta con recursos significativos (e.g.
acceso a una botnet de tamao importante) entonces pueden
existir determinados ataques (e.g. denegacin de servicios, ataques
de fuerza bruta contra claves criptogrficas de largo insuficiente)
que sern automticamente exitosos
Definicin de Escenarios
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 20
Penetration Testing Conceptos generales y situacin actual
Etapas de un ataque
En general cualquier ataque sobre la infraestructura consistir de las
siguientes etapas (con algunas opcionales dependiendo del escenario
especfico)
- Deteccin de equipos
- Deteccin del mapa de la red
- Deteccin de servicios y versiones
- Deteccin de debilidades
- Obtencin de algn nivel de acceso inicial
- Escalamiento de privilegios
A lo anterior se agregan todos los ataques especficos sobre las
aplicaciones que residan en dicha infraestructura que no tienen que
seguir un orden particular y que se discutirn ms adelante
Etapas Usuales
PricewaterhouseCoopers
Abril 2009
Diapositiva 21
Penetration Testing Conceptos generales y situacin actual
Deteccin de equipos y estructura de red
El agente buscar en esta etapa detectar la mayor parte de
componentes posibles de la red a atacar
No solamente los servidores, sino adems el resto del equipamiento de
comunicaciones (routers, switches, etc.) y seguridad (firewalls, IDS,
etc.) podrn ser blancos importantes
La deteccin de la estructura de la red no siempre es estrictamente
necesaria, pero le puede dar al agente un nivel adicional de
informacin para la realizacin de ataques
Por ejemplo, conocer si hay segmentos de red con diferente nivel de
proteccin o cuales son los equipos de comunicacin en determinadas
rutas
Etapas Usuales
PricewaterhouseCoopers
Abril 2009
Diapositiva 22
Penetration Testing Conceptos generales y situacin actual
Deteccin de equipos y estructura de red
Tcnicas de deteccin de equipos y rutas
- Servidores de nombre (DNS)
- Ping (tpicamente sobre segmentos secuenciales de IPs)
ICMP
TCP
UDP
Paquetes preparados especficamente (que pueden en algunos
casos permitir conocer la configuracin de firewalls intermedios)
- Traceroute (y sus variantes)
- Simple Network Management Protocol (SNMP)
Dependiendo de la configuracin de las herramientas utilizadas por el
atacante, es muy posible que esta etapa pase inadvertida
Etapas Usuales
PricewaterhouseCoopers
Abril 2009
Diapositiva 23
Penetration Testing Conceptos generales y situacin actual
Deteccin de servicios y versiones
En esta etapa suelen aparecer indicios de que la red est bajo ataque
El agente buscar determinar cules son los servicios corriendo (http,
telnet, smtp, bases de datos, dns, etc.), los sistemas operativos que los
soportan, y las versiones de dichas componentes
Port Scanning (recorrida de puertos en forma secuencial/aleatoria)
- La tcnica mas bsica es intentar realizar una conexin estndar de
TCP con el puerto especfico
- Por velocidad y para evitar logs en ciertas configuraciones se utiliza
el llamado Stealth Scan (o Half-Open) enviando paquetes SYN
construidos especialmente
- Hay otras tcnicas similares (FIN, XMAS-Tree, Null, ACK) que
intentan pasar los controles del firewall y analizar la respuesta de
los equipos a errores de conexin
Etapas Usuales
PricewaterhouseCoopers
Abril 2009
Diapositiva 24
Penetration Testing Conceptos generales y situacin actual
Deteccin de debilidades
En esta etapa el agente buscar determinar vulnerabilidades en los
servicios instalados
Tpicamente se utilizarn herramientas automatizadas que cuentan con
bases de datos actualizadas peridicamente para hacer el anlisis,
aunque en algunos casos el atacante podr interactuar directamente
con los servicios
Algunas de las vulnerabilidades (exploits) ms usuales incluyen:
- Buffer overflows / Dangling Pointers / Off-by-one
- Directory Traversal / Source Disclosure
- MIME exploits
Etapas Usuales
PricewaterhouseCoopers
Abril 2009
Diapositiva 25
Penetration Testing Conceptos generales y situacin actual
Obtencin / escalamiento de acceso
Si en la etapa anterior el agente encuentra algn servicio que incluye
vulnerabilidades, puede intentar utilizar dicho servicio para obtener
algn nivel de acceso al servidor donde el mismo ejecuta
Dependiendo de sus objetivos, este nivel de acceso puede o no ser
suficiente, lo cual depende en general de los privilegios con los que
corra el servicio
En el caso de que necesite un mayor nivel, el atacante normalmente
intentar escalar sus privilegios a travs de nuevos ataques (e.g.
ataques locales)
Es importante notar que en el caso de detectarse que un atacante
obtuvo cierto nivel de acceso a un equipo (especialmente con perfiles
de alto nivel de privilegio), puede resultar muy difcil determinar qu
informacin fue accedida o qu otros componentes del servidor pueden
estar comprometidos
Etapas Usuales
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 27
Penetration Testing Conceptos generales y situacin actual
Escenarios de ataque en la actualidad
Hace algunos aos la existencia de servidores en produccin con
vulnerabilidades significativas no era una ocurrencia del todo extraa,
principalmente por las siguientes razones:
- Falta de conocimiento/especializacin en seguridad de los
administradores
- Falta de procedimientos adecuados de seguimiento de
vulnerabilidades y actualizacin de versiones
- Demoras significativas de los proveedores entre la aparicin de una
vulnerabilidad y la liberacin del patch correspondiente
- Falta de criterios claros dentro de la comunidad de seguridad sobre
el relacionamiento con los proveedores de tecnologa y la
publicacin de las debilidades detectadas
Cambios en los ltimos Aos
PricewaterhouseCoopers
Abril 2009
Diapositiva 28
Penetration Testing Conceptos generales y situacin actual
Escenarios de ataque en la actualidad
En la actualidad varias de esas situaciones han sido corregidas (e.g.
mayor velocidad de los proveedores, actualizaciones automticas,
cdigos aceptados para la publicacin de vulnerabilidades) y por
consiguiente la seguridad a nivel de infraestructura ha mejorado
significativamente (al menos en redes externas)
Al mismo tiempo, han adquirido gran popularidad los desarrollos de
tipo web para toda clase de aplicativos (ya sean de uso interno como
externo) con implicaciones absolutamente crticas en cuanto a
seguridad
Finalmente, cada vez ms se aprecia un objetivo delictivo en la
utilizacin de vulnerabilidades informticas (los script kiddies de
principios de dcada han ido dejando su lugar a organizaciones
criminales asociadas a fraudes, robo de secretos y extorsin)
Cambios en los ltimos Aos
PricewaterhouseCoopers
Abril 2009
Diapositiva 29
Penetration Testing Conceptos generales y situacin actual
Servicios actuales de Penetration Testing
En virtud de lo anterior, es importante que un servicio actual de
Penetration Testing est correctamente planificado y se enfoque en
aquellos aspectos que le puedan producir los mayores riesgos a la
organizacin
Los servicios de tipo Black Box o solamente basados en
infraestructura, si bien pueden tener algn lugar dentro de una
estrategia general de pruebas de seguridad, difcilmente puedan
considerarse como suficientes excepto en los escenarios ms simples
(e.g. sitio institucional sin aplicativos o contenido dinmico)
La orientacin a escenarios presentada previamente ofrece un
mecanismo simple para determinar los requerimientos mnimos que
debera tener un servicio de Penetration Testing en la actualidad y qu
aspectos deben ser complementados con otros mecanismos (revisin
de configuraciones y procedimientos, auditora de aplicativos, etc.)
Cambios en los ltimos Aos
Penetration Testing Conceptos generales y situacin actual
Motivacin
Definiciones Generales
Usos Recomendados
Definicin de Escenarios
Etapas Usuales
Cambios en los ltimos Aos
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 31
Penetration Testing Conceptos generales y situacin actual
Principales vulnerabilidades existentes
Tanto a efectos de indicar aquellos aspectos que deberan
considerarse dentro de un Penetration Testing que incluya a los
aplicativos como para que sirva de recordatorio (ya sea para
desarrolladores, auditores u oficiales de seguridad) a continuacin se
mencionarn las principales debilidades que usualmente se observan
en aplicaciones web
Si bien la lista de principales debilidades claramente puede ser objeto
de debate y es responsabilidad de cada organizacin realizar su propio
anlisis y toma de decisiones, para facilitar la discusin se utilizar la
lista denominada Top Ten 2007 de la OWASP (Open Web
Application Security Project www.owasp.org)
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 32
Penetration Testing Conceptos generales y situacin actual
OWASP Top Ten 2007
Cross Site Scripting (XSS)
Injection Flaws
Malicious File Execution
Insecure Direct Object Reference
Cross Site Request Forgery (CSRF)
Information Leakage and Improper Error Handling
Broken Authentication and Session Management
Insecure Cryptographic Storage
Insecure Communications
Failure to Restrict URL Access
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 33
Penetration Testing Conceptos generales y situacin actual
Algunas recomendaciones
Adems de las recomendaciones bsicas asociadas a cualquier
proyecto de desarrollo tendientes a mejorar la calidad del producto
final, se pueden hacer algunos comentarios sobre el tema seguridad
El diseo de la seguridad de un sistema (e.g. un mdulo centralizado)
debe ser considerado desde el inicio del proyecto
Puede ser interesante hacer un anlisis de riesgos durante el diseo
(similar a la definicin de escenarios de ataque) para entender como el
diseo de la seguridad debe atender a los mismos en funcin de la
clasificacin de los datos que se manejen
Los controles no pueden ser algo a agregar luego de obtener cierta
funcionalidad bsica ni deberan estar distribuidos dentro de la
aplicacin (e.g. como parte del cdigo de transacciones especficas)
Evitar la falsa competencia seguridad vs. usabilidad
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 34
Penetration Testing Conceptos generales y situacin actual
Algunas recomendaciones
Recordar que cualquier elemento que se ejecute en el cliente (e.g. un
control en javascript) no debe nunca considerarse como una parte
relevante del esquema de seguridad
Dentro de las especificaciones de los planes de prueba para la
aplicacin se debe incluir el tema de la seguridad
Debera establecerse como un objetivo a probar que el sistema sea
tolerante (o idealmente inmune) a determinadas clases de ataques,
mediante tcnicas similares a las de un Penetration Testing
Un tema adicional a considerar (particularmente durante el Anlisis de
Riesgos) es la seguridad de cualquier tipo de datos confidenciales o
privados de terceros que los sistemas manejen, para evitar
contingencias legales
Vulnerabilidades en Aplicativos Web
PricewaterhouseCoopers
Abril 2009
Diapositiva 35
XBRL - Conceptos Generales y Ejemplos de Utilizacin
Nuestra Visin
Ser la Firma lder en servicios profesionales,
reconocida por ser diferente en su enfoque
innovador, comportamiento tico, calidad,
multidisciplinariedad, integracin en torno al cliente
y su aporte al desarrollo de la comunidad, que se
caracteriza por relacionamientos profesionales de
largo plazo, con rentabilidad sostenida en el tiempo
y por la satisfaccin y compromiso de sus talentos.
2009 PricewaterhouseCoopers. Todos los derechos reservados. PricewaterhouseCoopers hace referencia a la red de
firmas miembro de PricewaterhouseCoopers International Limited, siendo cada una de ellas una entidad legal separada e
independiente.*connectedthinking es una marca registrada de PricewaterhouseCoopers LLP (US).
PwC

You might also like