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

La H-1B: El viaje de un desarrollador iOS desde Honduras hasta Silicon Valley

Desde toptal.com nos cuentan ... La experiencia de un desarrollador Latinoamericano que llego hasta Silicon Valler desde Honduras, un interesante artículo que nos cuenta la travesía de llegar a trabajar en San Francisco, California. He aquí un fragmento del articulo: Por estos días, vivo en la gran ciudad de San Francisco. Obtuve un trabajo que amo, y uno con el cual soñé con tener durante mucho tiempo. Parece fácil ahora, pero no siempre fue así. Cómo empezó todo Nací en  San Pedro Sula , un pequeño pueblo en la esquina noroeste de Honduras. Comencé a programar cuando tenía 12 años. Todo empezó con BASIC. Un día, estaba jugando un vídeo juego y se colgó. Cuando ví la pantalla llena de códigos de error y mensajes, me picó la curiosidad—entonces comencé a aprender algunos comandos BASIC, que eventualmente me llevaron a comprar libros de programación sobre Clipper, Turbo Pascal, C, C++, etc. Fue genial. Tenía todo el tiempo del mundo para gastar programando cualq...

¿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 .

Por Qué Los Startups Necesitan Una Guía De Estilo

Incluso para un diseñador con experiencia, crear una nueva guía de estilo para un producto es difícil—hay muchas direcciones de diseño posible, y el proceso puede rápidamente convertirse en algo abrumador. La vida del  startup  es bastante agitada, rápida, y llena de clichés como “la perfección es la enemiga de tener algo hecho”, “muévete rápido y rompe cosas”, o “lancemos ahora, arreglemoslo después”. Crear una guía de estilo bajo dichos eslóganes y prioridades fluctuantes es desafiante, pero es necesario si queremos que el diseño de un producto tenga éxito a largo plazo. La  Experiencia Global de Lenguaje (GEL) de la BBC explica el propósito de cada componente y cómo deberían ser utilizados. En años recientes, hemos escuchado mucho sobre sistemas de diseño, guías de estilo, librerías de patrones, y  diseño atómico . Y si bien estas herramientas son muy útiles, usarlas puede sentirse como un exceso cuando lo único que quieres es crear un par de pantalla...