19 diciembre 2012

Evadiendo Snort en IPv6: Topera

Logo_topera
Recientemente se celebró en Albacete las II Conferencias de seguridad “Navaja Negra”. Entre las muchas charlas que se presentaron (podéis ver una crónica en: Día 1, Día 2) estaba la de Rafa Sánchez y mía (cr0hn), que llevaba por nombre: “IPv6 vs IDS. Hagan sus apuestas…”. En ella presentábamos un fallo de Snort, no reportado ni corregido, resultado de una investigación, así como “Topera”, un PoC capaz de explotar dicho fallo.

"Topera" es una nueva herramienta de hacking capaz de ejecutar ataques de red que pasan inadvertidos para Snort. Snort es el IDS/IPS más conocido y más utilizado como motor de detección de ataques de red. Muchas de las herramientas comerciales actuales de protección contra ataques de de red basan su potencial en este conocido IDS.

IPv6 es un protocolo complejo y con mucho potencial, y como tal, su uso conlleva riesgos de seguridad que deben ser analizados con detenimiento. Desde Iniqua, llevamos algún tiempo investigando sobre este protocolo y sus implicaciones de seguridad.

Recientemente hemos detectado lo que parece ser una nueva vulnerabilidad crítica en el manejo que el motor de detección de Snort realiza sobre determinados tipos de paquetes IPv6. Concretamente, sobre paquetes con un elevado número de Extension Headers.

"Topera" es una herramienta de auditoría de red todavía en fase Beta, y quisiéramos invitar a la comunidad a colaborar testando su comportamiento en distintos entornos. En estos momentos nos encontramos en pleno desarrollo de esta herramienta, tratando de analizar el potencial real que pudiera tener.

Quisiéramos recordar que, actualmente, la industria confía, en un alto grado, en las capacidades de detección motor de Snort en multitud de entornos, algunos de ellos críticos. "Topera" está orientado principalmente a administradores de Seguridad, administradores de red o CSOs, que estén interesados en evaluar el riesgo al que están expuestos sus sistemas de información al tener IPv6 activado por defecto (como por ejemplo, los sistemas basados en Linux y Windows). 

A continuación mostraremos un ejemplo del uso de topera. En primer lugar, describimos el escenario, que intenta simular un entorno real:

Para todos aquellos que queráis reproducir el ataque, tendréis que editar el fichero de configuración de Snort, normalmente en "/etc/snort/snort.conf", y añadir la siguiente linea (tener cuidado con no descomenarla solamente, hay que añadir más parámetros):



Una vez configurado nuestro Snort, nos aseguramos que hay conectividad entre la máquina con la Backtrack y la máquina Windows. Para ello lanzamos un escaneo con nmap en IPv6. Como muestra la siguiente figura, la máquina está activa y tiene abierto el puerto 139, activo por defecto en todos los sistemas Windows:


Una vez hecho esto, vamos a simular un escaneo de puertos con scapy. Scapy es, para los que no lo conozcáis, un generador de paquetes de red muy potente, intuitivo y sencillo de usar. 

El motivo de usar scapy, en lugar de nmap, es que Topera los usa para generar los paquetes IPv6 personalizados. De este modo, quedará patente que snort es capaz de detectar el scaneo hecho con scapy y que no hay "trampa ni cartón" cuando usemos Topera.

Para simular es escaneo debemos enviar muchos paquetes a la máquina remota, pero a puertos distintos. Por este motivo el puerto de destino lo ponemos aleatorio. Enviamos 200 paquetes, menos incluso que un escaneo por defecto en el nmap. Como podemos observar en la siguiente imagen, es detectado sin problemas por snort:


Ahora vamos a ver como, con topera, podemos hacer un escaneo de verdad sin ser detectados. Su uso es muy sencillo. En su ejecución básica sólo tendremos que indicar el sistema a escanear. También podemos indicar un rango de puertos, interfaz de salida o un archivo donde guardar los resultados. En la siguiente imagen se puede apreciar una ejecución de Topera y como pasa desapercibido a Snort:


Para los que no os apetezca montar todo el entorno o queráis verlo en funcionamiento sin esperas, podéis verlo en el siguiente video:


En estos momentos, Topera se encuentra en la versión 0.0.2, y solamente realiza escaneos de red TCP. Aviso al betatester: no esperes encontrar un rendimiento óptimo parecido al de nmap, ni una fiabilidad a prueba de bombas…

Invitamos a cualquier interesado en seguridad informática a probar esta herramienta para que, entre todos, podamos analizar el impacto real que esta nueva vulnerabilidad pudiera tener sobre los sistemas de detección de intrusos actuales.

Hemos decidido publicar esta vulnerabilidad porque, al igual que ha sido detectado por un par colegas en sus ratos libres, es posible que otros, con peores intenciones, lo hayan descubierto antes que nosotros y puedan estar explotando esta vulnerabilidad de forma activa. Por eso, queremos caracterizar este fallo cuanto antes, para que IPv6 siga siendo un protocolo potente en el que todos podamos apoyarnos para desarrollar nuevos servicios del Internet del futuro… y sin riesgos de seguridad innecesarios.

Podéis encontrar más información en la sección “labs” de iniqua y en la web del proyecto en google code

------------------------------------------------------------------------------------------

Artículo cortesía de:

- Daniel García a.k.a. cr0hn (@ggdaniel) - Auditor de seguridad e investigador en Buguroo Offensive Security y miembro de Iniqua.
- Rafa Sánchez (@r_a_ff_a_e_ll_o) – Auditor de seguridad e investigador miembro de Iniqua

2 comments :

Adrián Ruiz dijo...

Un par de cuestiones:

"no reportado ni corregido": si no se reporta a los chicos de snort, no lo podrán corregir.

No quito mérito a la investigación ni a la herramienta, pero da la sensación de que la vulnerabilidad parece del protocol ipv6. La vulnerabilidad radica en snort en base a unas características de ipv6 que no tiene en cuenta.

saludos,

Anonymos dijo...

Muy buen trabajo chicos, yo lo vi en directo en la navaja negra y fue genial, Felicidades por el estudio



PD: me molestare en probar esto en la versión de pago de Snort a ver si sucede lo mismo