Está en la página 1de 54

OWASP Top 10 Web Application Security Web Risks

for ASP.NET

Erwin Oviedo
– 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
Como estamos hoy?
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
Analizando Cada Riesgo a
Detalle
A1. Inyección
A1. Inyección

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección Impacto Especifico de la
Aplicación FACIL COMUN PROMEDIO SEVERO Aplicación
• Demo
Recomendaciones

• 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
A2. Perdida de Autenticación y
Gestión de Sesiones
A2. Perdida de Autenticación
y Gestión de Sesiones

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección Impacto Especifico de la
Aplicación PROMEDIO COMUN PROMEDIO SEVERO Aplicación
• Demo
ASP.NET Session Management

• ASP.NET
– Session Ids son almacenadas en cookies por
defecto.
– Cookies necesitan permisos del navegador.
ASP.NET Cookieless mode
Recommendations

• No usar cookieless mode


• Proteger las cookies de XSS
• No manejar sesiones con infinitos timeout
A3. Secuencia de Comandos en
Sitios Cruzados (XSS)
A3. Secuencia de Comandos
en Sitios Cruzados (XSS)

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección FACIL Impacto Especifico de la
Aplicación PROMEDIO MUY Moderado Aplicación
DIFUNDIDA
• Demo
Untrusted Data

• Ejemplo de urls con trusted y untrusted data

TRUSTED DATA UNTRUSTED DATA


http://www.website.com/Buscador/Buscar?Texto= Polo
http://www.website.com/Buscador/Buscar?Texto= <script>alert(‘hola
mundo’)</script>
Recommendatciones

• Siempre hacer Encode al Untrusted Data


• No escribas tu propio encoder
• Utilizar el Encode apropiado para el Contexto usado

CONTEXT ENCODED RESULT


HTML &lt;i&gt;Polo&lt;/I&gt;
JavaScript \x3ci\x3ePolo\x3cx3fi\x3e

CSS \00003Ci\00003EPolo\00003C\00002Fi\00003E
XML &lt;i&gt;Polo&lt;/I&gt;
A4. Referencia directa insegura
a objetos
A4. Referencia directa
insegura a objetos

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección FÁCIL Impacto Especifico de la
Aplicación FÁCIL COMÚN MODERADO Aplicación
• Demo
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
A5. Configuración de Seguridad
Incorrecta
A5. Configuración de Seguridad
Incorrecta

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección FÁCIL Impacto Especifico de la
Aplicación FÁCIL COMÚN MODERADO Aplicación
• Considerar
– Usuarios y Contraseñas por defecto
– Herramientas hechas para modo desarrollo
expuestas en modo produccion
• Demo
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
A6. Exposición de datos
sensibles
A6. Exposición de datos sensibles

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección Impacto SEVERO Especifico de la
Aplicación DIFÍCIL NO COMÚN PROMEDIO Aplicación
• 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
• Ejemplo de como datos confidenciales son
interceptados en un proxy server
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
A7. Inexistente Control de Acceso
a nivel de funcionalidades
A7. Inexistente Control de Acceso a
nivel de funcionalidades

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Exploitability Prevalence Detectability Impact Especifico de la
Aplicación EASY COMMON AVERAGE MODERATE Aplicación
Considerar

• Puede un usuario navegar directamente a un recurso no


autorizado?

Back end Paginas Administrativas Front end Paginas de usuario normal


Recommendaciones

• Usar configuraciones de directorio en


web.config
<location path=“AdminArea/" >
<system.web>
<authorization>
<allow roles=“admin, manager" />
<deny users=“cliente" />
</authorization>
</system.web>
</location>
<location path=“Public/" >
<system.web>
<authorization>
<deny users=“?" />
</authorization>
</system.web>
</location>
A8. Falsificación de Peticiones
en Sitios Cruzados (CSRF)
A8. Falsificación de Peticiones en
Sitios Cruzados (CSRF)

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección FÁCIL Impacto Especifico de la
Aplicación PROMEDIO COMÚN MODERADO Aplicación
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.
• Demo
Recommendaciones

• Use AntiForgeryKeyToken
A9. Uso de Componentes con
Vulnerabilidades Conocidas
A9. Uso de Componentes con
Vulnerabilidades Conocidas

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detectabilidad Impacto Especifico de la
Aplicación PROMEDIO DIFUNDIDO DIFÍCIL MODERADO Aplicación
• Considerar
– Exponer components utilizados como ser
• Asp.net y la version utilizada,
• IIS y su version
• Base de Datos y su version
• Demo
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
A10. Redirecciones y reenvíos
no validos
A10. Redirecciones y reenvíos
no validos

Agentes de Vectores de Debilidades de Seguridad Impactos Impacto al


Amenaza Ataque Técnicos Negocio
Especifico de la Explotabilidad Prevalencia Detección FÁCIL Impacto Especifico de la
Aplicación PROMEDIO POCO COMÚN MODERADO Aplicación
Reccomendations

• Demo
Recomendaciones

• Validar redireccionamiento de Urls en el Login


– Permitir solo Urls locales
Preguntas
References

• Sitio web http://www.owasp.org


• Pluralsight http://www.pluralsight.com
• Port Swigger https://portswigger.net/
• HP Fortify on demand (paga)

También podría gustarte