Un ejemplo de interacción insegura entre sistemas seguros: YouTube

Espectación audiovisual Hacer un sistema invulnerable es muy difícil. Hay personas muy ingeniosas que encontrarán formas de ir consiguiendo lo que quieren. En Stealing Your Private YouTube Videos, One Frame at a Time David Schütz nos cuenta sus experimentos para tratar de ver vídeos privados del sitio. Estos vídeos son los que sólo puede ver el propietario o personas a las que se les de permiso de manera explícita.

… and Private, where only you can watch the video, or other accounts you’ve explicitly given permission to do so.

Después de intentarlo directamente, pensó que podría tratar de probar con otros servicios de Google, de forma que a través de ellos pudiera saltarse las protecciones (el típico caso en el que una herramienta confía en otra, más de lo que debería).

A great thing to do in a situation like this, is to try to look for other products/services which are not your main target, but are somehow interacting with its resources internally. If they have access to its resources, it might be possible that they don’t have every level of protection that the main product has.

Y entre ellos encontró el servicio de anuncios (Ads) que, efectivamente, accede a los vídeos para poder seleccionar en qué momento es mejor mostrar la publicidad.

It had an embedded player, some statistics, and an interesting feature called Moments. It allowed advertisers to “mark” specific moments of the video, to see when different things happen (such as the timestamp of when the company logo appears).

Siguiendo con la investigación descubrió una llamada para ver el pantallazo de un momento determinado.

Looking at the proxy logs, every time I “marked a moment”, a POST request was made to a /GetThumbnails endpoint, with a body which included a video ID:

La prueba, entonces, era evidente: poner allí el identificador de un vídeo ‘privado’ y ver qué sucedía (pista: devolvía el pantallazo).

I did what I did a bunch of times already, and replaced the ID to my second account’s Private video in the request, and to my surprise, it returned a base64 response!

Esto sólo es un pantallazo, claro, pero con esa información ver el vídeo completo es relativemente sencillo. Sólo hay que descargar una imagen cada 33 milisegundos del vídeo en cuestión.

So I just have to download every image starting from 0 milliseconds, incrementing by 33 milliseconds every time, and then construct some kind of video using all of the images I have acquired.

Interesante, aunque seguro que todos están penando que hace falta el identificador del vídeo (el mundo es imperfecto). Además, nos dice, no podremos escuchar el sonido y la resolución no será muy buena.

In the real world you would have to know the ID of the target video. Mass-leaking those would be considered a bug on its own.

Since these are just images, you can’t access audio.

The resolution is very low. (but it’s high enough to see what is happening)

En todo caso, desde el punto de vista de la seguridad, logro conseguido. Y recordatorio de una vieja lección: sistemas seguros pueden interactuar entre sí de forma no tan segura. Y darle algún beneficio al atacante.

The takeaway from this bug is that situations where two different products interact with each other under the hood are always a good area to focus on, since both product teams probably only know their own systems best, and might miss important details when working with a different product’s resources.

Una historia interesante.

Los robots que navegan por la web y nuestra privacidad

Telégrafos En Extracting Personal Information from Large Language Models Like GPT-2 un recordatorio de que todo lo que ponemos en internet puede ser leído por alguien y, en consecuencia, no podemos contar con que no se sabrá.

Se refiere al modelo GPT-2 que trata de generar párrafos de texto coherentes entrenando a una inteligencia artificial con datos obtenidos de internet.

We’ve trained a large-scale unsupervised language model which generates coherent paragraphs of text, …

Cuando se usan esas cantidades de datos es difícil validar todo lo que hay allí y, por lo tanto, a veces se utilizan datos que pueden tener información que algunas personas considerarían delicada.

These extracted examples include (public) personally identifiable information (names, phone numbers, and email addresses), IRC conversations, code, and 128-bit UUIDs. Our attack is possible even though each of the above sequences are included in just one document in the training data.

La privacidad dejó de existir hace algún tiempo y este estudio es una pieza más en la demostración. Podemos pensar en prohibir, censurar,… Pero siempre habrá alguien con capacidad de hacerlo y mostrarlo (como es el caso) o pasar desapercibido porque nadie pueda mirarlo.

Los coches y la divulgación de datos personales

Coche de D. João V Hacía mucho que no hablábamos de la seguridad (informática) de los coches. Hace algunas semanas leía Insecure wheels: Police turn to car data to destroy suspects’ alibis y me pareció interesante para comentarlo aquí.

