Blog
Charla: 10 vulnerabilidades más comunes en las aplicaciones web
Introducción
The Open Web Application Security Project o OWASP, es una comunidad sin ánimo de lucro que intenta educar a empresas, desarrolladores y usuarios acerca de los riesgos asociados a las vulnerabilidades de aplicaciones web.
Cada pocos años, OWASP publica la lista de las 10 principales vulnerabilidades de seguridad de las aplicaciones web que son comúnmente explotadas y proporciona recomendaciones para hacerlas frente. Las echamos un ojo de la mano de nuestro compañero David del Castillo, desarrollador backend.
Top 10 vulnerabilidades: OWASP 2017
Aunque la lista de vulnerabilidades es de 2017, su aplicabilidad sigue aún vigente. Vamos a enumerar cada una de ellas junto con una breve descripción sobre en qué consiste la vulnerabilidad y un ejemplo de la vida real donde se han visto afectados por esta vulnerabilidad.
A1 – Inyecciones (Starbucks 2019)
Esta vulnerabilidad consiste en la inyección de código (SQL, NOSQL, LDAP, etc.) por la falta de validación de entradas.
El primer paso que realizó el informador de la vulnerabilidad, fue la enumeración de subdominios en la página de Starbucks, donde encontró un formulario que le permite subir ficheros.
En base a los mensajes de error, al intentar subir diferentes tipos de archivos (PHP, XML, etc.), pudo construir una estructura válida por parte del servidor y se vio que era vulnerable a SQL Injection al conseguir un database error incluyendo este campo en el XML subido.
<MainAccount>123456′</MainAccount>
A2 – Pérdidas de Autenticación (Twitter 2020)
Esta vulnerabilidad consiste en que la parte responsable de la autenticación falla o se usa incorrectamente.
El informador de la vulnerabilidad explica en el apartado de contexto que Twitter añadió una capa de seguridad adicional, solicitando el número teléfono móvil o el correo electrónico además de la contraseña si se desea cambiar información como el correo o el teléfono móvil para evitar que puedan cambiarlos si te secuestran la sesión. Un atacante puede saltarse esta capa de seguridad, capturando y modificando las peticiones/respuestas al servidor.
A3 – Exposición de datos sensibles (Walmart 2021)
Esta vulnerabilidad consiste en almacenar y procesar datos sensibles de forma incorrecta.
La noticia explica como un cliente (Sanjay Bhatia) descubrió que el sitio web de Walmart Canadá tenía un fallo de seguridad que permitía a cualquier persona acceder a la información personal de compras de otros clientes, comunicó el problema a Walmart Canadá sin éxito. No fue hasta que se replicó la vulnerabilidad por parte de CTV News, cuando se obtuvo una respuesta por parte de Walmart.
A4 – Uso de entidades externas en XML (IBM 2020)
La vulnerabilidad consiste en el uso de entidades externas en archivos XML. Dichas entidades externas permiten la ejecución de código desde estas entidades.
En el informe se reconoce que QRadar (la plataforma de gestión de eventos de seguridad de IBM) es vulnerable a un ataque XXE. Permitiendo a un atacante exponer información confidencial.
A5 – Fallos en el control de acceso (Facebook 2018)
La vulnerabilidad consiste en que un usuario ilegítimo pueda acceder a áreas o recursos restringidos, incluso pudiendo cambiar los permisos de acceso.
En la noticia se explica cómo la vulnerabilidad permite que una aplicación de terceros con permisos limitados pueda agregar o modificar los roles de administrador de página. Simplemente, borrando el parámetro business nos permite eliminar al administrador real de la página.
POST /<page_id>/userpermissions HTTP/1.1
role=MANAGER&user=<target_user_id>&business=<associated_business_id>&access_token=<application_access_token>
A6 – Malas configuraciones (Rockstar Games 2018)
Esta vulnerabilidad consiste en una falta de configuración o uso de configuración básica que no es capaz de evitar problemas.
El informador de la vulnerabilidad demostró cómo una configuración incorrecta de CORS (mecanismo que restringe el acceso a los recursos ubicados fuera del dominio) permitía información del usuario, como direcciones de correo electrónico e ID.
A7 – Cross-Site Scripting (XSS) (GitLab 2019)
Esta vulnerabilidad permite inyectar código javascript como datos de entrada.
El informador de la vulnerabilidad explica cómo inyectar scripts que se almacenan de forma permanente en el servidor a la hora de crear un grupo en GitLab, permitiendo el robo de cookies o ejecución de código javascript.
A8 – Deserialización insegura (U.S. Dept Of Defense 2018)
Esta vulnerabilidad consiste en la deserialización insegura por falta de validación que generalmente, permite la ejecución de código remoto.
En informador de la vulnerabilidad muestra como un servicio de monitorización del departamento de defensa de EEUU, el cual utiliza la plataforma Oracle PeopleSoft (ERP para una gestión laboral y empresarial completa) es vulnerable a la ejecución remota de código (RCE) y ataques de denegación de servicio (DoS) a la hora de deserializar objetos Java sin ningún tipo de validación (CVE-2017-10366).
A9 – Uso de componentes vulnerables (NPM 2019)
Esta vulnerabilidad consiste en el uso de componentes o dependencias con vulnerabilidades conocidas.
Como ejemplo, nos valdría el del apartado anterior. Otro ejemplo podrían ser, los proyectos que utilizarán el módulo getCookies (nos permite acceder a la cookie enviada por la petición). El uso de esta dependencia permite la ejecución de código remoto en el servidor.
A10 – Logs y supervisión insuficiente (Marriott 2018)
Esta vulnerabilidad consiste en la falta de información necesaria en los logs o falta de supervisión mediante herramientas que monitoricen logs y eventos de seguridad.
En la noticia se explica cómo esta vulnerabilidad afectó a más de 500 millones de clientes de Marriott International. Se informó que la red vulnerable era el servicio de reserva, al que los atacantes habían estado accediendo desde 2014.
Esto significó que su presencia pasó desapercibida durante más de cuatro años debido a la falta de logs y una supervisión insuficiente.
Si quieres ver las demos de todas ellas, las puedes encontrar en este link.
Charla
En la charla, David del Castillo, cuenta en qué consiste la vulnerabilidad, hace una demo de algunas de estas 10 más comunes y da algunos consejos de cómo mitigarlas.
¿Y qué más?
Todas las charlas que hacemos las puedes encontrar en nuestro canal de YouTube: back-end, front-end, UX… Suscríbete y stay tuned!