SlideShare una empresa de Scribd logo
1 de 106
HABLEMOS DE SEGURIDAD
INTRODUCCIÓN
Introducción - Objetivos
Poner a prueba los mecanismos de seguridad de la
aplicación y su adecuación con estándares y buenas
prácticas de seguridad.
Disminuir la cantidad de vulnerabilidades de seguridad
que llegan a producción.
¿Por qué en testing?
• Incorporar otro nivel de seguridad en etapas
tempranas.
• Si llega a Producción, ya es demasiado tarde.
• Cuanto antes se detecte, menor será el costo de arreglo
• La seguridad no es solo tarea de hackers
¿Por qué en testing?
• Está relacionado con el testing funcional de la aplicación (conocido
por el tester).
• Se tiene acceso a la documentación y características del sistema
fácilmente.
• Se tiene un mayor conocimiento de la aplicación.
• Se realizar de forma controlada en ambientes de test y pre-
producción.
¿Cómo lo haremos?
Incorporando:
• Test funcional de seguridad como una actividad dentro
del ciclo de testing en mis aplicaciones
Pruebas de abuso
Pruebas de abuso
• Utilizar las funcionalidades de la aplicación de una
manera no pensada.
• Se busca manipular las reglas de negocio, para
obtener un beneficio.
• Explotar controles deficientes y cursos alternativos no
pensados.
Consideraciones
• No es un test de seguridad completo.
– Se enfoca únicamente en las funcionalidades
• No suplanta a un test de penetración.
– El test de penetración es otra barrera de seguridad necesaria
Organización del seminario
En este taller vamos a:
• Debatir sobre aspectos de seguridad
• Mostrar casos de abuso sobre una aplicación web y ejemplos de
posibles vulnerabilidades
• Brindar recomendaciones y buenas prácticas de seguridad para
nuestras aplicaciones
Tabla de contenido
Manejo de
Sesiones
Lógica de
Negocio
Control de
Acceso
Despliegue
Manejo de Sesiones
Manejo de sesiones
Inicio de sesión
Gestión de contraseñas
Actualización de los datos Gestión de la sesión
Inicio de Sesión
Mecanismo por el cual el sistema valida que la entidad es
quien dice ser.
Distintas formas:
– Algo que conozco - Usuario / Password
– Algo que poseo - Certificado Digital / Access Key
– Algo que soy - Biometría
Inicio de Sesión - Buenas prácticas
Nombres de usuario no deben diferenciar mayúsculas y
minúsculas.
Inicio de Sesión - Buenas prácticas
Evitar enumeración de usuarios
¿Qué deduzco de estos dos mensajes?
Inicio de Sesión - Buenas prácticas
Inicio de Sesión - Buenas prácticas
Evitar este tipo de mensajes:
"Login for User failed: invalid password"
"Login failed, invalid user ID"
"Login failed; account disabled"
"Login failed; this user is not active"
Inicio de Sesión - Buenas prácticas
Bloquear usuarios tras varios intentos fallidos.
– Bloquear temporalmente la cuenta
• Tiempos incrementales (20 seg, 1 min, 5 min)
– Bloquear la sesión si continúan los intentos.
– Agregar Captcha en la pantalla tras varios intentos del
usuario.
– Estos controles deben estar del lado del servidor.
Inicio de Sesión - Buenas prácticas
Mantener un log de cada intento de autenticación
fallida.
– Almacenando:
• IP Origen
• Usuario utilizado
• Resultado
Inicio de Sesión - Buenas prácticas
Evitar credenciales por parámetro y credenciales en texto
claro.
Inicio de Sesión
DEMO
Inicio de sesión forzoso
- Evitar enumeración de usuarios
- Bloquear tras n intentos fallidos
- Realizar controles en el servidor
Gestión de las contraseñas
Fortaleza de las contraseñas:
• Una contraseña se considera fuerte cuando es difícil de
adivinar por medio de un atacante.
• Deben estar alineada a los requerimientos del
proyecto/sistema.
Gestión de las contraseñas
Fortaleza de las contraseñas
– Largo (mínimo y máximo)
– Juegos de caracteres (a-z,A-Z,0-9, especiales)
– Periodo de validez
– Histórico
– Etc.
Gestión de las contraseñas
Recuperación de la contraseña
• Enviar un token utilizando otro canal.
– E-mail, sms, etc.
– Válido por única vez, por cierto tiempo.
• Cambio de la contraseña o creación de una nueva no predecible.
– La contraseña no debe ser recuperable.
Gestión de las contraseñas
Recuperación de la contraseña
• No bloquear el login del usuario.
• Bloquear la sesión web tras varios intentos fallidos.
• No pedir nuevo email.
– Enviar al mail que tiene registrado el usuario.
Gestión de las contraseñas
Recuperación de la contraseña
• Evitar el uso de las Preguntas Secretas.
– Actualmente son muy fáciles de obtener
– Información del usuario:
• Redes sociales
• Página de la empresa
• Ingeniería Social
Gestión de las contraseñas
DEMO
Recuperación de la contraseña:
Si es posible adivinar una preguntas secretas, entonces
no es segura!
“Equipo favorito de futbol”
“Ciudad de Nacimiento”
“Apellido de la madre”
“Nombre de la primer mascota”
Gestión de las contraseñas
Actualización de los datos – Buenas practicas
Siempre se debe pedir contraseña para confirmar cambios de:
– Username
– E-mail
– Password
Ya que son utilizados para:
– Iniciar sesión.
– Recuperar contraseña.
– Notificar los cambios.
Actualización de los datos – Buenas practicas
Notificar dicho cambio al usuario:
– Email (original)
– Sms
– Llamada
Gestión de la sesión.
• Proceso por el cual el servidor conserva el estado de una entidad
con la cual está interactuando.
• Almacenadas en el servidor utilizando un identificador de sesión,
que deben ser únicos por usuario y difíciles de predecir.
• Enviado entre el cliente y el servidor en cada pedido y respuesta.
Gestión de la sesión.
Gestión de la sesión.
Evitar fijación de
sesión
Gestión de la sesión.
Cierre de sesión:
– Logout: Manual al salir del sistema
– Expiración: Automática, luego de un tiempo determinado de
inactividad.
– Destruir sesión en el servidor
Gestión de la sesión.
DEMO
Cierre de sesión: Logout manual
Verificar mecanismos de destrucción de sesiones, si estos
Faltan/Fallan la sesión puede no cerrarse y permitir que otros
usuarios operen bajo mi sesión.
Gestión de la sesión.
Gestión de la sesión.
Gestión de la sesión.
DEMO
Cierre de sesión: Robo de sesión
Ingresar con la misma sesión de un usuario autenticado,
aunque haya cerrado sesión.
LÓGICA DE NEGOCIO
https://www.owasp.org/index.php/Testing_for_business_logic#Business_Logic_Test_Cases
Lógica de Negocio - Definición
• Son las reglas mediante las cuales se rige el sistema.
• Conformado por las funcionalidades del sistema.
• Es única para cada aplicación.
• Documentada en casos de uso.
Lógica de Negocio - Explotación
Se necesita pensar diferente
– Fuera del uso convencional del sistema
– Utilizar la creatividad y experiencia
Es un trabajo manual
– Difícil de automatizar
– Requiere conocer el sistema, sus reglas y procedimientos de
negocio (Documentación)
Lógica de Negocio - Atacante
¿Qué busca un atacante?
• Intentar explotar la lógica del negocio
• Obtener ventajas/beneficios extras
• Aprovechar funcionalidades/controles deficientes
Lógica de Negocio - ¿Qué hacer?
• Debemos pensar como un atacante
• Conocer el software y sus características
• Detectar posibles puntos de vulnerabilidad
• Verificarlos ejecutando casos de mal uso o abuso del
software
Lógica de Negocio
1. Validación de datos de la lógica de negocio
2. Capacidad para manipular solicitudes
3. Controles de integridad
4. Timing de procesos
5. Limitar uso de funciones (cantidad)
6. Evasión de flujo normal de trabajo
7. Carga de archivos no esperados y/o maliciosos
Lógica de Negocio
Validaciones de datos de la lógica de negocio
– El sistema no debe “confiar” en los datos que recibe, un atacante puede
insertar datos lógicamente inválidos
– Los datos pueden ser manipulados durante el proceso
• Etapas de un workflow
• Puntos de comunicación con otros sistemas
• Tráfico HTTP
– Deben existir mecanismos que validen estos datos.
Lógica de Negocio
Validaciones de datos de la lógica de negocio
– Con solo verificar los datos en el cliente no es suficiente,
se puede interceptar el tráfico y enviar datos lógicamente
inválidos
Lógica de Negocio
Ej.: Validaciones de datos de la lógica de negocio
Sub-sistema de
Compras
Sub-sistema de
Despacho
Lógica de Negocio
Validaciones de datos de la lógica de negocio
¿Como probar?
• Detectar los puntos de entrada o comunicación del sistema.
• Realizar un testeo exploratorio ingresando o modificando datos
lógicamente inválidos en el sistema:
– Utilizando la UI.
– Capturando y modificando el tráfico HTTP.
• También revisar comunicación entre sistemas.
Lógica de Negocio - Verificación
DEMO
Validaciones de los datos
Realizar una transferencia con otro tipo de moneda
Lógica de Negocio - Verificación
DEMO
Validaciones de los datos
Realizar una transferencia con saldos negativos
- 1000
Lógica de Negocio
Capacidad para moldear solicitudes
– El atacante puede saltear la GUI y enviar información directamente al
servidor.
– Mediante un proxy se envían peticiones HTTP POST/GET con valores
inválidos para la lógica de negocio
– Incompatibles, no soportados, no esperados
– Se busca poder predecir o adivinar parámetros
– Exponer funcionalidades o pantallas ocultas del sistema.
Lógica de Negocio
• Ej.: Capacidad para moldear solicitudes
PurchaseTicket?newUser=1
10% off
PurchaseTicket?newUser=0
10% off
PurchaseTicket?newUser=1
Lógica de Negocio
Capacidad para moldear solicitudes
¿Qué debe hacer el sistema?
• Contar con chequeos lógicos en los lugares clave para prevenir que se
acepten este tipo de peticiones.
• Bloquear peticiones que no provengan de un usuario verificado
• Evitar que el sistema delate su propia estructura
Lógica de Negocio
Capacidad para moldear solicitudes
¿Como probar?
• Revisar en busca de funcionalidades y campos que puedan ser
predecibles o estar ocultos.
• Observar el tráfico HTTP en busca de valores que sean predecibles o
adivinables (autoincrementales, etc).
• Observar el tráfico HTTP en busca de funcionalidades ocultas como
pantallas de desarrollo o testeo.
Lógica de Negocio
DEMO
Capacidad para moldear solicitudes
Consultar estado de cuenta de otros usuarios, cambiando la
información que viaja en la URL.
-
Mediante un proxy, buscar código comentado y acceder a un objeto
de test.
Lógica de Negocio
Controles de integridad
– Los campos ocultos o no editables que muestran información
al usuario, pueden ser manipulados en el cliente.
– El sistema no debe confiar en que estos valores no serán
alterados por un usuario.
Lógica de Negocio
Controles de integridad
– Si se expone información de negocio al usuario (cantidades,
precios, stock, etc.) , se debe mantener una copia en el servidor
y utilizarla para los procesos.
– Los procesos o funcionalidades no deben depender de estos
valores ocultos o no editables.
Lógica de Negocio
Controles de integridad
– ¿Como probar?
• Buscar componentes que manipulen o actualicen información.
• Revisar el tráfico HTTP en busca de campos ocultos o no editables.
• Intentar modificar dicha información con valores inválidos.
Lógica de Negocio
Controles de integridad - Recomendación
GUI
Controles
Canal de comunicación
Cliente
Lógica de Negocio
DEMO
Controles de integridad
Reducir el porcentaje de recargo de un prestamos,
manipulando la taza de recargo del mismo (GUI).
Lógica de Negocio
Timing de procesos
• Identificar funcionalidades del sistema que puedan ser afectadas
por el transcurso del tiempo.
• Obtener ventajas basadas en el tiempo de operación con el
sistema.
– Precios variantes en el correr del día
– Bloquear temporalmente otros usuarios
Lógica de Negocio
Ej.: Timing de procesos
Lógica de Negocio
Ej.: Timing de procesos
10:00
Price: 100
15:00
Price: 150
20:00
Price: 200
Lógica de Negocio
DEMO 9 - Timing de procesos
PENDIENTE
Lógica de Negocio
Limitar uso de funciones (cantidad)
– Normalmente los sistemas poseen funciones u operaciones
que deben tener un control sobre la cantidad de veces que se
utiliza.
– Si estos controles no se implementan correctamente, un
usuario mal intencionado podría abusar de algún activo u
operación en el sistema.
Lógica de Negocio
Ej.: Limitar uso de funciones (cantidad)
– Reutilizar un descuento.
– Confirmar varias veces una acción.
– Cambiar o Forzar contraseñas.
Lógica de Negocio
Limitar uso de funciones (cantidad)
– ¿Como probar?
– Identificar las funciones u operaciones que no deberían ser
ejecutadas más de una cierta cantidad de veces.
– Intentar ejecutarlas más de la cantidad de veces permitidas,
mediante browser o tráfico http.
Lógica de Negocio
Limitar uso de funciones (cantidad)
– ¿Como probar?
Ej.: Luego de obtener un “premio”, navegar hacia atrás y
volver a intentarlo.
Ej.: Abrir varias ventanas iguales y realizar la misma
operación en paralelo.
Lógica de Negocio
Demo
Limitar uso de funciones (cantidad)
Sobre utilizar un descuento de “primera compra” para
siempre obtener el beneficio.
Lógica de Negocio
Evasión del flujo normal de trabajo
– ¿Que es?
– Permite al atacante eludir el flujo normal o esperado de
trabajo.
– No seguir la secuencia normal de operaciones.
Lógica de Negocio
Ej.: Evasión del flujo normal de trabajo
– Saltear algún paso del flujo de trabajo donde no se cuenten
con mecanismos de control que dirijan las operaciones hacia
el orden correcto.
Lógica de Negocio
Evasión del flujo normal de trabajo
– ¿Como probar?
– Saltear o ejecutar ciertos pasos de la aplicación en un orden
no deseado del flujo lógico.
– Forzar una acción que no es la esperada en esa etapa del
proceso.
Lógica de Negocio
Evasión del flujo normal de trabajo
– ¿Como probar?
– Identificar aquellas transacciones en las cuales se maneje
algún activo como puntos o créditos. Cancelar o reducir la
oferta final de cada transacción y verificar que los
puntos/créditos se ajusten correctamente.
Lógica de Negocio
Evasión del flujo normal de trabajo
– ¿Como probar?
– Para cada formulario, introducir valores iniciales válidos en
sus campos. Posteriormente intentar editar o eliminar dichos
valores dejando los mismos en un estado inválido y confirmar.
Lógica de Negocio
DEMO
Evasión del flujo normal de trabajo
Aceptar un préstamo que aún no fue aprobado.
Lógica de Negocio
Carga de archivos no esperados y/o maliciosos
– ¿Que es?
– Verificar cualquier funcionalidad de subida de archivos para
el usuario.
– Al igual que con los datos, el sistema no debe confiar nunca
en estos archivos.
Lógica de Negocio
Carga de archivos no esperados y/o maliciosos
– ¿Qué puede ocurrir?
• Un archivo no esperado y trancar la ejecución.
• Un archivo para explotar luego con otra vulnerabilidad (página web,
javascript, .exe)
• Un archivo que al ser parseado/ejecutado realiza acciones indebidas.
Lógica de Negocio
Ej.: Carga de archivos no esperados y/o maliciosos
Lógica de Negocio
Carga de archivos no esperados y/o maliciosos
– ¿Como probar?
– Ubicar las funcionalidades en las que un usuario puede realizar
la subida de un archivo.
– Diferentes tipos de archivos, archivos maliciosos, múltiples
archivos
Lógica de Negocio
Carga de archivos no esperados y/o maliciosos
– ¿Como probar?
– Mantener una lista de archivos aceptables y comparar siempre
contra ella.
– Realizar la subida de archivos indebidos.
– Verificar que los mecanismos de validación prevengan la carga.
Lógica de Negocio - Verificación
DEMO
Carga de archivos no esperados y/o maliciosos
CONTROL DE ACCESO - ROLES / PERMISOS
Control de Acceso
• Es el control selectivo y restrictivo a un recurso.
• La aplicación funciona correctamente.
• Probar quién lo puede hacer.
Control de Acceso
1. Ausencia de control de acceso a funciones.
2. Exposición de datos sensibles.
3. Referencia directa insegura a objetos.
Control de Acceso
Ausencia de control de acceso a funciones.
– ¿Qué es?
– Un usuario obtiene acceso a funciones privilegiadas que no
debería.
– Se realiza el control de acceso en la interfaz de usuario, pero
no, en la ejecución la acción.
Control de Acceso
Ausencia de control de acceso a funciones.
– ¿Como probar?
– La interfaz de usuario la controla el navegador.
– Se debe buscar:
• Botones deshabilitados.
• Botones ocultos.
• Links ocultos.
Control de Acceso
DEMO
Ausencia de control de acceso a funciones.
Aprobarse un préstamo, habilitando un botón en la GUI.
Control de Acceso
Exposición de datos sensibles.
– ¿Qué es?
– Cierta información puede ser considerada sensible.
• Datos personales, información financiera o laboral.
– Depende de la industria y las regulaciones
gubernamentales.
Control de Acceso
Exposición de datos sensibles.
¿Como probar?
Almacenamiento: Logs, archivos intermedios.
– Interfaz: información sensible puede ser enviada al navegador y
estar oculta: Hidden, display = None, etc.
• Cachés intermedios y del navegador:
– chrome://cache o about:cache
Control de Acceso
DEMO
Exposición de datos sensibles.
Inspeccionar las transferencias y visualizar el saldo de una
cuenta de terceros.
Control de Acceso
Referencia directa insegura a objetos.
– ¿Qué es?
– Exposición de una referencia a un objeto de implementación
interno sin verificar control de acceso
• Archivo, Carpeta, Base de Datos
– Un atacante pueden manipular estas referencias para acceder a
datos no autorizados
Control de Acceso
DEMO
Referencia directa insegura a objetos.
Ingresar a un estado de cuenta cambiando los
parámetros en la URL
DESPLIEGUE
Despliegue
Configuración de seguridad incorrecta:
– Configurar correctamente los Usuarios, roles y permisos que el
sistema tendrá en Producción.
– Revisar y depurar:
• Objetos y roles creados en test.
• Objetos no utilizados u obsoletos (Developer Menu, Objetos viejos, etc.
– Optar por un tráfico HTTPS y URL cifradas
Despliegue
DEMO
Configuración de seguridad incorrecta
Acceder a objetos de desarrollo/test que no se
depuraron en producción.
Referencias
•OWASP - Testing guide 4.0
https://www.owasp.org/images/5/52/OWASP_Testing_Guide_v4.pdf
•OWASP - Testing for business logic
https://www.owasp.org/index.php/Testing_for_business_logic
•OWASP - Authentication Cheat Sheet Español
https://www.owasp.org/index.php/Authentication_Cheat_Sheet_Español
•OWASP - TOP 10
https://www.owasp.org/index.php/Top_10_2013-Top_10
•Symantec - Internet Security Threat Report
https://www.symantec.com/content/dam/symantec/docs/reports/istr-22-2017-en.pdf
¿Preguntas?
Marcos Manicera
mmanicera@qalified.com
@marcosmanicera
Gaston Marichal
gmarichal@qalified.com
@gamarichal

Más contenido relacionado

Similar a Argentesting 2018 - Incorporando seguridad a las tareas de testing

Webinar - Seguridad en WordPress
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPressArsys
 
0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xusGeneXus
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
Auditoria sistemas utp_2016_1_-_semana_1__27833__
Auditoria sistemas utp_2016_1_-_semana_1__27833__Auditoria sistemas utp_2016_1_-_semana_1__27833__
Auditoria sistemas utp_2016_1_-_semana_1__27833__Hernan Alarcon
 
CICLO DE VIDA DE SISTEMAS.pptx
CICLO DE VIDA DE SISTEMAS.pptxCICLO DE VIDA DE SISTEMAS.pptx
CICLO DE VIDA DE SISTEMAS.pptxWilverHancco2
 
Incorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
Incorporando la Seguridad de la Información en el Desarrollo de AplicacionesIncorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
Incorporando la Seguridad de la Información en el Desarrollo de AplicacionesSoftware Guru
 
Recomendaciones adm windows
Recomendaciones adm windowsRecomendaciones adm windows
Recomendaciones adm windowsHenry Candelario
 
Colegio de estudios científicos y tecnologicosdel estado de
Colegio de  estudios científicos y tecnologicosdel estado deColegio de  estudios científicos y tecnologicosdel estado de
Colegio de estudios científicos y tecnologicosdel estado deAdriana Davila
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptrogergrefa1
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017superserch
 

Similar a Argentesting 2018 - Incorporando seguridad a las tareas de testing (20)

Webinar - Seguridad en WordPress
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPress
 
admon-win-overview.pptx
admon-win-overview.pptxadmon-win-overview.pptx
admon-win-overview.pptx
 
0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus0150 como desarrollar_aplicaciones_seguras_con_gene_xus
0150 como desarrollar_aplicaciones_seguras_con_gene_xus
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
Campus Party 2019 - Programando el testing
Campus Party 2019 - Programando el testing Campus Party 2019 - Programando el testing
Campus Party 2019 - Programando el testing
 
Auditoria de-sistemas
Auditoria de-sistemasAuditoria de-sistemas
Auditoria de-sistemas
 
Auditoria sistemas utp_2016_1_-_semana_1__27833__
Auditoria sistemas utp_2016_1_-_semana_1__27833__Auditoria sistemas utp_2016_1_-_semana_1__27833__
Auditoria sistemas utp_2016_1_-_semana_1__27833__
 
CICLO DE VIDA DE SISTEMAS.pptx
CICLO DE VIDA DE SISTEMAS.pptxCICLO DE VIDA DE SISTEMAS.pptx
CICLO DE VIDA DE SISTEMAS.pptx
 
Incorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
Incorporando la Seguridad de la Información en el Desarrollo de AplicacionesIncorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
Incorporando la Seguridad de la Información en el Desarrollo de Aplicaciones
 
Recomendaciones adm windows
Recomendaciones adm windowsRecomendaciones adm windows
Recomendaciones adm windows
 
Colegio de estudios científicos y tecnologicosdel estado de
Colegio de  estudios científicos y tecnologicosdel estado deColegio de  estudios científicos y tecnologicosdel estado de
Colegio de estudios científicos y tecnologicosdel estado de
 
Active Directory  Gestión y generación de informes ADManager Plus
Active Directory  Gestión y generación de informes ADManager Plus Active Directory  Gestión y generación de informes ADManager Plus
Active Directory  Gestión y generación de informes ADManager Plus
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
 
S8-CDSQA.pptx
S8-CDSQA.pptxS8-CDSQA.pptx
S8-CDSQA.pptx
 
10 Principales Controles Proactivos de OWASP
10 Principales Controles Proactivos de OWASP 10 Principales Controles Proactivos de OWASP
10 Principales Controles Proactivos de OWASP
 
OWASP Top 10 2017
OWASP Top 10 2017OWASP Top 10 2017
OWASP Top 10 2017
 
Temas teóricos
Temas teóricos Temas teóricos
Temas teóricos
 
Prueba de esto
Prueba de estoPrueba de esto
Prueba de esto
 
¿Tu identidad está a salvo?
¿Tu identidad está a salvo?¿Tu identidad está a salvo?
¿Tu identidad está a salvo?
 
Cuentas de usuario
Cuentas de usuarioCuentas de usuario
Cuentas de usuario
 

Más de Argentesting

Análisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadAnálisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadArgentesting
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting
 
Argentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting
 
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting
 
Argentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting
 
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting
 
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting
 
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting
 
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting
 
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting
 
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting
 
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting
 

Más de Argentesting (20)

Análisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadAnálisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridad
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatización
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágil
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando selenium
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOps
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimo
 
Argentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to end
 
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
 
Argentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesiones
 
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOps
 
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
 
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
 
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
 
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
 
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
 
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósito
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (19)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Argentesting 2018 - Incorporando seguridad a las tareas de testing

  • 1.
  • 2.
  • 4.
  • 5.
  • 6.
  • 7.
  • 9. Introducción - Objetivos Poner a prueba los mecanismos de seguridad de la aplicación y su adecuación con estándares y buenas prácticas de seguridad. Disminuir la cantidad de vulnerabilidades de seguridad que llegan a producción.
  • 10.
  • 11. ¿Por qué en testing? • Incorporar otro nivel de seguridad en etapas tempranas. • Si llega a Producción, ya es demasiado tarde. • Cuanto antes se detecte, menor será el costo de arreglo • La seguridad no es solo tarea de hackers
  • 12. ¿Por qué en testing? • Está relacionado con el testing funcional de la aplicación (conocido por el tester). • Se tiene acceso a la documentación y características del sistema fácilmente. • Se tiene un mayor conocimiento de la aplicación. • Se realizar de forma controlada en ambientes de test y pre- producción.
  • 13. ¿Cómo lo haremos? Incorporando: • Test funcional de seguridad como una actividad dentro del ciclo de testing en mis aplicaciones Pruebas de abuso
  • 14. Pruebas de abuso • Utilizar las funcionalidades de la aplicación de una manera no pensada. • Se busca manipular las reglas de negocio, para obtener un beneficio. • Explotar controles deficientes y cursos alternativos no pensados.
  • 15. Consideraciones • No es un test de seguridad completo. – Se enfoca únicamente en las funcionalidades • No suplanta a un test de penetración. – El test de penetración es otra barrera de seguridad necesaria
  • 16. Organización del seminario En este taller vamos a: • Debatir sobre aspectos de seguridad • Mostrar casos de abuso sobre una aplicación web y ejemplos de posibles vulnerabilidades • Brindar recomendaciones y buenas prácticas de seguridad para nuestras aplicaciones
  • 17. Tabla de contenido Manejo de Sesiones Lógica de Negocio Control de Acceso Despliegue
  • 19. Manejo de sesiones Inicio de sesión Gestión de contraseñas Actualización de los datos Gestión de la sesión
  • 20. Inicio de Sesión Mecanismo por el cual el sistema valida que la entidad es quien dice ser. Distintas formas: – Algo que conozco - Usuario / Password – Algo que poseo - Certificado Digital / Access Key – Algo que soy - Biometría
  • 21. Inicio de Sesión - Buenas prácticas Nombres de usuario no deben diferenciar mayúsculas y minúsculas.
  • 22. Inicio de Sesión - Buenas prácticas Evitar enumeración de usuarios ¿Qué deduzco de estos dos mensajes?
  • 23. Inicio de Sesión - Buenas prácticas
  • 24. Inicio de Sesión - Buenas prácticas Evitar este tipo de mensajes: "Login for User failed: invalid password" "Login failed, invalid user ID" "Login failed; account disabled" "Login failed; this user is not active"
  • 25. Inicio de Sesión - Buenas prácticas Bloquear usuarios tras varios intentos fallidos. – Bloquear temporalmente la cuenta • Tiempos incrementales (20 seg, 1 min, 5 min) – Bloquear la sesión si continúan los intentos. – Agregar Captcha en la pantalla tras varios intentos del usuario. – Estos controles deben estar del lado del servidor.
  • 26. Inicio de Sesión - Buenas prácticas Mantener un log de cada intento de autenticación fallida. – Almacenando: • IP Origen • Usuario utilizado • Resultado
  • 27. Inicio de Sesión - Buenas prácticas Evitar credenciales por parámetro y credenciales en texto claro.
  • 28. Inicio de Sesión DEMO Inicio de sesión forzoso - Evitar enumeración de usuarios - Bloquear tras n intentos fallidos - Realizar controles en el servidor
  • 29. Gestión de las contraseñas Fortaleza de las contraseñas: • Una contraseña se considera fuerte cuando es difícil de adivinar por medio de un atacante. • Deben estar alineada a los requerimientos del proyecto/sistema.
  • 30.
  • 31. Gestión de las contraseñas Fortaleza de las contraseñas – Largo (mínimo y máximo) – Juegos de caracteres (a-z,A-Z,0-9, especiales) – Periodo de validez – Histórico – Etc.
  • 32. Gestión de las contraseñas Recuperación de la contraseña • Enviar un token utilizando otro canal. – E-mail, sms, etc. – Válido por única vez, por cierto tiempo. • Cambio de la contraseña o creación de una nueva no predecible. – La contraseña no debe ser recuperable.
  • 33. Gestión de las contraseñas Recuperación de la contraseña • No bloquear el login del usuario. • Bloquear la sesión web tras varios intentos fallidos. • No pedir nuevo email. – Enviar al mail que tiene registrado el usuario.
  • 34. Gestión de las contraseñas Recuperación de la contraseña • Evitar el uso de las Preguntas Secretas. – Actualmente son muy fáciles de obtener – Información del usuario: • Redes sociales • Página de la empresa • Ingeniería Social
  • 35. Gestión de las contraseñas DEMO Recuperación de la contraseña: Si es posible adivinar una preguntas secretas, entonces no es segura! “Equipo favorito de futbol” “Ciudad de Nacimiento” “Apellido de la madre” “Nombre de la primer mascota”
  • 36. Gestión de las contraseñas
  • 37.
  • 38. Actualización de los datos – Buenas practicas Siempre se debe pedir contraseña para confirmar cambios de: – Username – E-mail – Password Ya que son utilizados para: – Iniciar sesión. – Recuperar contraseña. – Notificar los cambios.
  • 39. Actualización de los datos – Buenas practicas Notificar dicho cambio al usuario: – Email (original) – Sms – Llamada
  • 40. Gestión de la sesión. • Proceso por el cual el servidor conserva el estado de una entidad con la cual está interactuando. • Almacenadas en el servidor utilizando un identificador de sesión, que deben ser únicos por usuario y difíciles de predecir. • Enviado entre el cliente y el servidor en cada pedido y respuesta.
  • 41. Gestión de la sesión.
  • 42. Gestión de la sesión. Evitar fijación de sesión
  • 43. Gestión de la sesión. Cierre de sesión: – Logout: Manual al salir del sistema – Expiración: Automática, luego de un tiempo determinado de inactividad. – Destruir sesión en el servidor
  • 44. Gestión de la sesión. DEMO Cierre de sesión: Logout manual Verificar mecanismos de destrucción de sesiones, si estos Faltan/Fallan la sesión puede no cerrarse y permitir que otros usuarios operen bajo mi sesión.
  • 45. Gestión de la sesión.
  • 46. Gestión de la sesión.
  • 47. Gestión de la sesión. DEMO Cierre de sesión: Robo de sesión Ingresar con la misma sesión de un usuario autenticado, aunque haya cerrado sesión.
  • 49. Lógica de Negocio - Definición • Son las reglas mediante las cuales se rige el sistema. • Conformado por las funcionalidades del sistema. • Es única para cada aplicación. • Documentada en casos de uso.
  • 50. Lógica de Negocio - Explotación Se necesita pensar diferente – Fuera del uso convencional del sistema – Utilizar la creatividad y experiencia Es un trabajo manual – Difícil de automatizar – Requiere conocer el sistema, sus reglas y procedimientos de negocio (Documentación)
  • 51. Lógica de Negocio - Atacante ¿Qué busca un atacante? • Intentar explotar la lógica del negocio • Obtener ventajas/beneficios extras • Aprovechar funcionalidades/controles deficientes
  • 52. Lógica de Negocio - ¿Qué hacer? • Debemos pensar como un atacante • Conocer el software y sus características • Detectar posibles puntos de vulnerabilidad • Verificarlos ejecutando casos de mal uso o abuso del software
  • 53. Lógica de Negocio 1. Validación de datos de la lógica de negocio 2. Capacidad para manipular solicitudes 3. Controles de integridad 4. Timing de procesos 5. Limitar uso de funciones (cantidad) 6. Evasión de flujo normal de trabajo 7. Carga de archivos no esperados y/o maliciosos
  • 54. Lógica de Negocio Validaciones de datos de la lógica de negocio – El sistema no debe “confiar” en los datos que recibe, un atacante puede insertar datos lógicamente inválidos – Los datos pueden ser manipulados durante el proceso • Etapas de un workflow • Puntos de comunicación con otros sistemas • Tráfico HTTP – Deben existir mecanismos que validen estos datos.
  • 55. Lógica de Negocio Validaciones de datos de la lógica de negocio – Con solo verificar los datos en el cliente no es suficiente, se puede interceptar el tráfico y enviar datos lógicamente inválidos
  • 56. Lógica de Negocio Ej.: Validaciones de datos de la lógica de negocio Sub-sistema de Compras Sub-sistema de Despacho
  • 57. Lógica de Negocio Validaciones de datos de la lógica de negocio ¿Como probar? • Detectar los puntos de entrada o comunicación del sistema. • Realizar un testeo exploratorio ingresando o modificando datos lógicamente inválidos en el sistema: – Utilizando la UI. – Capturando y modificando el tráfico HTTP. • También revisar comunicación entre sistemas.
  • 58. Lógica de Negocio - Verificación DEMO Validaciones de los datos Realizar una transferencia con otro tipo de moneda
  • 59. Lógica de Negocio - Verificación DEMO Validaciones de los datos Realizar una transferencia con saldos negativos - 1000
  • 60. Lógica de Negocio Capacidad para moldear solicitudes – El atacante puede saltear la GUI y enviar información directamente al servidor. – Mediante un proxy se envían peticiones HTTP POST/GET con valores inválidos para la lógica de negocio – Incompatibles, no soportados, no esperados – Se busca poder predecir o adivinar parámetros – Exponer funcionalidades o pantallas ocultas del sistema.
  • 61. Lógica de Negocio • Ej.: Capacidad para moldear solicitudes PurchaseTicket?newUser=1 10% off PurchaseTicket?newUser=0 10% off PurchaseTicket?newUser=1
  • 62. Lógica de Negocio Capacidad para moldear solicitudes ¿Qué debe hacer el sistema? • Contar con chequeos lógicos en los lugares clave para prevenir que se acepten este tipo de peticiones. • Bloquear peticiones que no provengan de un usuario verificado • Evitar que el sistema delate su propia estructura
  • 63. Lógica de Negocio Capacidad para moldear solicitudes ¿Como probar? • Revisar en busca de funcionalidades y campos que puedan ser predecibles o estar ocultos. • Observar el tráfico HTTP en busca de valores que sean predecibles o adivinables (autoincrementales, etc). • Observar el tráfico HTTP en busca de funcionalidades ocultas como pantallas de desarrollo o testeo.
  • 64. Lógica de Negocio DEMO Capacidad para moldear solicitudes Consultar estado de cuenta de otros usuarios, cambiando la información que viaja en la URL. - Mediante un proxy, buscar código comentado y acceder a un objeto de test.
  • 65. Lógica de Negocio Controles de integridad – Los campos ocultos o no editables que muestran información al usuario, pueden ser manipulados en el cliente. – El sistema no debe confiar en que estos valores no serán alterados por un usuario.
  • 66. Lógica de Negocio Controles de integridad – Si se expone información de negocio al usuario (cantidades, precios, stock, etc.) , se debe mantener una copia en el servidor y utilizarla para los procesos. – Los procesos o funcionalidades no deben depender de estos valores ocultos o no editables.
  • 67. Lógica de Negocio Controles de integridad – ¿Como probar? • Buscar componentes que manipulen o actualicen información. • Revisar el tráfico HTTP en busca de campos ocultos o no editables. • Intentar modificar dicha información con valores inválidos.
  • 68. Lógica de Negocio Controles de integridad - Recomendación GUI Controles Canal de comunicación Cliente
  • 69. Lógica de Negocio DEMO Controles de integridad Reducir el porcentaje de recargo de un prestamos, manipulando la taza de recargo del mismo (GUI).
  • 70. Lógica de Negocio Timing de procesos • Identificar funcionalidades del sistema que puedan ser afectadas por el transcurso del tiempo. • Obtener ventajas basadas en el tiempo de operación con el sistema. – Precios variantes en el correr del día – Bloquear temporalmente otros usuarios
  • 71. Lógica de Negocio Ej.: Timing de procesos
  • 72. Lógica de Negocio Ej.: Timing de procesos 10:00 Price: 100 15:00 Price: 150 20:00 Price: 200
  • 73. Lógica de Negocio DEMO 9 - Timing de procesos PENDIENTE
  • 74. Lógica de Negocio Limitar uso de funciones (cantidad) – Normalmente los sistemas poseen funciones u operaciones que deben tener un control sobre la cantidad de veces que se utiliza. – Si estos controles no se implementan correctamente, un usuario mal intencionado podría abusar de algún activo u operación en el sistema.
  • 75. Lógica de Negocio Ej.: Limitar uso de funciones (cantidad) – Reutilizar un descuento. – Confirmar varias veces una acción. – Cambiar o Forzar contraseñas.
  • 76. Lógica de Negocio Limitar uso de funciones (cantidad) – ¿Como probar? – Identificar las funciones u operaciones que no deberían ser ejecutadas más de una cierta cantidad de veces. – Intentar ejecutarlas más de la cantidad de veces permitidas, mediante browser o tráfico http.
  • 77. Lógica de Negocio Limitar uso de funciones (cantidad) – ¿Como probar? Ej.: Luego de obtener un “premio”, navegar hacia atrás y volver a intentarlo. Ej.: Abrir varias ventanas iguales y realizar la misma operación en paralelo.
  • 78. Lógica de Negocio Demo Limitar uso de funciones (cantidad) Sobre utilizar un descuento de “primera compra” para siempre obtener el beneficio.
  • 79. Lógica de Negocio Evasión del flujo normal de trabajo – ¿Que es? – Permite al atacante eludir el flujo normal o esperado de trabajo. – No seguir la secuencia normal de operaciones.
  • 80. Lógica de Negocio Ej.: Evasión del flujo normal de trabajo – Saltear algún paso del flujo de trabajo donde no se cuenten con mecanismos de control que dirijan las operaciones hacia el orden correcto.
  • 81. Lógica de Negocio Evasión del flujo normal de trabajo – ¿Como probar? – Saltear o ejecutar ciertos pasos de la aplicación en un orden no deseado del flujo lógico. – Forzar una acción que no es la esperada en esa etapa del proceso.
  • 82. Lógica de Negocio Evasión del flujo normal de trabajo – ¿Como probar? – Identificar aquellas transacciones en las cuales se maneje algún activo como puntos o créditos. Cancelar o reducir la oferta final de cada transacción y verificar que los puntos/créditos se ajusten correctamente.
  • 83. Lógica de Negocio Evasión del flujo normal de trabajo – ¿Como probar? – Para cada formulario, introducir valores iniciales válidos en sus campos. Posteriormente intentar editar o eliminar dichos valores dejando los mismos en un estado inválido y confirmar.
  • 84. Lógica de Negocio DEMO Evasión del flujo normal de trabajo Aceptar un préstamo que aún no fue aprobado.
  • 85. Lógica de Negocio Carga de archivos no esperados y/o maliciosos – ¿Que es? – Verificar cualquier funcionalidad de subida de archivos para el usuario. – Al igual que con los datos, el sistema no debe confiar nunca en estos archivos.
  • 86. Lógica de Negocio Carga de archivos no esperados y/o maliciosos – ¿Qué puede ocurrir? • Un archivo no esperado y trancar la ejecución. • Un archivo para explotar luego con otra vulnerabilidad (página web, javascript, .exe) • Un archivo que al ser parseado/ejecutado realiza acciones indebidas.
  • 87. Lógica de Negocio Ej.: Carga de archivos no esperados y/o maliciosos
  • 88. Lógica de Negocio Carga de archivos no esperados y/o maliciosos – ¿Como probar? – Ubicar las funcionalidades en las que un usuario puede realizar la subida de un archivo. – Diferentes tipos de archivos, archivos maliciosos, múltiples archivos
  • 89. Lógica de Negocio Carga de archivos no esperados y/o maliciosos – ¿Como probar? – Mantener una lista de archivos aceptables y comparar siempre contra ella. – Realizar la subida de archivos indebidos. – Verificar que los mecanismos de validación prevengan la carga.
  • 90. Lógica de Negocio - Verificación DEMO Carga de archivos no esperados y/o maliciosos
  • 91. CONTROL DE ACCESO - ROLES / PERMISOS
  • 92. Control de Acceso • Es el control selectivo y restrictivo a un recurso. • La aplicación funciona correctamente. • Probar quién lo puede hacer.
  • 93. Control de Acceso 1. Ausencia de control de acceso a funciones. 2. Exposición de datos sensibles. 3. Referencia directa insegura a objetos.
  • 94. Control de Acceso Ausencia de control de acceso a funciones. – ¿Qué es? – Un usuario obtiene acceso a funciones privilegiadas que no debería. – Se realiza el control de acceso en la interfaz de usuario, pero no, en la ejecución la acción.
  • 95. Control de Acceso Ausencia de control de acceso a funciones. – ¿Como probar? – La interfaz de usuario la controla el navegador. – Se debe buscar: • Botones deshabilitados. • Botones ocultos. • Links ocultos.
  • 96. Control de Acceso DEMO Ausencia de control de acceso a funciones. Aprobarse un préstamo, habilitando un botón en la GUI.
  • 97. Control de Acceso Exposición de datos sensibles. – ¿Qué es? – Cierta información puede ser considerada sensible. • Datos personales, información financiera o laboral. – Depende de la industria y las regulaciones gubernamentales.
  • 98. Control de Acceso Exposición de datos sensibles. ¿Como probar? Almacenamiento: Logs, archivos intermedios. – Interfaz: información sensible puede ser enviada al navegador y estar oculta: Hidden, display = None, etc. • Cachés intermedios y del navegador: – chrome://cache o about:cache
  • 99. Control de Acceso DEMO Exposición de datos sensibles. Inspeccionar las transferencias y visualizar el saldo de una cuenta de terceros.
  • 100. Control de Acceso Referencia directa insegura a objetos. – ¿Qué es? – Exposición de una referencia a un objeto de implementación interno sin verificar control de acceso • Archivo, Carpeta, Base de Datos – Un atacante pueden manipular estas referencias para acceder a datos no autorizados
  • 101. Control de Acceso DEMO Referencia directa insegura a objetos. Ingresar a un estado de cuenta cambiando los parámetros en la URL
  • 103. Despliegue Configuración de seguridad incorrecta: – Configurar correctamente los Usuarios, roles y permisos que el sistema tendrá en Producción. – Revisar y depurar: • Objetos y roles creados en test. • Objetos no utilizados u obsoletos (Developer Menu, Objetos viejos, etc. – Optar por un tráfico HTTPS y URL cifradas
  • 104. Despliegue DEMO Configuración de seguridad incorrecta Acceder a objetos de desarrollo/test que no se depuraron en producción.
  • 105. Referencias •OWASP - Testing guide 4.0 https://www.owasp.org/images/5/52/OWASP_Testing_Guide_v4.pdf •OWASP - Testing for business logic https://www.owasp.org/index.php/Testing_for_business_logic •OWASP - Authentication Cheat Sheet Español https://www.owasp.org/index.php/Authentication_Cheat_Sheet_Español •OWASP - TOP 10 https://www.owasp.org/index.php/Top_10_2013-Top_10 •Symantec - Internet Security Threat Report https://www.symantec.com/content/dam/symantec/docs/reports/istr-22-2017-en.pdf