Ir al contenido principal

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
 
Fuente:
http://unaaldia.hispasec.com/2013/10/no-te-dejes-enganar-por-las_21.html

Comentarios

Entradas populares de este blog

¿Qué es la ejecución de código arbitrario?

En informática , el término código arbitrario hace referencia a código muy largo que no será interpretado por una aplicación o sistema operativo sino que provocará un desbordamiento de búfer de esa aplicación o sistema operativo lo que hará que el trozo desbordado sea interpretado y/o ejecutado por el sistema bajo unas condiciones más favorables. Es utilizado para realizar ataques. Otra forma más simple de definirlo es que la ejecución de código arbitrario es: Una forma fácil en la que un atacante puede ejecutar "comandos" tan sencillo como pensar en que alguien a distancia esta tecleando comandos que pueden ser desde un inocente mkdir "para hacer directorio" hasta un rm "borrar directorio" o abrir puertos etc para troyanizar el equipo "mantener el acceso". Lo que también es conocido como remote code execution .

Chiste del día

Chistes que Windows solía contarme :) lo bueno que ahora uso GNU/Linux Para los más y menos entendidos del temita, les sacara una risa

Programación Visual con Node-Red: Conectando el Internet de las Cosas con Facilidad

Programación Visual con Node-Red: Conectando el Internet de las Cosas con Facilidad ¿Te has imaginado como sería tener al alcance de tus dedos el poder de revisar cuanta comida tienes en el refrigerador? ¿Encender y apagar las luces de tu casa? En fin controlar cualquier aspecto de tu casa desde la comodidad de tu teléfono es posible y es un concepto que cada día cobra más fuerza se llama "El internet de las cosas" pero como nosotros somos entusiastas de la tecnología no solo nos interesa ser usuarios sino también creadores.  ¿Te gustaría saber un poquito mas sobre esta tecnología?  en este artículo te cuento como programar de forma visual con Node-Red: A través de la programación, hacemos que las máquinas imiten un comportamiento complejo siguiendo secuencias de instrucciones simples. Utilizar lenguajes de programación textual como Asambly, C, Python y JavaScript, es una de las formas principales de hacerlo. Los diseñadores de estos lenguajes de programación