presentacion_nueva

Document Sample
presentacion_nueva Powered By Docstoc
					Presentación – Web Attack




                            1 | Web Attacks
- Agenda -




•   Seguridad en Aplicaciones Web
•   Protocolo HTTP
•   Vulnerabilidad XSS
•   Vulnerabilidad CSRF
•   Path Traversal
•   Null Byte
•   OS Commanding
•   Local File Inclusion
•   Remote File Inclusion
•   Information Disclosure
•   SQL Injection




                                    2 | Web Attacks
Características del Protocolo
HTTP




HTTP/1.0 definido en RFC 1945

Posee 2 métodos de mensajes:
HTTP request [browser -> server]
HTTP response [server -> cliente]

Métodos: GET, HEAD, POST.

No se mantiene el estado en HTTP.
Una conexión TCP para cada HTTP request.

HTTP/1.1 definido en RFC 2616

Métodos: GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE, CONNECT.

Encabezado “Host”: indica el nombre del servidor al cual se le realiza el pedido, permite que se
utilicen hosts virtuales.

No se mantiene el estado en HTTP.
Conexiones TCP persistentes por defecto.



                                                                                           3 | Web Attacks
  Arquitectura Web




Planteamos una arquitectura web con los siguientes elementos:
Clientes
Firewall
Cache / Load Balancer
Servidor Web
Servidor de base de datos




                                                                4 | Web Attacks
Seguridad en
Aplicaciones Web




 En el cuadro que exponemos veremos los principales ataques sobre Aplicaciones Web.




                                                                                      5 | Web Attacks
XSS Cross Site
Scripting




                 XSS Cross Site Scripting




                                            6 | Web Attacks
XSS Cross Site
Scripting



 Es un agujero de seguridad basado en la explotación de vulnerabilidades del sistema de
 validación HTML.

 Debemos saber que existe 2 tipos de métodos de un ataque XSS:

 No persistente
 Persistente

 Mediante este agujero de seguridad, podemos obtener del usuario:

 Predicción de ID de sesión.
 Robo de Cookies.
 Ejecución de código malicioso

 Como contramedida podemos utilizar “htmlspecialchars” ya que esta función
 convierte los caracteres especiales que pueden afectar a las etiquetas HTML, como
 mayor y menor qué, comillas simples y dobles y el carácter &.




                                                                                          7 | Web Attacks
XSS Cross Site
Scripting




                 Demo - No Persistente
                 XSS Cross Site Scripting




                                            8 | Web Attacks
XSS Cross Site
Scripting




                 Demo - Persistente
                 XSS Cross Site Scripting




                                            9 | Web Attacks
XSRF / CSRF Cross Site
Scripting




                         XSRF / CSRF




                                       10 | Web Attacks
XSRF / CSRF Cross Site
Scripting



 Fuerza al navegador web autenticado de una víctima a enviar una petición a una aplicación web
 vulnerable, que ejecuta la acción enviada.

 Al contrario que los ataques XSS, los cuales explotan la confianza que un usuario tiene en un
 sitio en particular, el

 CSRF explota la confianza que un sitio tiene en un usuario en particular.

 Como contramedida podemos utilizar la generación y codificación de un número aleatorio
 (token) tras el ingreso del usuario en la aplicación, que se almacena en la sesión del usuario. En
 cada formulario que se le presente al usuario se incluye un campo oculto en el que se escribe
 este token. A la recepción del formulario en el servidor se comprueba que el token se haya
 recibido y coincida con el almacenado para el usuario.




                                                                                             11 | Web Attacks
XSRF / CSRF Cross Site
Scripting




                         Demo
                         XSRF / CSRF




                                       12 | Web Attacks
Path Traversal




                 Path Traversal




                                  13 | Web Attacks
   Path Traversal




La finalidad de este ataque es ordenar a la aplicación web acceder a un archivo al que no
debería poder hacerlo o no debería ser accesible.

Path traversal también es conocido como el ../ ataque punto barra, escalado de directorios y
backtracking.

Como contramedidas podemos realizar lo siguiente:
Cuando se realiza una petición URI por un fichero/directorio, se debe construir el path completo
del fichero/directorio y normalizar todos los caracteres (ej, 20% convertido a espacios).
Asegurarse de que los primeros caracteres de un directorio correcto es exactamente el mismo
que el del documento raíz.




                                                                                            14 | Web Attacks
Path Traversal




                 Demo
                 Path Traversal




                                  15 | Web Attacks
Null Byte




            Null Byte




                        16 | Web Attacks
       Null Byte




Es una técnica de explotación que se utiliza para eludir filtros de control de sanidad sobre una
infraestructura web, mediante la adición de una URL codificada por caracteres nulos como:
“%00”.

Un byte null representa el punto de terminación de cadena, lo que significa detener el
procesamiento de su cadena posterior.

