Home > Noticias > Los diez riesgos más crí­ticos en aplicaciones web (2013)

El objetivo principal del Top 10 es educar a los desarrolladores, diseñadores, arquitectos, gerentes, y organizaciones; sobre las consecuencias de las vulnerabilidades de seguridad más importantes en aplicaciones web. El Top 10 provee técnicas básicas sobre como protegerse en estas áreas de alto riesgo y también provee orientación sobre los pasos a seguir.

El OWASP Top 10 2013, se basa en 8 conjuntos de datos de 7 firmas especializadas en seguridad de aplicaciones, incluyendo 4 empresas consultoras y 3 proveedores de herramientas SaaS. Estos datos abarcan más de 500.000 vulnerabilidades a través de cientos de organizaciones y miles de aplicaciones. Las vulnerabilidades del Top 10 son seleccionadas y priorizadas de acuerdo a estos datos de prevalencia, en combinación con estimaciones consensuadas de explotabilidad, detectabilidad e impacto.

Existen cientos de problemas que pueden afectar a la seguridad en general de una aplicación web, por lo que se recomienda seguir la Guia de Desarrollo OWASP y la OWASP Cheat Sheet.

Top Ten 2013

La edición del 2013 presenta las siguientes categorías:

A1 – Inyecciones

Vulnerabilidades de inyección de código, desde SQL o comandos del sistema hasta LDAP, ocurren cuando se envían datos no confiables a un intérprete como parte de un comando o consulta.

A2 – Pérdida de autenticación y gestión de sesiones

El anterior número tres. Comprende los errores y fallos en las funciones de gestión de sesiones y autenticación. Se produce cuando las funciones de la aplicación relacionadas con la autenticación y la gestión de sesiones no se implementan correctamente, lo que puede permitir a los atacantes comprometer contraseñas, claves, token de sesiones, o explotar otros problemas que podrían permitir asumir la identidad de otros usuarios.

A3 – Cross-Site Scripting (XSS)

Anteriormente en el número dos, no por ello sigue siendo una de las vulnerabilidades más extendidas y a la par subestimada.

A4 – Referencias directas inseguras a objetos

Errores al exponer partes privadas o internas de una aplicación sin control y accesibles públicamente. Ocurre cuando un desarrollador expone al exterior una referencia a un objeto de implementación interno, tal como un fichero, directorio, o base de datos.

A5 – Configuración de seguridad incorrecta

Más que un error en el código se trata de la falta o mala configuración de seguridad de todo el conjunto de elementos que comprende el despliegue de una aplicación web, desde la misma aplicación hasta la configuración del sistema operativo o el servidor web. Es decir, se refiere a la definición e implementación de una configuración segura para la aplicación, marcos de trabajo, servidor de aplicación, servidor web, base de datos y plataforma. Todas estas configuraciones deben ser definidas, implementadas y mantenidas, ya que por lo general no son seguras por defecto. Esto incluye mantener todo el software actualizado, incluidas las librerías de código utilizadas por la aplicación.

A6 – Exposición de datos sensibles

Esta categoría surge de la fusión y ampliación de las anteriores A7 y A9. Muchas aplicaciones web no protegen adecuadamente datos sensibles tales como números de tarjetas de crédito o credenciales de autenticación. Los datos sensibles requieren de métodos de protección adicionales tales como el cifrado de datos almacenados mediante técnicas criptográficas adecuadas (p.ej. manteniendo el hash de la contraseña en vez de la propia contraseña cifrada), así como también de precauciones especiales en el intercambio de datos con el navegador.

A7 – Ausencia de control de acceso a funciones

Surge de la ampliación de la anterior categoría 8, que trataba la falta de validación en el procesamiento de URLs que podrían ser usadas para invocar recursos sin los derechos apropiados o páginas ocultas. Ahora se refiere tanto a URLs como a los datos que se pasan a funciones de la propia aplicación.

A8 – Falsificación de Peticiones en Dominios Cruzados o Cross-site Request Forgery (CSRF).

Anteriormente en el puesto 5. Vulnerabilidad consistente en el desencadenamiento de acciones legitimas por parte un usuario autenticado, de manera inadvertida por este último y bajo el control de un atacante.

A9 – Utilización de componentes con vulnerabilidades conocidas

Se refiere al uso de componentes tales como librerías, frameworks y otros módulos de software, que en muchas ocasiones funcionan con todos los privilegios. Si se ataca un componente vulnerable esto podria facilitar la intrusión en el servidor o una perdida de datos.

A10 – Redirecciones y reenvíos no validados.

Errores en el tratamiento de redirecciones y uso de datos no confiables como destino.