Documentos de Académico
Documentos de Profesional
Documentos de Cultura
riesgos en
aplicaciones web
(OWASP Top 10 2017)
Open Web Application Security Project
A6: Mala
A5: Fallos de A7: Cross-Site A8: Insecure
configuración de
Control de Acceso Scripting (XSS) Deserialization
la seguridad
A9: Usar
A10: Insufficient
componentes con
Logging &
vulnerabilidades
Monitoring
conocidas
A1: Inyección
Communication
Administration
aplicación
Bus. Functions
aplicación
E-Commerce
Transactions
de
Knowledge
Respuesta
Capa de
Mgmt
Petición HTTP Base de
Capa
HTTP query
Datos
La Aplicación reenvía el
Custom Code ataque a la base de datos:
Plataforma SELECT * FROM
accounts WHERE
acct=’’ OR 1=1—’
Red
de Red
Firewall
Firewall
Firewall
Capa de
la información a la
aplicación
Capa
• historia de usuario:
https://www.owasp.org/index.php/
SQL_Injection_Prevention_Cheat_Sheet
A2: Fallos de Autenticación
https://www.owasp.org/index.php/
Authentication_Cheat_Sheet
A3: Exposición de datos sensibles
1 La victima da su tarjeta de
crédito para realizar una
reservación
Communication
Administration
Bus. Functions
E-Commerce
Transactions
Knowledge
Accounts
Finance
Mgmt
4 Un empleado
Custom Code
malicioso roba los
números de tarjetas
de crédito Log files
2 Por un error en la
comunicación con el
3 Los logs están disponibles a gateway de pagos, el
los miembros del equipo de sistema logguea el error
desarrollo para debugueo junto con la tarjeta
A3: Recomendaciones
• Identificar claramente los datos sensibles y los
lugares en donde se almacenan o transportan
• Usa mecanismos adecuados de protección
(cifrado de archivos, bases de datos, datos)
• Usa mecanismos estándar cuidando el proceso
de generación, distribución y almacenamiento
de llaves
• El sistema debe estar preparado para cambiar
las llaves
A3: Verificar la implementación
Como atacante, robo datos de texto sin cifrar del servidor, mientras está en tránsito, o
del cliente del usuario, p. Ej. navegador para obtener acceso no autorizado a la
aplicación o sistema.
https://www.owasp.org/index.php/
Transport_Layer_Protection_Cheat_Sheet
A4: XML External Entities (XXE)
• Errores comunes
Muchos procesadores XML más antiguos o mal configurados
evalúan las referencias de entidades externas dentro de los
documentos XML.
• Impacto:
Las entidades externas se pueden utilizar para divulgar archivos
internos mediante el controlador de archivos URI, recursos
compartidos de archivos internos, escaneo de puertos internos,
ejecución remota de código y ataques de denegación de servicio.
A4: Ejemplo
Como atacante, incluyo código XML malicioso para explotar código vulnerable,
dependencias o integraciones para extraer datos, ejecutar una solicitud remota desde el
servidor, escanear sistemas internos, realizar un ataque de denegación de servicio (por
ejemplo, el ataque Billion Laughs), también como ejecutar otros ataques.
A4: XML External Entities (XXE)
• Para mas detalles se recomienda leer:
https://cheatsheetseries.owasp.org/cheatsheets
/XML_External_Entity_Prevention_Cheat_Sheet.
html
A5: Fallo de controles de acceso
• Las restricciones sobre lo que los usuarios autenticados
pueden ser que a menudo no se aplican correctamente.
• Consecuencias
– Los atacantes pueden aprovechar estas fallas para acceder a
funciones y / o datos no autorizados, como acceder a las cuentas de
otros usuarios, ver archivos confidenciales, modificar los datos de
otros usuarios, cambiar los derechos de acceso, etc.
• Impacto
– Poder invocar funciones y servicios para los que no se está
autorizado
– Acceder a la información de otros usuarios
– Realizar acciones privilegiadas
A5: Ejemplo
https://www.bancoenlinea.com/usuario/obtenerCuentas
• El atacante observa que el el URL esta su rol
“usuario”
• Lo modifica probando otros roles
/admin/obtenerCuentas
/manager/obtenerCuentas
• Obtiene acceso a información privilegiada
A5: Recomendaciones
https://code.google.com/p/zaproxy/wiki/
Introduction
A6: Mala configuración de la seguridad
Como atacante, encuentro funciones innecesarias que están habilitadas o instaladas (por
ejemplo, puertos, servicios, páginas, cuentas o privilegios innecesarios) y ataco o aprovecho
la debilidad.
Como atacante, utilizo cuentas predeterminadas y sus contraseñas para acceder a sistemas,
interfaces o realizar acciones en componentes que no debería poder hacer.
Como atacante, encuentro áreas de la aplicación donde el manejo de errores revela rastros
de pila u otros mensajes de error demasiado informativos que puedo usar para una mayor
explotación.
A6: Caso de Abuso
Knowledge Mgmt
aplicación
Communication
Administration
Bus. Functions
E-Commerce
Transactions
2 La victima en la página entra
Accounts
Finance
Al perfil del atacante
Custom Code
El script corre en el
navegador de la victima
con acceso completo al
DOM y a las cookies
• Elimine el XSS
– No incluir datos suministrados por el usuario en las
páginas generadas
• Defensa contra el XSS
– Codifique todos los datos suministrados por el usuario
(OWASP ESAPI, Java Encoders)
– Validación de datos vía “white list”
– Para grandes volúmenes de HTML sanitizar los datos con
OWASP AntiSamy para hacerlos seguros
A7: Contextos de ejecución del HTML
#1: ( &, <, >, " ) &entity; ( ', / ) &#xHH;
ESAPI: encodeForHTML()
https://www.owasp.org/index.php/XSS_(Cross
_Site_Scripting)
_Prevention_Cheat_Sheet
A8:Insecure Deserialization
https://cheatsheetseries.owasp.org/cheatshee
ts/Deserialization_Cheat_Sheet.html
A9: Usar componentes con vulnerabilidades
conocidas
https://www.aspectsecurity.com/news/the-unfortunate-reality-of-insecure-libraries/
A9: Ejemplo
A9: Recomendaciones
• Ideal
– Periódicamente y de manera automática realizar
verificaciones de componentes usados
• Mínimo
– A mano revisar periódicamente si los componentes
están actualizados
– Revisar cuales componentes cuentan con
vulnerabilidades reportadas
• CVE y otros repositorios de vulnerabilidades
A9: Caso de Abuso
• Como atacante, encuentro paquetes comunes
de código abierto o de código cerrado con
debilidades y realizo ataques contra
vulnerabilidades y exploits que se revelan.
A9: Más información
• En el mundo Java:
https://www.owasp.org/index.php/
OWASP_Dependency_Check
• En .Net
https://github.com/OWASP/SafeNuGet
A10: Insuficient Logging & Monitoring