Seguridad en Aplicaciones Web - portantier.com · Seguridad en Aplicaciones Web Fabian Portantier...

42
Seguridad en Aplicaciones Web Seguridad en Aplicaciones Web

Transcript of Seguridad en Aplicaciones Web - portantier.com · Seguridad en Aplicaciones Web Fabian Portantier...

Seguridad en Aplicaciones Web

Seguridaden

Aplicaciones Web

Seguridad en Aplicaciones Web

Fabian Portantier

Consultor en Seguridad Informática

Instructor y Escritor sobre el tema

Coordinador de la Carrera de Seguridad

www.portantier.com

Seguridad en Aplicaciones Web

Aplicaciones Web Actuales

Cada vez más complejas

Muchas tecnologías diferentes

Más críticas para el negocio

Seguridad en Aplicaciones Web

Tecnologías Web

HTML5, CSS3, JavaScript

SQL, NoSQL

PHP, Java, .Net

WebServer, S.O, Hardware

Seguridad en Aplicaciones Web

OWASP Top 10 2013

Seguridad en Aplicaciones Web

“Diez vulnerabilidadesNO requieren diez

medidas de seguridad”

Seguridad en Aplicaciones Web

Validación de Entrada

Diferenciar Datos Fiables de No­Fiables

Definir los tipos de datos esperados

Validar que cumplan con los requisitos

Filtrar los datos que no los cumplan

Seguridad en Aplicaciones Web

Validación de Entrada: Datos Fiables vs No­Fiables

Fiables: Totalmente controlados por la aplicación, no pueden ser manipulados por ninguna entidad externa.

No­Fiables: Todos los otros datos.

Seguridad en Aplicaciones Web

Validación de Entrada:Tipos de Dato Esperados

Direcciones de eMail

Números de Teléfono

Archivos de Imagen

Texto Libre

etc...

Seguridad en Aplicaciones Web

Validación de Entrada:Filtrado de Datos

Muchas librerías disponibles

Java OWASP ESAPI

PHP Filters

Librerías propias (último recurso!)

Seguridad en Aplicaciones Web

Validación de Entrada:PHP Filters

if(filter_var($email, FILTER_VALIDATE_EMAIL)){    echo “OK”;}else{    echo “ERROR”;}

Seguridad en Aplicaciones Web

Validación de Entrada: PHP Filters

Filtros: Indican si un valor cumple con ciertos criterios (ej.: Dirección de eMail válida)

Saneadores: Modifican los valores para ajustarlos a ciertos criterios (ej.: Escapar caracteres especiales HTML)

Seguridad en Aplicaciones Web

Validación de Entrada:Vulnerabilidades Asociadas

A1: Inyección (SQL, LDAP, Comandos, etc)

A3: Cross­Site Scripting (XSS)

A10: Redirecciones y Reenvíos no validados

Seguridad en Aplicaciones Web

Validación de Acciones

Verificar la integridad de los datos (y sesiones)

Verificar el acceso a los datos de la aplicación

Verificar las peticiones realizadas por los usuarios

Seguridad en Aplicaciones Web

Validación de Acciones:Integridad de Sesiones

¿Desde qué IP o zona fue iniciada?

¿Qué navegador se utilizó para iniciarla?

Expirar sesiones (y no permitir simultáneas)

Usar identificadores únicos e irrepetibles

Seguridad en Aplicaciones Web

Validación de Acciones:Acceso a Datos

Establecer un único canal de acceso a los datos

Verificar que el usuario tenga permisos de acceso

Seguridad en Aplicaciones Web

Validación de Acciones:Peticiones de Usuario

Controlar el acceso a las funciones

Comprobar permisos de usuario

Comprobar acciones “personales” (ej. PassReset)

Seguridad en Aplicaciones Web

Validación de Acciones:Vulnerabilidades Asociadas

A2: Pérdida de autentic. y gestión de sesiones

A4: Referencia directa insegura a objetos

A6: Exposición de datos sensibles

A7: Ausencia de control de acceso a funciones

A8: Falsific. de petic. en sitios cruzados (CSRF)

Seguridad en Aplicaciones Web

Gestión de Cambios

Documentar los cambios de configuración

Configurar en base a mejores prácticas

Aplicar actualizaciones a todos los componentes

Seguridad en Aplicaciones Web

Gestión de Cambios:Documentar Cambios

Pequeños cambios pueden tener grandes efectos

