11.05.2014 Views

Pruebas de Seguridad en aplicaciones web segun OWASP

Pruebas de Seguridad en aplicaciones web segun OWASP

Pruebas de Seguridad en aplicaciones web segun OWASP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>OWASP</strong> V<strong>en</strong>ezuela<br />

Chapter<br />

The <strong>OWASP</strong> Foundation<br />

http://www.owasp.org<br />

<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> <strong>en</strong> <strong>aplicaciones</strong> <strong>web</strong><br />

<strong>segun</strong> <strong>OWASP</strong><br />

Don<strong>de</strong> estamos... Hacia don<strong>de</strong> vamos?<br />

Edgar D. Salazar T<br />

<strong>OWASP</strong> V<strong>en</strong>ezuela Chapter Lea<strong>de</strong>r<br />

edgar.salazar@owasp.org<br />

@3ddavid<br />

Copyright © The <strong>OWASP</strong> Foundation<br />

Permission is granted to copy, distribute and/or modify this docum<strong>en</strong>t un<strong>de</strong>r the terms of the <strong>OWASP</strong> Lic<strong>en</strong>se.


Realidad o Ficción<br />

2


3<br />

3<br />

Expectativas<br />

Controles<br />

Contexto<br />

Un sistema es seguro si cumple las expectativas<br />

<strong>en</strong> un contexto dado


La <strong>Seguridad</strong> total no existe.<br />

4<br />

4


El riesgo no pue<strong>de</strong> eliminarse completam<strong>en</strong>te,<br />

pero pue<strong>de</strong> reducirse.<br />

5<br />

5


<strong>OWASP</strong> ¿Por que? Y ¿Para qui<strong>en</strong>?<br />

Desarrolladores <strong>de</strong> Software<br />

Testers <strong>de</strong> Software<br />

Especialistas <strong>de</strong> <strong>Seguridad</strong>


Proyectos Docum<strong>en</strong>tales <strong>de</strong><br />

<strong>OWASP</strong><br />

✔<br />

Preguntas Frecu<strong>en</strong>tes sobre <strong>Seguridad</strong> <strong>en</strong> Aplicaciones <strong>web</strong> (<strong>OWASP</strong> FAQ)<br />

✔<br />

Guía <strong>de</strong> Desarrollo Seguro (<strong>OWASP</strong> Developm<strong>en</strong>t)<br />

✔<br />

Guía <strong>de</strong> <strong>Pruebas</strong> (<strong>OWASP</strong> Testing Gui<strong>de</strong>)<br />

✔<br />

Guia <strong>de</strong> Revision <strong>de</strong> Codigo (<strong>OWASP</strong> Co<strong>de</strong> Review)<br />

✔<br />

<strong>OWASP</strong> TOP-10 (Los 10 riesgos mas importantes <strong>en</strong> <strong>aplicaciones</strong> <strong>web</strong>)<br />

✔<br />

<strong>OWASP</strong> <strong>Seguridad</strong> Movil (<strong>OWASP</strong> mobile Security)<br />

✔<br />

Como <strong>de</strong>tectar y respon<strong>de</strong>r <strong>en</strong> tiempo real los ataques a <strong>aplicaciones</strong><br />

✔<br />

Estándar <strong>de</strong> Verificación <strong>de</strong> <strong>Seguridad</strong> <strong>en</strong> Aplicaciones<br />

✔<br />

Entre muchos mas...


Proyectos Software <strong>de</strong> <strong>OWASP</strong><br />

✔<br />

WebScarab --> ZAP (The Zed Attack Proxy)<br />

✔<br />

Dirbuster<br />

✔<br />

DotNet<br />

✔<br />

ESAPI<br />

✔<br />

WebGoat<br />

✔<br />

Mantra Framework<br />

✔<br />

<strong>OWASP</strong> Live CD<br />

✔<br />

<strong>OWASP</strong> AntiSamy Java Project<br />

✔<br />

<strong>OWASP</strong> WAF<br />

✔<br />

Entre muchos mas...


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

El conjunto <strong>de</strong> prueba <strong>de</strong> <strong>OWASP</strong> se divi<strong>de</strong> <strong>en</strong> 10 sub categorías las cuales<br />

se m<strong>en</strong>cionan a continuación:<br />

✔<br />

