Mi Brain-Training Personal

Para que no se me olviden las cosas…

Tulipanes y tiroleses

En esta ocasión vamos a dejar el tema técnico un poco de lado para comentar el aspecto más ¿humano? de Manwe y saghul. Actualmente nos encontramos en Amsterdam y no, no hemos venido a la eComm.

Lo cierto es que estamos aquí porque nos vamos. Nos vamos de Bilbao, nos vamos de Irontec, cambiamos de aires. Yo (saghul) me quedo en Amsterdam y Manwe proximamente iniciará su viaje hacia Viena.

Atrás dejamos familia, amigos, compañeros y demás gente, pero hay trenes (¡y aviones!) que sólo pasan una vez y que no hay que dejarlos pasar. Mucho (o casi todo) de lo bueno que nos ha pasado se lo debemos a familia/novia/amigos que nos han apoyado siempre y a los que estaremos eternamente agradecidos.

Han sido algo más de dos años los que hemos tenido la ocasión de compartir con nuestros compañeros en Irontec y que difícilmente olvidaremos. No todo el mundo tiene la suerte de decir que le gusta su trabajo, ¡joder si también es nuestro hobby! Pero sobre todo el recuerdo que nos llevamos es la gente. Como dijo alguien las empresas las forman personas y eso es precisamente lo que ha hecho de estos dos años algo tan especial. Poder compartirlos con otros 13 guerreros de nivel 15 ha sido todo un lujo, ya que nos ha enriquecido mucho tanto a nivel profesional como personal.

Obviamente no todo ha sido bueno, siempre hay alguna que otra tensión, pero eso es algo que se prefiere olvidar, ya que los momentos buenos superan con creces a los malos.

Para terminar (antes de que nos pongamos sentimentales) nos gustaría desear toda la suerte del mundo a Irontec y desearle que siga llenando armarios de servidores de software libre y haciendo las cosas “con mucha fe y un poco de Linux”. Stay hungry, stay foolish.

499445667_6830758f70

HowTo: Instalar Skype en Debian 64bits

Supongamos que por alguna razón tenemos que instalar Skype en nuestra Debian. Supongamos además que se trata de una Debian 64bits. Pues no es tan fácil como parece, ya que Skype se cerrará continuamente :-/ Vamos a solucionarlo:

Iinstalamos las dependencias necesarias:

apt-get install ia32-libs ia32-libs-gtk libasound2

Descargamos el propio Skype de aquí: http://www.skype.com/go/getskype-linux-beta-deb

Ésto nos descargará Skype de 32bits, así que haremos la cerdada de instalarlo en nuestra Debian de 64bits:

dpkg -i --force-architecture skype*.deb

Debido al bug 546281 en el paquete ia32-libs será necesario hacer algunas chapuzas… descargaremos las librerías de 32bits y las meteremos en /lib32 y /usr/lib32 para que Skype no falle:

