miércoles, 31 de diciembre de 2008

Xplico, un decodificador de tráfico de Red

Gracias al rincón de Laramies me sigo enterando de cosas novedosas acerca de herramientas y noticias sobre seguridad informática; esta vez de la existencia de Xplico, un software para analizar y disecar [1] capturas de red en formato PCap (el más común, utilizado por herramientas como Wireshark o Tcpdump, por ejemplo).

Su objetivo es detectar el protocolo de aplicación (no basado en el número puerto, sino que lo hace interpretándolo realmente), y extraer la información relevante (el stream de datos), mostrarla y darle a uno la posibilidad de guardarla aparte para abrirla con un software que pueda reproducir dicho formato. Por ejemplo, puede detectar el formato SIP (utilizado comúnmente en llamadas telefónicas de VoIP) en una serie de paquetes capturados y guardarlo aparte para poder escuchar la llamada telefónica. :-)

De todas maneras, su página de estado del proyecto nos dice que le falta soporte de varios protocolos más (por ahora soporta decentemente HTTP, SMTP, IMAP, POP, FTP, IPP, PJL y SIP, entre otros) pero insisto que es un proyecto muy interesante, con muchos usos y muy útiles. Además, sería un lindo como add-on para Wireshark, IMHO.

Vean las capturas de pantalla.

Saludos
Marcelo
[1]: Es "disecar", no "disectar"; es la primera acepción de esta palabra. La segunda acepción es la conocida. :-)

lunes, 29 de diciembre de 2008

OpenSolaris 2008.11

Bueno, parece que se pusieron de acuerdo a que (ayer) me instalara en una máquina virtual el OpenSolaris 2008.11, ya que hoy me llegó en forma totalmente gratuita el Live CD que pedí desde esta página a Sun.

El software, por lo poco que pude probar, está muy, muy bueno e interesante. Y más si estamos hablando de un Sistema Operativo que ya viene con ZFS, DTrace y toda la infraestructura de Solaris, más una capa de escritorio Gnome retocada y bastante coqueta (una vez hace bastante tiempo instalé un Solaris Express con CDE... mamita que era "de piedra" [1]).
En fin, por lo que conozco, leí y me dijeron, Solaris es un UNIX completo hecho y derecho, con un desempeño excelente como servidor. Así y todo, el desarrollo de OpenSolaris tiene que ver con llevar paulatinamente esta performance de "roca sólida" de los centros de cómputos a las notebooks de los desarrolladores, administradores de red, geeks en general y usuarios de escritorio (¿por qué no?). Y si bien uno puede pensar "para qué, si ya está Linux" (o más bien Ubuntu, je), creo que el desarrollo de alternativas competitivas fue uno de los pilares del desarrollo del Software Libre como movimiento, y hasta de las especies de la naturaleza (algo que es parte de lo que se llama evolución); por lo tanto, es bueno, más si tiene tanta tecnología high-end con la cual uno en principio puede jugar y experimentar, siendo tan diferente a Linux en sus entrañas [2].

Por ahora les dejo este y este link (y el blog en general, orientado a este SO), para "otros como yo" que están metiendo el dedo gordo en las aguas de Solaris y vienen de Linux. ¡Ah! y no puede faltar este video mostrando el laburo de integración progresiva del escritorio al entorno; esto en particular Linux no lo tiene.




Actualización: Vean la página con info y capturas de las mejoras de esta versión.

Saludos
Marcelo

[1] Si leen el post de este link, verán que disiento totalmente con el autor en cuanto a que esa versión era "tan fácil de usar"... pero bueno, son opiniones.
[2] Una de las cosas que hay que tener en cuenta es que por cuestiones de
incompatibilidad de licencias de los proyectos, no se puede intercambiar código del kernel Linux (GPLv2) en OpenSolaris (CDDL) y viceversa. Sin embargo, ambos proyectos obviamente están considerados como de Código Abierto (aprobados por la OSI - Open Source Initiative). Ojalá esto cambie, por el bien general.

sábado, 27 de diciembre de 2008

Dan Kaminsky en BlackHat 2008 - Japón

Esta presentación es la única que me llamó la atención repasando el archivo del Black Hat de Octubre de este año en Japón. El ya conocido Dan Kaminsky fue el keynote del evento, explicando no sólo (nuevamente) la vulnerabilidad de DNS descubierta por él este año, sino también qué se viene en general en materia de (in)seguridad informática.