Recopilación <strong>de</strong> Información<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> gestión <strong>de</strong> la configuración<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> la lógica <strong>de</strong> negocio<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> Aut<strong>en</strong>ticación<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> Autorización<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> gestión <strong>de</strong> sesiones<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> validación <strong>de</strong> datos<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> <strong>de</strong>negación <strong>de</strong> Servicio<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> Servicios Web<br />

✔<br />

<strong>Pruebas</strong> <strong>de</strong> AJAX


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

Recopilación <strong>de</strong> Información<br />

La primera fase <strong>en</strong> la evaluación <strong>de</strong> seguridad se c<strong>en</strong>tra <strong>en</strong><br />

recoger tanta información como sea posible sobre una aplicación<br />

objetivo. La recopilación <strong>de</strong> información es un paso necesario <strong>en</strong><br />

una prueba <strong>de</strong> intrusión. Esta tarea se pue<strong>de</strong> llevar a cabo <strong>de</strong><br />

muchas formas.<br />

✔ Spi<strong>de</strong>rs, Robots, y Crawlers<br />

✔ Reconocimi<strong>en</strong>to mediante motores <strong>de</strong><br />

Búsqueda<br />

✔ I<strong>de</strong>ntificación <strong>de</strong> puntos <strong>de</strong> <strong>en</strong>trada <strong>de</strong> la<br />

aplicación<br />

✔ <strong>Pruebas</strong> para <strong>en</strong>contrar firmas <strong>de</strong><br />

Aplicaciones Web<br />

✔ Descubrimi<strong>en</strong>to <strong>de</strong> <strong>aplicaciones</strong><br />

✔ Análisis <strong>de</strong> códigos <strong>de</strong> error


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> Gestión <strong>de</strong> la Configuración<br />

A m<strong>en</strong>udo los análisis sobre la infraestructura o la topología <strong>de</strong> la<br />

arquitectura pue<strong>de</strong>n revelar datos importantes sobre una<br />

aplicación Web. Se pue<strong>de</strong>n obt<strong>en</strong>er datos como por ejemplo el<br />

código fu<strong>en</strong>te, los métodos HTTP permitidos, funcionalida<strong>de</strong>s<br />

administrativas, métodos <strong>de</strong> aut<strong>en</strong>ticación y configuraciones <strong>de</strong> la<br />

infraestructura.<br />

✔ <strong>Pruebas</strong> <strong>de</strong> SSL/TLS<br />

✔ <strong>Pruebas</strong> <strong>de</strong>l receptor <strong>de</strong> escucha <strong>de</strong> la BD<br />

✔ <strong>Pruebas</strong> <strong>de</strong> gestión <strong>de</strong> configuración <strong>de</strong> la<br />

infraestructura<br />

✔ <strong>Pruebas</strong> <strong>de</strong> gestión <strong>de</strong> configuración <strong>de</strong> la<br />

aplicación<br />

✔ Gestión <strong>de</strong> ext<strong>en</strong>siones <strong>de</strong> archivo<br />

✔ Archivos antiguos, copias <strong>de</strong> seguridad<br />

y sin refer<strong>en</strong>cias<br />

✔ Interfaces <strong>de</strong> administración <strong>de</strong> la<br />

infraestructura y <strong>de</strong> la aplicación<br />

✔ Métodos HTTP y XST


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

Comprobación <strong>de</strong>l Sistema <strong>de</strong> Aut<strong>en</strong>ticación<br />

Aut<strong>en</strong>ticar un objeto pue<strong>de</strong> significar confirmar su proce<strong>de</strong>ncia,<br />

mi<strong>en</strong>tras que aut<strong>en</strong>ticar a una persona consiste a m<strong>en</strong>udo <strong>en</strong><br />

verificar su i<strong>de</strong>ntidad. La aut<strong>en</strong>ticación <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> uno o más<br />

factores <strong>de</strong> aut<strong>en</strong>ticación. En seguridad informática, aut<strong>en</strong>ticación<br />

es el proceso <strong>de</strong> int<strong>en</strong>tar verificar la i<strong>de</strong>ntidad digital <strong>de</strong>l remit<strong>en</strong>te<br />

<strong>de</strong> una comunicación.<br />

✔ Transmisión <strong>de</strong> cre<strong>de</strong>nciales a través <strong>de</strong> un canal<br />

cifrado<br />

✔<br />

Enumeración <strong>de</strong> usuarios<br />

✔ <strong>Pruebas</strong> <strong>de</strong> diccionario sobre cu<strong>en</strong>tas <strong>de</strong> Usuario o<br />

cu<strong>en</strong>tas pre<strong>de</strong>terminadas<br />

