07 octubre 2011

Está a punto de comenzar el Master de Seguridad en la Universidad Europea de Madrid, este año ya tengo preparadas un par de ideas como proyectos de fin de Master para los nuevos alumnos. Dos de seguridad web y otra de análisis forense ¿queréis participar en alguna de ellas? Entonces no tardéis mucho en inscribiros ya que la presentación será el próximo 3 de noviembre.

El año pasado mi grupo presentó F*CK Tool, sacando una de las mejores notas. Mi propósito para este curso 2011/12 es la matrícula de honor, ¿lo conseguiremos?

El profesorado y contenido se mantendrá como hasta ahora, ya que los cuestionarios de calidad que año tras año hacen los alumnos siempre han sido muy favorables. Lo mismo con el horario, que seguirá siendo "executive", es decir, viernes tarde y sábados, para que gente que actualmente trabaja pueda realizarlo.

Mucha gente nos pregunta cómo hacer carrera profesional en seguridad o continuar su formación y esta opción es una de las respuestas,  a tener en cuenta que dura un año entero, los alumnos obtienen una titulación oficial y los correspondientes créditos ECTS. 
Leer más...

06 octubre 2011

Entrevista a Carlos Pérez de @pauldotcom

Hoy tenemos el gran placer de poder entrevistar a Carlos Pérez (AkA Darkoperator), miembro del conocido blog/podcast/webcast de seguridad informática Pauldotcom. Tuve la oportunidad de conocerle, únicamente vía Skype, cuando me entrevistó para la sección "Pauldotcom en español", y sólo puedo recordar con una sonrisa en mi cara el rato que estuvimos conversando. 

Si la grabación del podcast duró una hora, nuestra conversación duró al menos tres, en las que debatimos puntos de vista y nos contamos experiencias tanto a nivel laboral como proyectos personales, como si nos conociésemos de toda la vida. Carlos es un apasionado por la seguridad, la tecnología, la informática, la domótica y todo lo que se pueda categorizar como geek.

Sin más preámbulos, doy paso a una serie de preguntas con un poco más sobre su forma de ver la seguridad, así como su trayectoria. Por supuesto, un referente y un ejemplo a seguir.

Carlos, primero que nada, muchas gracias por concedernos un "malloc" de tu tiempo para el blog Security By Default.

- Hablemos sobre tus orígenes en Pauldotcom ¿Cómo empezaste a colaborar con ellos?

Comencé en el 2009 cuando, después de un tiempo de estar escuchando, ellos informaron que estaban buscando un nuevo integrare para el podcast, ya yo llevaba tiempo en el canal de IRC del podcast y cuando hablaban de cosas que les gustaría poder hacer con Meterpreter, lo codificaba y lo ponía en el Forum de PDC. Recuerdo que después de una entrevista en 2008 a Paul, le gustó mi dinámica y yo estando de viaje en Costa Rica en un proyecto me ofreció formar parte del grupo.

- ¿Cuántos sois? ¿Quién se encarga de qué? ¿cada uno tiene una responsabilidad? ¿Aceptáis colaboraciones?

Wow somos muchos desde internos hasta invitados recurrentes. El núcleo es de 7 personas y además hay gente que nos ayuda con la edición y administración. Sí, cada uno tiene una responsabilidad:
  • Paul es el líder y quien corre la operación
  • Mike Perez es el Productor Ejecutivo
  • John Strand está encargado de la parte consultiva con clientes y generación de contenido
  • Larry y yo llevamos la parte de los webcast y generamos contenido
  • Yo además llevo la sección de Pauldocom en español
  • Además, tenemos dos internistas que nos ayudan con edición y participan del podcast
Por supuesto, aceptamos colaboraciones…

- En mi caso, sólo he tenido que sacrificar mis horas de sueño para poder hacer cosas para SbD… ¿y en el tuyo? ¿Cómo te organizas el tiempo? Hacéis posts, entrevistas,… ¿A qué hora vives?

