Actualmente todos los
navegadores tienen agujeros de seguridad, sean de mayor o menor
gravedad, pero los tienen. Es uno de los defectos que conlleva la
constante modernización de los mismos, y del uso de tecnologías
externas como puede ser Flash (ver Anexo), Java (ver
Anexo),
PHP o HTML5. Y son la integración de estas tecnologías las que más
problemas causan, y no es casualidad. Estas tecnologías son la base
de muchas aplicaciones web, que manejan datos sensibles, por lo que
focalizan la atención de los ataques.
![]() |
| Fuente: antivirus.es |
HTML5 merece una mención
aparte, ya que se presupone como un lenguaje seguro, se trata de un
lenguaje nuevo, lo que propicia que los desarrolladores cometan
errores de integridad al no estar acostumbrados a dicho lenguaje (ver
Anexo).
Las vulnerabilidades
poseen una serie de hitos o etapas que definen el ciclo de vida de
las mismas y son las siguientes:
- Nacimiento. Generalmente son defectos en el desarrollo. Un defecto se convierte en vulnerabilidad si hace que el comportamiento del sistema sea tal que pueda ser aprovechado para romper la seguridad del mismo, como puede ser la denegación de servicio o el acceso no autorizado.
- Descubrimiento. Como su nombre indica, es cuando se conoce una vulnerabilidad.
- Comunicación de la vulnerabilidad. Ocurre cuando el descubridor de la vulnerabilidad la da a conocer.
- Corrección. Este hito se da cuando el responsable del producto analiza la vulnerabilidad, localiza el problema y lo resuelve lanzando una versión pública con la vulnerabilidad solucionada (lo que conocemos como parche).
- Publicitación. Es el momento en el que el conocimiento de la vulnerabilidad se extiende a una audiencia importante, que le da publicidad a la misma.
- Automatización de explotación. A partir de la vulnerabilidad se crea una herramienta o script que automatiza la explotación de la vulnerabilidad (lo que conocemos como exploit).
- Muerte. Ocurre cuando el número de sistemas vulnerables al exploit es insignificante.
Estos hitos no
necesariamente ocurren en este orden. Encontramos varios casos
característicos, en los que la publicitación y la corrección
suceden a la vez. Generalmente sucede cuando el responsable del
producto es el que encuentra la vulnerabilidad, el cual usa la
corrección de la misma como parte de la publicidad para su producto.
Otro caso es cuando se genera la automatización de explotación
antes de la corrección de la vulnerabilidad. En este caso, el
exploit se considera de día cero (zero-day attack).
Algunas de las
vulnerabilidades más polémicas son las que se conocen desde el
nacimiento, es decir, se tratan de vulnerabilidades intencionadas. Se
especula que algunos sistemas tienen desde el origen agujeros de
seguridad intencionados conocidos por alguna de las partes que
interviene en el diseño y/o desarrollo. Este tipo de
vulnerabilidades funciona a modo de puerta trasera o caballo de
Troya. Sin entrar en detalles o polémicas, se especula que las
agencias de inteligencia, sobre todo de Estados Unidos han presionado
a fabricantes para crear puertas traseras en su software, que les
permitiera a estas agencias poder descifrar el contenido cifrado (ver
Anexo).
Los ataques más
habituales a navegadores web son:
- Inyección SQL: se trata de un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos.El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro. Ejemplo Inyección SQL. (ver Anexo)
- Clickjacking: o secuestro de clic, es una técnica maliciosa para engañar a usuarios de Internet con el fin de que revelen información confidencial o tomar control de su ordenador cuando hacen clic en páginas web aparentemente inocentes. En uno de los muchos navegadores o plataformas con alguna vulnerabilidad, un ataque de clickjacking puede tomar la forma de código embebido o script que se ejecuta sin el conocimiento del usuario; por ejemplo, aparentando ser un botón para realizar otra función. Ejemplo Clickjacking. (ver Anexo)