✔ <strong>Pruebas</strong> <strong>de</strong> Fuerza Bruta<br />

✔ Saltarse el sistema <strong>de</strong> aut<strong>en</strong>ticación<br />

✔ Comprobar Sistemas <strong>de</strong> recordatorio/restauración<br />

<strong>de</strong> contraseñas vulnerables<br />

✔ Comprobar Sistemas <strong>de</strong><br />

recordatorio/restauración <strong>de</strong> contraseñas<br />

vulnerables<br />

✔ <strong>Pruebas</strong> <strong>de</strong> gestión <strong>de</strong>l Caché <strong>de</strong> Navegación<br />

y <strong>de</strong> salida <strong>de</strong> sesión<br />

✔ <strong>Pruebas</strong> <strong>de</strong> CAPTCHA<br />

✔ Múltiples factores <strong>de</strong> aut<strong>en</strong>ticación<br />

✔ Probar por situaciones adverzas


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

Gestión <strong>de</strong> Sesiones<br />

La gestión <strong>de</strong> sesiones cubre ampliam<strong>en</strong>te todos los controles que<br />

se realizan sobre el usuario, <strong>de</strong>s<strong>de</strong> la aut<strong>en</strong>ticación hasta<br />

la salida <strong>de</strong> la aplicación. HTTP es un protocolo sin estados, lo<br />

que significa que los servidores <strong>web</strong> respon<strong>de</strong>n a las<br />

peticiones <strong>de</strong> cli<strong>en</strong>tes sin <strong>en</strong>lazarlas <strong>en</strong>tre sí.<br />

Es importante que la seguridad <strong>de</strong> la aplicación sea consi<strong>de</strong>rada<br />

<strong>en</strong> el contexto <strong>de</strong> los requisitos y expectativas <strong>de</strong>l proveedor.


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> Autorización<br />

Autorización es el concepto <strong>de</strong> permitir el acceso a recursos<br />

únicam<strong>en</strong>te a aquellos que ti<strong>en</strong><strong>en</strong> permiso para ello. Las pruebas<br />

<strong>de</strong> Autorización significan <strong>en</strong>t<strong>en</strong><strong>de</strong>r como funciona el proceso <strong>de</strong><br />

autorización, y usar esa información para saltarse el mecanismo<br />

<strong>de</strong> autorización.


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> Logica <strong>de</strong> Negocio<br />

Comprobar por fallas <strong>en</strong> la logica <strong>de</strong> negocio <strong>en</strong> una aplicación<br />

<strong>web</strong> multifuncional requiere p<strong>en</strong>sar <strong>en</strong> modos no conv<strong>en</strong>cionales.<br />

Si el mecanismo <strong>de</strong> aut<strong>en</strong>ticación <strong>de</strong> una aplicación es<br />

<strong>de</strong>sarrollado con la int<strong>en</strong>ción <strong>de</strong> seguir pasos 1,2,3 para po<strong>de</strong>r<br />

aut<strong>en</strong>ticarse, que pasa si uno salta <strong>de</strong>l paso 1 directo al 3? En<br />

este ejemplo, la aplicación o bi<strong>en</strong> provee acceso fallando el<br />

mecanismo <strong>de</strong> aut<strong>en</strong>ticación, muestra un m<strong>en</strong>saje <strong>de</strong> error <strong>de</strong><br />

acceso negado, o solo un m<strong>en</strong>saje <strong>de</strong> error 500?


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> Validación <strong>de</strong> Datos<br />

La <strong>de</strong>bilidad más común <strong>en</strong> la seguridad <strong>de</strong> <strong>aplicaciones</strong> <strong>web</strong>, es<br />

la falta <strong>de</strong> una validación a<strong>de</strong>cuada <strong>de</strong> las <strong>en</strong>tradas proce<strong>de</strong>ntes<br />

<strong>de</strong>l cli<strong>en</strong>te o <strong>de</strong>l <strong>en</strong>torno <strong>de</strong> la aplicación. Esta <strong>de</strong>bilidad conduce a<br />

casi todas las principales vulnerabilida<strong>de</strong>s <strong>en</strong> <strong>aplicaciones</strong>, como<br />

inyecciones sobre el intérprete, ataques locale/Unico<strong>de</strong>, sobre el<br />

sistema <strong>de</strong> archivos y <strong>de</strong>sbordami<strong>en</strong>tos <strong>de</strong> búfer.


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> D<strong>en</strong>egación <strong>de</strong> Servicio<br />

