03 febrero 2011

Patriot NG 2.0 is out !

Cuando retomé el desarrollo de Patriot (herramienta que nació en 2004 y hasta 2010 su última actualización era del 2005), decidí añadir el NG con idea de darle un buen lavado de cara y actualizarlo con mas funcionalidad.

Finalmente la versión 1.0 fue una actualización orientada a que funcionase en los nuevos sistemas windows y una criba de funcionalidades que ya no tenían mucho sentido (temas de dialers y cosas así). Definitivamente aplacé las grandes mejoras para una rama 2.x, momento que, finalmente ha llegado.

Lanzamos la versión 2.0 ! En esta versión lo primero que llama la atención es que se ha 'internacionalizado', pasando tanto la web como la interface al inglés, no obstante hay un manual en perfecto castellano para facilitar el uso a quien no esté demasiado ducho en Inglés.

A nivel técnico las dos grandes mejoras que trae la versión 2.0 es que, empieza a hacer cosas con la red, en concreto hemos añadido una parte 'ARPWatch' que permite monitorizar (y bloquear) nuevos equipos que se conecten a la red en la que te encuentras. ¿Utilidades? a bote pronto puede servir para identificar intrusos en redes Wifi que se hayan conectado sin autorización.

En segundo lugar, y tal vez la mejora mas interesante, es la inclusión de un módulo NIDS muy al estilo de Snort (salvando las distancias). La idea de meter un NIDS principalmente viene motivada para poder detectar amenazas de tipo 0day o aquellas para las que aun no existan parches. En concreto ya hay una firma para detectar y bloquear ataques vía metasploit del famoso exploit 'css import' así como otras mas.

El objetivo NO es tener un montón de firmas con ataques del 2008 u orientados a sistemas Unix, la idea es manejar un conjunto de reglas actualizadas (y actualizables) que sirvan como defensa ante ataques que estén en su momento mas álgido.

Gestión de reglas NIDS en Patriot-NG

Durante la instalación se crean dos ficheros de configuración del NIDS, por un lado badtraffic.ini y por otro ownrules.ini la idea es que badtraffic.ini sea un fichero que *no* se deba tocar y que se actualice vía la interface de Patriot NG.


Como se puede ver en el tray, hay una opción llamada 'Update NIDS rules' que descargará la última versión del servidor y la instalará. Por tanto, no es aconsejable tocar ese fichero a mano ya que en la próxima actualización será sobre-escrito.

El fichero orientado a que insertes tus propias reglas es ownrules.ini y ahora toca explicar como se crean esas reglas:

Como podéis ver el formato de cada regla es muy sencillo:

[Texto descriptivo]= [Patron]

Así pues a la hora de hacer una regla lo primero es pensar un nombre que la asocie y buscar un patrón en ese ataque que sirva para identificarlo. El 'patrón' para la firma puede estar escrito o en ascii o en hexadecimal, así pues algo como:

Cookie access = document.cookie

Es identico a:

Cookie access =646f63756d656e742e636f6f6b6965

Ya que  646f63756d656e742e636f6f6b6965 es la representación en hexadecimal de document.cookie.

Lo preferible es que siempre se intente escribir la regla en ascii y usar hex para representar únicamente valores binarios.

A la hora de buscar patrones se pueden añadir varias cadenas de búsqueda uniéndolas con el simbolo +

Por ejemplo, si pretendemos buscar por un lado "document.cookie" y por otro "http" podemos crear la siguiente regla:

Cookie access = document.cookie+http

Que hará match en un string como este:
http://www.dominio.com/script.php?document.cookie

Ya que en esa cadena se encuentra por un lado "http" y por otro document.cookie. El orden da igual ya que se evalúa uno a uno, es decir, aunque en la regla el primer patrón de búsqueda sea document.cookie y luego http, si en el paquete viene cambiado, seguirá haciendo match.

Configuración de alertas por intento de conexión
 
Adicionalmente a badtraffic.ini y ownrules.ini hay otro fichero de configuración llamado destports.ini, este fichero define que puertos consideramos 'sospechosos' y sobre los que queremos que se nos avise si hay un intento de conexión. El formato es muy sencillo

[139]
[445]
[80]
[21]
[1243]
[5800]
[5900]
[6776]
[31337]