Fuente: rooibo.wordpress.com
- CSRF: del inglés Cross-site request forgery o falsificación de petición en sitios cruzados, es un tipo de exploit malicioso de un sitio web en el que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confía. Un ataque CSRF fuerza al navegador web validado de una víctima a enviar una petición a una aplicación web vulnerable, la cual entonces realiza la acción elegida a través de la víctima. Al contrario que en los ataques XSS, los cuales explotan la confianza que un usuario tiene en un sitio en particular, el cross site request forgery explota la confianza que un sitio tiene en un usuario en particular. Ejemplo CSRF (ver Anexo)
- XSS: del inglés Cross-site scripting, es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte inyectar en páginas web vistas por el usuario código JavaScript o en otro lenguaje script similar (ej: VBScript), evitando medidas de control como la Política del mismo origen. Es posible encontrar una vulnerabilidad XSS en aplicaciones que tenga entre sus funciones presentar la información en un navegador web u otro contenedor de páginas web. Sin embargo, no se limita a sitios web disponibles en Internet, ya que puede haber aplicaciones locales vulnerables a XSS, o incluso el navegador en sí.XSS es un vector de ataque que puede ser utilizado para robar información delicada, secuestrar sesiones de usuario, y comprometer el navegador, subyugando la integridad del sistema. Ejemplo XSS (ver Anexo)
- Man-in-the-Browser: Fraude en línea especializado. Es un tipo de troyano que espera a que sus clientes o empleados certifiquen los datos de sus cuentas (log-in) en el sitio de la aplicación de banca en línea del banco para el que fueron creados, e interceptan la comunicación entre el navegador y el usuario o entre el navegador y el sistema operativo, aprovechándose de debilidades del software o de la comunicación entre aplicaciones del sistema. De esta forma la información es enviada a repositorios específicos, desde cuentas de gmail hasta servidores IRC (internet relay chat), en donde los datos son almacenados a la espera de que el atacante los analice y extraiga la información de acceso para cometer el fraude. Este tipo de ataques también son conocidos como "Zero day attacks".Normalmente la victima debe ser muy lista e inteligente para poder darse cuenta de algún síntoma de este tipo de ataque ya que inclusive a través de SSL todo transcurre con extremada normalidad en su equipo.Este tipo de troyano se manifiesta o se adquiere de muchas maneras, pero básicamente las mas comunes son:
- Objetos BHO (Browser Helper Objects) conocidos como complementos del navegador en el caso de Internet Explorer.
- Extensiones de Firefox (el mismo caso pero diferente navegador).
- Api-Hooking: Programas insertados en el equipo que interceptan la comunicación entre el navegador y sus librerías DLL.
- Javacript libraries: Usando gusanos AJAX ( AJAX worms) (ver Anexo).
Menos de un 20% de las victimas logran detectar este tipo de estafa a tiempo, y ello se debe a la total normalidad aparente del sistema en el momento del fraude.
- Drive-by-download: permite infectar masivamente a los usuarios simplemente ingresando a un sitio web determinado. Mediante esta técnica, los creadores y diseminadores de malware propagan sus creaciones aprovechando las vulnerabilidades existentes en diferentes sitios web e inyectando código dañino entre su código original.Por lo general, el proceso de ataque se lleva a cabo de manera automatizada mediante la utilización de herramientas que buscan en el sitio web alguna vulnerabilidad y, una vez que la encuentran, insertan un script malicioso entre el código HTML del sitio vulnerado.Este gráfico creado por ESET, refleja el funcionamiento de este tipo de ataques. Al comenzar el proceso, el usuario malicioso (atacante) inserta en la página web vulnerada un script malicioso y luego el proceso continúa de la siguiente manera:
- Un usuario (víctima) realiza una consulta (visita la página) al sitio comprometido.
- El sitio web consultado (servidor o aplicación web vulnerable) devuelve la petición (visualización de la página) que contiene embebido en su código al script dañino previamente inyectado.
- Una vez descargado dicho script al sistema de la víctima, éste realiza una nueva petición a otro servidor (Hop Point). Esta petición es la solicitud de diversos scripts con exploits.
- Estos exploits tienen el objetivo de comprobar si en el equipo víctima existe alguna vulnerabilidad que pueda ser explotada. Se intentan explotar diversas vulnerabilidades, una tras otra, hasta que alguna de ellas tenga éxito.
- En caso de encontrarse alguna vulnerabilidad, se ejecutará un script que invoca la descarga de un archivo ejecutable (malware) desde otro servidor (o desde el anterior).
En
consecuencia, la infección del equipo se habrá llevado a cabo a
través de vulnerabilidades en el sistema del usuario.
Es
importante destacar que la mayoría de las vulnerabilidades
explotadas ya han sido solucionadas hace tiempo por el fabricante
del software, pero su explotación tiene éxito porque el usuario no
ha parcheado su sistema. El único caso en que el usuario no será
infectado es aquel en que el sistema se encuentre totalmente
parcheado y ninguna vulnerabilidad pueda sea explotada.
Como nota aclaratoria, en
este estudio no se pretende comparar todos los navegadores web y
elegir cual es el mejor, no me pagan para hacerlo. Además, cada uno
es libre de escoger cual es el navegador que más le gusta, o eso nos
garantiza la comunidad europea. Lo que si voy a comparar es la forma
de actuar por parte de las compañías dueñas de los navegadores más
populares frente a sus fallos de seguridad, en palabras del gremio,
su tiempo de respuesta frente a las vulnerabilidades.
Cada
navegador sigue su propia política de actualizaciones de seguridad.
Muchos de ellos actúan de forma reactiva a las vulnerabilidades, es
decir, en cuanto se descubren fallos de seguridad, trabajan en una
respuesta para paliar el problema. Mientras Google Chrome se esfuerza
en hacer que las vulnerabilidades inexplotables, otros navegadores
simplemente sacan parches para tapar el agujero.
¿Cuál
es la mejor solución? A la larga, la solución de Google es la
mejor, ya que elimina cualquier posibilidad de explotar cualquier
brecha ya descubierta, lo que no quita que no se vayan a descubrir
nuevas brechas.
¿Esto
quiere decir que Chrome es el navegador más seguro? Si y no. Tener
la confianza de que antiguas vulnerabilidades no vuelvan a dar
problemas no influye tanto en que los hackers no vayan a encontrar
nuevas brechas. Anualmente, se celebran congresos y concentraciones
dedicadas a que los hackers traten de romper la seguridad de los
navegadores, como la Pwn20wn patrocinado por la empresa de seguridad
Zero Day Initiative, en las que las compañías, sobre todo Google,
recompensan a los hackers con importantes sumas de dinero cuando
detectan vulnerabilidades.
En
la Pwn20wn 2013, desarrollada el pasado mes de marzo en Vancouver,
introducía novedades ya que también premiaba a los hackers que
descubriesen fallos en los plugins más destacados de los
navegadores, que fueron Adobe Reader, Flash y Java.
Los
premios se reparten de esta manera, y todos han sido concedidos:
- 100.000 dólares por ejecutar código a través de Google Chrome en Windows 7.
- 100.000 dólares por ejecutar código a través de Internet Explorer 10 en Windows 8.
- 75.000 dólares por ejecutar código a través de Internet Explorer 9 en Windows 7.
- 60.000 dólares por ejecutar código a través de Firefox en Windows 7.
- 65.000 dólares por ejecutar código a través de Apple Safari en OS X Mountain Lion.
- 70.000 por ejecutar código a través del plugin Adobe Reader XI en IE9 bajo Windows 7.
- 70.000 por ejecutar código a través del plugin Adobe Flash en IE9 bajo Windows 7.
- 20.000 por ejecutar código a través del plugin Java en IE9 bajo Windows 7.
Como
podemos ver, todos los navegadores tienen vulnerabilidades, por lo
que escoger el más seguro es complicado, pero podemos basar la
seguridad, en el tiempo de respuesta frente estas vulnerabilidades
por parte de los navegadores.
![]() |
| Fuente: GenbetaDev |
En
este gráfico, elaborado por GenbetaDev con fecha de octubre de 2012,
podemos ver el tiempo medio que tardan los tres grandes navegadores
en resolver una vulnerabilidad, en días. Si nos atenemos a él,
Google vuelve a estar por delante de sus competidores.
Si
analizamos el tiempo de respuesta de IE, tenemos que comprender que
tienen un mecanismo diferente al resto de compañías, ya que su
política es realizar actualizaciones de seguridad periódicamente en
vez de responder a las vulnerabilidades de forma reactiva.










0 comentarios:
Publicar un comentario