Re-borning
After all this time without any activity, I've decided to make some changes to the blog. The first one you notice when you come in directly through a browser is the new theme.
Further, now it's possible to select the blog's language between Spanish and English. Yes, I've decided to start multilingual blogging, and every post will have a spanish version and an english one. To that end, I've installed a plugin called qTranslate, which allows you to manage it directly through the wp editor without modifying the database at all. It also allows translating categories, pages, etc.
The only thing that makes me hesitate a bit is that comments are not separated. But to be honest, I don't think it's gonna be a problem cause after all I don't have that many comments ;-).
I've translated the pages, updated the About me page with current information and I'll explain some of my ideas in this post. I'd like to start a series about cryptography, starting with the very basis and progressing step by step.
We'd start with classic crypto, and continue with modern crypto: block ciphers, asymmetric crypto (RSA, ElGamal, some ECC content). Once we know something about all this stuff, we'll see some cryptographic protocols and cryptographic systems.
Obviously all this doesn't happen overnight, but my intention is to publish at least in a weekly basis. With such a large series of posts, it could be a problem if its acceptance is not very great and I got tired of writing about it... I hope it doesn't happen this time 🙂
More news comming soon, stay tuned!
Feliz año nuevo (y cumpleblog)!
Ahora mismo este blog cumple 2 años... lo que empezó en la nochevieja de 2006-2007 sigue vivo a dos años después, 1 de Enero de 2009.
Ha pasado bastante tiempo, mi situación ha cambiado de ser un estudiante de teleco a estar trabajando en una empresa dedicada a la seguridad de la información en un país donde ni siquiera se me habría pasado por la cabeza en aquel momento.
En aquél primer post hablaba de los exámenes del primer cuatrimestre de cuarto curso, séptimo en toda la carrera... y no estaba del todo convencido respecto a ser capaz de superarlos todos en primera convocatoria. Desde entonces he pasado por un cuatrimestre en Valencia y un curso entero en Holanda, y continúo con el segundo en Holanda en una situación totalmente distinta. Y la verdad es que no me puedo quejar, no va nada mal 🙂
En fin, ahora mismo debo estar por tierras alcoyanas celebrando el fin de año y deseando un 2009 mucho mejor que 2008 para todo el mundo.
Lo dicho, a disfrutar de la noche sin pasarse, y que tengáis un feliz 2009!!
CA falsa, ¿se rompe Internet (o su PKI) ?
Ayer día 30 se publicó en el CCC una vulnerabilidad en la PKI de Internet, explicando cómo se había conseguido tener un certificado perfectamente válido para la mayoría de los navegadores web pero con datos falsos. Se obtuvo un certificado firmado por una autoridad de certificación (CA) de confianza en la mayoría de navegadores, al que se le pudieron cambiar los datos de identidad: la CA firmó un certificado, pero se obtuvo otro derivado para el que la misma firma sigue siendo válida y los datos se han modificado arbitrariamente.
El ataque fue publicado por un grupo de investigadores, contando entre ellos con Benne de Weger, profesor de la TU Eindhoven que me dio clase de Cryptography 2 el año pasado.
¿Cómo es posible esto?
Básicamente, se ha usado la misma técnica que para la predicción de presidentes de los EE.UU. de la que ya hablé hace un tiempo. Se ha obtenido un certificado válido para un sitio aparentemente legal en una CA de confianza, y luego se ha creado un certificado que genere colisiones en MD5.
El método exacto es, como ya dije, tener un prefijo del certificado a elección, una sección aleatoria para hacer colisionar algún resultado intermedio del hash MD5, y después una parte final común a ambos certificados. Puesto que a partir de la colisión, ambos documentos son idénticos, el hash MD5 de éstos será el mismo.
Aun así, no es tan fácil buscar la colisión, puesto que hay ciertos elementos que varían entre un certificado y otro y se deben predecir. Por ejemplo, el número de serie del certificado o el periodo de validez de los certificados que nos va a dar la CA.
Para el ataque, los investigadores probaron con diferentes CAs y trataron de predecir estos valores. Finalmente, seis CAs comerciales les dieron certificados que pudieron usar para crear colisiones.
¿Y qué significa esto?
Básicamente, alguien podría crearse su certificado firmado por una de estas entidades para usos maliciosos. Por tanto, podrían hacer un MiTM en conexions SSL sin que vieramos que hay un intruso porque el certificado usado sería aceptado por nuestro navegador sin rechistar.
Ahora bien, es esto realmente un problema taaaan grave? Para empezar, para la mayoría de los usuarios el cartel de 'el certificado no es válido' solo significa algo así como 'tienes que darle a aceptar para entrar'. En esta situación, ni certificados ni leches, no merece la pena perder el tiempo en crearte un certificado válido si los usuarios van a pasar de los mensajes y entrar igualmente.
Además, el problema no es de la PKI sino de MD5. La solución pasa por irnos a otro sistema de hash como SHA-256 o SHA-512, y usar IDs aleatorios para los certificados firmados. Todo lo que se pueda predecir puede llevar a problemas, ya lo vimos con DNS y lo vemos ahora con los certificados.
Como dicen en layer 8:
What I’m here to say is, I don’t really think this matters all that much except to security researchers. Here’s why: normal users’ trust has very little to do with certificates.
Otro sitio donde intentan tranquilizar es en securosis. Y además veo que Verisign ya ha arreglado el entuerto en su RapidSSL.
Si queréis información técnica de cómo funciona esto exactamente, aquí lo explican todo con detalle. Yo seguro que me he dejado algo... pero solo quería decir que no es taaan malo y que se veía venir después de que publicaran los anteriores ataques a MD5. Y lo mismo con SHA-1, si se sigue usando probablemente acabará en algo muy similar a esto.
Videos y audio 25C3
Hace unos días ha tenido lugar la 25a edición del CCC en Berlín, y ya se pueden descargar algunas de las grabaciones de las charlas en su ftp: http://ftp.ccc.de/congress/25c3/
Además, las transparencias de algunas charlas también están disponibles en el schedule del congreso: http://events.ccc.de/congress/2008/Fahrplan/
Que lo disfrutéis!! 🙂
Home, sweet home
Después de casi tres meses aquí, vuelvo para casa a pasar las Navidades. Sí, como el del Almendro... el día 24 vuelvo a casa por Navidad xD
El balance es muy positivo: el trabajo me gusta mucho más de lo que me gustaría cualquier trabajo típico de un teleco recién titulado en España (también podría haber buscado algo así allí, pero similar a esto hay muy poco y no creo que cojan a alguien sin experiencia), la remuneración con toda seguridad mayor a la que recibiría allí, voy aprendiendo bastante, y en el terreno personal he conocido a nueva gente con quien compartir las horas fuera del trabajo y pasarlo genial 🙂 Una lástima que muchos en principio se van incluso antes de que acabe el curso, pero es lo que tiene juntarse con Erasmus no?
Sé que el blog lo tengo un poco abandonado... la verdad es que de las cosas interesantes que se me ocurren, a veces no sé si estoy autorizado a contarlas o no y ante la duda obviamente corto por lo sano. De todas formas, a ver si ahora en estas fiestas tengo un rato (y ganas) de ponerme con algunas ideas que tengo y puedo subir la actividad en 2009.
Un saludo, y felices fiestas!
Book Review: The IDA Pro Book
[DISCLAIMER: Este post va en inglés puesto que el libro también es en inglés... y a quien le interese lo entenderá]
At the beginning of last month I ordered a copy of The IDA Pro book from Chris Eagle at Amazon. Since reversing has been one of my pending subjects for a while now, and after seeing it recommended by Ilfak's himself, I decided to buy the book. I've just finished my first reading of the whole book, and before going into applying the acquired knowledge I've thought it may be useful to share my opinion with you.
The book is divided into 5 different parts. Part I, Introduction to IDA, covers the very basis about disassembling, reversing and reversing tools, and IDA Pro.
Part II, Basic IDA usage, introduces the reader into the IDA world in chapters 4 to 10. After introducing the user interface and the different IDA displays, Chir Eagle goes into disassembly navigation and manipulation, data types, cross-references and graphing, and finally the different IDA flavours apart from the normal Win32 GUI version (console mode for Windows,Linux,OS X). Chapter 8 about datatypes and data structures also provides a nice covering of C++ reversing, showing how to locate vtables and explaining inheritance relationships among others.
Part III, Advanced IDA usage, extends the IDA knowledge provided in the previous part by discussing its configuration files, library recognition methods, how to extend IDA's knowledge about library functions and, although it is not its main purpose, what can IDA do for us if we want to patch a binary.
Part IV of the book discusses the available options to extend IDA's functionality: IDC scripts, the IDA SDK, plug-in development and processor and loader modules. To be honest, I skipped a big chunk of this part because I believe it is not worth now. I'll just come back to these chapters once I start disassembling things and needing to tailor IDA's functionality to my needs.
Part V discusses how to deal with real-world problems. It starts with a chapter about the different assembly code produced by different compilers for the same source code, and then goes into a very interesting description about obfuscated code analysis (from the static analysis perspective mainly). Next, Eagle gives some hints on how to use IDA for finding vulnerabilities and provides a list of several useful real-world IDA plugins.
Last part of the book, Part VI, discusses the IDA debugger and its integration with the disassembler. This part starts with an introduction chapter, continues with a discussion on its integration with the disassembler and ends with a chapter about remote debugging with IDA.
As you have seen, this book provides a thorough coverage of IDA's capabilities, and gives real world examples. The examples, together with the IDC and plug-in code, make it a very interesting reading for those willing to learn about reversing and about the most popular disassembler these days.
If you'd like to learn how to use IDA efficiently, how to tailor it to your needs and automate your static analysis tasks, this is your book. Definitely, it is worth the money if you want to get into IDA and have a good reference book.
extX forensics, Uninformed vol 10 y Mifare Classic
Como os doy poco (pero poco poco) de comer últimamente, aquí vengo con documentos fresquitos e interesantes 🙂
Por un lado, la universidad de Nijmegen publicó no hace mucho un paper sobre sus ataques al chip Mifare Classic de NXP. Se pueden encontrar en su página dedicada a temas de RFID... yo solamente le eché un ojo rápido, aunque el paper promete.
Por otro lado, Wesley McGrew ha publicado en su blog unas transparencias sobre los sistemas de ficheros Ext2/Ext3, sus estructuras de datos y qué cosas interesantes desde el punto de vista del análisis forense pueden tener. Si no conoces cómo funcionan estos filesystems es recomendable echarle un ojo para entender cómo van.
Por último, se ha publicado un nuevo número de Uninformed Magazine. Hay 4 artículos, dos sobre reverse engineering y dos sobre exploitation techniques. La verdad es que todos suenan interesantes... en cuanto tenga tiempo que dedicarle me pondré a ellos.
Que lo disfrutéis!
Nederland: Tweede ronde
Como se deduce del título (benditos traductores automáticos de inglés a holandés xD) ya estoy de nuevo en Holanda, segundo round.
Hace unas horas he aterrizado en el aeropuerto Schiphol de Amsterdam, y seguidamente, tras 45 minutos de esperas por la maleta y tras pasar control de aduanas por si tenía algo que declarar cuando había dicho que no ( wow! Es la primera vez que me pasa... ) y un ratillo de tren, he llegado a Delft a mi nueva casa.
La casa en sí es la misma en la que estuve en Julio, aunque en la habitación de al lado donde me han dejado amablemente una TV pequeña, un equipo estéreo, mesa, silla, sillón y unas cuantas estanterías... aunque todo desierto xD
Llevo un catarro que no veas, mañana tengo que empezar a currar y ya he recibido un mail del jefe hoy porque no va a estar disponible, y si tengo tiempo quiere que programe algunas cosillas.
Ahora toca sobar, que con el catarro el aterrizaje me ha sentado fatal (dolor de oídos y cabeza :S ) y estoy hecho polvo.
Seguiremos informando.
Ya es oficial
Algunos medios ya se han encargado de dar la noticia antes que yo en mi propio blog, pero bueno, sirva esto como nota de prensa oficial: desde esta mañana, a eso de las 12 horas 40 minutos, el que suscribe ya es oficialmente Ingeniero en Telecomunicación.
Ha habido algún problemilla, vease que el señor Oscar que era el vocal asignado por el centro para la lectura del PFC no ha aparecido... La hora de empezar era las 11, pero no estaba, así que después de (creo) que mi tutora hablara con él, hemos decidido esperar 1 hora para que llegara.
A las 12 en punto aun no había llegado, así que he subido de nuevo hacia el salón de grados y hemos procedido a la defensa sin él. Tras unos 25 minutos hablando, los primeros de los cuales he estado algo nerviosillo, y en los que me he equivocado en alguna cosilla, hemos pasado al turno de preguntas.
Me han preguntado por qué DES ( porque ya lo teníamos empezado cuando llegué ), si me quedo allí, que explicara un poco sobre los ajustes del osciloscopio que había mencionado, si había pensado en otro RNG y si afectaría mucho tener uno mejor, y también si creía que tendría sentido volver a encarar los diseños hacia la criptografía clásica y basarnos en el secretismo de ello.
Aquí he recordado el caso del chip Mifare de NXP ( información aquí ) y comentado que en mi opinión y como piensan la mayoría de expertos, los diseños deberían basarse en peer review y por tanto deberían ser públicos y revisados por quien se sienta con conocimientos suficientes.
Finalmente hemos salido, han deliberado un poquito, hemos entrado y me han otorgado la máxima calificación. Desde ese momento, soy Ingeniero en Telecomunicación... aunque sigo siendo el mismo eh! que lo sepais 😛
Ahora me queda disfrutar de las fiestas del pueblo, del poco tiempo que me queda aquí con amigos y familia, y el martes 30 hacia Delft donde me esperan mis nuevas obligaciones laborales y unos cuantos Erasmus y estudiantes de PhD y currantes internacionales varios a los que espero tener el placer de conocer y compartir experiencias (y fiestas 😉 ) con ellos.
Gracias desde aquí a todos. Tanto a los que han podido asistir como a los que no. Gracias!
El malingo presenta Reto Hacking IX
El maligno ha anunciado que esta noche, a las 20:00, empieza el Reto Hacking IX. El reto cuenta con 10 niveles, y los premios además de puntuar en la general de los retos hacking de este año, son estos (copia-pega de la entrada del maligno):
- Primero: La gloria, la fama, el honor de hacer un solucionario y responder a una entrevista para el lado del mal. Además, una cena y unos cubatas en tu ciudad (como gane quién yo me sé va a ir a Zurich la madre del topo) que quedará para la historia con fotos que no querras-que-vean-tus-descencientes.
UPDATE: El primero se llevará el Badge de la Defcon16
- Segundo: El honor de ser el primer Luser, el gran perdedor, el perdedor oficial. El título honorífico de ser el Luser del Reto Hacking IX y sí, una cena, pero las copas las pagas tú que para eso deberías haber ganado.
UPDATE: El segundo se llevará tres pegatas de la Defcon16
- Tercero: A ti te voy a regalar un libro de hacking para que sigas practicando y así alcances la gloria de ser el campeón o de ser el No Luser.
UPDATE: El tercero se llevará una pegata de la Defcon16
Yo si tengo tiempo me pondré a ratos, aunque en un plazo de una semana presento el PFC y luego vienen fiestas del pueblo, así que no estaré muy libre para ponerme...
Suerte a los que os decidáis!
EDITADO: Ayer estuve pegandole un ratillo cuando llegué a las 9, un poquitín más después de cenar y otro rato cuando volví de dar una vuelta por ahí. La cosa va de romper CAPTCHA's, pasé los niveles 1-5 pero el 6 se me resiste... no veo NADA de momento 😳 .
Las soluciones las estoy haciendo con PHP con libcURL, reutilizando un script que usé en la CampusParty de 2006 (creo). Te suena Javi? xD Esta vez toca hacer cosas 'parecidas' pero hay que saltarse el captcha 1000 veces en 60 minutos, con lo que automatizarlo es clave (y un coñazo la espera xD).
EDITADO 2: Pues ya hay ganador. Kachakil acaba de alzarse con la victoria y con los 10 puntos... el tío está en el top en todos los retos. Enhorabuena desde aquí!