Como es obvio la forma de añadir o quitar puertos es sencilla, simplemente añadir al final [1234] y ese puerto sería monitorizado. Por cada cambio en la configuración hay que hacer un stop / start desde el tray

Consideraciones sobre rendimiento

Este punto es algo peliagudo ya que como es lógico, el rendimiento / uso de CPU va a variar en función del uso de la red que se le esté dando, el proceso NIDS se ejecuta con una prioridad baja, lo que en parte puede mitigar una saturación, no obstante, está claro que si tienes un montón de conexiones abiertas, descargando ficheros grandes, y todo eso en una red ethernet, seguramente el proceso consuma una cantidad importante de recursos e incluso es posible / probable que haya una perdida de paquetes a la hora de procesar tanto tráfico.

Dos últimos apuntes, por un lado decir que si quieres colaborar haciendo / revisando reglas, ponte en contacto con nosotros y te añadiremos a la lista de contribuidores.

Finalmente, dar las gracias al equipo de gente que ha colaborado desinteresdamente con las traducciones y documentación del proyecto:

John Marie
Jorge Sanz
Igor
Leandro Murgo
Jesús Moreno
Iván Salomon

14 comments :

ramandi dijo...

Tiene muy buena pinta. Voy a probarlo :-).

NeoShadybeat dijo...

Una pregunta que siempre me ha intrigado, que significa la NG

Yago Jesus dijo...

@NeoShadybeat Significa 'Next Generation'

BAM BAM dijo...

hola he bajado la herramienta y por supuesto que la voy a probar pero cuando voy a descargas el isntructivo en español me dice que el archivo esta dañado desde Colombia Toll

0xroot dijo...

Enhorabuena Yago, estás hecho un auténtico fiera :D.

La idea de introducir un sistema NIDS contra ataques que están en su punto más álgido me parece algo muy bueno.

La internacionalización es a destacar también el esfuerzo de los colaboradores por llevarlo más allá de la frontera.

Felicidades a todos por el gran curro.

Anónimo dijo...

Hola, llevo usando Patriot varios meses y he de decir que me gusta bastante. Solo me queda daros las gracias por ello.

Imagino que ya os lo habran dicho, o no, quien sabe. El caso es que resulta un poco pesado aceptar, o denegar, continuamente los mismos avisos. Una vez aceptada, o denegada una accion, esta podria ser "recordada". Por ejemplo, permitir la ejecucion de un proceso, iexplorer.exe mismamente. Patriot puede calcular la firma MD5 del susodicho y comprobar la siguiente vez que se ejecute si es la misma. Si coinciden, no pregunta.

Y no tengo nada mas que decir ... que masmola ;-)

Anónimo dijo...

Hola :

Ya me gusto la versíon anterior, así que habra que probar esta.

Un saludo.

drull2 dijo...

Ya me gusto la version anterior, asi que espero que esta nueva version la supere con creces dado que se ha hecho de rogar para que se renueve.

saludos.

Yago Jesus dijo...

Muchísimas gracias a todos, es un placer y una motivación leer estos comentarios. Me gustaría que la versión 2.1 lleve el 'recordar opción', prometo ponerme las pilas

Unknown dijo...

Saludos,porfavor checkea la documentacion en español al parecer el archivo esta dañado,toco leerlo en ingles pero felicidades por tu herramienta !

Errepunto dijo...

¡Genial! Estaba encantado con la versión 1.1. Sólo echaba en falta que fuera algo más configurable, ¡y ahora lo es!

En serio, enhorabuena por haber hecho un software tan útil. ¡Y gracias!

Anónimo dijo...

Habra que probarlo, tiene muy buena pinta, gracias por el currazo y el NIDS y demas.

Lo unico y sin animo de ofender (me imagino que sera mucho curro) se echa de menos una version en 64 bits ya que cada vez son sistemas que la gente usa mas...

Pero bueno Felicidades y a seguir bien.

Un saludo,

Anónimo dijo...

Tiene muy buena pinta, en que S.O de Windows funciona?? 32 y 64 ???

Germán Sánchez Garcés dijo...

Máquina! está de 10 la tool, en Windows 2008 Server también funciona de lujo ahora...

Ya que se ha hecho rápidamente conocida la herramienta y entró a internacionalizase, no creo que tarde mucho en caer como objetivo de malware como killers y actualmente se mata con un simple taskkill.

Un Saludo!