miércoles, enero 30, 2019

El bug de FaceTime, la indolencia mediática y la complejidad de la masificación

Al final Apple ha desactivado la opción de las llamadas grupales en FaceTime temporalmente hasta que solucione el bug. Si no te has enterado, ha dado la vuelta al mundo un fallo de seguridad en el servicio FaceTime de iOS & MacOS que permite a alguien escuchar por el micrófono e incluso verle con la cámara aunque no haya contestado.

Figura 1: El bug de FaceTime, la indolencia mediática y la complejidad de la masificación

El bug se publicó en 9to5Mac con un vídeo que lo demostraba con el micrófono, y poco después se publicaba un tweet que explicaba cómo conseguir activar también la cámara. Al poco tiempo Apple desactivó las llamadas grupales hasta que pudiera corregirlo.


Figura 2: Demo del Bug de FaceTime

Que se haya descubierto y publicado el día 28 de Enero - Día Internacional de la Protección de Datos - ha sido una bonita metáfora del mundo al que vamos, donde cada día hay nuevos fallos de seguridad y nuevas filtraciones de datos, contraseñas, caídas de servicios, etcétera. Y que haya sido después de que la campaña de iPhone en el pasado CES fuera "Lo que pasa en tu iPhone se queda en tu iPhone" ha sido karma.


Lo más significativo es que cuando leí la primera noticia no me inmuté. Seguí con mi vida. Ya he pasado por muchos bugs y casos similares. Y no solo yo, sino la gran mayoría del público. Es así, ya casi ni nos inmutamos, y esto pasa por tres sencillas razones que puede que nos gusten o no.
1.- Indolencia mediática: El público en general ya no sabe diferenciar entre los cientos de nombres de botnets, operaciones de hacking, cibercrimen, incidentes en el mundo industrial, ransomware, bugs de WhatsApp, Twitter, leaks de Facebook, apps que filtran datos, etc.. No sé ni cuántas veces he hablado de un bug o un fallo en un servicio o un software. ¿Quién se acuerda del bug de WhatsApp Call o de retransmisión de mensajes?
Casos como el de Cambridge Analytica ya están olvidados para la gran mayoría del público que no recuerda - ni le preocupa en demasía - si hubo intervención externa para manipular votaciones como la del Brexit o las elecciones presidenciales en EEUU por medio de ataques de Fake News.
Estos casos - de todo tipo - aparecen, se expanden en una gran ola mediática, y en poco más de dos semanas a todo el mundo se le olvida. Habrá nuevas noticias de índole similar que volverán a aparecer. El público en general está desarrollando una indolencia a este tipo de noticias que se quedan en una charla de café, comentario en el bar, o post en un blog. ¿O alguien espera que la gente vaya a tirar sus iPhone o Mac a la basura por esto? 
2.- Aceptación de la complejidad: El volumen de código que existe hoy en día es enorme. Desarrollar algo como un iPhone o un MacOS, con todas sus aplicaciones y servicios de backend, implica una cantidad de código enorme, que además cambia constantemente. Cada mes hay nuevas actualizaciones que cambian el código. Esas actualizaciones hacen que las variaciones de una versión 1.3 a una 1.4 signifiquen cientos de miles de líneas de código máquina diferentes. Y eso implica que los equipos de Quality Assurance tenga que volver a probar todo como si fuera nuevo.  
Es muy complicado controlar todo, por mucho que la gente se crea que se puede hacer un terminal móvil invulnerable. Hace unos años di una charla que lleva más de 1.3 millones de visualizaciones llamada "Tu iPhone es tan (in)seguro como tu Windows" que intentaba explicar esa complejidad.

Figura 4: Tu iPhone es tan (in)Seguro como tu Windows
Como os podéis imaginar, una simple línea de código puede meter un fallo que no existía hasta el momento. Recuerdo el bug del GoTo Fail de iPhone  - que seguramente el gran público habrá olvidado  - donde una línea copiada dos veces se cargaba la seguridad de todo el sistema. ¿Fue un fallo voluntario o intencionado en el módulo de criptografía para poder espiar las comunicaciones
El caso es que como en el GoTo Fail - que pudo ser un simple Copy & Paste desafortunado - en este puede que los equipos de QA hayan probado este proceso cientos o miles de veces en versiones anteriores, y nunca se había dado este fallo. Así que no estaba localizado en la lista de Test de Regresión donde se prueban los bugs que se conocen del pasado. Pero alguien inyectó el fallo en algún momento y un usuario se topó con él. 
De hecho, el libro de Hacking iOS: iPhone & iPad que escribí junto a otros compañeros tiene una larga lista de pequeños bugs, leaks, técnicas de ataque, etcétera que se pueden encontrar en un iPhone.
Figura 6: Libro de Hacking iOS:iPhone & iPad
¿Se podría haber evitado? Pues es el típico fallo que se analiza en un post-mortem y se ve si se puede cambiar algún proceso o añadir algún control más. Pero eso tampoco garantizará que aparezcan nuevos fallos, porque el hardware crece y se hace más complejo, el software crece, y se hace más complejo, y esta complejidad hace que las posibilidades de que aparezca más rincones donde se pueda inyectar un fallo crezcan. Los que trabajamos en seguridad lo tenemos asumido.
3.- Masificación de los servicios: Hoy en día, el "stickiness" o lo casados que estamos con ciertos servicios en Internet es muy alto. Cambiar tu vida digital de un día a otro, dando un bandazo en un momento de enfado, es posible "relativamente". En sistemas operativos móviles no hay muchas alternativas si quieres estar en las plataformas de apps para las que se diseñan juegos. 
En Redes Sociales, en servicios de comunicación de mensajería, en servicios básicos de uso diario de la mayoría de las personas, las alternativas son muy pocas.  Es el mundo de Internet: "The winner takes it all" que se suele decir. 
Así que cuando sale un bug en WhatsApp, Facebook, Twitter, FaceTime, Android, iOS, Windows, o cualquier otro software o servicio de uso masivo, lo único que podemos hacer es presión para que se arregle pronto o para que pongan nuevos controles. Poco más.
Así que, sabiendo que este es el mundo en el que vivimos, y que cambiarlo va a ser complicado, debemos seguir trabajando en reducir el número de bugs, en que no sean fáciles de explotar y en que su tiempo de vida sea menor. Por esa es tan importante la labor de los hackers e investigadores de seguridad que hacen Responsible Disclosure y ayudan a que los fallos se vayan corrigiendo. Es el mundo que tenemos, así que tenemos que entender que los cambios van a ser muy poco a poco y que, por desgracia, además de poder mejorar también podemos ir a peor.

Saludos Malignos!

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares