sábado, 29 de septiembre de 2007

Escaneos QScan con Nmap

Buenas... leyendo el blog de Buanzo, me interesé por el tipo de ataques "QScan" que menciona en este artículo:

http://blog.buanzo.com.ar/2007/09/informe-de-puertos-proxeados-fibertel.html



Con lo cual, después de una breve consulta en Google, me encontré con este excelente documento:

http://hcsw.org/nmap/QSCAN

Básicamente, los tipos de escaneos QScan se basan en comparar las medias (mediante la distribución T de Student) de los RTTs de una cantidad N (la muestra) de paquetes enviados a distintos puertos de un mismo (o diferentes) hosts. Además, para sacar más el jugo a la técnica, uno puede configurar el intervalo de confianza, la cantidad de muestras y la demora N entre paquete y paquete enviado (que para hacer la prueba estadísticamente más 'fuerte', el parche hace un random que tiene como punto medio al N configurado). El objetivo es saber si el host que recibe los paquetes (el 'target' del escaneo) hace tratamientos diferentes de los paquetes de acuerdo a al puerto destino.

Por ejemplo, si un host tarda ~600 ms. en responder a los paquetes enviados por nmap al puerto 80 y ~250 ms. en responder a los paquetes enviados al puerto 22, y la comparación de las medias por T de Student da como resultado que son diferentes, se puede inferir que los paquetes enviados al puerto 80 son reenviados por el host a otro host (que no lo veo!), a diferencia de los paquetes que van al puerto 22.

Recomiendo muchísimo la lectura del artículo. Me parece un tipo de escaneo bastante útil para hacer detección de infraestructura de DMZs, reglas de firewall, etc. Hasta lo recomiendo porque es un tipo de escaneo muy sencillo e interesante por sus resultados.

Para los que tuvimos el gusto de asistir a sus clases (yo en la UNLu), es imposible no acordarse de Daniel Villa y sus clases de estadística leyendo este artículo! :-)

Lástima que este QScan no está disponible en la versión estándar de NMap (hay que recompilarlo).

Sitio oficial del parche: http://www.hcsw.org/nmap/

Insisto, me alegré mucho personalmente por entender la aplicación de tanto sentido común (y con herramientas que uno conoce) sobre algo que no se me hubiera ocurrido. :-)

Saludos
Marcelo

sábado, 15 de septiembre de 2007

Jornadas en el LugFi 2007

Hola!

Este viernes tuve la oportunidad de ir a las Jornadas 2007 del LugFI, donde me encontré con amigos del UnluX, gente de "la comunidad", y pasé un muy buen rato escuchando y aprendiendo cosas interesantísimas.



Resumen de las charlas a las que fui (espero no hacer sentir mal a nadie, los comentarios van con onda y tienden a mejorar, eh):
  • 14 - 15 hs.: Llegamos tarde a la charla de XUL!!! (ufa). Me gustaría que alguien me pasara las diapositivas al menos (vi que Damián Viano estuvo grabando el audio de las charlas...)

  • 15 - 16 hs.: "Procesamiento de Imágenes con Python", por Efraim Wainerman (un amigo de hace mucho tiempo ya). Muy bien Efra, salvo que hubo gente que no fue porque pensó que era algo más bien avanzado (por el título de la charla); hubiera estado mejor "PIL: Trabajando con Imágenes en Python" o algo así. Otra cosa a mejorar: mostrar más ejemplos de código, la charla estaba en el track avanzado... :-D Por otra parte, estuvo bueno, no conocía PIL y con eso me llevé una idea de cuál es su enfoque y cómo se labura.

  • 16 - 17 hs: "Recolección de Basura para principiantes", por Rosa Wachenchauzer. Sin palabras, realmente excelente charla, muy clara, entendible por cualquiera y muy avanzada a la vez. Estuvo bárbaro escuchar hablar de un tema del cual nunca leí nada formalmente. IMHO, cualquiera que se quiera llamar "programador" debería saber este tipo de cosas. 10 puntos.

  • 17 - 17:30 hs.: "AJAX: Mentiras y Verdades", por Margarita Manterola. Entretenida charla, que reseña la historia de la implementación de una función en diferentes navegadores para intercambiar datos con un servidor web en forma asincrónica (a.k.a. AJAX, je). Margarita ("Marga", Debian Developer) tiene excelentes habilidades para hablar en público, transmitir conocimiento y ser muy amena al mismo tiempo.

  • 17:30 - 18 hs: "The UNIX Way", por Damián Viano. Un hacker de aquellos, mostrando sus trucos con el bash. Me llevé el comando xargs! (no lo conocía). Buenísimo, lástima que el tiempo es tirano y se guardó muchas "pócimas" para otra oportunidad. Me dejó con ganas de que nos cuente más de todo lo que sabe con la consola (y no es un DJ, je).

  • 18 - 19 hs.: "C++/Boost", por Matías Capeletto. Lo admito, no sé nada de C++, y pensaba que era un "C con orientación a objetos". Me equivocaba, C++ es claramente un lenguaje poderosísimo y que en una hora no pude deglutir todo lo que Matías no paraba de explicar. Matías, lo lograste, me picó el bichito de la metaprogramación en tiempo de compilación, templates y demás.... (y armá ese curso de C++ moderno del que hablaste, quizás me prenda!).

  • 19 - 20 hs.: "C++? Python? Java? Ruby? C#? ... D!", por Leandro Lucarella. Un pantallazo de un nuevo lenguaje (D), que Leandro conoce bastante y que públicamente admite que pretende desplazar a C++. Lástima que al ser competidor directo de C++ se metió demasiado en las "diferencias" con C++, y yo al no conocer a fondo el anterior, me quedé sin entender 100% las "bondades" del lenguaje. Sin embargo, me llevo a mi casa las características de este lenguaje y sus posibles aplicaciones... Y de nuevo, la metaprogramación en tiempo de compilación llamó a mi puerta. :-) Muy interesante!

  • 20 - 21 hs.: "Metaprogramación", por Pablo D. Roca. Una recorrida por las diferentes formas de hacer metaprogramación, con ejemplos y mucho código en C#, excelente! Aunque creo que debería haber ido antes de las dos anteriores (a modo introductorio), y debería haber sido hecha en la plataforma Mono sobre Linux (lo hizo sobre Visual Studio sobre Windows XP). No es por ser talibán del software libre, pero es un evento de Software Libre hecho por gente de un Linux Users Group... y no costaba nada el esfuerzo, no? Sin embargo, vale el extenso conocimiento de Pablo y su excelente predisposición para elaborar ejemplos muy claros sobre lo que estaba hablando.

  • 21 - 22 hs.: "OpenSolaris", por Hernán C. Saltiel. Lástima que empezó muy tarde (21:30) porque la anterior terminó unos minutos tarde y porque hubo unos problemitas con la salida de video de la notebook de Hernán. Sólo llegué a recibir el kit de OpenSolaris (gracias!) y escuchar la primera media hora (me tuve que ir...). Estuvo buena, hay que ir integrando a OpenSolaris en el grupo de SOs libres.
