El software ha tomado una gran importancia dentro de nuestras vidas (salud, finanzas, vehículos, administración, energía, etc.) y a medida que se convierte en algo indispensable, robusto e interconectado, la dificultad para lograr seguridad en las aplicaciones crece aceleradamente, así mismo el desarrollo ágil de software aumenta aún más el riesgo de no descubrir vulnerabilidades de forma rápida y precisa.

Por este motivo es importante que en cada desarrollo se utilicen metodologías, buenas practicas, lenguajes de programación y API’s estables, pruebas, entre otras, en las que se puedan confiar y sea seguro la creación y manejo de una aplicación.

Dentro de cualquier ámbito normalmente existen organizaciones sin fin de lucro que se enfocan en determinado aspecto y la seguridad de las aplicaciones web no es la excepción, siendo el OWASP una de las organizaciones más famosas de la industria que cada cierto tiempo realiza un listado de las vulnerabilidades más criticas de las aplicaciones web.

¿Que es OWASP?

El Proyecto Abierto de Seguridad en Aplicaciones Web (OWASP por sus siglas en inglés) es una fundación sin fines de lucro que trabaja para mejorar la seguridad del software. Esta se basa en proyectos de software de código abierto liderados por la comunidad, conferencias y capacitación con el fin de que los desarrolladores protejan la web. 

¿Que es OWASP TOP 10?

El OWASP Top 10 es un documento que se realiza cada cierto tiempo y se enfoca en identificar los riesgos más críticos de las aplicaciones web, descritas a continuación.

  1. Inyección 
  2. Pérdida de Autenticación
  3. Exposición de datos sensibles
  4. Entidades Externas XML (XXE)
  5. Pérdida de Control de Acceso
  6. Configuración de Seguridad Incorrecta
  7. Secuencia de Comandos en Sitios Cruzados (XSS)
  8. Deserialización Insegura
  9. Componentes con vulnerabilidades conocidas
  10. Registro y Monitoreo Insuficiente

1. Inyección 

Este tipo de fallas ocurren cuando se envían datos no confiables a un intérprete (Sql, NoSql, Sistema operativo o cualquier otro interprete), como parte de un comando o consulta. Estos datos pueden engañar al interprete para ejecutar comandos involuntarios o que acceda a los datos sin una autorización. 

2. Pérdida de Autenticación

Esta vulnerabilidad tiene que ver con la autenticación y gestión de sesiones con el fin de comprometer usuarios, contraseñas, tokens de sesiones u otras fallas a fin de asumir la identidad de otros usuarios de forma temporal o permanente. 

3. Exposición de datos sensibles

Algunos desarrollos y API’s no protegen de manera adecuada datos sensibles, tales como información financiera, salud o Información Personalmente Identificable (PII), ocasionando que una persona ajena pueda robar o modificar datos sensibles para realizar fraudes, robos de identidad u otros delitos.

4. Entidades Externas XML (XXE)

Los ataques de entidad externa XML  también conocida XXE, es una vulnerabilidad en la que permite manejar el procesamiento XML de una aplicación, permitiendo a través de este ataque ver los archivos del servidor, escanear puertos LAN, ejecutar código y realizar ataques de negación de servicio (DoS).

5. Pérdida de Control de Acceso

Esta se da cuando no existen restricciones de funcionalidad sobre los usuarios autenticados, ocasionando el acceso no autorizado de funcionalidades, información, archivos, permisos, etc.

6. Configuración de Seguridad Incorrecta

Este problema es muy común dentro de las aplicaciones debido a la mala configuración de permisos en la nube, cuentas predeterminadas y de prueba con contraseñas genéricas, mensaje de error detallados, falta de actualizaciones, frameworks, dependencias y componentes desactualizados, etc.

7. Secuencia de Comandos en Sitios Cruzados (XSS)

La secuencia se comandos ocurre cuando se envían datos no confiables directamente al navegador web, permitiendo ejecutar comandos en el navegador del usuario, obteniendo las credenciales de acceso del usuario, modificar los sitios o redireccionar al usuario a un sitio malicioso.

8. Deserialización Insegura

Existe una vulnerabilidad de deserialización insegura cuando se usan datos no confiables para aprovecharse de la lógica de una aplicación, manipulando o borrando objetos para realizar ataques de repetición, inyecciones o una ejecución remota de código dentro del servidor.

9. Componentes con vulnerabilidades conocidas

Una aplicación que utiliza librerías, frameworks y módulos puede recibir ataque si alguno de sus componentes es vulnerable ocasionando ataques, perdida de información o acceso al servidor. 

10. Registro y Monitoreo Insuficiente

La mala supervisión de los registros, un monitoreo insuficiente y una reacción inadecuada a varios incidentes, puede ocasionar un ataques, manipulación y/o extracción de información, siendo esta vulnerabilidad responsabilidad del personal que administra la aplicación.

Todas y cada una de las vulnerabilidades explicadas anteriormente son del reporte del año 2017,  y habrá que esperar para ver cuales han cambiado y/o cuales han sido agregadas al listado. 

Published On: agosto 17, 2021 / Categories: Desarrollo de Software /

Recibir publicaciones por correo electrónico

¡Genial!, estás suscrito.
Hubo un error al intentar enviar su mensaje. Por favor, inténtelo de nuevo más tarde.