El tipo más común <strong>de</strong> ataque <strong>de</strong> D<strong>en</strong>egación <strong>de</strong> Servicio (Dos) es<br />

<strong>de</strong>l tipo empleado <strong>en</strong> una red para hacer inalcanzable a la<br />

comunicación a un servidor por parte <strong>de</strong> otros usuarios válidos. El<br />

concepto fundam<strong>en</strong>tal <strong>de</strong> un ataque DoS <strong>de</strong> red es un usuario<br />

malicioso inundando con sufici<strong>en</strong>te tráfico una máquina objetivo<br />

para conseguir hacerla incapaz <strong>de</strong> sost<strong>en</strong>er el volum<strong>en</strong> <strong>de</strong><br />

peticiones que recibe. Cuando el usuario malicioso emplea un<br />

gran número <strong>de</strong> máquinas para inundar <strong>de</strong> tráfico una sola<br />

máquina objetivo, se conoce g<strong>en</strong>eralm<strong>en</strong>te como ataque<br />

<strong>de</strong>negación <strong>de</strong> servicio distribuidos (DDoS).


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> Servicios WEB<br />

Los servicios <strong>web</strong> y SOA (Arquitectura Ori<strong>en</strong>tada a Servicios) son<br />

<strong>aplicaciones</strong> <strong>en</strong> expansión que están permiti<strong>en</strong>do que los<br />

negocios interoper<strong>en</strong> y crezcan a un ritmo sin prece<strong>de</strong>ntes. Los<br />

cli<strong>en</strong>tes <strong>de</strong> servicios <strong>web</strong> g<strong>en</strong>eralm<strong>en</strong>te no son frontales <strong>web</strong>, sino<br />

otros servidores. Los servicios <strong>web</strong> están expuestos a la red como<br />

cualquier otro servicio, pero pue<strong>de</strong>n ser utilizados <strong>en</strong> HTTP, FTP,<br />

SMTP o acompañados <strong>de</strong> cualquier otro protocolo <strong>de</strong> transporte.<br />

Las vulnerabilida<strong>de</strong>s <strong>en</strong> servicios <strong>web</strong> son similares a otras<br />

vulnerabilida<strong>de</strong>s como la inyección SQL, revelación <strong>de</strong><br />

información, etc, pero también ti<strong>en</strong><strong>en</strong> vulnerabilida<strong>de</strong>s <strong>de</strong> XML.


<strong>Pruebas</strong> <strong>de</strong> <strong>Seguridad</strong> según<br />

<strong>OWASP</strong><br />

<strong>Pruebas</strong> <strong>de</strong> AJAX<br />

El uso <strong>de</strong> las técnicas AJAX pue<strong>de</strong> conseguir <strong>en</strong>ormes b<strong>en</strong>eficios<br />

<strong>en</strong> la experi<strong>en</strong>cia <strong>de</strong> uso por parte <strong>de</strong> los usuarios <strong>de</strong> las<br />

<strong>aplicaciones</strong> <strong>web</strong>. Sin embargo, <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong> la<br />

seguridad, las <strong>aplicaciones</strong> AJAX ti<strong>en</strong><strong>en</strong> una superficie <strong>de</strong> ataque<br />

mayor que las <strong>aplicaciones</strong> <strong>web</strong> conv<strong>en</strong>cionales, a veces son<br />

<strong>de</strong>sarrolladas c<strong>en</strong>trándose más <strong>en</strong> qué se pue<strong>de</strong> hacer que <strong>en</strong><br />

qué se <strong>de</strong>bería hacer. A<strong>de</strong>más, las <strong>aplicaciones</strong> AJAX son más<br />

complicadas porque el procesami<strong>en</strong>to se realiza tanto <strong>en</strong> el lado<br />

<strong>de</strong>l cli<strong>en</strong>te como <strong>en</strong> el lado <strong>de</strong>l servidor.


“La seguridad <strong>de</strong> un sistema informático es inversam<strong>en</strong>te<br />

proporcional a la estupi<strong>de</strong>z <strong>de</strong>l administrador”


@owasp<br />

http://www.owasp.org<br />

@owasp_v<strong>en</strong><br />

http://www.owasp.org/in<strong>de</strong>x.php/v<strong>en</strong>ezuela<br />

Edgar D Salazar T<br />

@3ddavid<br />

edgar.salazar@owasp.org<br />

21


Dudas o<br />

Preguntas?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!