Es una tarea “poco feliz”, pero necesaria

Excluyente en entornos con más de un SysAdmin

Seguridad en Aplicaciones Web

Gestión de Cambios:Seguir las Mejores Prácticas

Bien probadas y documentadas

Desarrolladas por personas muy capacitadas

Facilitan la solución de problemas

Seguridad en Aplicaciones Web

Gestión de Cambios:Aplicación de Parches

Mejora la estabilidad de los sistemas

Nos protege contra vulnerabilidades conocidas

Evita que los sistemas queden obsoletos

Seguridad en Aplicaciones Web

Gestión de Cambios:Vulnerabilidades Relacionadas

A5: Configuración de Seguridad Incorrecta

A9: Uso de componentes con vulnerab conocidas

Seguridad en Aplicaciones Web

Denegación de Servicio

Simples (DoS)

Distribuídos (DDoS)

Relativamente fáciles de realizar

Seguridad en Aplicaciones Web

Denegación de Servicio

Seguridad en Aplicaciones Web

Denegación de Servicio:Infraestructuras Distribuídas

Seguridad en Aplicaciones Web

Herramientas de Auditoría

Simplifican el proceso de auditoría

Permiten reportar fácilmente a la gerencia

No requieren grandes conocimientos

Seguridad en Aplicaciones Web

Herramientas de Auditoría:Zed Attack Proxy (ZAP)

Open Source

Multiplataforma (Java)

Desarrollado por OWASP

Fácil de Utilizar

Super Potente

Seguridad en Aplicaciones Web

Herramientas de Auditoría:Zed Attack Proxy (ZAP)

Seguridad en Aplicaciones Web

Herramientas de Auditoría:Algunas de las Mejores

BurpSuite (www.portswigger.net)

Vega (www.subgraph.com)

Arachni (www.arachni­scanner.com)

Seguridad en Aplicaciones Web

Filtrado Dinámico de Tráfico

Intrusion Prevention Systems (IPS)

Threat Intelligence

Web Application Firewalls

Seguridad en Aplicaciones Web

Filtrado Dinámico de TráficoIntrusion Prevention Systems

Reglas de firewall en base al tráfico habitual

Bloqueo de violaciones a los protocolos

Detección de ataques en base a firmas

Seguridad en Aplicaciones Web

Filtrado Dinámico de TráficoThreat Intelligence

Actualiza los Firewalls e IPS automáticamente

Toma como fuente ataques globales

Trabajan de forma colaborativa

Seguridad en Aplicaciones Web

Filtrado Dinámico de TráficoWeb Application Firewalls

Dedicados a las aplicaciones web

Bloquean ataques conocidos y nuevos

Fáciles de implementar (si, fáciles)

Seguridad en Aplicaciones Web

Web Application FirewallsAnálisis ZAP (On / Off)

Seguridad en Aplicaciones Web

Web Application FirewallsAnálisis Vega (On / Off)

Seguridad en Aplicaciones Web

Filtrado Dinámico de TráficoHerramientas Recomendas

Firewall: IPTables

IDS/IPS: Snort / Suricata

WAF: ModSecurity + ModEvasive

Threat Intelligence: Emerging Threats

Seguridad en Aplicaciones Web

Desarrollo Seguro

Seguridad en el proceso de desarrollo

Capacitación a los desarrolladores

Entender que es tiempo INVERTIDO

Seguridad en Aplicaciones Web

Desarrollo Seguro:OWASP Development Guide

Recurso fundamental sobre el tema

Acceso Gratuito

Version en Español

Seguridad en Aplicaciones Web

Desarrollo Seguro:Vulnerabilidades Asociadas

A1: Inyección (SQL, LDAP, Comandos, etc)A2: Pérdida de autentic. y gestión de sesionesA3: Cross­Site Scripting (XSS)A4: Referencia directa insegura a objetosA6: Exposición de datos sensiblesA7: Ausencia de control de acceso a funcionesA8: Falsific. de petic. en sitios cruzados (CSRF)A10: Redirecciones y Reenvíos no validados

Seguridad en Aplicaciones Web

¿Preguntas?

Seguridad en Aplicaciones Web

MUCHAS GRACIAS!Fabian PortantierCoordinador Carrera Seguridad Informática

[email protected]

Argentina, Capital Federal(54) (011) 4328­0457

Todas las marcas y logos utilizados en la presentación son propiedad de sus respectivos propietarios