Las 10 principales vulnerabilidades OWASP 2020
¿Qué es OWASP?
OWASP significa Open Web Application Security Project. Es una comunidad en línea que produce artículos, metodologías, documentación, herramientas y tecnologías en el campo de la seguridad de aplicaciones web.
¿Qué es el Top 10 de OWASP?
OWASP Top 10 es la lista de las 10 vulnerabilidades de aplicaciones más comunes. También muestra sus riesgos, impactos y contramedidas. La lista es actualizada cada tres o cuatro años, la última lista de vulnerabilidades de OWASP se publicó en 2018.
Las 10 principales vulnerabilidades de OWASP en 2020
Inyección
Las fallas de inyección permiten a los atacantes transmitir código malicioso a través de una aplicación a otro sistema. Estos ataques incluyen llamadas al sistema operativo a través de llamadas al sistema y el uso de programas externos a través de comandos de shell. También permite llamadas a bases de datos back-end a través de SQL (es decir, inyección de SQL). Los scripts completos escritos en Perl, Python y otros lenguajes pueden inyectarse y ejecutarse en aplicaciones mal diseñadas. Cada vez que una aplicación utiliza un intérprete de cualquier tipo, existe el peligro de introducir una vulnerabilidad de inyección.
Autenticación dañada
La autenticación rota es un término genérico para varias vulnerabilidades que los atacantes aprovechan para hacerse pasar por usuarios legítimos en línea. En términos generales, la autenticación dañada se refiere a debilidades en dos áreas: administración de sesiones y administración de credenciales. Ambos se clasifican como autenticación rota porque los atacantes pueden usar cualquiera de las vías para hacerse pasar por un usuario.
Los atacantes emplean una amplia variedad de estrategias para aprovechar estas debilidades. Estos van desde enormes ataques de relleno de credenciales hasta esquemas altamente dirigidos para obtener acceso a las credenciales de una persona específica.
Exposición de datos sensibles
La exposición de datos confidenciales se produce cuando una aplicación, empresa u otra entidad expone inadvertidamente datos personales. Una exposición de datos sensibles difiere de una violación de datos, en la que un atacante accede y roba información.
La exposición de datos sensibles ocurre como resultado de no proteger adecuadamente una base de datos donde se almacena la información. Esto puede ser el resultado de una multitud de cosas, como un cifrado débil y la falta de cifrado. También se puede deber a fallas de software o cuando alguien carga datos por error en una base de datos incorrecta.
Entidades externas XML (XXE)
La inyección de entidad externa XML (también conocida como XXE) es una vulnerabilidad de seguridad web. Esta vulnerabilidad permite a un atacante interferir con el procesamiento de datos XML de una aplicación. A menudo permite que un atacante vea archivos en el sistema de archivos del servidor de aplicaciones. Además, le permite interactuar con cualquier sistema de back-end o externo al que la aplicación pueda acceder.
En algunas situaciones, un atacante puede escalar un ataque XXE para comprometer el servidor subyacente u otra infraestructura de back-end. Ahí aprovecha la vulnerabilidad XXE para realizar ataques de falsificación de solicitudes del lado del servidor (SSRF).
Control de acceso dañado
El control de acceso hace cumplir la política de modo que los usuarios no pueden actuar fuera de sus permisos previstos. Las fallas generalmente conducen a la divulgación de información no autorizada, la modificación o destrucción de todos los datos. Asimismo, la realización de una función comercial fuera de los límites del usuario. Las vulnerabilidades comunes de control de acceso incluyen:
- Evadir las comprobaciones de control de acceso modificando la URL, el estado interno de la aplicación o la página HTML.
- Permitir que la clave principal se cambie al registro de usuarios de otra persona, lo que permite ver o editar la cuenta de otra persona.
- Elevación de privilegios. Actuar como usuario sin iniciar sesión, o actuar como administrador cuando inicie sesión como usuario.
- Manipulación de metadatos, como reproducir o alterar un token de control de acceso JSON Web Token (JWT) o una cookie.
- Forzar la navegación a páginas autenticadas como usuario no autenticado o páginas privilegiadas como usuario estándar.
Configuraciones incorrectas de seguridad
Las configuraciones erróneas de seguridad son configuraciones de seguridad configuradas de manera inapropiada o inseguras que ponen en riesgo tus sistemas y datos. Básicamente, cualquier cambio de configuración mal documentado, configuración predeterminada o un problema técnico en cualquier componente de tus puntos finales podría dar lugar a una configuración incorrecta.
Las configuraciones incorrectas pueden ocurrir debido a una gran cantidad de razones. Las infraestructuras de red modernas son muy complejas. Las organizaciones a menudo pasan por alto configuraciones de seguridad cruciales, incluidos los nuevos equipos de red que pueden conservar las configuraciones predeterminadas. Un desarrollador puede escribir reglas de firewall flexibles y crear recursos compartidos de red para su conveniencia mientras crea software y no los modifica. Algunas vulnerabilidades de configuración errónea de seguridad comunes son la seguridad de inicio de sesión y la administración de cuentas de usuario.
Secuencias de comandos entre sitios (XSS)
Cross-site Scripting (XSS) es un ataque de inyección de código del lado del cliente. El atacante quiere ejecutar scripts maliciosos en un navegador web de la víctima al incluir código malicioso en una página web o aplicación web legitima. El ataque real ocurre cuando la víctima visita la página web o la aplicación web que ejecuta el código malicioso.
La página web o la aplicación web se convierte en un vehículo para enviar el script malicioso al navegador del usuario. Los vehículos vulnerables que se usan comúnmente para ataques de secuencias de comandos entre sitios son foros, y páginas web que permiten comentarios.
Una página web o una aplicación web es vulnerable a XSS si utiliza una entrada de usuario no higiénica en la salida que genera. Esta entrada del usuario debe luego ser analizada por el navegador de la víctima. Los ataques XSS son posibles en VBScript, ActiveX, Flash e incluso CSS. Sin embargo, son más comunes en JavaScript, principalmente porque JavaScript es fundamental para la mayoría de las experiencias de navegación.
Deserialización insegura
La deserialización es el proceso de restaurar este flujo de bytes a una réplica completamente funcional del objeto original, en el estado exacto en el que se serializó. La lógica del sitio web puede interactuar con este objeto deserializado, como lo haría con cualquier otro objeto.
La serialización es el proceso de convertir estructuras de datos complejas. Por ejemplo, objetos y sus campos, se convierten en un formato “más plano” que se puede enviar y recibir como una secuencia secuencial de bytes.
Fundamentalmente, al serializar un objeto, su estado también persiste. En otras palabras, los atributos del objeto se conservan junto con sus valores asignados.
Usar componentes con vulnerabilidades conocidas
Las vulnerabilidades conocidas son vulnerabilidades que se descubrieron en componentes de código abierto y se publicaron en NVD, avisos de seguridad o rastreadores de vulnerabilidades. Desde el momento de la publicación, los hackers que encuentran la documentación pueden explotar una vulnerabilidad. Según OWASP, el problema de utilizar componentes con vulnerabilidades conocidas es muy frecuente. El posible impacto de las vulnerabilidades de código abierto varía desde menores hasta algunas de las mayores brechas conocidas.
Registro y monitoreo insuficientes
Cuando una organización tiene un registro, detección, monitoreo y respuestas insuficientes, los atacantes confían en estas debilidades para lograr sus objetivos sin ser detectados. Esta falta de mejores prácticas incluye cosas como:
- Eventos auditables, como inicios de sesión, inicios de sesión fallidos y transacciones de alto valor que no se registran.
- Advertencias y errores que generan mensajes de registro inexistentes, inadecuados o poco claros.
- Registros que solo se almacenan localmente.
- Pruebas de penetración y escaneos mediante herramientas DAST que no activan alertas.
- Aplicaciones que no pueden detectar, escalar o alertar sobre ataques activos en tiempo real o casi en tiempo real.