En general, no somos muy conscientes de la falta de conocimiento sobre ello que tenemos ni tampoco de la falta de seguridad de los sisstemas de entretenimiento e información de los vehículos. Lo que el vehículo puede registrar, por ejemplo.

the relative lack of public awareness about and lack of security in vehicle infotainment systems

Esto se complica con las capacidades cada vez mayores, con mejores y más sensores, lo que todavía genera más información.

As automobiles become more automated, with self-parking and other “smart” features, they need more sophisticated sensors and computers, which means autos of the future will collect even more data, digital forensic and privacy experts say.

Todo ello puede, en un momento dado, ayudar a resolver un crimen. Pero también puede ayudar a cometerlo.

Just as the trove of data can be helpful for solving crimes, it can also be used to commit them

Y no parece haber (o no está muy claro) leyes que determinen los datos que el vehículo puede conservar. Ni lo que el fabricante hará con ellos.

No federal laws regulate what automakers can collect or do with the vast majority of our driving data.

No es raro tampoco adquirir un vehículo (o para el caso, cualquier dispositivo) y que contenga datos de sus ‘vidas anteriores’.

… each of the modules he bought had “owner’s home and work location, all saved Wi-Fi passwords, calendar entries from the phone, call lists and address books from paired phones, Netflix and other stored session cookies.”

De hecho, enviaron personas a los concesionarios para probar coches de segunda mano. Y en un porcentaje alto (hasta el 88%) encontraron datos personales de propietarios y usuarios anteriores.

While they were in the vehicles, they checked the infotainment systems to see whether there was any remnant personal information from previous owners. Eighty-eight percent of the shoppers found personal data left on the vehicles, such as home addresses or phone numbers.

¡Cuidado! ¿Sabrás borrar tus datos personales de tu vehículo cuando lo cambies? ¿Tiene algún mecanismo para evitar que alguien pueda ver, por ejemplo, tu agenda de contactos?

Las APIs también deben tener en consideración la seguridad

Ganchos La proliferación del JavaScript en los clientes, pero también las aplicaciones móviles y, como no, la necesidad de separar la acción de la presentación ha hecho que prolifere el uso de APIs (interfaces de programación de aplicaciones) y es una cosa buena, ya lo decía Bill Joy the Sun Microsytems: ‘la gente más brillante no trabaja para ti’.

no matter who you are, most of the smartest people work for someone else

Así que si, además de tener APIs, las ponemos a disposición de otros es posible que les ayudemos y que nos ayuden. Pero claro, cualquier decisión que tomamos tiene consecuencias desde el punto de vista de la seguridad y de eso hablaba API Security Best Practices que nos recomienda cosas muy básicas, como utilizar https, autentificación, mecanimos de autorización y otras similares. Está bien recordar que en este contexto (a veces más restringido, porque hace falta autorización, o no es tan conocido como la web, o …) hace falta tener las mismas precauciones de seguridad que en cualquier otro proyecto.

Un tutorial sobre cookies y seguridad

En la fábrica de galletas Otro tutorial, esta vez sobre las ‘cookies’ en A practical, Complete Tutorial on HTTP cookies. Con ejemplos en Flask que es una tecnología cercana al Python que conozco poc y que, tal vez, debería explorar.

Incluye:

  • Trabajar con cookies en el frontal y en el servidor.
  • Seguridad y permisos de las cookies.
  • Interacción entre cookies, AJAX y CORS.

