Вы находитесь на странице: 1из 35

OWASP

Open Web Application Security Project

“¿Seguro que estás Seguro?”

Alan Márquez Escorcia Rafael Castellar Del Valle


alanmarquez@outlook.com cun@gmail.com

23/Oct/2017
Contenido
1. Introducción
1.1 ¿Qué es OWASP?
1.2 ¿Qué ofrece OWASP?

2. Guía de pruebas de Penetración


2.1 ¿Que es probar?
2.2 ¿Por qué realizar pruebas?
2.3 ¿Qué se prueba?

3. Comprender el ámbito de seguridad

4. Pruebas de Seguridad de Aplicaciones Web

5. Cómo Reportar
2
¿Qué es OWASP?

 OWASP (Open Web Application Security Project)

 Inicio en el año 2001

 Formada por voluntarios alrededor del mundo

3
¿Qué ofrece
OWASP?
• Documentación

• Herramientas

• Aplicaciones Web deliberadamente


inseguras

• Eventos/Foros
Documentación
La guía de desarrollo
• Uno de los primeros documentos de
OWASP, publicado en el 2005.

• Buenas practicas de desarrollo


seguro para aplicaciones web.

• Desde la infraestructura, hasta los


punto de quiebre mas frecuentes en
una aplicación.

5
Documentación
La guía de revisión del código

• La guía de Revisión de Código se inició en 2006.

• esta guía no cubre todos los idiomas; se centra


principalmente en .NET y Java, pero tiene un poco
de C / C ++ y PHP

6
Documentación
La guía de pruebas
• 87 Puntos de control a tener en cuenta tanto
en el desarrollo como en la revisión de
seguridad en 11 categorías distintas.

7
Documentación
Top 10 de vulnerabilidades web
• Es una lista de los 10 problemas
de seguridad web más frecuentes
detectados por OWASP.

8
Herramientas

ZED ATTACK PROXY


OFENSIVE WEB TESTING FRAMEWORK DIRBUSTER

ENTERPRISE SECURITY API

9
Aplicaciones Web deliberadamente
inseguras

10
Pruebas de Seguridad
de Aplicaciones Web

¿Que es probar?

¿Por qué realizar pruebas?

¿Qué se prueba?

11
¿Que es probar?
“Busca asegurar que el sistema funciona de acuerdo con las especificaciones y que el
módulo lógico es válido; comparando el resultado esperado con el resultado obtenido”.
Roger S. Pressman

“Un procedimiento con el cual verificamos el resultado de la implementación,


probando cada construcción, incluyendo tanto construcciones intermedias, así como
las versiones finales del sistema.”
Ian Sommerville

“Es un proceso de comparar el estado de un sistema o una aplicación contra un


conjunto de criterios”.
GUIAS OWASP

12
¿Por qué realizar pruebas?

• Cuestionar todo, no asumir nada y validar con


pruebas empíricas.

• Evitar problemas críticos para los usuarios y


mas específicamente a las empresas quienes
serán perjudicadas en su negocio.

• Mejora el control de servicios y la mejora


continua de productividad.

• Aseguramiento de la calidad.

13
¿Qué se prueba?

“Si en uno de los casos de prueba se detecta un error el


programa es incorrecto, pero si en ninguno de los casos de
prueba seleccionados encuentra un error no podemos decir
que el programa es perfecto. Esos casos de prueba son
elegidos siguiendo alguna regla o criterio de selección”.

-Dijkstra

14
Comprender el ámbito
de seguridad
Entender el tema:

-Inspecciones y Revisiones Manuales

-Modelado de Amenazas

-Revisión de Código

15
Comprender el ámbito
de seguridad

16
Comprender el ámbito
de seguridad
Utilizar la herramientas correctas:

-Pruebas automatizadas

Desarrollar la mentalidad correcta:

-Pensar estratégicamente, no tácticamente

17
Casos de pruebas de Seguridad de
Aplicaciones Web

• Pruebas de enumeración de cuentas y adivinanza de cuentas de usuario (OTGIDENT-004)

• Pruebas de las credenciales por defecto (OTG-AUTHN-002)

• Pruebas para eludir el esquema de autenticación (OTG-AUTHN-004)

• Pruebas de la validación de datos de la lógica del negocio (OTG-BUSLOGIC-001)

• Prueba de la posibilidad de carga de tipos de archivos inesperados (OTG-BUSLOGIC-008)

• Prueba para cambios de clave débil o funcionalidades de reinicio. (OTG-AUTHN-009)

18
Pruebas de enumeración de cuentas y adivinanza de cuentas de usuario
(OTGIDENT-004)

Summary

La visión de esta prueba es verificar si es posible reunir un conjunto de


nombres válidos de usuario interactuando con el mecanismo de
autenticación de la aplicación. Esta prueba será útil para las pruebas de
fuerza bruta, en las que el evaluador verifica si, dado un nombre de
usuario válido, es posible encontrar la contraseña correspondiente.

Cómo probar

• Adivinanza de usuarios

• Sondeo de una URI

19
Soluciones:
• Número predefinido de intentos fallidos (basado en
las políticas de la aplicación).

• Captchas.

• Bloqueo de IP para prevención de intrusión.

• Desactivación de la cuenta.

20
Pruebas de las credenciales por defecto (OTG-AUTHN-002)

Summary

En la actualidad, las aplicaciones web a menudo hacen uso de software popular de