Son un montón de diapositivas (101!), unas cuantas las pasé por alto, pero son útiles; a modo de resumen, enumero los "highlights":

  • Vulnerabilidad DNS: Análisis exhaustivo del problema, demostración del ataque. Es útil porque empieza desde el principio, comenta la impresionante (awesome) reacción de las "software factories" de DNS con un lindo grafiquito, y tiene interesantes conclusiones para los desarrolladores de software en general (ver los Takeaway a lo largo de toda la presentación). También explica porqué atacar DNS: ¡es el MiTM perfecto!.
  • Lo que viene: Bienvenidos a la tercera era del hacking. Ya se explotaron vulnerabilidades en los servidores y en los navegadores. Lo que sigue es aprovecharse del resto del software, que está íntimamente ligado a la red también; a modo de ejemplo cita esta vulnerabilidad del Sidebar de Windows Vista. Incluye a los juegos en red, y a las formas "seguras" de actualizar desde el software que se usa a diario.
  • Cuidado con SSL: Destaca muchos problemas a futuro, tanto técnicos como del usuario: falta de escalabilidad y de difusión, problemas con los virtual hosts, los usuarios no prestan atención a los mensajes de advertencia, el uso de MD5 para su firma, etc. "No es la panacea que pareciera ser".
  • Autenticación - el Bug principal de 2008: elabora una lista las últimas vulnerabilidades importantes conocidas, todas tienen que ver con este punto crucial en la interacción de sistemas.
  • En resumen, la infraestructura y servicios (¡todos ellos!) de Internet y las Intranets dependen del servicio de DNS. Hay que mejorar la infraestructura; esta vez tuvimos suerte, la próxima vez puede que no sea tan "suave" el problema. DNS no debería haber sido capaz de provocar este daño: entonces, ¿Por qué lo fue?
Además, mientras tuve algo de tiempo, también estuve mirando:

The Internet is Broken: Beyond Document.Cookie - Extreme Client Side Exploitation. Presenta una serie de vulnerabilidades en varios componentes de software comunes estos días, provocado por el abuso de confianza en el nombre de dominio (está claramente relacionado con lo que decía Kaminsky, pero bien práctico); en Java, los servidores Web locales de ciertas aplicaciones, etc.

Disclosing Secret Algorithms from Hardware: Confieso que no sé mucho de electrónica, pero así y todo entiendo que esta charla estuvo interesantísima: ¡los tipos hacen ingeniería reversa de algoritmos en hardware! Muestran cómo se hace, en forma muy gráfica, y explican qué herramientas utilizan. Me asombra que digan "acá hay un NAND, así y así..." Y ya que están, agarran un chip RFID de MiFare a modo de (mal) ejemplo para determinar el algoritmo de encriptación (cerrado), como ya lo hicieron anteriormente (aunque la ley impidió la presentación en sí). Nobleza obliga, debo agregar que la compañía relativiza esta cuestión y hace pública su posición al respecto.

Bueno, espero que tengan un feliz año!

Saludos
Marcelo

Fábrica de "Startups Cooperativas": FairSoftware

En mi lista de links pendientes, figuraba visitar este sitio. Realmente olvidé cuándo lo agregué, y me lo puse a leer. Resulta que se trata de un sistema de administración, promoción y gestión administrativa de una startup de software.
La idea es que uno registre un proyecto software (Aplicación Web, Blog, Aplicación Desktop, etc.), pueda reclutar un equipo para colaborar en él, generar ingresos monetarios reales (supongamos que por el Adsense del blog, o por el cobro de la descarga de la aplicación) y luego se dividan las ganancias en el equipo. Cada colaborador tiene un "share" ("acción") virtual del proyecto, y cobra (en $ reales, je) una parte de los ingresos según las acciones que se posean, en forma equitativa.

FairSoftware se encarga de la gestión (virtual) de los ingresos y los pagos (electrónicos), de permitir la búsqueda de colaboradores para ciertas tareas, y de figurar "legales" ante el fisco estadounidense. No se mete con el copyright del desarrollo en sí ni con la gestión técnica del proyecto, y lógicamente un usuario puede colaborar en varios proyectos (lo cual pienso que puede servir de "propaganda personal" también).

Lo bueno de todo esto es que FairSoftware evita que la persona que tiene una idea (más los colaboradores de antemano, por qué no) tenga que lidiar con contratos, abogados, el ponerse de acuerdo en ciertas cuestiones con el equipo, etc., además de permitir que cualquier persona del globo contribuya. El "contrato" que existe entre los miembros de un equipo es lo que llaman el Bill Of Rights, que si bien no lo leí, entiendo que muchos equipos ya lo utilizan; propone la igualdad de derechos, el manejo abierto del proyecto, compartir ganancias, etc.

