Que es el OWASP TOP 10
El Proyecto de seguridad de aplicaciones web abiertas (OWASP) es una comunidad de seguridad de aplicaciones de código abierto con el objetivo de mejorar la seguridad del software. Es una guía estándar que enumera los riesgos de seguridad de aplicaciones más críticos para ayudar a los desarrolladores a proteger las aplicaciones que diseñan e implementan.
Los riesgos de seguridad evolucionan constantemente, por este motivo la lista OWASP Top 10 se revisa periódicamente para reflejar estos cambios. En la última versión de OWASP Top 10 lanzada en 2022, algunos tipos de vulnerabilidades que ya no representan una amenaza grave fueron reemplazadas por otras que probablemente representen un riesgo significativo.

El OWASP Top 10 es un excelente punto de partida para comenzar a proteger las aplicaciones, pero no debe considerarse como un objetivo final, ya que algunas de las vulnerabilidades más críticas que surgen pueden no ser incluidas hasta la próxima revisión. Para protegerse contra la debilidad del software, los defensores necesitan mirar más ampliamente a través de su pila tecnologías. Esto significa que los profesionales de seguridad de TI deben centrarse en todo el ecosistema de software y mirar más allá de las fuentes de vulnerabilidades ‘tradicionales’.
Las principales vulnerabilidades
- Rotura de control de acceso
- Fallos criptográficos
- Inyección
- Diseño inseguro
- Configuración incorrecta de la seguridad
- Componentes vulnerables y obsoletos
- Fallos de identificación y autenticación
- Fallas de integridad de software y datos
- Registro de seguridad y fallas de monitoreo
- Falsificación de solicitud del lado del servidor (SSRF)
Rotura de control de acceso:
El “broken access control” es una vulnerabilidad incluida en el OWASP Top 10 2022. Se refiere a las debilidades en los mecanismos de control de acceso en una aplicación web, lo que permite a los atacantes acceder a recursos o funciones que normalmente estarían protegidos. Esto puede incluir la capacidad de acceder a datos confidenciales, realizar acciones maliciosas o elevar sus privilegios dentro de la aplicación.
Hay varias formas en las que los atacantes pueden aprovechar las debilidades en el control de acceso, como:
- Bypassing authentication: Los atacantes pueden utilizar técnicas para eludir la autenticación y acceder a recursos protegidos sin proporcionar las credenciales necesarias. Esto puede incluir técnicas como el uso de herramientas automatizadas para adivinar contraseñas o el uso de exploit para saltarse la autenticación.
- Injection flaws: Los atacantes pueden utilizar inyecciones de código para alterar las consultas de la base de datos y obtener acceso a recursos o funciones que no deberían estar disponibles para ellos.
- Misconfigured permissions: Una configuración incorrecta de los permisos puede permitir a los atacantes acceder a recursos o funciones que deberían estar protegidos. Por ejemplo, si un archivo importante no tiene permisos de lectura restringidos, un atacante puede acceder y leer ese archivo.
- Weak session management: Una gestión débil de las sesiones puede permitir a los atacantes acceder a recursos protegidos utilizando una sesión de otro usuario. Esto puede incluir el robo de cookies de sesión o la posibilidad de acceder a una sesión activa después de cerrar la navegación.
Para protegerse contra las debilidades en el control de acceso, es importante implementar medidas de seguridad sólidas, como la autenticación y autorización sólida, la validación de entrada y salida, el cifrado de datos sensibles y la protección contra ataques de fuerza bruta. Además, es recomendable realizar pruebas de penetración regulares para detectar y corregir las vulnerabilidades en el control de acceso.
Fallos Criptográficos
Los “Fallos Criptográficos son vulnerabilidades incluidas en el OWASP Top 10 2022. Se refiere a las debilidades en el uso de cifrado y otras técnicas de seguridad criptográfica en una aplicación web. Esto puede permitir a los atacantes acceder a información confidencial o realizar acciones maliciosas, como el robo de datos sensibles o el desvío de fondos.
Hay varias formas en las que los atacantes pueden aprovechar las debilidades en el cifrado, como:
- Weak Cryptography: El uso de algoritmos de cifrado débiles o mal configurados puede permitir a los atacantes descifrar la información protegida. Esto puede incluir el uso de algoritmos obsoletos o el uso de claves de cifrado débiles.
- Insufficient Key Length: Utilizar una longitud de clave insuficiente puede permitir a los atacantes descifrar la información protegida mediante técnicas de fuerza bruta.
- Improper Key Management: Una gestión inadecuada de las claves de cifrado puede permitir a los atacantes acceder a las claves y utilizarlas para descifrar la información protegida.
- Insecure Random Numbers: El uso de números aleatorios inseguros en los procesos de cifrado puede permitir a los atacantes predecir los valores utilizados en el cifrado y, en consecuencia, descifrar la información protegida.
Para protegerse contra las debilidades en el cifrado, es importante utilizar algoritmos de cifrado seguros y configurarlos correctamente. Además, es importante utilizar longitudes de clave adecuadas y gestionar las claves de cifrado de manera segura. También es recomendable utilizar números aleatorios seguros en los procesos de cifrado. Es importante también contar con una política de actualización constante para estar al día con las técnicas de cifrado más seguras disponibles.
Inyección
La inyección es una vulnerabilidad incluida en el OWASP Top 10 2022. Se refiere a la posibilidad de que un atacante inserta código malicioso en una aplicación web, lo que permite al atacante acceder a los datos almacenados en la base de datos de la aplicación. Esto puede incluir la capacidad de acceder a información confidencial, modificar o eliminar datos, o incluso tomar control total de la aplicación.
Hay varias formas en las que los atacantes pueden aprovechar las vulnerabilidades de inyección, como:
- SQL Injection: Es uno de los tipos más comunes de inyección. Ocurre cuando un atacante puede insertar código malicioso en una consulta SQL, lo que permite al atacante acceder o modificar los datos almacenados en la base de datos. Este tipo de inyección puede ser utilizado para robar información confidencial, modificar o eliminar datos, o incluso tomar control total de la aplicación.
- Command Injection: Es similar a la inyección SQL, pero en lugar de afectar a una base de datos, el atacante puede insertar comandos maliciosos en una aplicación web que se ejecuta en el sistema operativo, lo que permite al atacante acceder o modificar los datos almacenados en el sistema.
- OS Command Injection: Es similar a la Command Injection pero se aprovecha de la inyección de comandos directamente en el sistema operativo, lo que permite al atacante ejecutar comandos maliciosos en el sistema.
- LDAP Injection: Es similar a la inyección SQL, pero el atacante puede insertar código malicioso en una consulta LDAP, lo que permite al atacante acceder o modificar los datos almacenados en el directorio.
- File Injection: Es un tipo de inyección en el cual el atacante logra subir un archivo malicioso a un servidor web, ya sea mediante una vulnerabilidad en un formulario de subida de archivos o mediante una inyección de comandos.
- Cross-site Scripting (XSS): Es un tipo especial de inyección en la que el atacante inserta código malicioso en una página web, normalmente utilizando JavaScript, con el objetivo de acceder a la sesión de un usuario y robar información confidencial.
Para protegerse contra estos tipos de inyección, es importante implementar medidas de seguridad adecuadas, como la sanitización de entrada y la validación de salida, el uso de librerías de seguridad confiables y la revisión de código en busca de vulnerabilidades. También es recomendable utilizar técnicas de cifrado para proteger los datos sensibles y realizar pruebas de penetración regulares para detectar y corregir las vulnerabilidades. Es importante también contar con un sistema de detección de intrusiones y un plan de respuesta a incidentes para detectar y responder rápidamente a cualquier intento de inyección. Además, es necesario educar a los empleados y usuarios finales sobre los riesgos de las inyecciones y cómo detectarlas y evitarlas.
Tu trabajo como personal reciente es clasificar las vulnerabilidades encontradas en las siguientes categorías:
Rotura de control de acceso.
Fallos Criptográficos.
Inyección.
Las vulnerabilidades son las siguientes:
CVE-2022-47523
CVE-2022-40684
CVE-2021-3047
CVE-2020-2036
CVE-2022-29455
CVE-2022-34757
CVE-2005-2946
CVE-2019-12621
Formato de respuesta: xy-xy-xy-xy-xy-xy-xy-xy (Donde x es un número de 1 a 3 correspondiente a la categoría, y va de (de la “a” hasta la “h”) correspondiente a la vulnerabilidad).
Solución parcial del laboratorio:
Se efectúa la búsqueda en sitios de vulnerabilidades sugeridos con el código presentado y desde allí podemos clasificar el tipo de amenaza, en este caso para el primer punto tenemos la respuesta ( 3) que se trata de una inyección.

El itinerario de las repuestas serían: 3a‑1b………‑2‑3‑3‑2‑2‑2h