jueves, 21 de noviembre de 2013

OWASP: Los diez riesgos más críticos en aplicaciones web (2013)

La OWASP (Open Web Application Security Project) ha publicado una actualización del ranking de los riesgos más importantes que afectan a las aplicaciones web. Este documento pretende concienciar a la industria sobre los riesgos de seguridad, en el ámbito de las aplicaciones web, identificando y remarcando las diez amenazas más serias a las que se exponen. 

El proyecto OWASP tiene como objetivo ofrecer una metodología, de libre acceso y utilización, que pueda ser utilizada como material de referencia por parte de los arquitectos de software, desarrolladores, fabricantes y profesionales de la seguridad involucrados en el diseño, desarrollo, despliegue y verificación de la seguridad de las aplicaciones y servicios web.

Dicho ranking nace del consenso y debate entre expertos en la materia de la seguridad en aplicaciones web. El proyecto Top Ten comenzó a gestarse en 2003, cuando se publicó el primer ranking. En 2004, se efectuaron cambios menores de aquella primera edición, en 2007 se liberó la segunda y la tercera edición se publicó en 2010.

Tal y como refleja la organización, y se hace cada vez más evidente, no se han de limitar los esfuerzos en la erradicación o el tratamiento de las amenazas señaladas (el número de riesgos o vulnerabilidades identificadas es de varios ordenes mayor), sino de un plan de seguridad que comience y se alargue durante todo el ciclo de desarrollo de una aplicación, desde su diseño inicial hasta la fase de mantenimiento.

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.

Cambios más significativos

Esta actualización profundiza sobre una de las categorías de la versión 2010, a fin de ser más inclusivo, sobre importantes vulnerabilidades comunes, y reordena algunos de los demás basándose en el cambio de los datos de prevalencia.

En esta edición de 2013 se pueden destacar los siguientes cambios respecto de la edición anterior del 2010. La perdida de autenticación y gestión de sesiones ascendió en prevalencia (pasa del nivel de gravedad 3 al 2). La falsificación de Peticiones en Dominios Cruzados (CSRF) disminuyó en prevalencia (pasa del nivel 5 al nivel 8).

También se ha ampliado la categoría 8 "Falta de restricciones en accesos por URL" para darle un significado más amplio, ahora es "Ausencia de Control de Acceso a las Funciones". Se han fusionado y ampliado las categorías 7 y 9, para crear el nivel 6 "Exposición de Datos Sensibles". Por último, se ha creado la categoría 9 "Uso de Componentes con Vulnerabilidades Conocidas", antes incluido como parte del grado 6 "Defectuosa configuración de seguridad" pero ahora posee una categoría propia debido al crecimiento del desarrollo basado en componentes.

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.


Desde nuestra experiencia, cuando hacemos auditorías de aplicaciones webs, el ranking enumera perfectamente los hallazgos que encontramos durante los trabajos. Incluso nos ha llamado la atención, más de una vez, acertar con el pleno completo. Sorprende ver que la seguridad web sigue siendo asignatura pendiente de una gran cantidad de sitios importantes con miles de visitantes al día.

Más información:

Sitio principal de OWASP

OWASP Top 10 for 2013 [PDF]

una-al-dia (19/04/2010) OWASP: Los diez riesgos más importantes en aplicaciones web (2010)



Antonio Ropero
Twitter: @aropero

No hay comentarios:

Publicar un comentario en la entrada