lunes, 19 de abril de 2010

BlackHat Europe 2010 - Barcelona

Tal y como ya anunciamos, la semana pasada estuvimos por Barcelona los días 14 y 15 para asitir a la edición Europea de una de las conferencias de seguridad más conocidas del mundo: Las Conferencias BlackHat.


La verdad es que las conferencias no me defraudaron en absoluto, desde el KeyNote inicial de Max Kelly, CSO de FaceBook, ya se huele la vertiente técnica que tanto nos apasiona en todo lo que rodea a las BlackHat. Para empezar, nos quedamos con una frase para el recuerdo de la presentación de Max Kelly que nos vais a permitir que pongamos en mayusculas y bien centradita:

COMPLIANCE ISN'T SECURITY
(Cumplimiento no es Seguridad)

Me encanta! Me hubiera gustado tener esta cita firmada por una persona de tanto peso hace tiempo para rebatir a algún que otro responsable que he tenido en el pasado. Seguro que más de uno también le hubiera venido bien :)

Tras el KeyNote inicial nos encontramos ante la difícil decisión de elegir a que charlas vamos a asistir, ya que las tres salas simultaneas con su impresionante schedule de alto contenido técnico te dejan con las ganas de poderte "desdoblar" y asistir a todas ellas. Si no somos capaces de hacer algo así no nos quedará más remedio que elegir con algún tipo de criterio. Si vas por tu cuenta nosotros recomendamos elegir aquellas que pienses que pueden resultarte más difíciles de entender y que por tanto te va a venir bien ver la explicación en directo y poder hacer preguntas (las otras, a mirar el paper). Si te ha mandado tu empresa seguramente llevarás un planning más o menos estricto de las conferencias que interesan más a tu empresa o a tu equipo, así que un quebradero de cabeza menos, ya que al final, vayas a lo que vayas, va a ser de altísima calidad.

Pues vale, ya tenemos las conferencias a las que queremos asistir elegidas, así que llega el momento de ir arriba y abajo cambiando de sala, cruzandote con personas conocidas del mundo de la seguirdad como Lorenzo Martinez de SecurityByDefault, Chema Alonso (aka El Maligno), los Sexy Pandas, representación de Taddong, los chicos de TB-Security y un largo etcetera.