Buena pregunta :( dedico largas horas a mi trabajo de día, luego me dedico a Metasploit, el podcast, webcast y sobre todo mi familia tiene prioridad, es difícil organizarse, hay veces que deseo que el día tenga mas horas.  Al final del día es ejecución, muchas veces se pierde tiempo y no se ejecuta y uno mismo se pone trabas, es saber reconocer eso y meter mano.

- Has tenido una trayectoria profesional envidiable, trabajando para empresas como HP, Microsoft, Tenable. Aunque imagino que el mayor porcentaje de tus conocimientos los habrás aprendido por tu cuenta, estaría genial que nos contases un poco en qué compañía tuviste mejor oportunidad de aprender más sobre seguridad.

Bueno, en cada uno de mis trabajos anteriores he aprendido algo, en Microsoft como contratista aprendí la hermosura y peligros de automatizar, éramos pocos en el proyecto multi año que estábamos trabajando y teníamos que hacer de tripas corazones. Tuve un buen lider de equipo que me enseñó organización flexible en un ambiente políticamente cargado y cómo tener la gente adecuada en el puesto adecuado, cómo un buen gerente de proyectos puede hacer la diferencia con un cliente y gerencia. De HP te puedo decir que aprendí mucho del lado de negocios, de manejo de proyectos, mi gerente me hizo aprender de todo un poco y tomar cursos no tectónicos pero de negocios. Aprendí cómo construir centros de cómputo, cómo alinear una solución con negocio, debo decir que aprendí mucho y puse mucho en práctica. En Tenable llevo menos de un año, estoy aprendiendo de gerencia e investigación con un equipo fenomenal, todo eso lo pongo en practica con lo que estudio por el lado.

- Tienes un montón de certificaciones de seguridad: ¿Crees que aportan realmente un valor añadido a tus clientes? ¿Crees que simplemente ayudan a dar un mayor prestigio a los consultores?

Te soy sincero me sirvieron como motivación para aprender lo basico, fuera de eso, sólo es para clientes y departamentos de Recursos Humanos.

- Eres uno de los grandes contribuidores de la herramienta de seguridad metasploit. Entiendo que es "tu niña" (informáticamente hablando) de la que más orgulloso te sientes… ¿Has desarrollado alguna otra herramienta de la que nos quieras hablar?

Además del trabajo de Metasploit, he escrito herramientas como DNSRecon, GooRecon, scripts en python y ruby para sacar los hashes de SHA y NTLM de Lion, scripts para crear AP's malignos, etc… Siempre estoy escribiendo un script de bash, powershell, python o ruby para algo, hasta T-SQL para auditar servidores MS SQL y PLSQL para auditar servidores Oracle. De todos el más reciente lo es DNSRecon, que lo comencé en Ruby y lo porte a Python este año.

- Como tú siempre dices "Shell is only the beginning"… Y a partir de ahí, ¿por dónde seguimos?

Uff que te puedo decir, el titulo viene que he visto tantos supuestos expertos conseguir acceso y considerar eso como la meta final, los he visto fallar el archivo en el desktop de la máquina comprometida con el nombre de archivo passwords.xls.  Yo diría que es aplicar la misma estrategia que se aplica al penetrar un sistema pero con tácticas y metodología diferente pero los principios de saber que información buscar, analizar la misma, crear un plan y ejecutar siguen siendo los mismos.

- Cuando una compañía te pide consejo porque piensan que han sido comprometidos, ¿por dónde empiezas?

Está difícil la pregunta porque todo depende qué es lo que los hizo pensar que fueron comprometidos. Yo diría que lo primordial es ver el estado de madurez en centralización de sus logs y eventos y que es lo realmente recaudan. Además, conseguir los diagramas e inventario de aplicaciones, versiones y direccionamiento de esa semana si es que hacen scans de descubrimiento e inventario semanal como deberían. De ahí, al identificar los sistemas se toman imágenes de memoria primero y después de disco. Se evalúa qué información pudo estar en peligro inicialmente y se prepara un plan de acción. Después uno debe considerar si hay que llamar ayuda externa si es más complicado que las destrezas que se tienen internas, y tener tanto a la gerencia como a los abogados bien informados y trabajar en un plan tanto técnico, legal y de imagen pública.

- Recuerdo que cuando me entrevistaste para Pauldotcom estuvimos comentando offline, historias divertidas que nos habían sucedido en nuestra vida profesional. ¿Quieres comentar alguna públicamente? (Recuerdo la de la universidad aquella que tenían direccionamiento público y había una cantidad de WareZ en los servidores tremenda ;D)

Hay tantas! como el tiempo en que un análisis encontramos las herramientas y cuentas creadas por un grupo que hizo una prueba de penetración un año anterior, dejaron completamente expuesto al cliente y nos hicieron la vida más sencilla, hasta los dumps de credenciales estaban en un archivo escondido en el sistema. Inicialmente causó pánico porque pensamos que habían sido comprometidos y lo peor: que el atacante llevaba mas de un año atrincherado en los sistemas. Mi favorito son los pentests de 5 días no importando el tamaño de la organización, donde se demuestra que destreza y hacer las cosas bien no tienen peso, sólo el precio importa, esa es la historia triste que estoy viendo últimamente

- ¿Qué sistema operativo usas de forma diaria? ¿Por qué elegiste ese, te parece más seguro? Si contestas algo difefente a Windows ¿Usas antivirus?

Te soy sincero uso más OSX que los otros pero no pasa un día donde no use OSX, Windows 7 y Ubuntu. En OSX y Windows uso Antivirus y tengo firewalls de tercero con listado de procesos que sí pueden hablar hacia fuera y en qué puerto. Trato de mantener un balance entre un sistema seguro y usable.

-¿Cada cuánto auditas tus propios sistemas?

 Corro Nessus contra mis sistemas una vez por semana sólo para estar seguro de aplicaciones de terceros y trato de tener mi sistema de laboratorio aislado con todas las máquinas virtuales en otra pata de mi firewall. Te soy sincero no me he escapado de ser infectado y tener que cambiar todos mis passwords y reconstruir mis sistemas. Veo una infección de cualquier virus como que alguien entró, y basado en mi investigación y código que escribo sé lo que se puede hacer con un único punto de entrada, por lo cual tomo mi seguridad en serio.

- ¿Qué recomendación le darías a aquellos de nuestros lectores que se estén iniciando en el mundo de la seguridad? ¿Qué hay que hacer para ser como tú?

¿Como yo? yo sólo soy un estudiante. Diría que lo primero es dejar el ego atrás, ser humilde y darse de cuenta que nunca lo podrás cubrir todo y estar dispuesto a aceptar críticas y a aprender de otros. Diría que una de las primeras cosas es aprender a manejar una red y un sistema antes de aprender atacarlo. Saber cómo manejar el balance de seguridad y usabilidad. Se tienen que tener fundamentos sólidos de programación, redes y protocolos base; sobre todo practicar con determinación y de manera correcta. Recomiendo encarecidamente el libro "Talent is Overrated" que cubre sobre la importancia de la práctica y el dominio de los principios como base de ser bueno en algo. Otra cosa importante es compartir y enseñar, porque antes de hacerlo tienes que dominarlo lo suficiente para explicar la base de ello y te lleva al dominio del tema. También te enriqueces como persona y aprendes de esos que enseñas y sus puntos de vista y opiniones.

Carlos con un "viejo conocido de este sector" en la DerbyCon 2011


For those English-speaking readers, who want to know more about Carlos Pérez life, here you have the same interview in English.


Interview to Carlos Pérez from @pauldotcom

Today, we are very pleased to be able to interview Carlos Pérez (AKA Darkoperator), member of the well-known computers security blog/podcast/webcast Pauldotcom. I had the chance to know him, only via Skype, when he interviewed me for the section "Pauldotcom en Español", and I only can remember that chat time with a smile in my face.

If the podcast recording took one hour, we were chatting for three, when we discussed about our points of view and experiences both related to job and personal projects, in the same way we knew each other for the whole life. Carlos is very security, technology, computers, domotics and every geek stuff passionated person.

Without more preambles, here you have some questions about his way of considering security, and also his career. Of course, a reference and an example to follow to.

Carlos, first of all, thank you very much for giving us a "malloc" of your time for Security by Default blog.

- Let's talk about your origin in Pauldotcom. How did you begin to collaborate with them?

I began in 2009, after some time listening, they informed they were looking for a new member for the podcast. I had for some time been in the podcast IRC channel and when they talked about stuff that they would like to do with Meterpreter, I coded and announced it in Pauldotcom forum. I remember after they interviewed me in 2008 while I was in Costa Rica for a project, he liked the dynamic with the group, he offered me to be part of the group.

- How many members are you there? Whois in charge of what? have everybody got an assigned responsibility? do you accept collaborations?

Wow, we are such a large team, internal staff and recurrent guests. The core is composed by seven people and in addition there are people who help us with editing and administration. Every one of us has a responsibility in the podcast.
  • Paul is the leader and the one who run the operation
  • Mike Perez is the Executive Producer
  • John Strand is in charge of the consulting part with customers and content generation
  • Larry and myself run the webcasts and generate content
  • I also run the section "Paulotcom en Español"
  • In addition, we have two interns who help us with editing and participate in the podcast.
Of course, we accept contributions

- In my case, I only had to sacrifice some sleep time to be able to do stuff for SbD… What about you? How do you organize your time? In PDC, you write posts, run interviews,… when do you live?

Good question ;( I dedicate long time to my daily job, then I dedicate some of my free time to Metasploit, the podcast, webcasts and all of this the everything, my family is the priority always. It is difficult to be organized. Sometimes I wish the day had more hours. At the end of the day the key is execution, a lot of times you loose time and don't execute and you block yourself. You have to know how to recognize that and handle it.

- You have a professional career that many envy, working for companies like HP, Microsoft, Tenable,.. Although I guess the most of your knowledge you had learnt by yourself, it should be great if you told us a little about which company did you have a best chance to learn about security

Well, on all of my previous jobs I have learnt something. At Microsoft as a contractor I learnt the beauties and dangers of automation, we were few people in a multiyear project we were working and had to bite the bullet and learn and expand my scripting skills and planning changes when automating. I had a good team leader who taught me how to be flexible, how to operate in politically charged environment, the importance of having the right people in the right job and how a good project manager can make a difference with a client and management. HP I can say I learned much from the business side of project management. my manager made me learn a little of everything and take courses on business logic, sales, project management, public speaking in addition to the technical ones. I learnt how to build data centers, how to align a business solution, I must say I learned a lot and put a lot into practice.I have been less than a year in Tenable, I’m learning about management leading a great team of Reverse Engineers, I’m also learning a lot from each one of the members in my team I’m humbled just by being part of such a great team of researchers. I study a lot in terms of the networking and OS basics for several platforms and try to maintain my self proficient in many from and administration point of view, the security part then comes more easily after I have mastered that.

- You have a lot of security certifications: Do you think they really add value to your customers? Do you think that simply help to give greater prestige to the consultants?

I will be honest they have served as motivation to learn the basics, beyond that, it is only for customers and human resources departments that you get them.

- You are a major contributor to the Metasploit security tool. I understand that it is "your baby" (computationally speaking) that you feel most proud of ... Have you developed any other tool that you want to talk?

Besides the work of Metasploit, I have written tools like DNSRecon, GooRecon, scripts in python and ruby to get SHA hashes and NTLM Lion, scripts for creating evil AP's, etc ... I'm always writing a bash script, powershell, python or ruby for something. I have even done T-SQL to audit MS SQL and Oracle PLSQL to audit servers. Of all, the most recent it is DNSRecon, which started in Ruby and ported to Python this year.

- As you always say "Shell is only the beginning" ... And from there, where do you go?

Uff what can I say, the title comes from seeing so many supposed experts gain access and consider that as the ultimate goal. I've seen fails where in the desktop of the compromised machine there is a file with the file name passwords.xls and the pentester missing it all together. I would say it boils down to using the same tactics and methodology as you do for an external pentest where you gather information, from it you plan and decide the next thing to execute and go from there many times repeating the cycle and controlling the amount of information so as to not get overwhelmed.

- When a company asks you for advice because they think they have been "owned", where do you start?

It is difficult question because it depends on what made them think that they were penetrated. I would say the first step is to see the state of maturity of their logs and events centralization and what is actually collected.Also ask for the network logical and physical diagrams, host inventory since they should be running host discovery processes every week, list of applications and work flows and importance of the systems and their component so as to be able to determine risk and impact. Asses what information might be at risk initially and prepare a plan of action. Then you should consider whether to call outside help if things get more complicated than the skills existing internally and have both management as well as lawyers well informed so a plan covering working on plans of technical, legal and public image nature.

- I remember when I was interviewed for Pauldotcom we were talking offline about funny stories that we had happened in our life. Do you want to relate us about anyone publicly? (I remember the college that had public addresses and had a bunch of Warez on their servers… tremendous, :D)

There are so many! Once, a group that did a penetration test left tools and accounts created a year earlier. They left the client completely exposed and made our life easier. There were even credential dumps in a hidden file inside the system. It initially caused a panic because we thought the worst, that the client it had been compromised and that an attacker had had a foothold on their network for over a year. My favorite are the 5 day pentests no matter the size of the organization, where skills and doing things right have no weight, only the price. I find that sad and see a lot of it lately.

- What operating system do you use on a daily basis? Why did you choose that, do you feel safer? If you answer something different than Windows, do you use antivirus?

I will be honest I use OSX more than any other, but I do use everyday OSX, Windows 7 and Ubuntu at some point of my day. In OSX and Windows I use antivirus and third-party firewalls with a list of processes that can speak out and to what port. I try to keep a balance between a secure and usable.

- How often do you audit your own system?

I run Nessus against my systems once a week just to be sure of third party applications and try to have my virtual machine lab system isolated with all virtual machines on another leg of my firewall. I will be honest I have not escaped being infected, having to change all my passwords and rebuild my systems. I see an infection of any virus like someone came in and based on my research and writing code I know what can be done with a single point of entry, so take my security seriously.

- What advice would you give to those of our readers who are beginning into the security world? What should be done to be like you?

To be like me? I'm just a student like everyone else. I would say the first thing is to leave the ego behind, be humble and realize that you can never cover everything and be willing to accept criticism and learn from others. I would say that one of the first things is to learn to manage a network and learn a system before attacking it. Knowing how to manage the balance of security and usability. To have solid foundations of programming, networks and protocols is a must, above all have determination and practice properly. I strongly recommend the book "Talent is Overrated" covering the importance of practice and mastery of the principles as a basis for being good at something. Another important thing is to share and teach, because before you can master something you have to be able to teach it. Learn from others and always strive to keep learning.

Carlos with a "well-known guy" at DerbyCon 2011
Leer más...

05 octubre 2011

shodab, scriptkiddeando como un ninja

De una charla express que hemos tenido recientemente, publico la presentación y un vídeo de lo que aproximadamente fue la demo.

Se trataba el avance de un proyecto que empecé el año pasado: un análisis de la infraestructura del direccionamiento de España.

Aún esta todo un poco verde y es más bien un pasatiempos que otra cosa.

Por ahora estoy indexando los index.html y los robots.txt de todas las direcciones de España, además de los dominios ".es".

Por otra parte, también se han hecho algunas pruebas de DNS, como transferencia de zona, registros IPv6, resolución inversa...



El link que se muestra en el vídeo no funciona, pero quién sabe...¡algún día lo hará!


Leer más...

04 octubre 2011

A todos nos ha pasado alguna vez que llega a nosotros la noticia de que han hackeado (o defaceado, o crackeado, o ...) una página web que conocemos, e inmediatamente nos ha entrado el gusanillo por visitarla para ver la pintada virtual que han dejado en la misma. Pero no es así de fácil, la mayoría de las veces la visitamos con recelo, o directamente no la visitamos por aquello de: ¿y si ...?

¿Y si de paso han incrustado un exploit? ¿Y si hay algo de Metasploit o BeEF de regalo?

Precisamente ésto es lo que busca "Owned & Exploiting" (@ownedexploiting), un bot que informa vía twitter y que se encarga de analizar las últimas webs que han sido comprometidas en busca de exploits, malware y comportamientos sospechosos. Es capaz de detectar 0days y exploits que no están documentados pero están siendo utilizados "in the wild".

Casos como el reciente hackeo de Mysql.com y su posterior modificación para servir malware podrían ser detectados rápidamente.

Por debajo, JsUnpack con algunas modificaciones es el encargado de analizar las webs y determinar su estado. En caso de detectar algún comportamiento sospechoso o malicioso, el bot publicará la web y un reporte. Además, etiqueta como #suspicious o #malicious el twitt para poder diferenciar rápidamente lo puede ser un falso positivo y lo que no.

Dentro del reporte podemos ver la información detallada. Por ejemplo:

[suspicious:5] (ipaddr:74.55.2.198) account.iclickcare.com/
status: (referer=www.google.com)saved 32302 bytes ./files/fetch_adad9ebba96aac20521a65a50ada0922c12d36c9
info: [decodingLevel=0] found JavaScript
suspicious: Warning detected //warning CVE-NO-MATCH Shellcode Engine Binary Threshold
info: [script] www.dz-attacker.co.cc/indexi/index3/js2/l10n.js?ver=20101110
info: [script] www.dz-attacker.co.cc/indexi/index3/js2/jquery.js?ver=1.4.4
info: [script] dz-attacker.co.cc/indexi/index3/js/tooltip.js
info: [img] dz-attacker.co.cc/pic/index/dz-security.png
info: [img] dz-attacker.co.cc/pic/brisco-dz-new.png
info: [img] dz-attacker.co.cc/pic/index/logo/twitter.png
info: [img] dz-attacker.co.cc/pic/index/logo/facebook.png
info: [img] dz-attacker.co.cc/pic/index/logo/skype.png
info: [script] www.dz-attacker.co.cc/indexi/index3/js/cufon-yui.js
info: [script] www.dz-attacker.co.cc/indexi/index3/js/League_Gothic_400.font.js
info: [script] www.dz-attacker.co.cc/indexi/index3/js/jquery.cycle.all.min.js
info: [script] www.dz-attacker.co.cc/indexi/index3/js/jquery.easing.1.3.js
info: [script] www.dz-attacker.co.cc/indexi/index3/js/jquery.countdown.min.js
info: [decodingLevel=1] found JavaScript

Además, un aliciente del servicio es que al informar en el mismo momento de la detección, permite que cualquiera pueda analizar por su cuenta la web antes de que sea limpiada.

Poco a poco se podrían añadir nuevas funcionalidades, cómo analizar webs a petición mediante un reply, de ésta forma los propios usuarios de twitter podrían ser una fuente de sitios comprometidos y utilizar el bot a modo de análisis.
Leer más...

03 octubre 2011

Pimp my android


Introducción

Hace unos días tuve la oportunidad de asistir a la NCN para dar una charla sobre Android, donde se trataron temas sobre cómo hacer un reversing de las aplicaciones, análisis forenses, o saltarse las protecciones del market entre otros temas.

Una de las sorpresas que preparamos entre mi colega @Ehooo y yo, fue una demostración en directo de una vulnerabilidad que permitía realizar TapJacking en el teléfono.

Para los que no pudisteis asistir, os dejo sobre estas líneas los detalles del mismo y su funcionamiento. Y por si buscas el material de la misma:
Un poco de historia

El 21/05/10 el grupo de investigadores de la conocida firma Lookout, alertaba sobre una vulnerabilidad que parecía afectar a todos los dispositivos Android en el mercado. Cualquier versión anterior a la 2.3 (Que estaba a punto de ver la luz) era vulnerable a todos los efectos.
Tras presentar una PoC se decidió reportar la vulnerabilidad a Google y estos respondieron con una actualización para Gingerbread (v2.3) en la que decían haber corregido el problema (esto fue el 06/12/10, casi 7 meses después de avisar de la misma).
Nosotros movidos por la curiosidad decidimos diseñar un nuevo PoC para comprobar si efectivamente estaba corregido y nos llevamos una sorpresa (aunque conociendo el historial de Google, tampoco fue tan grande).

¿Qué se hizo?

El resultado fue montar una pequeña aplicación que mostraba al usuario una imagen en determinadas coordenadas, con el objetivo de incitarle a pulsar en la pantalla y realizar acciones sin su consentimiento que de otra manera hubieran sido imposibles.
En nuestro caso la PoC contenía acciones para realizar llamadas de teléfono, enviar SMS, instalar aplicaciones del Market, formatear el dispositivo. Pero se podrían haber desarrollado otras para obligar a pulsar en bloques de publicidad, realizar transferencias bancarias, o hacer un robo de credenciales.

¿Cómo funciona la vulnerabilidad?

Gracias al modelo de confianza implementado en Android, es posible que una aplicación abra un diálogo (p.e. para cambiar determinadas opciones de configuración, instalar widgets, cambiar el fondo de pantalla, etc.) para que el usuario realice una acción que por sí misma no puede ser realizada directamente por la aplicación por falta de permisos. De esta forma se intenta evitar peligros como la escalada de privilegios.


Pero esto puede ser aprovechado por una aplicación maliciosa para abrir diálogos (p.e. formatear el dispositivo) y superponer una capa opaca que se encargue de recibir las pulsaciones realizadas por el usuario y pase estos eventos a la capa situada por debajo. De forma que el usuario crea que está interactuando con la capa superior cuando no es así.

Si bien los diálogos normales de Android, llamados “Activities” no permiten hacer esto, Android pone a disposición de los desarrolladores una clase especial de diálogos llamada “Toasts” que permiten superponer la actividad actual mientras pasan los eventos a capas inferiores. Siendo usados para comunicar pequeños mensajes al usuario, pueden ser modificados para que ocupen la totalidad de la pantalla utilizando una interfaz específica definida por el desarrollador, de esta forma se facilita la tarea de engañar al usuario.

El único problema en todo esto es el tiempo de vida que tiene un “Toast” que tras 3 segundos, desaparece y la actividad en la capa inferior vuelve a pasar a un primer plano, por lo que es necesario estar constantemente refrescando la pantalla para evitar que esto suceda.

La clave está en conseguir que el tiempo de refresco sea lo mínimo posible para que el usuario no sea consciente en ningún momento del engaño.

En la versión 2.3 del SDK habilitaron una subclase de la clase vista que heredaba el método setFIlterTouchesWhenObscuredMethod , de forma que al colocarlo en tu objeto vista pudieras prevenir cualquier tipo de interacción cuando se intente colocar una capa por encima. Aunque se debe tener presente que si se activa esta “medida de seguridad” evitaremos que los eventos de una vista reciban las interacciones de los eventos que se produzcan cuando se muestre un “Toast” por pantalla, así que debes de tener cuidado y usarlo conscientemente.

Para que veáis cómo quedaría, sería tal que así;
El problema de esto es que Google no lo ha activado por defecto. Por tanto (y en esto recalco que me baso en las declaraciones de Google) los usuarios con versiones anteriores a la 2.3 están desprotegidos, lo que viene siendo observando la cuota de mercado proporcionada por Google (Fragmentación de versiones) un 51.2% de los usuarios.

Dando ahora mi versión, es que un 98.6% de todos los teléfonos Android en el mercado (hasta la versión 2.3.4) que es hasta donde se probó el PoC son vulnerables (basándonos en un estudio realizado el 2 de Septiembre del 2011)
¿Cómo está estructurado el PoC?
La funcionalidad está dividida en los siguientes ficheros:
  • Main.java – Se encarga de crear y lanzar el servicio principal, y por cada payload tiene su correspondiente función para lanzarlo.
  • MalwarePayload.java – Abstracción interna realizada con el fin de facilitar la implementación de los payloads, de cara al usuario.
  • MalwareService.java – Crea el toast y se encarga de recoger las peticiones de ejecución para los payloads y lanzarlos, además de iniciar el proceso de tapjacking.
  • Main.xml – Definimos el layout principal de la aplicación, con un evento onClick asociado a cada payload para ejecutarlo.
Y los payloads definidos son los siguientes:
  • CallPayload.java – Realiza llamadas de teléfono al número indicado.
  • MarketPayload.java – Descarga una aplicación del market evitando mostrar al usuario la pantalla de permisos necesarios.
  • ResetPayload.java – Devuelve el teléfono al estado de fábrica.
  • SMSPayload.java – Envía un mensaje de texto al número indicado.
Otra de las cosas que se quisieron tener en cuenta a la hora de desarrollar el PoC, fue que al instalarlo no levantara sospechas de ningún tipo y por tanto evitar que usara permisos.

Si un usuario instala una aplicación para cambiar el fondo de pantalla y esta le solicita permisos para realizar una llamada, es probable que destape nuestra tapadera y se nos acabe el juego.

Así mismo la posibilidad de implementar cualquier payload diferente a los que se han usado de ejemplo es relativamente sencillo. Llamadas a números de tarificación especial, envío de SMS a números Premium, hacer un dump de la base de datos de las aplicaciones de Google para su posterior envío, son sólo algunos ejemplos.

Conclusión

Tras lo expuesto aquí, creo que una vez más queda destapada la importancia que Google le da a los problemas relacionados con Android.
Se me pasan por la cabeza las siguientes preguntas:
  • ¿Cómo es posible que siga funcionando una vulnerabilidad que ya corrigieron?
  • ¿Qué clase de medida de prevención son esas que decidieron? (¿A alguien más le parece una chapuza?).
  • ¿Cuánto tiempo es necesario que transcurra entre que se reporta una vulnerabilidad y se corrige?
  • ¿Son conscientes de todo esto?
Y uno de los principales problemas que va a seguir afectando a todo esto y que permitirá que el malware, las vulnerabilidades, los exploits, etc… sigan comiendo terreno es la multitudinaria fragmentación de versiones que existe.

Es imposible controlar en condiciones un fallo y liberar una actualización que lo solucione, porque hasta que llegue al usuario final, y esta sea adaptada por cada uno de los ISP que ofrecen servicios de telefonía para smartphones como Android, va un largo periodo de tiempo.

A la vista está la medida a la desesperada que se tomó cuando se sucedió el problema de que el tráfico viajaba en texto claro, con el consiguiente peligro que conllevaba realizar un ataque MiTM. Recordaréis que la solución fue totalmente imposible de implementar a nivel de usuario, debida a la fragmentación de versiones que existía en el mercado, y que la solución terminó siendo parchear a nivel de servidor, para que fuese este el que cifrase las conexiones que realizaba el dispositivo.

Son muy malas las gestiones que está realizando Google ante las incidencias que acaecen sobre Android, y esto sólo se traduce en un mal servicio y una falsa sensación de seguridad que se ofrece a los usuarios.

----------------

Contribución por Sebastián Guerrero
Leer más...

02 octubre 2011

Enlaces de la SECmana - 91

Leer más...

01 octubre 2011

Desde hace algún tiempo llevo siguiendo el despliegue de los 'Semáforos inteligentes' que el Ayuntamiento de Zaragoza está desplegando activamente para optimizar la circulación.

El sistema es bastante ingenioso y se basa en la cada vez mayor proliferación de dispositivos Bluetooth de tipo 'manos libres' en los coches. Estos dispositivos tienen una 'bluetooth address' única (algo así como una dirección MAC) lo que permite monitorizar el trayecto que realiza cada dispositivo, así como la concentración de dispositivos bluetooth, de esa forma se pueden sacar parámetros sobre congestión y uso de trayectos.

La funcionalidad del proyecto es, sin duda, excelente pero pone sobre la mesa un problema de privacidad bastante evidente. En el caso de los dispositivos bluetooth externos conectados al mechero del vehículo, se pueden deshabilitar, pero la mayoría de dispositivos internos no, con lo que quieras o no, tu coche va a ser monitorizado. Además aunque resulte técnicamente viable hacer un cambio de 'bluetooth address', el proceso es sumamente complejo.

Estamos ante un caso en el que algunos pensarán que sacrificar 'algo de privacidad' en aras de un beneficio es algo aceptable y otros que lo vean como un 'Gran Hermano' para coches.

Dado que la 'bluetooth address' de tu dispositivo manos libres es univoca, probablemente la base de datos que esté gestionando el Ayuntamiento permita sacar un patrón de uso bastante específico sobre ti: A que horas circulas por X calles, cuantas veces realizas esa ruta, a que hora vuelves a casa, etc etc.

Hace tiempo por aquí hablamos sobre monitorización de dispositivos bluetooth en teléfonos móviles para obtener estadísticas de presencia en una oficina.

Respecto a los dispositivos 'manos libres' con claves por defecto (típicamente 0000 o 1234) es mas que recomendable leer este artículo
Leer más...