top of page

OWASP TOP 10 2021 : ¿Qué es y cómo se come?

Actualizado: 21 jun 2023

En el presente artículo el ingeniero de cyte Damián Salcedo nos presenta las 10 principales vulnerabilidades y fallos de seguridad en aplicaciones en la actualidad, de acuerdo con la fundación OWASP que vela por la seguridad del software, para que con base en este listado podamos hacer una revisión de nuestros aplicativos.


OWASP (Open Web Application Security Project®) es una fundación sin ánimo de lucro que trabaja desde hace 2 décadas por mejorar la seguridad del software. Para ello, uno de sus servicios a la comunidad ha sido la publicación cada cierto tiempo de un Top 10 de las vulnerabilidades y fallos de seguridad más críticos del momento, que han afectado a las aplicaciones web. Este top 10 ayuda a los desarrolladores a entender cuales son las falencias de seguridad de diseño e implementación de software más importantes a evitar. El TOP 10 actual (publicado en el 2021) recoge las siguientes categorías (puede consultar el sitio web https://owasp.org/www-project-top-ten/ para ver una explicación más detallada):







El Top 10 es armado con base en el consenso entre expertos en el área sobre los riesgos de seguridad más prevalentes encontrados en un muestreo de aplicaciones analizadas. Las 10 categorías publicadas sirven entonces como una lista de chequeo para revisar las aplicaciones de una organización y ver qué tan expuestas están ante un ataque.






¿Cómo usarlo?


El paso 1 es consultar el sitio web https://owasp.org/Top1 0/es/A00_2021_Introduction/ y leer cada categoría. Dentro de cada categoría se encuentra su explicación y la razón de su inclusión en el Top. En la categoría se mencionan las vulnerabilidades comunes asociadas a esta, lo cual permite aterrizar para el desarrollador los problemas puntuales que debe probar en su aplicativo. Por ejemplo, en la categoría “Pérdida de Control de Acceso” se menciona “Eludir las comprobaciones de control de acceso modificando la URL (alteración de parámetros o navegación forzada), el estado interno de la aplicación o la página HTML, o mediante el uso de una herramienta que modifique los pedidos a APIs.” De esta manera, el desarrollador tendría que pensar si ya aplicó controles en su aplicativo que eviten esta clase de ataques, y sobre todo si ya hizo alguna prueba que verifique la efectividad de dichos controles.


En caso que el desarrollador no conozca que controles puede aplicar para evitar las vulnerabilidades de la categoría, OWASP le da un listado de los controles recomendados. En el ejemplo actual, OWASP indica que debe aplicar uno o más controles de acceso del lado del servidor, y el primero que menciona dice “A excepción de los recursos públicos, denegar por defecto". De esta manera, cualquier petición será rechazada a menos que el usuario o aplicativo solicitante se haya autenticado previamente.


Desafortunadamente, el nivel de detalle de los ejemplos y explicaciones es intencionalmente muy general, por lo que un desarrollador no experto en seguridad podría quedar con una sensación de falsa seguridad (“ah si, yo ya aplico controles de acceso”, pero los aplicó mal o son insuficientes) o puede sentirse abrumado (“no entendí bien las vulnerabilidades mencionadas, luego no sé qué hacer para aplicar los controles”). En este punto es muy importante que el desarrollador busque capacitarse en los aspectos que determinó más confusos.


Por ejemplo, si el desarrollador está trabajando en un aplicativo que en alguna funcionalidad utiliza criptografía, y ve que el Top 10 señala que una de las categorías con más fallos de seguridad es “Fallas Criptográficas”, debería estar en capacidad de entender cada uno de los elementos que OWASP resalta en esta categoría. Es así que si aparece una pregunta como “¿Se utilizan funciones hash obsoletas, como MD5 o SHA1, o se utilizan funciones hash no criptográficas cuando se necesitan funciones hash criptográficas?” y el desarrollador piensa “no sé qué quiere decir función hash”, se ha detectado un punto donde el aplicativo desarrollado puede tener una falla de seguridad grave.


Por lo anterior, OWASP Top 10 no es una herramienta remediadora que al aplicarla hará que los aplicativos se vuelvan seguros. Es más bien una herramienta diagnóstica gratuita que permite detectar las falencias de seguridad del aplicativo, y sobre todo, las falencias en capacitación de seguridad mínima que deberían tener los desarrolladores. El primer paso para aprender algo es saber que uno lo ignora, por lo que el top 10 nos ayuda a saber qué cosas importantes no sabemos al respecto de la seguridad de los aplicativos.


A continuación, una breve explicación de cada categoría del TOP 10 actual, y los conocimientos que deben tenerse para poder atenderla:


A01:2021-Pérdida de Control de Acceso: para evitar que un usuario autenticado obtenga información o privilegios más altos a los que tiene acceso, se debe ser minucioso en la implementación de los controles de cada módulo y componente del aplicativo. Esto implica el conocimiento de los controles disponibles por cada framework de desarrollo que se esté utilizando, y generar pruebas unitarias y automatizadas que verifiquen el correcto funcionamiento del control.


A02:2021-Fallas Criptográficas: la criptografía es una disciplina compleja, al estar basada en matemáticas y estándares complejos, se requiere que quien vaya a hacer uso de esta entienda muy bien qué está haciendo. Aunque no es necesario ser criptógrafo para utilizar un protocolo o librería criptográfica, si se necesita entender los conceptos básicos que el protocolo utiliza (llaves, firmas, hashes, etc). Hacer cursos de conceptos básicos y avanzados de criptografía es lo mejor para saber usar bien los controles de esta índole.


A03:2021-Inyección: la validación incorrecta o inexistente de los datos que ingresan a un aplicativo sigue siendo una de las fallas más comunes (de acuerdo a OWASP) de seguridad. La correcta sanitización de datos que ingresan a un aplicativo es vital para evitar fallas de seguridad en el aplicativo.


A04:2021-Diseño Inseguro: esta categoría abarca los problemas que no tienen que ver con errores de implementación, sino con problemas del proceso de negocio o funcionalidades del aplicativo. Si por ejemplo el aplicativo permite que un usuario recupere su contraseña respondiendo unas preguntas de control, tiene una falla de seguridad en su diseño pues un atacante podría obtener esas respuestas y suplantar al usuario. Un sistema de autenticación por 2 factores y recuperación de contraseña usando un teléfono móvil sería mejor. Esta categoría requiere capacitación en modelado de amenazas, patrones y principios de diseño seguro y arquitecturas de referencia.


A05:2021-Configuración de Seguridad Incorrecta: esta categoría es sencilla de entender y solventar, por lo que sorprende aún su prevalencia actualmente. El dejar usuarios y contraseñas por defecto, funcionalidades innecesarias activadas, no hacer hardening, o aplicar configuraciones recomendadas hacen parte de esta categoría.


A06:2021-Componentes Vulnerables y Desactualizados: esta es otra categoría autoexplicativa y sencilla de entender. Las fallas asociadas a esta tienen que ver con falencias en la organización en aplicar un Gobierno de TI efectivo que permita periódicamente identificar y solventar el uso de componentes vulnerables y desactualizados.


A07:2021-Fallas de Identificación y Autenticación: los aplicativos web al estar expuestos en internet requieren mayor número de controles de seguridad para la autenticación de los usuarios. Al implementar mecanismos de autenticación y control de roles, los desarrolladores deben ser más minuciosos en verificar que cada control de acceso y autenticación esté aplicado tal y como esté especificado en su estándar asociado (por ejemplo OAUTH2).


A08:2021-Fallas en la Integridad del Software y de los Datos: ataques a la cadena de suministro de los últimos años como el de SolarWinds (https://www.cyte.co/blog/NL_30-S olarWinds%C2%AE-hack) y ataques de serialización de datos hacen parte de esta categoría, que aunque no es muy prevalente, en los últimos años se ha hecho cada vez más común como vector de ataque y cuyos controles no son usualmente aplicados.


A09:2021-Fallas en el Registro y Monitoreo de la Seguridad: esta categoría está pensada para registrar los problemas que surgen a partir de la falta o incorrecto registro de eventos de seguridad en el aplicativo, y verificar que la organización tiene una metodología para monitorear y responder ante incidentes de seguridad emanados por el aplicativo.


A10:2021-Falsificación de Solicitudes del Lado del Servidor (SSRF): esta categoría se refiere a la vulnerabilidad que le permite a un atacante enviar peticiones desde el servidor a otras aplicaciones. Según OWASP los datos analizados no muestran una prevalencia evidente de este tipo de ataques, pero al solicitar a la comunidad mediante encuesta esta vulnerabilidad fue catalogada como número 1, por lo que ameritó su inclusión en el top. A término personal, considero que siguiendo los controles de mitigación de la categoría 3 (sanitización de datos enviados por el usuario) se puede estar atendiendo esta categoría también.


Afortunadamente internet tiene a disposición tutoriales y material de entrenamiento para cada aspecto de seguridad y desarrollo mencionado en OWASP, sin embargo, una organización haría bien en contratar una capacitación general para los desarrolladores que abarque los aspectos más importantes que menciona OWASP en su TOP 10.




Si deseas tener siempre a la mano el artículo escrito por nuestro ingeniero Damián Salcedo, te invitamos a descargarlo, compartirlo y comentarnos qué opinas al respecto.






Referencias:


Las imagenes usadas en esta nota fue tomada de archivos.



Consúltenos vía email a: info@cyte.co acerca de las preguntas que pueda tener sobre cómo puede adquirir la herramienta Crypto-Vault® para cifrado y descifrado de documentos sensibles de su organización.






194 visualizaciones0 comentarios

Comments


bottom of page