1 OWASP Top 10 Web Application Security Web Risks for ASP.NET Erwin Oviedo
2 – 10 años de experiencia desarrollando aplicaciones con.Net – 5 años de experiencia desarrollando en ASP.NET Web Application y MVC – Trabajando actualmente como Web UI developer, en aplicaciones donde la seguridad es critica. (ej. SAAS) – Titulado de la Universidad Nur en la carrera de Ingeniería de Sistemas
3 Como estamos hoy?
4 Que es el OWASP Top 10? El OWASP Top Ten representa un consenso acerca de cuales son las fallas de seguridad mas criticas en una aplicación Web. Punto de referencia de especialistas en seguridad y web developers. Es una lista de 10 riesgos y por cada uno de ellos provee: – Descripción – Ejemplo de casos vulnerables – Ejemplo de un ataque – Guia de como evitarlo – Referencias
5 Tabla de Valores Agente de Amenaza Vectores de Ataque Prevalencia de Debilidades Debilidades de Seguridad Impacto Técnico Impacto al Negocio Especifico de la Aplicación FácilDifundidoFácilSevero Especifico de la Aplicación PromedioComúnPromedioModerado DifícilPoco Común DifícilMenor
6 Analizando Cada Riesgo a Detalle Descripción general Nivel de Severidad Descripción del Riesgo Ejemplo paso a paso de un ataque Entendiendo el Riesgo Ejemplo de practicas recomendadas para mitigar el riesgo Aplicando las Defensas
7 A1. Inyección
8 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad FACIL Prevalencia COMUN Detección PROMEDIO Impacto SEVERO Especifico de la Aplicación
9 Ejemplo SQL-Inyeccion
10 Untrusted data ‘ or 1=1 -- select Id, Nombre, Apellido from Usuarios where UserName = ' ' and password='123' Untrusted data
11 Demo
12 Usar SQL Queries parametrizados Usar Store Procedures parametrizados Aplicar Least Privilege principle – Basado en aplicar seguridad en diferentes capas – No usar usuarios de bases de datos con el rol db_owner Recomendaciones
13 A2. Perdida de Autenticación y Gestión de Sesiones
14 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad PROMEDIO Prevalencia COMUN Detección PROMEDIO Impacto SEVERO Especifico de la Aplicación
15 Demo
16 ASP.NET Session Management ASP.NET – Session Ids son almacenadas en cookies por defecto. – Cookies necesitan permisos del navegador.
17 ASP.NET Cookieless mode
18 Recommendations No usar cookieless mode Proteger las cookies de XSS No manejar sesiones con infinitos timeout
19 A3. Secuencia de Comandos en Sitios Cruzados (XSS)
20 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad PROMEDIO Prevalencia MUY DIFUNDIDA Detección FACILImpacto Moderado Especifico de la Aplicación
21 Demo
22 Untrusted Data Ejemplo de urls con trusted y untrusted data TRUSTED DATAUNTRUSTED DATA http://www.website.com/Buscador/Buscar?Texto=Polo http://www.website.com/Buscador/Buscar?Texto= alert(‘hola mundo’)
23 Recommendatciones CONTEXTENCODED RESULT HTMLPolo JavaScript\x3ci\x3ePolo\x3cx3fi\x3e CSS\00003Ci\00003EPolo\00003C\00002Fi\00003E XMLPolo Siempre hacer Encode al Untrusted Data No escribas tu propio encoder Utilizar el Encode apropiado para el Contexto usado
24 A4. Referencia directa insegura a objetos
25 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad FÁCIL Prevalencia COMÚN Detección FÁCILImpacto MODERADO Especifico de la Aplicación
26 Demo
27 Recommendations Aplicar Access Controls Usar las referencia indirectas solo para conciliar los datos Revisar todos los directorios de la aplicación para asegurarse que no exista componentes o funcionalidad no deseada en producción – Prototipos de funcionalidad – Test codes
28 A5. Configuración de Seguridad Incorrecta
29 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad FÁCIL Prevalencia COMÚN Detección FÁCILImpacto MODERADO Especifico de la Aplicación
30 Considerar – Usuarios y Contraseñas por defecto – Herramientas hechas para modo desarrollo expuestas en modo produccion
31 Demo
32 Recommendaciones Mantener los components de tercero actualizados utilizando NuGet Encriptar los datos sensitives en el web.config Configurar Custom Errors apropiadamente Estar seguros que el IIS esta actualizado con los ultimos patchs Remover Server HTTP Header Desabilitar MVC Response Header
33 A6. Exposición de datos sensibles
34 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad DIFÍCIL Prevalencia NO COMÚN Detección PROMEDIO Impacto SEVERO Especifico de la Aplicación
35 Que es sensitive data? – Información Bancaria Numero de Cuentas Numero de Tarjetas de Crédito – Registros médicos – Información Personal – Credenciales de Usuario Que implica el exponer estos datos? – Fraude bancario – Robo de identidad – Perdida de Reputación y confianza en la marca Considerar Datos en Transito – Web Proxys (Lugares donde hay acceso publico de internet) – Historial en los Navegadores
36 Ejemplo de como datos confidenciales son interceptados en un proxy server
37 Recommendaciones Usar SSL al momento de transferir sensitive data como en la pagina de login o al momento de realizar pagos. Deshabilitar la función Autocomplete de HTML Usar los últimos algoritmos de encriptación Cuidado con los error pages y mostrar datos como código fuente y connection strings
38 A7. Inexistente Control de Acceso a nivel de funcionalidades
39 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Exploitability EASY Prevalence COMMON Detectability AVERAGE Impact MODERATE Especifico de la Aplicación
40 Considerar Puede un usuario navegar directamente a un recurso no autorizado? Back end Paginas AdministrativasFront end Paginas de usuario normal
41 Recommendaciones Usar configuraciones de directorio en web.config
42 A8. Falsificación de Peticiones en Sitios Cruzados (CSRF)
43 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad PROMEDIO Prevalencia COMÚN Detección FÁCILImpacto MODERADO Especifico de la Aplicación
44 Consideraciones Imagine que una persona pueda engañarla desde un sitio web maligno y por debajo pueda hacer spam en su estado de facebook si que usted se de cuenta inmediatamente. Imagine que desde un sitio web maligno alguien pueda hacer que usted transfiera dinero de su cuenta a otra cuenta sin dares cuenta inmediatamente.
45 Demo
46 Recommendaciones Use AntiForgeryKeyToken
47 A9. Uso de Componentes con Vulnerabilidades Conocidas
48 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad PROMEDIO Prevalencia DIFUNDIDO Detectabilidad DIFÍCIL Impacto MODERADO Especifico de la Aplicación
49 Considerar – Exponer components utilizados como ser Asp.net y la version utilizada, IIS y su version Base de Datos y su version
50 Demo
51 Recommendations Utilizar Nugets para administrar facilmente los componentes y sus actualizaciones Ser cautelosos a la hora de elegir un componente para ser usado en la aplicacion – Si el componente no es mas soportado significa que nadie va a arreglar cualquier problema que pueda identificarse Mientras mas components externos utilicemos mas riesgos vamos añadir a la aplicacion
52 A10. Redirecciones y reenvíos no validos
53 Agentes de Amenaza Vectores de Ataque Debilidades de SeguridadImpactos Técnicos Impacto al Negocio Especifico de la Aplicación Explotabilidad PROMEDIO Prevalencia POCO COMÚN Detección FÁCILImpacto MODERADO Especifico de la Aplicación
54 Reccomendations Demo
55 Recomendaciones Validar redireccionamiento de Urls en el Login – Permitir solo Urls locales
56 Preguntas
57 References Sitio web http://www.owasp.orghttp://www.owasp.org Pluralsight http://www.pluralsight.comhttp://www.pluralsight.com Port Swigger https://portswigger.net/https://portswigger.net/ HP Fortify on demand (paga)