Esta fue, mejor o peor, nuestra elección, que pasamos a comentar de forma resumida por no hacer de este un post interminable:

  1. "Hardware is the New Software" (Joe Grand): Hoy en día las empresas más importantes son plenamente conscientes (aunque a veces no lo parezca) del peligro que representa el software y los fallos asociados al mismo. De desarrollan herramientas y se dedican recursos a la auditoría de software. Pero... ¿qué pasa con el hardware? En esta charla Joe nos hizo ver lo descuidada que está la seguridad de dispositivos hardware, que al final no deja de ser lo mismo que el software solo que en dispositivos empotrados por medio de microcontroladores y circuitos, pero que igualmente se les puede realizar la ingeniería inversa y encontrar vulnerabilidades al igual que se realiza con sus equivalentes software. El equipo necesario, al contrario de lo que se pueda pensar, no resulta tan caro, lo cual abre la puerta a este mundo tan poco explorado y, por tanto, peligroso. ¿Ejemplos? Cajeros automáticos, Tarjetas de Parking, Sistemas de Voto electrónico, ... !Atención empresas! Más información.


  2. "Security in depth for Linux Software" (Julien Tinnes & Chris Evans): En esta charla, Julien y Chris nos dieron un buen repaso sobre las diferentes técnicas mediantes las cuales se puede implementar SandBoxing en Sistemas Linux como medida de mitigación del impacto ante la explotación de vulnerabilidades en el software. Evidentemente, tras explotar una vulnerabilidad, el impacto va a ser directamente proporcional a los privilegios de que disponga el proceso que se encontraba ejecutando el software vulnerable, de tal forma que explotar una vulnerabilidad de un software ejecutado en un proceso que no tiene privilegios para acceder a disco, red, memoria ni ejecutar nada puede ser completamente inútil. Con esta idea surge este concepto de SandBoxing, basado en el concepto de mínimo privilegio. A lo largo de la presentación, Julien y Chris nos hicieron un repaso sobre las diferentes técnicas que se pueden emplear para realizar SandBoxing en Linux (según ellos no muy dotado para ello), ilustrado mediante dos ejemplos de software que utilizan estas técnicas: vsftpd y Chromium (lógico viniendo de dos empleados de Google). RECOMIENDO mucho la lectura en profundidad de este paper a aquellos que realicen desarrollo de software sobre sistemas Linux y que quieran mejorar la seguridad de sus desarrollos. Más información en esta presentación que hicieron para otra conferencia en Malasia, pero que es idéntica.

  3. "Verifying eMRTD Security Controls" (Raoul D'Costa): Interesante conferencia sobre las medidas de seguridad empleadas por los ePassport que nos recordó a una que dio Adam Laurie en las SOURCE el pasado año. La charla fue interesante, pero hemos de reconocer que nos faltó algún tipo de demostración práctica como la que hizo Adam, al que pudimos ver en vivo clonando y falsificando pasaportes electrónicos.

  4. "SCADA & ICS for Security Experts" (James Arlen): Lamentamos decir esto, pero floja, muy floja, flojíiiiiisima conferencia de James Arlen sobre SCADA. Una impresión compartida por todos los que asistimos allí pensando en que nos hablarían de seguridad técnica en sistemas SCADA (algo muy interesante) pero que acabamos viendo como la conferencia se limitó a decir que los sistemas SCADA de verdad son los realmente grandes y que esos es IMPOSIBLE (fue muy osado al decirlo, la verdad) que sufran un ciberataque, aunque bueno, también dijo que los SCADA de una central nuclear no eran verdaderos sistemas scada, así que... Sin comentarios.

  5. "Attacking Java Serialized Communication" (Manish Saindane): En esta conferencia se presentaba una serie de herramientas que podían ser utilizadas en combinación con BurpProxy para realizar auditoría sobre las Serialized Communication de Java. Las Serialized Communications de Java envían un objeto Java completo convertido en una secuencia de bytes en hexadecimal desde un cliente hasta un servidor. La utilización de este medio de transmisión dificulta el proceso de auditoría, ya que nos vemos obligados a editar directamente esta secuencia para intentar averiguar si a través de alguno de los parámetros del objeto podemos encontrar vulnerabilidades en el software. Para evitar la edición en hexadecimal, se ha desarrollado un script en Ruby que instalado adecuadamente junto al conocido Burp Proxy puede ayudarnos a editar cada uno de los campos de un objeto de forma mucho más sencilla, ya que realiza de forma automática la transformación de cadena de hexadecimales a objeto y viceversa tras ser modificado. Podemos descargar el software de este enlace u obtener más información sobre su proceso de instalación en el blog del ponente. Más información.


  6. "Binding the Daemon: FreeBSD Stack & Heap Exploitation" (Patroklos Argyroudis): Me encantó esta conferencia. En general las conferencias y charlas sobre exploiting siempre me gustan, pero la verdad es que fue interesante ver las opciones que tenemos para realizar un Stack o Heap Overflow en un sistema FreeBSD, mucho menos investigado de los sistemas Windows o Linux a pesar de ser uno de los principalmente utilizados como servidores web en Internet. Todo perfectamente explicado y con demostraciones de elevación de privilegios totalmente "reliables", es decir, con payloads hechos a medida para evitar inestabilidades en el sistema. Me gustó especialmente una vulnerabilidad en una de las funciones a las que se llama para montar particiones, un sprintf de un "La opción %s no existe" a un buffer de error de solo 255 caracteres, todo un clásico, increible que siga ocurriendo en la actualidad. Muy recomendado para todos aquellos apasionados del exploiting. Os paso el blog del ponente, aunque aún no ha publicado nada.

  7. "Abusing JBoss" (Chistian Papathanasiou): La verdad es que esta charla no fue como la esperabamos. Por lo que se comentó a la salida con otros asistentes, todos esperabamos algún tipo de técnicas o fallos de seguridad de desarrollos, implantaciones o instalaciones por defecto de JBoss, pero realmente lo que nos encontramos fue una pequeña herramienta desarrollada por el ponente que servía para automatizar la explotación de entornos JBoss y Tomcat que tienen disponible su panel de administración con contraseña por defecto. Para estos sistemas, la herramienta realizaba una serie de acciones que nos llevaba a tomar el control de la máquina por medio del despliegue de un JSP-Shell que nos permitía a su vez subir un payload de Metasploit como pueda ser Meterpreter, VNC o un simple Bind_TCP, y ejecutarlo, tomando de esta manera control de la máquina. La herramienta me parece útil, no por su complejidad técnica, que es realmente poca, sino porque es una herramienta que te permite automátizar el proceso de explotación y hacerlo más rápido, algo muy útil si nos encontramos con este tipo de vulnerabilidades en un gran número de máquinas. En cualquier caso, la aportación, aunque existe, no parecía estar a la altura de otras ponencias que se vieron en estas conferencias. Más información.

  8. "Targeted Attacks: From being a victim to counter attacking" (Andrzej Dereszowski): Esta fue otra de nuestras favoritas. En esta ponencia, Andrzej nos mostró como realizar el proceso de "contra-ataque" ante un intento de ataque dirigido contra nuestra empresa. En este caso, el método elegido por el atacante contra nosotros fue un PDF que explotaba una vulnerabilidad de Acrobat Reader y que fue enviado a los buzones de correo de la organización. Tras analizar el PDF se pudo obtener el payload que ejecutaba y analizar, encontrándose la existencia en él de un conocido BackDoor llamado "Poison Ivy". Tras un análisis con sus correspondientes técnicas de ocultación del debugger, se obtuvo la dirección a la que conecta dicho BackDoor, con lo que obteniamos un objetivo contra el que contra-atacar. Ahora que sabemos que el atacante está corriendo en una IP que acabamos de obtener de hacer Reverse Engineering del troyano una versión cliente del software "Poison Ivy", solo tenemos que encontrar alguna vulnerabilidad en dicho software que nos permita tomar a nosotros el control de la máquina del atacante. Por medio de técnicas de Fuzzing, Andrzej encuentra una vulnerabilidad y desarrolla un exploit con el que poder conseguir visibilidad sobre las acciones del atacante pero sin provocar el cierre del software vulnerable, de tal forma que el acatante no se entere de nada. Una vez dentro, nos enseño unas capturas que hizo de consolas de administración de este BackDoor en las que se veían todas las máquinas comprometidas. Sencillamente genial, sin duda ilegal, pero sencillamente genial :)


  9. "0-Knowledge Fuzzing" (Vincenzo Lozzo): A pesar de que es una nueva técnica y aún no se han obtenido resultados en forma de vulnerabilidades descubiertas, me pareció un concepto muy interesante el de Vicenzo Lozzo y su manera de utilizar un lenguaje intermedio como REIL para a partir de ahí seleccionar las funciones interesantes y realizar sobre ellas un in-memory fuzzing. Esta última técnica consiste en la modificación del contenido de las variables, no en su entrada a la aplicación, en la que tenemos que guardar un formato concreto, sino directamente en la memoria. Presumiblemente esta es una aproximación que debería dar muchos mejores resultados que un dumb-fuzzing y de una forma mucho más eficiente y exahustiva que un smart-fuzzing. Sin embargo, por lo que comentó el propio Vincenzo, por el momento la tasa de falsos positivos es alta. Sin duda una técnica a la que merece la pena hacerle un seguimiento a ver como va madurando con el tiempo. Os recomiendo pegarle un vistazo al paper y a la presentación.


  10. "Virtual Forensics" (Christiaan Beek): Elegimos esta charla porque sin duda cada vez se ve más virtualización por todas partes. Mejor o peor implementada (hay cada sitio...), pero sin duda es una tecnología muy desplegada por la cantidad de posibilidades que tiene. Sin embargo, no todo son ventajas, ya que estas capas de virtualización puede dificultar la tarea de un Incident Handler o de un Investigador Forense a la hora de trazar una intrusión o algún otro tipo de incidente. La solución pasa por conocer en profundidad las tecnologías de virtualización más comunes y saber a donde debemos acudir para obtener la información deseada. En esta ponencia se comentó la virtualización empleada por los sistemas Citrix, VMWare y Windows 7 (que según parece lleva un sistema Virtual PC integrado para asegurar la compatibilidad con XP), así como los diferentes ficheros y registros interesantes que deberemos analizar para realizar una correcta gestión de un incidente. Referencia muy recomendable para todos aquellos Incident Handlers o Analistas Forenses.
Para más información, lo mejor es acudir a archivo de las conferencias y descargarse los papers originales, aunque para eso aún tendremos que esperar algunos días más.

De algunas de las cosas que vimos en las BlackHat, evidentemente, vamos a cacharrear y probablemente pongamos algún post en más profundidad.

No hay comentarios :