lunes, 21 de octubre de 2013

No te dejes engañar por las vulnerabilidades leves (y II)

Hay fallos que generalmente suelen ser pasados por alto a la hora de corregir problemas o hacer una valoración de la seguridad. En la anterior entrega hablamos de problemas como cross-site scripting o denegación de servicio suelen pasar desapercibidos y no se les presta gran atención. Sin embargo pueden causar graves perjuicios o permitir la realización de ataques más avanzados sin son combinados o encadenados con otras vulnerabilidades, incluso aunque también estas últimas sean de impacto moderado.

Cross-site Request Forgery, la vulnerabilidad incomprendida

Este tipo de vulnerabilidad permite a un atacante ejecutar funcionalidad de una web determinada a través de la sesión en esa web de otro usuario. Su mecanismo es sencillo, pero entender como funciona y su impacto no lo es y mucho menos para profesionales ajenos al mundo de la seguridad. Para ello necesitamos montar una prueba de concepto realista y detallar cada paso efectuado en el ataque. Si no se entiende este ataque y su impacto, la interpretación del mismo suele ser pobre y se tiende a infravalorar su peligrosidad.

En una ocasión uno de nuestros clientes nos pidió una prueba de concepto detallada para entender su impacto ya que con la descripción del ataque no percibía el peligro y descartaba una solución a corto plazo, incluso nos solicitaba cambiar su calificación a una más moderada. Cuando se efectuó dicho test observó como un simple correo con un enlace a una imagen, sin asociación ninguna a la marca, llevaba al usuario a una web de Hispasec sin relación con la suya. ¿Ya está? preguntó el cliente. Entonces le pedimos que accediera a la cuenta de pruebas de su aplicación web y observara los cambios. A partir de ese momento las piezas encajaron y pudo ver el peligro real que suponía.

CVSS, un estándar para medir la gravedad

Está claro que hay que dar un nivel de gravedad para cada problema. Aunque un cross-site scripting pueda llegar a ser grave, evidentemente sería mucho peor que la aplicación tuviera una vulnerabilidad de inyección SQL con capacidad para ejecutar volcar la base de datos completa. Para solucionar el "problema" de medir la gravedad de una vulnerabilidad se creó el estándar CVSS (Common Vulnerability Scoring System).

El CVSS es un sistema de puntuación de vulnerabilidades diseñado para proporcionar un método abierto y estandarizado para la clasificación de vulnerabilidades. CVSS pretende ayudar a las empresas a priorizar y coordinar una respuesta a los problemas de seguridad.

Las puntuaciones asignadas por el CVSS se derivan de la medición de tres grupos diferenciados: El grupo "base" representa las propiedades de una vulnerabilidad que son inmutables en el tiempo (como la complejidad, si es local o remota, o si se requiere autenticación, así como el grado en que compromete la confidencialidad, integridad y disponibilidad del sistema), el grupo "temporal" mide propiedades que pueden cambiar con el tiempo (como la existencia de parches o código para su explotación) y el grupo "medioambiental" que mide las propiedades de una vulnerabilidad que pueden depender del propio entorno de la organización en el que se usan los sistemas. De la métricas base se deriva una puntuación de 0 a 10, que puede verse reducido en función de los valores de las métricas "temporal" y "medioambiental".

El CVSS se ha convertido en un estándar y es plenamente utilizado por un gran número de organizaciones, que incluso en los propios avisos o boletines de seguridad ya notifican los valores del CVSS. Nuestro servicio de alertas de vulnerabilidades SANA, también ofrece el valor CVSS en todas las alertas emitidas.

Al final, el CVSS nos da una puntuación entre 0 y 10 que permite categorizar la gravedad de una vulnerabilidad, a mayor valor, más gravedad. De esta forma una correcta aplicación del CVSS puede resultar de gran utilidad en las organizaciones, ya que puede ayudar a determinar la urgencia para instalar un determinado parche, o planificar el orden en que deben ser instaladas las actualizaciones.

Aunque también hay que tener cuidado en su aplicación, en ocasiones nos hemos encontrado con organizaciones que dentro de su política de actualización no parchean vulnerabilidades con un CVSS menor de un determinado valor. En definitiva, el CVSS puede ser de utilidad para determinar la prioridad a la hora de actualizar, pero no para establecer que una vulnerabilidad no merece ser parcheada.

Todas las vulnerabilidades tienen su importancia

Está claro que una vulnerabilidad 0-day, con un exploit público, que afecte a todos los Windows, fácilmente explotable es mucho más peligrosa que un simple cross-site scripting; pero también hay que tener claro que no hay que descuidar las vulnerabilidades de menor importancia, ya que también pueden conllevar graves consecuencias si son explotadas con éxito. Por eso, una vez más, es importante recordar la importancia de auditar y corregir cualquier tipo de fallo encontrado.


Más información:

una-al-dia (04/01/2010) El falso "hackeo" de la web de la presidencia española, XSS y lecciones para aprender

una-al-dia (13/02/2000) Ataques masivos. ¿Es tan fiero el león como lo pintan?

una-al-dia (31/07/2013) Crónica del ataque a los foros de Ubuntu

Common Vulnerability Scoring System (CVSS-SIG)

Common Vulnerability Scoring System Version 2 Calculator



Antonio Ropero
Twitter: @aropero

David García
Twitter: @dgn1729

No hay comentarios:

Publicar un comentario en la entrada