PDA

Ver la versión completa : Cortafuegos (Firewall): Test de fugas



mimasol
14-02-2008, 21:57
Cortafuegos (Firewall): Test de fugas

Es fácil disponer de un cortafuegos que evite que otros equipos inicien y establezcan conexiones al nuestro. Sin entrar en más detalles, cualquier cortafuegos es capaz de eso con más o menos grado de sofisticación y control. Sin embargo, esa funcionalidad básica del cortafuegos no evita que un software malicioso que haya logrado penetrar en nuestro equipo pueda establecer conexiones hacia el exterior, enviando a servidores extraños cualquier tipo de información de nuestra máquina (contraseñas, datos de navegación o configuración, etc). Es por eso por lo que los cortafuegos que no facilitan el bloqueo del tráfico saliente se nos quedan incompletos (es el caso del cortafuegos incluido en XP y, en menor grado, el de Windows Vista).

Pero tampoco por utilizar una pasarela dedicada, con Smoothwall o IPCop, estamos a salvo, a no ser que instalemos algún complemento (como BlockOutTraffic, quizás el más conocido) que nos permita controlar también el tráfico que fluye de nuestra máquina hacia el exterior. Incluso cortafuegos personales para Windows que incluyen control de tráfico saliente, pueden realizar esa función de modo incompleto o defectuoso, sobre todo por una deficiente configuración o por resultar miserablemente engañados por una aplicación que se haga pasar por otra que ha sido autorizada por el usuario.

Por fortuna existe una forma sencilla de comprobar si nuestro cortafuegos permite conexiones salientes desde nuestra máquina Windows que debería prohibir: realizar un test de fugas...

Existen muchos, pero utilizaremos como ejemplo el que nos ofrece PC Flank. Anticipamos que PC Flank afirma que sólo dos cortafuegos personales para Windows eran capaces de superarlo a finales de 2006: OutPost Pro y Tiny.

El proceso comienza descargando una pequeña utilidad que no necesita instalación. Al ejecutarla en nuestra máquina Windows, el proceso es el que se muestra a continuación:

http://www.kriptopolis.org/images/pcflank01.gif

http://www.kriptopolis.org/images/pcflank02.gif

http://www.kriptopolis.org/images/pcflank03.gif

Tras escribir cualquier frase en el campo correspondiente se intenta sobrepasar el cortafuegos para enviar los datos al servidor de PC Flank. Si el cortafuegos lo permite, aparece la pantalla que indica el fallo:

http://www.kriptopolis.org/images/pcflank04.gif

Tras pulsar el correspondiente botón que lanza tu navegador, puedes comprobar cómo la frase que escribiste ha llegado al servidor de prueba:

http://www.kriptopolis.org/images/pcflank05.gif

Momento de tomar medidas.

En primer lugar se hace necesario comentar que el test de PC Flank -aunque muy eficaz- no es el único test de fugas que existe. De hecho puede decirse que existen al menos un par de docenas de ellos, y cada uno trata de explotar algún mecanismo más o menos ingenioso de saltarse las defensas que intenta imponer el cortafuegos. De hecho, si al lector o a mí se nos ocurriese algún nuevo método aún no contemplado, lo primero que haríamos sería presentar a los demás un exploit o una prueba de concepto en forma de test de fugas (aunque por desgracia siempre podría existir alguien que pretendiera explotarlo antes... como troyano)

No obstante, y en general, hay una decena de mecanismos públicamente reconocidos a los que recurren casi todos los tests de fugas existentes:
Sustitución: la aplicación de test se renombra a sí misma adoptando el nombre de otra aplicación que ha sido declarada fiable por el usuario.
Lanzador: la aplicación de test lanza otro programa en el que se confía, pero modificando por ejemplo sus parámetros de arranque.

Inyección DLL: la aplicación de test inserta una referencia a su propia DLL en el área de procesos de una aplicación declarada fiable, de forma que las llamadas a la DLL maliciosa parecen realizadas por la aplicación fiable.

Inyección de procesos: la aplicación de test inyecta su propio código en el área de procesos de una aplicación declarada fiable.

Explotación de reglas por defecto: se aprovecha la debilidad de aquellos cortafuegos que disponen de reglas ocultas para facilitar cierto tipo de tráfico (DNS,DHCP...)
Condiciones de carrera: la aplicación de test intenta modificar su identificador de proceso (PID) antes de que el cortafuegos lo utilice en sus cálculos internos para decidir si da o no paso.

Mensajes Windows, OLE y DDE: generalmente mediante una llamada a SendMessage (una función de la API Windows) se intenta modificar el mecanismo de comunicación entre procesos, de forma que alguna aplicación modifique su comportamiento. Es el sistema utilizado por el test de PC Flank que utilizamos en la primera entrega.

Otros mecanismos: peticiones recursivas, ataques timing, inyección de datos en el registro de Windows, unhooking, etc.

Como fácilmente puede suponerse, muchas de las técnicas anteriores son también utilizadas por troyanos y similares.

En función de la técnica utilizada, existen diferentes tests de fugas. A modo de ejemplo (entre paréntesis, el número de la clasificación anterior que corresponde a la técnica utilizada), éstos son algunos:

AWFT (1, 3, 4)
http://www.atelierweb.com/awft

Breakout (2, 7)
http://www.firewallleaktester.com/leaktest16.htm

CPIL Test Suite (4)
http://personalfirewall.comodo.com/cpiltest.html

DNS tester (8)
http://www.klake.org/~jt/dnshell/

FireHole (2, 3)
http://keir.net/firehole.html

LeakTest (1)
http://www.grc.com/lt/leaktest.htm

YALTA (5)
http://www.soft4ever.com/security_test/En/

Firewallleaktester
http://www.firewallleaktester.com/

NOTA: Pueden consultarse listados más completos y con mucho mayor detalle en:
Matousec.


CONCLUSIONES

A la vista de la situación que hemos esbozado, es casi seguro que cualquiera que sea el cortafuegos que utilicemos existirá un mecanismo que permita saltárselo. Aunque esta realidad pueda sorprender a algunos lectores, y les pueda provocar cierta decepción, creo conveniente evitar tanto el pánico como el derrotismo. A poco que lo meditemos, estos datos tan sólo confirman algo que todos sabíamos: no existe la seguridad absoluta y menos la seguridad basada en un producto. Del mismo modo que no existen antivirus milagrosos, tampoco cortafuegos invencibles. Eso sí: unos son mejores que otros y podemos ahorrarnos un buen dinero eligiendo bien. Sobre todo teniendo en cuenta que algunos de los que mejor superan los tests de fugas... ¡son gratuitos!

No obstante también aquí pido prudencia: un cortafuegos puede ser imbatible -o casi- en los tests de fugas y sin embargo no destacar en absoluto cuando se consideran otros criterios. Por tanto controlemos todavía cualquier amago de euforia y procedamos a examinar la clasificación de los cortafuegos más populares en base sólo a su efectividad contra fugas, que nos sirve en bandeja el estudio (actualizado hoy mismo) que nos proporciona Matousec:

http://www.kriptopolis.org/images/fugas.gif

También puede ser muy interesante esta otra tabla, donde se especifican qué cortafuegos superan qué tests de fugas. Una estupenda oportunidad para conocer mejor las debilidades del cortafuegos que utilizas y quizás obrar en consecuencia.

Fuente:
http://www.kriptopolis.org

Via:http://www.xombra.com/go_articulo.php?articulo=93

Saludos
MImasol