Como contramedida podemos utilizar magic_qoutes_gpc para que los caracteres: „, “, \, y los
NULL sean automáticamente marcados con una barra invertida.




                                                                                            17 | Web Attacks
Null Byte




            Demo
            Null Byte




                        18 | Web Attacks
OS Commanding




                OS Commanding




                                19 | Web Attacks
    OS Commanding




Este tipo de ataque se utiliza para la ejecución no autorizada de comandos del sistema
operativo.

Muchas veces podemos realizar este ataque ingresando “;” o “|” dependiendo del sistema
operativo en que éste alojado el servidor web.

Como contramedida podemos realizar una combinación de validación de listas blancas
(“whitelists”) de toda la información entrante y una apropiada codificación de la información
saliente.
La validación permite la detección de ataques, y la codificación previene cualquier inyección de
secuencia de comandos de ejecutarse exitosamente en el
navegador.

.




                                                                                           20 | Web Attacks
OS Commanding




                Demo
                OS Commanding




                                21 | Web Attacks
Local File Inclusion




                       Local File Inclusion




                                              22 | Web Attacks
Local File Inclusion




Es utilizada en sitios que permiten el enlace de archivos locales, debido a una mala verificación
en la programación de página, que contiene las funciones propias de PHP: include(),
include_once(), requiere(), requiere_once().

Solo existe en páginas dinámicas desarrolladas en PHP.
Como contramedida podemos recomendar los siguientes items:
Filtrar todos los parámetros que un usuario de la página pueda manejar.
Asegurarse de que no se pueda acceder a archivos más allá del "Document Root" de la página.
Procesamiento correcto del parámetro y de la función que se dedique a recuperar el contenido
del fichero que necesitemos.

.




                                                                                            23 | Web Attacks
Local File Inclusion




                       Demo
                       Local File Inclusion




                                              24 | Web Attacks
Remote File Inclusion




                        Remote File Inclusion




                                                25 | Web Attacks
Remote File Inclusion




Es utilizada en sitios que permiten el enlace de archivos remotos, debido a una mala verificación
en la programación de página, que contiene las funciones propias de PHP: include(),
include_once(), requiere(), requiere_once().

Solo existe en páginas dinámicas desarrolladas en PHP.

Como contramedida podemos recomendar los siguientes items:
Filtrar todos los parámetros que un usuario de la página pueda manejar.
Procesamiento correcto del parámetro y de la función que se dedique a recuperar el contenido
del fichero que necesitemos.
Si es posible setear la variable de PHP “allow_url_fopen” en off


.




                                                                                           26 | Web Attacks
Remote File Inclusion




                        Demo
                        Remote File Inclusion




                                                27 | Web Attacks
Information Disclosure




                         Information Disclosure




                                                  28 | Web Attacks
Information Disclosure




 Se presenta básicamente ante un error de configuración del administrador o del usuario, que
 permite ver mas contenido de lo que se debería ver.

 Esta información puede ser: Comentarios de los desarrolladores, acceso a la configuración del
 servidor.

 Como contramedida podemos utilizar mensajes de error genéricos, en los cuales no se divulgue
 información interna.

 Analizar la factibilidad de remover todas las páginas y/o componentes por defecto creados al
 momento de la instalación del servidor Web.


 .




                                                                                          29 | Web Attacks
Information Disclosure




                         Demo
                         Information Disclosure




                                                  30 | Web Attacks
SQL Injection




                SQL Injection




                                31 | Web Attacks
     SQL Injection




Es una técnica usada para la inyección de datos en una consulta SQL desde un cliente de la
aplicación.

El éxito en una inyección SQL puede leer datos sensibles de la base de datos, modificar los
datos (insertar/actualizar/borrar), realizar operaciones de administración sobre la base de datos.

Cuando la respuesta no esta directamente impresa en el HTML denominamos el ataque como
BLIND SQL Injection.

Como contramedidas podemos recomendar los siguientes items:
Verifique el formato de los datos de entrada y, en particular, si hay caracteres especiales.

Ocultar mensajes de error explícitos que muestren la consulta o parte de la consulta de SQL.

Mantenga al mínimo los privilegios de las cuentas que se usan;

Es recomendable utilizar prepared statements para todos los comandos
SQL.




.
                                                                                               32 | Web Attacks
SQL Injection




                Demo
                SQL Injection




                                33 | Web Attacks
Blind SQL Injection




                      Demo
                      Blind SQL Injection




                                            34 | Web Attacks
 - Referencias -




http://www.owasp.org
http://www.clubdelprogramador.com.ar
http://proyects.webappsec.org
http://www.google.com.ar




                                       35 | Web Attacks
- Final -




 Preguntas?
        @artsweb




                   36 | Web Attacks

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:5
posted:9/24/2011
language:Spanish
pages:36