Cuando maneja estas cosas en su día a día está bien refrescar y conocer lo que va habiendo (y cambiando). Cuando no, leer estos artículos es como una ‘gimnasia’ `para no despistarse si alguna vez lo llegamos a necesitar.

Algunos consejos prácticos sobre criptografía para programadores

cueva Ya hemos hablado otras veces de criptografía: que no hay que inventarla, que hay que usar métodos conocidos y reconocidos… Sin embargo, no es tan fácil ponerse a utilizar criptografía, sobre todo cuando lo que alguien quiere es tan sencillo como cifrar sus datos de manera razonable, sin tener que convertirse en un critptógrafo o un criptoanalista. Por eso me gustó leer Cryptography for programmers 2: Blocks and Randomness donde explican justamnente esa parte, los bloques y cómo se emplean en el cifrado y el tema de la aleatoriedad (otro ‘favorito’ de este sitio).

Si alguien está interesado la entrada forma parte de una serie de cuatro, dedicadas a los principios básicos, y otros temas interesantes, además de este.

Se habla de cifrado simétrico y asimétrico para luego hablar de la criptografía de bloques, que es la que suele utilizarse cuando se habla de cifrado simétrico.

Block cryptography is the default symmetric cryptography used nowadays, and so it will be the only symmetric cryptography that will be covered in the series.

La idea es cifrar una cantidad fija de bits mediante un algoritmo simétrico y los bloques nos permiten manejar estas cuestiones. Luego pasa a explicarnos qué tipo de bloques serían recomendables.

For the purpose of this post I would say as a programmer there is no reason you should be using anything other than AES. AES is the current standard, it is secure enough and will very likely continue to be for a long time, specially if you are using the variant with a 256 bit key, which I would recommend.

Luego habla de los generadores de números seudoaleatorios, que es un tema que hemos tocado más veces aquí.

Interesante.

Ataques laterales para obtener información: la memoria como WiFi

Memorias. Hay toda una familia de ataques que se basan en tratar de obtener información sobre un sistema a partir de lo que llaman canales laterales: variaciones de diferentes parámetros que pueden medirse y que pueden ayudar a un atacante a obtener información.

Hoy traemos Exfiltrating Data from Air-Gapped Computers via Wi-Fi Signals (Without Wi-Fi Hardware) que habla de cómo se puede comprometer un sistema para que los chips de memoria de nuestro ordenador pudieran llegar a generar emisiones electromagnéticas en la banda de 2.4GHz como si fuera una WiFi. Estas señales podrían ser recibidas por múltiples dispositivos que estuvieran en las proximidades y se podrían utilizar para robar información.

Dubbed “AIR-FI,” the attack hinges on deploying a specially designed malware in a compromised system that exploits “DDR SDRAM buses to generate electromagnetic emissions in the 2.4 GHz Wi-Fi bands” and transmitting information atop these frequencies that can then be intercepted and decoded by nearby Wi-Fi capable devices such as smartphones, laptops, and IoT devices before sending the data to remote servers controlled by an attacker.

Al ser generado por los chips de memoria, no es necesario que el sistema tenga antenas WiFi ni nada parecido; el atacante simplemente puede generar esas emisiones electromagnéticas y enviar datos a través de ellas.

“Instead, an attacker can exploit the DDR SDRAM buses to generate electromagnetic emissions in the 2.4 GHz Wi-Fi bands and encode binary data on top of it.”

Esta sería una posible vía de ataque para robar información de sistemas desconectados de la red, claro.

Para poder realizar el ataque es necesario infectar el equipo, y disponer de otro que haga de receptor y que esté suficientemente cerca.

Curioso.

IoT, nuestra casa y la seguridad

Puerta. Troy Hunt ha estado domotizando su casa y ha escrito una serie de entradas sobre las decisiones que iba tomando. Me pareció particulamente interesante el aspecto de la seguridad, siendo un experto como es él. Lo contaba en IoT Unravelled Part 3: Security.

En el internet de las cosas IoT, siempre se nombra la seguridad como una preocupación (dispositivos pequeños, poco potentes… Pero también falta de madurez, fabricantes muy diversos y algunos oportunistas…). Lo resumía así:

In part 1 of this series, I posited that the IoT landscape is an absolute mess but Home Assistant (HA) does an admirable job of tying it all together.

Algunos fabricantes ya dan cuenta de la seguridad con dispositivos que se actualizan automáticamente. Si nos salimos del camino, es posible que nos metamos en líos.

For your average consumer (and remember, that’s probably 99%+ of people buying TP-Link smart plugs), automatically updating firmware is key. For the rest of us, we need to recognise that we take on risks when using IoT devices in ways they weren’t designed for.

Otro debate interesante es analizar si nuestros dispositivos deben ‘vivir’ dentro de nuestra red local, o tener interacciones con la nube.

This whole discussion about devices updating their firmware raised another philosophical debate which I want to delve into now, and that’s the one about how self-contained the IoT ecosystem should be within the LAN versus having cloud dependencies.

La nube, y los fabricantes emergentes nos pueden colocar en situaciones comprometidas: ¿qué sucedería si el fabricante de nuestros dispositivos deja de proporcionar sus servicios?

That resiliency extends beyond just a cloud outage too; what if Tuya shuts down the service? Still want to be able to turn your lights on?

Desde un punto de vista, entonces, de seguridad y privacidad, parece natural apostar por aparatos que dependan exclusivamente de nuestra propia red.

That said, from a simple security and privacy perspective (and often a performance perspective too), I always prioritise local communication.

También hay que considerar la compartimentalización: una solución es aislar estos dispositivos en su propia red, para que si hay problemas de seguridad no afecten al resto de nuestra vida.

One popular approach is to isolate the network the IoT things are on from the network the non-IoT things are on. This mindset is akin to putting all the potentially bad eggs in the one basket and the good eggs (such as your PC) in another basket.

Pero queremos poder controlar nuestros dispositivos desde nuestro ‘dispositvo seguro’ y empieza el lío de interactuar entre esas redes diferentes.

The main problem is that you end up with all sorts of scenarios where a particular IoT device needs to see the app that controls it but because the very purpose of the VLAN is to lock the IoT things away, things would fail.

Entonces, hay que asegurar la cosa, y … usar sólo lo que realmente queramos/necesitemos, porque no podemos perder lo que no tenemos (por ejemplo, a la hora de apuntar una cámara):

  1. You cannot lose what you do not have … As it relates to my own approach to IoT, all cameras I have point at places that are publicly observable.

Y, por lo tanto, más vale ser selectivos en lo que conectamos. Hace nuestro análisis de riesgos, decidiendo qué cosas buenas tendremos y qué cosas malas pueden pasar.

  1. Be selective with what you connect: … The point here is that I’m effectively doing my own little risk assessment on each IoT device, and you can too. What upside does it bring you? What downside does it present?

Finalmente, estar seguros de en quién confiamos. Fabricantes, instaladores, apartos… Lo barato puede salirnos muy caro. Y, ojo, una marca conocida no siempre será una garantía de buena calidad.

  1. Choose who to trust: … These companies invest serious dollars in their security things in just the same way Amazon does with their Echo devices.

También hay que vencer la inercia: si no tenemos nada conectado, ¿por qué asumir ese riesgo? Hunt dice que su vida es mejor y más cómoda y, en ese sentido, puede valer la pena.

There will be those who respond to this blog post with responses along the lines of “well, you really don’t need any of these things connected anyway, why take the risk?” There’s an easy answer: because it improves my life.

Tampoco hay que olvidar que un experto puede hacer muchas cosas que alguien menos interesado no hará. Y allí puede estar el peligro para esta persona.

Coming back to a recurring theme from this series, the security situation as it relates to normal everyday people using IoT devices isn’t great and I’ve given plenty of examples of why that’s the case. I also don’t believe the approaches taken by enthusiasts solves the problem in any meaningful way …

Espiar lo que tecleamos en una videoconferencia

Teclado flexibilizado En This horrifying Zoom hack will deter you from ever side-chatting again nos contaban cómo un grupo de investigadores de la Universidad de Texas en San Antonio pueden adivinar lo que estamos tecleando en nuestra sesión de videoconferencia con una precisión del 93%.

Researchers from the University of Texas at San Antonio and the University of Oklahoma have demonstrated something terrifying: They can read what people are typing during video calls on Zoom, Skype, and Google Hangouts with up to 93% accuracy.

Y no se refieren a la típica metedura de pata de tener otra cámara, o que la que tenemos apunte a donde no debe o, que escribamos la contraseña por error en el chat.

We’ve all side-chatted, saying one thing to the camera, and another on the side. Maybe it was a joke over Gchat at a coworker’s expense. Maybe it was just multitasking some emails. Maybe it was entering a password into another site.

¿Cómo lo hacen? Observando e interpretando los movimientos de nuestra espalda.

Without using any special machine learning or artificial intelligence techniques, Jadliwala’s team figured out how to read the subtle pixel shifts around someone’s shoulders to make out their basic cardinal movements: north, south, east, and west.

Por ejemplo, para escribir CAT (gato) parece que primero escribirmos la ‘C’, nos movemos a la izquierda, hacia la ‘A’ y, finalmente, hacia la derecha para teclear la ‘T’.

Applied to a keyboard, these four directions actually mean a lot. If you are typing “cat,” you start with the C, move west to the A, then back east to the T.

Es suficiente con registrar los movimientos de la espalda y relacionarlos con un diccionario de palabras habituales.

Once researchers figured out how to read these directions through shoulder movements, they were able to create software that could cross-reference them with what they call “word profiles” built with an English dictionary, which turned the maze of directions into meaningful words.

El problema es que los proveedores no pueden hacer mucho para defendernos, tal vez emborronar nuestro contorno un poco.

But our research is not Zoom or Google specific. They cannot do anything about it at the software level in some sense.”

Las formas en que nos pueden atacar son múltiples, y cada vez hay personas más igeniosas.