wget http://ftp.es.debian.org/debian/pool/main/g/gdbm/libgdbm3_1.8.3-7_i386.deb
wget http://ftp.es.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-18_i386.deb
dpkg -x libgdm*.deb /tmp/skype_apesta
dpkg -x libwrap*.deb /tmp/skype_apesta
mv /tmp/skype_apesta/lib/* /lib32/
mv /tmp/skype_apesta/usr/lib/* /usr/lib32/

Y ala, ya tenemos Skype funcionando.

skype_linux

Me siento como si acabara de estar nadando desnudo en un pozo séptico…

Nueva versión de YASS con soporte para SIP sobre TCP y SIP MESSAGE

Acabamos de lanzar la versión 0.5.3 de YASS, una nueva versión que aparte de algunos pequeños cambios para mejorar la estabilidad tiene las siguientes mejoras:

  • Soporte para SIP sobre TCP.
  • Soporte para SIP MESSAGE (ahora ya puedes chatear con tus amiguitos ;) )
  • Mejoras en la gestión de dispositivos de audio.

Ésta será probablemente la última versión 0.5.x de YASS, ya que esperamos poder realizar importantes cambios en la gestión de la configuración de toda la aplicación (en las versiones 0.6.x) que nos permitirá una mayor flexibilidad a la hora de añadir nuevas features y acercarnos (algún día) a la 1.0

Podéis descargar los fuentes de YASS o instalarlo desde paquetes deb. Tenéis toda la información aquí: http://dev.sipdoc.net/projects/yass/wiki

Esperamos que os guste. :)

AstriCon 2009: Mensajería y presencia con Asterisk: ¿cómo hago?

Hace unas pocas horas que terminé de dar la charla “Asterisk, Instant Messaging and Presence: how?” que aquí os traigo. En ella la idea es poder dotar a Asterisk de las funcionalidades de mensajería y presencia que le faltan.

Ésta necesidad de presencia se ataca desde dos puntos:

  • Solución con XMPP
  • Solución con SIP SIMPLE

Espero que la presentación os guste, y podéis descargar todo el material (incluyendo archivos de configuración funcionales) aquí Enjoy! ;)

.

AstriCon 2009: Asterisk Xenified

Tras la tempestad llega la calma. Por fin he podido tranquilizarme y publicar por éstos lares las transparencias para que podáis echarles un ojo y comentar si os molan o si apestan. :)

La presentación define un escenario de aplicación de Asterisk sobre una plataforma Xen así como los trucos necesarios para hacer que funcione lo mejor posible.

Enjoy! :)

voip2day: Presente y futuro de las comunicaciones VoIP

Tras un fin de semana de merecido descanso aquí os traemos la presentación que el SIPdoc Team dio en el voip2day de éste año.

No tuvimos tiempo ni de hacer un poco de spam por aquí antes de la charla, pero bueno, aquí esta ;) En ésta ocasión en lugar de dar una charla de 30-45 minutos Iñaki Baz (ibc), Jon Bonilla (manwe) y yo (saghul) decidimos aunar nuestras fuerzas para hacer una charla más larga y poder ofrecer así más contenidos.

¡Esperamos que os guste! :)

Entrevista con Blake Cornell, descubridor del bug AST-2009-006

Desde que el año pasado publiqué aquí la noticia de el primer 0day en IAX2 he tenido la ocasión de hablar en varias ocasiones con Blake Cornell, su autor. Posteriormente él mismo descubrió otros 9 bugs de seguridad y hace bien poco Digium tomó cartas en el asunto y arregló el problema.

A raíz de esto intercambié unos cuantos mails con él, fruto de los cuales es esta entrevista, que traduciría al castellano si no fuera porque me da algo de pereza y se perdería la esencia de sus respuestas ;)

Me ha parecido particularmente interesante la descripción de la resolución del problema en IAX2 así como los consejos de seguridad que comenta. ¡Espero que os guste!

Q1: Describe a bit yourself: who are you and what do you do?

I’ve been involved in security for several years. Currently, I work for a large telecommunications and professional services organization. I perform penetration tests and assessments for financial, telecommunications, media and other sensitive systems.

Q2: When did you start playing around with Asterisk?

I started using Asterisk roughly 5 years ago. Initially, I used Asterisk to create viable communications solutions for my clients. Strictly no security research and only secure implimentations. Luckily for me, I was able to combine my previous security methodologies, via fuzzing specifically, with my knowledge of IAX2 to find the AST-2009-006 issue.

Q3: Do you think that Asterisk’s IAX2 implementation is secure now?

Currently, the implementation is not as secure as I’d prefer.  If the newly implimented challenge hash were predictable then this solution could be broken easily.

This challenge hash is determined by the server by combining the source IP, port number, the time since epoch and a “random” number to create a SHA1 hash.

+#define CALLTOKEN_HASH_FORMAT “%s%d%u%d”  /* address + port + ts + randomcalldata */

The server then sends this hash to the IAX2 client and waits for the identical hash in the response.  IAX2 will only assign a call number at this point.  This hash only tests agaist spoofing while DoS attacks.  An Asterisk administrator can then throttle the number of call numbers via IP address.

If an attacker can guess the randomcalldata then they can accurately predict the challenge hash.

+       randomcalltokendata = ast_random();

This randomcalltokendata is generated once when loading chan_iax2.  Its not uncommon for an Asterisk server to have over a year of uptime.  This number won’t change frequently.  If you manage to determine the current value then you’ve successfully broken it.  This is definitely a compensating control as long as the hash is strong enough.

Q4: Is there any other security enhancement you’d do to Asterisk?

Regarding the patch for AST-2009-006 I would randomize the randomcalltokendata value upon every request.  This would mitigate any challenge determination attack vector.

Following proper procedures when possible.  IAX2 was designed for Inter-Asterisk communication.  Since IAX2 is becoming popular with soft/hard phones this is no longer the case.

Use encryption on signalling and media.  Also use VPN tunnels as often as possible.  Any publically facing VoIP service is a target, be aware of this. Utilize proper ACL’s and firewall rules on OSI layers 3 and 4.  This will limit an attackers ability to target your VoIP services.

Q5: Did you study any other VoIP related software?

Most of my billable work involves design reviews and subtle, not complex, penetration tests for large organizations. My research is currently limited to IAX2 and SIP, still pretty nasty though. I’ve plans to test DUNDI soon, maybe within 6 to 8 months. Owning DUNDI would be a nasty proposition.

Q6: Generally speaking: do you think VoIP is secure nowadays?

No!  Some nasty things are going to be public soon.  I have a few Call for Papers out with some reputable conferences.  I plan to reveal some of the details then but it could be considered a basic example of how to build a VoIP Darknet.

Q7: What are your main areas of interest?

I support and am a New York, New Jersey and Long Island board member of OWASP.  OWASP is an application security consortium with members, meetings and conferences around the world.

I’ve been working on fuzzing SIP.  More thourough then my IAX2 fuzzer.  I had sent you a PoC video showing an attack against PBXware that added a new user with administrator privledges (which is now fixed).  This flaw was found with my SIP fuzzer with relative ease.  Less then an hour from scan to working exploit.  I’ve been calling this type of vector “SIP vectored XSS attacks”.

