seguridad en aplicaciones web - portantier.com · seguridad en aplicaciones web fabian portantier...
TRANSCRIPT
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
Validación de Entrada
Diferenciar Datos Fiables de NoFiables
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 NoFiables
Fiables: Totalmente controlados por la aplicación, no pueden ser manipulados por ninguna entidad externa.
NoFiables: 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: CrossSite 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
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:Algunas de las Mejores
BurpSuite (www.portswigger.net)
Vega (www.subgraph.com)
Arachni (www.arachniscanner.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
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: CrossSite 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
MUCHAS GRACIAS!Fabian PortantierCoordinador Carrera Seguridad Informática
Argentina, Capital Federal(54) (011) 43280457
Todas las marcas y logos utilizados en la presentación son propiedad de sus respectivos propietarios