Y eso es todo. Quiero las diapositivas de todas! (y/o audio), je. Por otra parte, me llevo a casa para estudiar e investigar todo lo que desconocía de "metaprogramación", algo que todavía me cuesta un poco de pensar, tanto su forma de utilización como su aplicación práctica. Sin embargo, puedo darme cuenta lo útil que puede llegar a ser, y sin lugar a dudas lo interesante que es programar cosas que programen programas, e inventar lenguajes...

En resumen, este tipo de eventos le abren la cabeza a uno y me siento como cuando empecé la facultad y quería aprender TODO sobre software, informática y sistemas... gracias muchachos!

Y bueh, gente del LugFi, los felicito y les pido que repitan estos eventos con altísima calidad técnica y organizativa. Hasta la próxima!



Marcelo
Actualización
: Ya están todas las diapositivas en el sitio del LugFi.

domingo, 9 de septiembre de 2007

Taller de Python en la UNLu

Hola!

Les cuento de que tuve el honor de que la gente del CODES (Centro Organizado de Estudiantes de Sistemas de la Universidad Nacional de Luján) más la del UnluX (del cual soy parte), me invitó a llevar adelante un taller de programación Python para los alumnos de los primeros años de sistemas de dicha Universidad.

Como no tuve tiempo de armar ninguna presentación como para tener de "apunte", le pedí a Facundo Batista el permiso para utilizar las que él armó para las 7JRSL de Córdoba. Creo que sólo le modifiqué la primera página y el fondo, sin embargo, acá están para descargar.

Fue una linda experiencia, me sentí muy bien y los asistentes parecían bastante interesados en Python y sus características (seguro eran las diapositivas, :-P ). Nah, según la info que me pasaron los organizadores (Ezequiel Chan y Tomás Delvechio) los chicos sólo conocían Pascal (no emito opinión alguna sobre el lenguaje, ja!). Lo que sí era evidente era el interés dado que hay muchas diferencias (técnicas y filosóficas) entre el lenguaje que conocían y el que les estaba mostrando. Y estuvo bueno.

También apareció gente del LugFi (Matías Capeletto y Cecilia), hablando un poco de Trac (no me pude quedar! :-( ), con lo cual el encuentro se volvió multi-lug! :-D

Ya van dos sábados y el sábado que viene calculo que cerraremos explicando algo de PyGTK, para que vean que no sólo de la consola vive el hombre. :-)


Saludos!
Marcelo
PD: Prometo fotos la semana que viene.

Administrador SQLite - SQLiteman

Buenas... hace algún tiempo comenzamos a utilizar en desarrollos en estado "inicial" Bases de Datos SQLite... ya sea porque Python tiene mucha facilidad para crear y laburar con este tipo de BD, porque nos parece rápida y de sencilla administración, y porque para hacer pruebas... es bárbara. En fin, con SQLite, creás tu BD en un toque y te ponés a laburar.


El tema es que si bien uno tiene siempre a mano el administrador de línea de comandos ("sqlite3") para hacer querys, ver la descripción de alguna que otra tabla, etc., muchas otras veces (más que nada cuando quiero hacer querys complejos, como joins de varias tablas) siento la falta de algún administrador SQLite pero en formato GUI.... un montón de veces busqué y nunca encontré nada que me gustara.

Necesitaba algo con Soporte Linux + Paquetes Ubuntu (que sea sencillo de instalar), además de ser gratis (preferentemente Open Source, claro). Si tenía que perder tiempo en compilar en algunas de las PCs de desarrollo (mi casa, el trabajo, etc.), era más fácil invertir el tiempo en hacer el deploy de otra BD (PostgreSQL) con el PGAdmin, je.

Por suerte, gracias a GetDeb, me encontré con SQLiteMan (Website). Un caño, simple de instalar, simple de usar, 100% efectivo. Y todos felices. :-)

Screenshot Obligada (Usa el QT 4.3 de mi Feisty con el look and feel "Cleanlooks", que imita el Clearlooks de GTK):



Saludos
Marcelo