Currently, I’ve only been interested with security research for VoIP. AST-2009-006 was a design flaw.  I’m looking for other design flaws within SIP implimentations.

Basically, my main interests are application and infrastructure security.

Q8: How would you describe you relationship with Digium?

Not pleasant.  Some employees at Digium absolutely detest my existence. Sucks for them.  I don’t let that deter me though and am lucky I have found a few people within management whom appreciate my voluntary efforts.  That helps a lot.  In the future I at least know whom I can rely on and whom to ignore.

If anyone whom knows of security flaws that affect Asterisk and are afraid that they will have libel commited against them, by Digium employees none the less, please feel free to contact me directly.  I’ve been through that mess already and can mitigate it in the future.  I can help you help them.

I have a lot of respect for Digium.  There are many talented peopole working there.  Asterisk is a viable solution for millions of companies.  It has the potential to change how the world communicates.

I believe those in power within Digium will continue to do the right thing.

Thanks for taking the time to answer my questions Blake! :)

Nueva versión de YASS y blog de SIPdoc

Aprovechando el tiempo que nos deja el horario de verano ya tenemos nueva versión de YASS. Esta versión no trae grandes  nice and cool sexy features, pero tiene mejoras relevantes con respecto a la 0.5.1:

  • Añadido soporte para STUN.
  • Mejorada la gestión de buddies es posible editarlos y se muestra su URI al pasar el ratón. También se muestra la frase que define su estado.
  • Mejoras en la ventana de selección de estado: refleja el estado actual y lo carga desde el comienzo.
  • Reescrita la gestión de URIs para que use el mecanismo interno de PJSIP.
  • Mejoras en la gestión de la configuración: sólo re reinician los componentes necesarios dependiendo de los cambios realizados en la ventana de configuración.
  • Añadido el fichero de configuración yass.cfg para controlar si es necesario reinicializar la configuración tras un cámbio de versión.
  • Algunas mejoras internas…

Tenéis todos los cambios aquí: http://dev.sipdoc.net/versions/show/15 y podéis descargar esta versión en la sección de ficheros o con un apt-get upgrade ;)

Para no spamear demasiado en este blog acerca de las futuras versiones de YASS hemos creado el SIPdoc Dev Blog, un blog donde iremos anunciando las nuevas versiones de lo que hacemos en la factoría SIPdoc. Estad atentos!

AstriVacaciones reloaded!!

Como ya viene siendo costumbre los últimos años, éste también tendré VoIP-vacaciones. Volveré a los USA (por tercera vez), para asistir al AstriCon 2009, que tendrá lugar en el mismo lugar que el año pasado: Glendale, Arizona.

El año pasado mi compañero de batalla fue mi colega y amigo Manwe, y en esta ocasión me acompaña mi novia, que seguramente no entienda cómo podemos pasárnoslo también un puñado de frikis, pero le encanta viajar ;)

La diferencia principal entre el viaje del año pasado y el de éste es que además de ir a escuchar las interesantísimas charlas que allí se darán voy a dar dos charlas en el AstriCon! :) Parece que últimamente la suerte me sonríe, ya que me aceptaron dos de los papers que envié con propuestas para charlas. Finalmente serán éstas:

  • Asterisk Xenified: Comentaré aspectos sobre VoIP y Asterisk bajo la infraestructura de virtualización Xen (que tanto me gusta, como ya sabréis) además de los resultados de algunas pruebas de estrés que demuestren su estabilidad en ése tipo de entornos.
  • Asterisk, Instant Messaging and Presence: how?: Asterisk dispone de un soporte muy limitado/nulo de mensajería y presencia. En la charla se expondrán diversas formas de obtener funcionalidades de presencia SIMPLE y XMPP utilizando diversas herramientas como Kamailio (OpenSER) u OpenFire.

Si le echáis un ojo a la lista de charlas veréis que muchas de ellas son interesantes, y es que al parecer éste año va a celebrarse allí el décimo aniversario de Asterisk con alguna que otra sorpresa. ;)

astricon-speaking-sm

PD: ¿Alguien va a estar por allí?

¿Qué se comenta sobre Asterisk en Twitter?

Hace algún tiempo me entraron ganas de volver a jugar con el API de Twitter. Anteriormente había hecho un simple cliente de Twitter para consola con Python y CURL, pero quería hacer alguna otra cosa.

Viendo que los bots estaban de moda se me ocurrió hacer asteriskbot, un bot de Twitter que re-twittea todo mensaje que contenga el hashtag #asterisk.

La idea (y su implementación) es bastante simple: a intervalos regulares se buscan todos los mensajes que contengan #asterisk y si no ha sido re-twitteado previamente, se twittea y listo. Para controlar si un mensaje ha sido procesado o no se guarda su identificador en una base de datos SQLite (¿he dicho alguna vez que me encanta? :) ).

El script permite hacer un bot de Twitter sólo con elegir el hashtag que se quiera y añadir una línea al cron. Podéis descargarlo aquí.

twitter

PD: Necesito un favicon de esos para asteriskbot, ¿alguien se anima?