Saludos desde el frío Berlin… comienzo la transmisión 24C3#2

Hoy tenia pensado empezar la mañana con la charla de “Hacking ICANN tactics to hack the individual into the ICANN system”, pero al final se me han vuelto a pegar las sábanas. Ayer entre unas cosas y otras, al final me acosté a las 5:00 AM, porque me bajé al hall del hostal a escribir el post y en cuanto te ven con una camista “chunga” y un portátil te preguntan si estás asistiendo al CCC y te pones a charlar con la gente… porque otra cosa no, pero los geeks somos de todo menos antisociales, al menos entre nosotros ;) con el resto quizás sí… ;) y como muchos de los que atendemos el congreso nos alojamos en los hostales cercanos, es inevitable entablar alguna conversación si te ven. Total, que estuve charlando con un tio que llevaba yendo al CCC desde hace 10 años y me estuvo contando batallitas de los “viejos tiempos” y de como era el CCC a principios de los 90, cuando el movimiento hacker estaba en pleno apogeo… total que cuando ha sonado el despertador esta mañana a las 10:30 estaba en plena fase de sueño profundo… vamos que ni el brainwave de Mitch Altman que comentaba en el post de ayer me hubiera dejado en tal estado de sueño profundo ;)
Total, que tras dormir un par de horas mas y tomar mi desayuno oficial del CCC, crêpe de GNUtella y banana ;) me he metido en una charla de un tema que hemos comentado alguna vez, la retencion de datos y la legislación al respecto en la EU. Concretamente en la retención de datos que se hace cuando realizamos viajes, sobre todo en el escenario de viajes EU <-> EEUU. Se ha hablado de los PNR (Passenger Name Record) que se crean en los CSR (Computerised Reservation Systems) cuando se hace una reserva en Amadeus por ejemplo. Es decir, toda la información que se almacena cuando nos piden datos en agencias de viajes, compañias aereas, hoteles, alquileres de coches… todos estos sistemas diseñados hace 40 años, estan en red y formaban la red de sistemas informaticos mas grande hasta que a mediados de los 90 se popularizo Internet y empezo a crecer. Todo el backend de los CSR son mainframes de IBM y no se diseño el sistema con los requisitos de seguridad de hoy dia, ni pensando en los conflictos legislativos cuando alguien de Europa es incluido en sistemas de EEUU o los datos viajan entre sistemas al estar todo interconectado. Problemas de privacidad y leyes de retencion de datos entre UE y US, cuando se trata de vuelos entre EEUU y europa, los datos van a los CRS americanos, como Sabre, donde se pierde control sobre esos datos.
Por otro lado, una de las cosas que me cabrean es cuando coinciden en el tiempo 3 charlas a las que quiero asistir, en vez de planificar las charlas de “community” o “society” de forma intercalada con las de “hacking”, hay veces que ponen 3 charlas tecnicas a la vez…y claro hay que elegir, esto me ha pasado con la de “Quantum Cryptography and Possible Attacks” que tenia muy buena pinta ya que iban a hablar de criptografia cuantica, de como funciona explicando el protocolo de Bennet y Brassard, debilidades que tiene ya que aunque sobre el papel y de forma teorica los mecanismos de intercambio de claves son seguros, en las practicas hay algunos vectores de ataque… en fin, habra que esperar a pillar las slides. Por otro lado tambien coincidia en el tiempo con una charla más de developers, la de ” After C: D, libd and the Slate project. A clean slate for operating systems”, de esta charla ya están colgadas las slides y bueno, visitare la homepage del proyecto slate para informarme un poco mas sobre el proyecto.
Como lo mio es el Networking, al final he optado por asistir a la de ” Wireless Kernel Tweaking or how B.A.T.M.A.N. learned to fly” que es de redes mesh para creacion de MAN wireless. El proyecto que han presentado, quizás un poco verde todavia, presenta un esquema de routing para redes cambiantes, como es el caso de nodos wireless en una red mesh, en este enfoque los nodos no guardan la topologia entera de la red, como pasa en protocolos basados en caminos cortos en estructuras de grafo, vamos el Dikjkstra de toda la vida, donde se calcula el camino mas corto conociendo la topologia, pensad en algoritmos como OSPF. Con BATMAN no es así sino que simplemente se recogen los anuncios del resto de nodos accesibles y se decide el siguiente salto, las decisiones de routing se distribuyen entre todos los nodos. El mayor problema al que se enfrenta actualmente es el de gestión de IP de los nodos, cada uno de be tener una direccion unoca de la red, pero no hay un metodo de gestion de direcciones central en la red. BATMAN corre como un proceso, que usa UDP 4305 y que interactua con el kernel para modificar las tablas de routing. se implementa un interface tap de E/S para la interacción con el usuario, recibe las tramas ethernet y las envia al nodo mas adecuado segun el algoritmo BATMAN. Tienen su propio tipo de trama ethernet 0×0842, es como un virtual switch entre los vecinos, hay una encapsulacion de ethernet sobre ethernet aqui. Con la implementacion en userspace el performance no parece muy bueno, aunque el proceso de routing es simple y puede ser implementado en sistems embedded como AP y moviles. La idea es implementarlo en kernelspace con lo que se evita conmutar entre user/kernel space con cada syscall (select, read, write). Merece la pena echarle un vistazo si te llama la atención el tema de las redes mesh.
Pausa para comer, victimas de nuevo de la comida basura… burrito XXL :)
Volvemos para la charla de hacking de la XBox 360 y como cada vez está más complicado el crackear consolas debido a las protecciones que implementan. En esta charla se presenta la arquitectura de seguridad de la 360, cómo ha sido crackeada, cómo se ha portado Linux a la 360 y cosas interesantes que hacer con una XBox 360 “linuxificada” :)
Han hecho también en la charla una referencia rápida a los ultimos avances para ejecutar homebrew en la wii… impresionante la escena de las consolas… por el momento solo queda invicta la PS3 que sigue sin crackearse, según Felix Domke y Michael Steil, los ponentes de esta conferencia, el motivo es que al haber ya un Linux para PS3 no tiene tanto interés el crackearla, eso si, desde el punto de vista del hacker que no busca unicamente la pirateria de juegos, sino poder correr homebrew.
La conferencia ha sido magnifica, la verdad es que al menos en los dos últimos años han dado una conferencia sobre cracking de consolas, y ambos ponentes son magnificos. Merece la pena oir la explicación de Felix Domke sobre los mecanismos de protección de las consolas de ultima generación, implementando hypervisores, cifrado de memoria, baneo de versiones viejas de firmware para evitar downgrades, etc. y por supuesto de cómo han crackeado el hypervisor de la 360, y es que al final todo se reduce a un fallo de programación segura básico… una comparación de direcciones de memoria en donde primero se usan unicamente 32 bits para la comparación, pero luego se usan 64 bits para la redirección a la función en memoria. Moraleja: se puede rellenar una tabla de funciones con direcciones de memoria “ilegales” fuera de la zona de memoria cifrada y bajo el control del hypervisor, con lo cual se puede “forzar” a la 360 a ejecutar homebrew, en este caso un loader para el kernel de Linux. Se han desarrollado ad-hoc el soporte de networking, de framebuffer y de 3D y el resto lo han reutilizado de otros ports. Al final tienes un sistema de 64bits, con 3 cores, que corre Linux, con networking por 300 euros :)
Como anécdota el método que usó Michael Steil para desarrollar el soporte de framebuffer… un iSight apuntando a la pantalla conectada a la XBox, ya que programaba desde remoto :) jejeje También han contado la anécdota de que M$ les invitó a Redmond a dar una charla para que explicaran cómo habían crackeado la consola… ¿vosotros iriais? A mi me daria algo de miedo ;) Y por ultimo… si no queréis Linux en la XBox también podéis meterle OpenBSD ;)
A continuación había un par de charlas interesantes, una de ellas era “To be or I2P. An introduction into anonymous communication with I2P”. En ella Jens Kubieziel comentaba la arquitectura de I2P y el uso de estos sistemas de impersonalización de tráfico. Lo interesante de I2P es su arquitectura totalmente distribuida a diferencia de otros sistemas como TOR. Interesante echar un vistazo al proyecto, las slides también están disponibles.
Al final me decidí por asistir a otra que coincidia en el mismo horario que era “Just in Time compilers – breaking a VM. Practical VM exploiting based on CACAO”, tenia buena pinta, explicación de la implementación de JVM y JIT, y técnicas para explotar algunos fallos de diseño. Lo unico es que toda la charla estaba centrada en CACAO una JVM experimental por lo que muchos de los exploits concretos que se han explicado, si bien a nivel conceptual son aplicables para la auditoria de cualquier JVM, no son aplicables al resto de JVM que podemos encontrarnos. En cualquier caso es interesante repasar las técnicas comentadas a modo de checklist si en algún momento se tiene que auditar la robustez de una JVM concreta, o a la hora de intentar explotar una JVM presente en un dispositivo embedded, como por ejemplo un movil :)
A continuación había una charla sobre el tema este que hubo de la “epidemia” en WoW que lo usaron como simulación y ejemplo sociológico de cómo se comportaria una manada de humanos asustados ante una epidemia mortal… era curioso, pero he preferido meterme en la charla de ” Automatic memory management. Why should I care about something that a computer could handle better, anyway?”, este tema es bastante recurrente en el CCC, es más, el año pasado asistí a otra charla de Hannes, el ponente, que era sobre el diseño de una pila TCP/IP Object Oriented… no estuvo mal. Este año se ha centrado en diferentes técnicas de gestión de memoria, es decir, la parte de Garbage Collector de muchos lenguajes. No ha estado mal, porque aunque parezca mentira aún sigue habiendo un montón de memory leaks por el mundo, porque al final los programadores son humanos, y los humanos cometen errores… un malloc() sin su free() y ya tenemos un lio ;) y repasar todos estos algoritmos y diseños nunca está mal :) Aunque no están las slides de la charla, tenéis disponibles todas las referencias de los algoritmos y mecanismos que se han comentado en la misma.
Y para terminar la jornada… Phenoelit en vena, uno de los grupos emblemáticos de la scene alemana. ¿Os acordáis que hablamos de ellos cuando comentamos en el podcast lo de la ley 202c?… pues bien, dos charlas magnificas para finalizar el día con alegría :) La primera “Toying with barcodes”, del estilo de las que me gusta en plan “hack TheRealWorld”. La charla se ha centrado en los diferentes tipos de códigos de barras que se usan y en dónde se usan. Tenemos códigos de barras en los cobradores automáticos de algunos supermercados, en las tarjetas de acceso a edificios, en los tickets de entrada/salida a los parkings, para marcar los equipos de los contractor en las empresas, en los videoclubs 24H, en los servicios postales, los códigos QR que tan de moda se están poniendo en revistas y periódicos… algunos de estos sistemas están diseñados de forma segura, otros no tanto y son explotables. Especialmente espectacular la parte dedicada a los sistemas de compra de billetes en líneas aereas, esos de imprima su tarjeta de embarque en casa. Aunque no han hablado de ello me he acordado también de algo parecido que son los sistemas de compra de entradas para teatros, museos, en los que te imprimes tu propia entrada que no es más que un código de barras que te escanean a la entrada y se valida. Muy interesante la idea de que los códigos de barras no son más que una representación gráfica compacta de información textual, al final el sistema informático recibe una cadena de texto que es la información codificada graficamente… ¿sería posible entonces que los sistemas que reciben esta entrada mediante el scanner de códigos de barras sean vulnerables a los ataques típicos de SQL Injection o buffer overflow?… la respuesta es sí, lo más explotado “in the wild” es el tema del SQL Injection, lo unico que cambia es el formato inicial de la información… en vez de meterle la cadena de texto a mano en un campo de entrada de una página web, la base de datos recibe la información mediante un scaneo de un código de barras que ha podido ser impreso para realizar un SQL Injection. Otra idea interesante es la de los ataques XSS o las URL con login y passwords puestas “a fuego” de los códigos QR que aparecen en algunos periódicos. Lo del login y password metido en la URL y en un QR de un periodico es uno de los ejemplos que han dado… increible pero cierto, ha quien diseñe este tipo de cosas deberian darle un premio a la ingenuidad :)
Como han dicho en la charla… “ya lo que nos faltaba, ahora tenemos que decirle a los managers que no pulsen en los links de los periódicos” jejeje :) Parece de coña pero es cierto… ¿qué pasa si estás autenticado en tu webmail y abres una sesión mediante un código QR malicioso del peródico?, XSS al canto y sesión capturada. Claro el usuario “confia” en el periódico, pero cualquiera puede publicar un anuncio con un QR malicioso… vamos, lo que decian… “ya lo que nos faltaba” :)
La segunda charla “Port Scanning improved. New ideas for old practices” me ha encantado, partiendo de la idea de que NMAP se ha quedado obsoleto y es mejorable, se ha presentado un nuevo paradigma de scaneo de puertos implementado en una nueva herramienta de nombre PortBunny :) La herramienta aún no está disponible, la release oficial será en enero de 2008. El ponente y creador de portbunny, fabs, ha explicado en qué falla nmap y presenta un nuevo paradigma de scaneo en el que se intenta acelerar al máximo el proceso de comprobación de puertos, evitando el uso de timeouts y haciendo uso de algoritmos de control de congestión. La idea es muy interesante, lo que se hace es generar, por ejemplo si hablamos de un half-syn scan, los paquetes de prueba y se van intercalando lo que él ha llamado “trigger packets”, es decir, paquetes que sabemos que nos serán contestados por el target. Total, que no tenemos timeouts de los paquetes de pruebas para detectar drops, sino que los drops los detectamos cuando vemos que no se nos contesta a los trigger packets. Con este diseño se consigue acelerar el proceso de scaneo considerablemente. En un escenario presentado donde se escanean los 65535 posibles puertos de un host, nmap tardaba 12 minutos y portbunny 15 segundos. Por otro lado el diseño de portbunny es completamente diferente a nmap, ya que no es una herramienta en userspace sino que es un módulo de kernel, que se comunica con el UI mediante /dev/portbunny. Por tanto movemos la funcionalidad de port scanning al kernel… ¿saldrán detractores entre los puristas del kernel? Desde luego como herramienta experimental está genial… habrá que jugar con ella en cuanto la liberen en enero.
La ultima charla a la que queria haber ido es la de los chips RFID Mifare, pero habia que cenar algo, asi que ha ganado el kebab al RFID :)
De nuevo, muchas cosas en el tintero, una pena… pero el problema de la concurrencia del espacio-tiempo aún es insalvable para un ser basado en el carbono como yo :) me he quedado con ganas de asistir a la de criptografía cuántica “Quantum Cryptography and Possible Attacks”, a la del sistema de anonimización I2P ” To be or I2P. An introduction into anonymous communication with I2P”, a la de hacking de sistemas SCADA “Hacking SCADA. how to own critical infrastructures”… muy interesante este ultimo tema por cierto, ya que trata sobre el diseño, protección y vulnerabilidades de los sistemas que controlan la infraestructura crítica de cualquier sociedad minimamente evolucionada actual… como sistemas de alumbrado, tráfico, plantas energéticas, comunicaciones, presas, etc, etc… no son todo lo robustos y seguros que deberían ser dada su criticidad. Por otro lado me he quedado con muchas ganas de asistir a la conferencia de “Inside the Mac OS X Kernel. Debunking Mac OS Myths” pero coincidia con la de port scanning avanzado y prefería ir a esta ultima. De la charla de MacOS está el paper aunque no las slides.
Por cierto, ¡cómo mola el drone volador con el que están jugando aquí la gente de mikrokopter! Venden la placa controladora ya montada y con el firmware cargado por 200 euros, luego el resto hay que currarselo, los motores salen por unos 40 euros cada uno, a parte de que cada uno lleva su propia controladora, las hélices, la estructura metálica… en fin, que el cacharro completo sale por unos 500 euros, más el tiempo de montaje claro, pero cuando lo ves en marcha unicamente piensas en “quiero uno, quiero uno…” :) Tiene una estabilidad magifica y es impresionante verlo volar dentro de la sala de conferencias principal… ayer le vacilaron a Kaminsky de lo lindo antes de comenzar la charla :) esta mañana lo andaban volando en la calle, en la entrada del centro de congresos. Si alguien se anima a construirse uno… ¡que nos cuente que tal o nos envie algún video como este!

Y esto es todo por hoy. Cerrando la conexión… ¡saludos desde Berlin!
NO CARRIER
Etiquetas: berlin, c3, chaos computer club, hacking
-
Gracias futur3 por la información que nos estás dando del evento.
Todos desde cyberhades te estamos siguiendo en cada transmisión que haces.
Un abrazo y gracias de nuevo.
gnuhal
http://www.cyberhades.com -
Nada hombre… lo unico que cuando llego por la noche echo polvo y me pongo a escribir el post al final siempre me acuesto a las 1k y ya me va pasando factura :)













6 comentarios
Fuente RSS de comentarios para esta entrada
Enlace de trackback: http://elgeekerrante.com/24c3-2/trackback/