código abierto o comercial que puede ser instalado en servidores con configuración
mínima para la administrador del servidor.

Cómo probar

• Pruebas de las credenciales por defecto de aplicaciones comunes.

• Prueba de las contraseñas por defecto en cuentas nuevas.

21
Soluciones:
• No dejar las configuraciones mínimas.

• Tiempo de expiración para contraseñas por defecto.

• Generar contraseñas no tan predecibles.

22
Pruebas para eludir el esquema de autenticación (OTG-AUTHN-004)

Summary

Mientras que la mayoría de las aplicaciones requieren autenticación para tener acceso a
información privada o para ejecutar las tareas, no todos los métodos de autenticación son
capaces de proporcionar una seguridad adecuada. La negligencia, ignorancia o una simple
subvaloración de las amenazas de seguridad.

Cómo probar

• Solicitud de página directa (navegación forzada)

• Predicción de sesión ID

• Inyección de SQL
23
Soluciones:
• Comprobar las credenciales del usuario antes de
conceder el acceso.

• Generar tokens aleatorios para cada inicio de


sesión.

• Realizar filtros de caracteres sensibles a una


consulta SQL.

• Realizar consultas preparadas antes de enviar los


datos a la base de datos.

• Ocultar detalle del error.


24
Pruebas de la validación de datos de la lógica del negocio (OTG-BUSLOGIC-001)

Summary

Considere las reglas para la función del negocio que proporciona la aplicación. ¿Existen
límites o restricciones en el comportamiento de las personas? Entonces considere si la
aplicación hace cumplir esas normas.

Como evaluador, entonces va a tener que usar su sentido común y


preguntar al negocio si las diferentes operaciones se deben permitir por
parte de la aplicación.

25
Prueba de la posibilidad de carga de tipos de archivos inesperados (OTG-
BUSLOGIC-008)

Summary

En la prueba de carga de tipos de archivos inesperados, verificamos que la aplicación no


permita a los usuarios cargar tipos de archivos que el sistema no espera o requiera de
acuerdo a la lógica del negocio.

Esto es importante ya que, sin esta protección, los atacantes pueden ser capaces de enviar
archivos inesperados tales como .exe o .php que se guardan en el sistema y luego se
ejecutan contra el sistema o aplicación.

26
Prueba para cambios de clave débil o funcionalidades de reinicio. (OTG-AUTHN-
009)

Summary

El cambio de contraseña y la función de restablecimiento de una aplicación es un


autoservicio de cambio de contraseña o un mecanismo de restablecimiento para los
usuarios. Este mecanismo de autoservicio permite a los usuarios cambiar o restablecer
rápidamente la contraseña sin que un administrador intervenga. Cuando se cambian las
contraseñas se cambian típicamente dentro de la aplicación. Cuando las contraseñas se
restablecen son presentadas dentro de la aplicación o por correo electrónico al usuario.

Cómo probar
• Pruebe el reinicio de contraseña.

27
Soluciones:
• La mejor seguridad se logra si las contraseñas se generan
aleatoriamente con un algoritmo seguro.

• Establecer políticas para el cambio de contraseña.

28
Cómo Reportar
• Resumen Ejecutivo

• Parámetros de prueba

• Resultados

29
Resumen Ejecutivo
Es necesario documentar todos los resultados obtenidos en cada fase, para tener soportes
de las labores realizadas y a su vez la respectiva justificación de los resultados finales.

El resumen ejecutivo compendia los resultados generales


de la evaluación y ofrece a los administradores de
negocios y propietarios de sistemas una vista de alto
nivel de las vulnerabilidades descubiertas.

También debe tenerse en cuenta el lenguaje utilizado,


debe ser mas adecuado para las personas que no esta n al
tanto de la tecnología y debe incluir gráficos o diagramas
que muestren el nivel de riesgo.

30
Parámetros de prueba
Se debe describir los para metros de las pruebas de seguridad, los hallazgos y la remediación.
Algunos títulos de las secciones sugeridas incluyen:

Objetivo del proyecto: En esta sección se describen los objetivos del


proyecto y los resultados esperados de la evaluación.
Alcance del proyecto: En esta sección se describe el alcance acordado.
Planificación del proyecto: Esta sección muestra cuando la prueba
inicio y termino .
Objetivos: Esta sección muestra el numero de aplicaciones o sistemas
específicos.
Limitaciones: Esta sección describe todas las limitaciones que se enfrentaron
a lo largo de la evaluación.
Resumen de resultados: En esta sección se describen las vulnerabilidades
que se descubrieron durante la prueba.
Resumen de remediación: En esta sección se describe el plan de acción para
resolver las vulnerabilidades que se descubrieron durante la prueba.
31
Resultados
La ultima sección del informe incluye información técnica detallada acerca de las
vulnerabilidades detectadas y las acciones necesarias para resolverlas.

Esta sección esta dirigida a un nivel técnico y debe incluir toda la información
necesaria para que los equipos técnicos puedan comprender el problema y resolverlo.

32
Bibliografía
https://www.owasp.org/images/1/19/OTGv4.pdf

https://www.owasp.org/index.php/OWASP_Vulnerable_Web_Applications_Directory_Project/Pages/
Offline

https://www.dragonjar.org/que-es-owasp-open-web-application-security-project.xhtml

https://www.genbetadev.com/seguridad-informatica/owasp-creando-aplicaciones-seguras

33
🎃
Thanks! 👍
Any questions?

34
Credits

35

Вам также может понравиться