Claro que este servicio tiene un costo: el 9,9% de los ingresos, que incluye el pago electrónico vía PayPal y/o tarjetas de crédito y la declaración de impuestos frente al gobierno de EEUU.

En fin, es una idea muy interesante. De todas maneras, aún está en "beta", por lo tanto no tiene forma (visible, al menos) de buscar startups a las cuales unirse.

Saludos
Marcelo

lunes, 15 de diciembre de 2008

USB 3.0

Más allá de que el video de la señorita de Intel lo pueden encontrar en todos los sitios de noticias (me hace acordar a Chloe de 24, je), es muy interesante el hilo de comentarios de Slashdot, similar a lo que hablaba ayer con un amigo sobre USB 2.0 vs. Firewire (aka IEEE 1394). USB está diseñado para ser muy dependiente del CPU (no por nada lo hizo Intel, guiño, guiño, aunque tiene el side-effect de ser un poco más barato), y Firewire (más dependiente de hardware específico, y por ende un poco más caro) le gana en la práctica por lejos. USB tiene un ancho de banda máximo (teórico) de 480 Mbps, mientras que Firewire viene en sabores de 400 Mbps a 800 Mbps (y ya están saliendo productos de 1600 y 3200 Mbps).


Tratando de ser breve, copio un comentario de Slashdot:
"This is why you can't have USB-to-USB devices like you have Firewire-to-Firewire devices. It's why USB is very bad for time-sensitive data like music and video, because you're always waiting for the host controller to do something on the CPU, which might be busy.. have you ever seen DMA to memory ever work properly on consumer grade hardware anyway?

It's not so much a "scam" as it is designing to the market. Firewire devices have a non-triv
ial price premium because of the device-to-device controller... but that's why they can do things like daisy-chain or direct connect between computers with no special cables. On the other hand USB allows endpoint devices to be made very cheaply.. they have near-zero intelligence if you want. The USB host can be as "thick" or "thin" as the OEM wants... they can put all the host chip control in software drivers to keep chip cost down. They can also put all the control codes for devices in software... remember "wINKjets" that went obsolete with each new Windows version... they have almost no internal software at all."

Por motivos como estos, por ejemplo, hace poquito compré una sintonizadora barata de TV, de tipo PCI, y Ubuntu la tomó sin ningún problema; funciona perfecto, sin ningún "salto", y sin consumir CPU (el cuello de botella para encodear al vuelo pasó a ser mi CPU, je).

Si la hubiera comprado USB (sólo a $60 más).... hubiera tenido otro problema más además del encoding: el consumo de CPU de la misma transferencia de datos quizás me hubiera impedido hacer otras cosas mientras transfería video. Obviamente, al comprarlo PCI tengo que pagar el costo de no poder llevar la sintonizadora de un equipo a otro fácilmente, cuestión que no necesitaba tampoco.

Es por esto que algunas filmadoras DV que conozco vienen exclusivamente con interfaz Firewire, teniendo como alternativa una interfaz USB de compromiso (entiéndase "compromiso" como de "menor calidad", como está documentado). Y el tema del precio mayor no es tan así hoy... en Capital se pueden conseguir controladoras Firewire PCI a $46.

Así y todo, USB es el rey, porque Intel domina claramente el mercado, logró que en su momento todos los fabricantes de motherboards y dispositivos incluyeran dispositivos USB, y porque USB es suficientemente bueno (aka "good enough") en la mayoría de los casos (no es la primera vez que pasan estas cosas en la informática). Algo más a destacar es que al parecer USB 3.0 elimina el polling de dispositivos por parte del CPU, con lo cual el consumo de procesador bajaría considerablemente (pero hay que verlo en acción, Firewire en cambio es una realidad ya probada, donde sus versiones más veloces apenas requieren cambios estructurales).

En fin, como siempre a Slashdot lo elevan muchísimo los comentarios de muy alto nivel. Veremos cómo funciona USB 3.0 (especificación disponible aquí).

Saludos
Marcelo
PD: Qué lindo que las demostraciones las hagan con Linux (Ubuntu); para que se den una idea de la importancia de Linux hoy, USB 1.0 tardó mucho tiempo en soportarse en Linux (1999). Hoy el mismo desarrollo de USB 3.0 se hace sobre Linux...