Promoción del UTF-8

Shanxi Wenbaozhai Una entrada ligera, pero un enlace intenso. En UTF-8 Everywhere un documento para promover el uso de la codificación en UTF-8 para el almacenamiento de cadenas de texto, en memoria, ficheros, comunicaciones y otros usos:

Our goal is to promote usage and support of the UTF-8 encoding and to convince that it should be the default choice of encoding for storing text strings in memory or on disk, for communication and all other uses. We believe that our approach improves performance, reduces complexity of software and helps prevent many Unicode-related bugs. We suggest that other encodings of Unicode (or text, in general) belong to rare edge-cases of optimization and should be avoided by mainstream users.

Técnicas novedosas de exfiltración de información: la vibración de los ventiladores

Libro. Un médico novato Casi a título de inventario. Hay gente que se dedica a ver cómo se puede extraer información de un sistema a través de diversas aproximaciones ‘laterales’ (el reflejo de la pantalla, el ruido del teclado, …). En el propio artículo hay una buena lista. En Academics steal data from air-gapped systems using PC fan vibrations hablan de utilizar las vibraciones del ventilador del PC.

La idea es que pueden robar información a través de ventiladores instalados en un PC para crear vibraciones controladas.

Academics from an Israeli university have proven the feasibility of using fans installed inside a computer to create controlled vibrations that can be used to steal data from air-gapped systems.

El objetivo es tratar de extraer información sin ser detectado.

Guri’s research doesn’t look at ways of compromising and planting malware on these super-secure systems but instead focuses on innovative and never-before-seen ways of getting the data out, without being detected, and through methods that network defenders are not aware of.

En este caso se instala software malicioso, que puede controlar la velocidad del ventilador (en particular, rebajarla) y utilizarla para transmitir información del mismo.

Guri says that malicious code planted on an air-gapped system can control the speed at which fans work. By moderating fan speed up and down, the attacker can control the frequency of the vibrations coming off the fan.

Un atacante cercano puede grabar esos cambios en las vibraciones y decodificar la información ‘transmitida’.

Guri says that a nearby attacker can record these vibrations using accelerometer sensors found in modern smartphones, and then decode the information hidden in the vibration pattern to reconstruct the information stolen from the air-gapped system.

Este método no sería muy rápido pero, desde luego, abriría una vía de escape para la información.

However, while the AiR-ViBeR technique is some pretty innovative work, transmitting data through vibrations is extremely slow.

Aunque, también reconocen que no es muy realista pensar que sea una buena solución.

While the AiR-ViBeR attack might be deemed “feasible,” it is highly unrealistic that attackers would ever use it in the wild, as they would most likely opt for other techniques that exfiltrate information at faster speeds.

Zoom, seguridad, comodidad y campañas de 'información'

El trípode de Samuel Zoom es el grán éxito de la temporada, casi hasta el punto de convertirse en genérico. Es un sistema de videoconferencia que ha gozado de gran éxito y que ha aumentado su número de usuarios de una forma espectacular. Ya hablamos aquí de un Análisis de amenazas de un sistema de cifrado entre extremos para videoconferencia pero ahora traemos el análisis de otro experto, Daniel Miessler, que dice que This Zoom Hate is Silly.

Es cierto que tiene (o tenía) problemas de seguridad, pero la respuesta que hubo en algunos ámbitos no tenía mucha lógica.

I get there are security issues. And some seem pretty bad. But the amount of highly-coordinated PR against the company feels more like an operation than regular criticism…

La competencia era abundante y notable. Skype, Hangouts, Webex , …

Lots of companies had competing products much earlier than them. Years earlier. Skype, Hangouts, Webex—they all had their shot. But Zoom comes in and makes something people actually want to use.

Pero… ¿seguro que no tenían sus propios problemas de seguridad?

But if you’ve been in security a while you know that vulnerabilities aren’t absent just because they aren’t being talked about. If you looked at Hangouts, or WebEx, or any of these other options the same way we’re looking at Zoom, it’d likely be just as nasty.

Pero claro prohibir una herramienta que ya mucha gente usa supone dejarlos a buscar sus propias alternativas y desperdiciar su esfuerzo.

Banning Zoom requires that the risk to people is as bad or worse than what’s gained from its use. And during a pandemic when most other solutions are nowhere near as approachable, that’s a very high bar.

La seguridad es un compromiso, entre facilidad de uso, comodidad, seguridad… Y, en este caso, tal vez dejar a alguien sin posibilidad de comunicarse.

Everything in security is a tradeoff. The only question is whether you’re properly measuring both sides to make an informed choice.

For people banning Zoom all over the place right now, the tradeoff is not communicating easily with people in a moment of intense need. Not. Communicating. During. Intense. Need. That’s on one side of the balance.

Hay que establecer un balance entre ventajas e inconvenientes.

En esLibre, hablando de mi chatbot como gestor de información personal

Presentación en esLibre Una de las cosas que voy haciendo en mi tiempo libre es programar. En los últimos años el trabajo no me da muchas oportunidades de hacerlo y he descubierto que me relaja y me entretiene. Ya hace unos años que compré una Raspberry Pi y en su momento empecé a pensar qué hacer con ella. De allí salió la idea de manter un gestor de información personal (Personal Information Manager, PIM) y hacerlo mediante un bot: en un contexto de movilidad, donde uno no siempre tiene un ordenador a mano, o no puede sacarlo con comodidad, parece adecuado tener servicios similares con una intervaz más adecuada.

Me hubiera gustado presentarlo el año pasado en esLibre, que era en Granada pero las fechas no eran adecuadas para mi. Este año esLibre era en Madrid y pensé que podría hacer una escapadita aunque fuera en el día y presenté mi propuesta, Un bot (no inteligente) multi-interfaz y distribuido como asistente personal que fue aceptada.

Lamentablemente, luego vino la pandemia y el encuentro se canceló, hasta que los organizadores (¡bravo por ellos!) decidieron lanzarse a la organización telepresencial. Con esto hemos perdido la cercanía, las charlas de café… Pero hemos ganado que mucha gente que de otra forma no habría podido, asista. Y también disponer de la grabación en video de la presentación. Es posible que más adelante escriba las ideas principales pero de momento nos conformaremos con poner el vídeo

También la presentación utilizada:

Un bot (no inteligente) multiinterfaz y distribuido como asistente personal from Fernando Tricas García

Espero que les guste.

Dropbox, Python y la comprobación de tipos

Museo Pedagógico de Aragón. tipos En programación existen varias discusiones eternas. Una de ellas es la comprobación de tipos. Hay lenguajes más exigentes y (nos dicen) por ello mucho más seguros y robustos y otros mucho menos y (nos dicen) por ello mucho más productivos y eficaces.

En Our journey to type checking 4 million lines of Python nos hablan de Dropbox, y su esfuerzo para mejorar la verificación de tipos en sus programas escritos en Python.

Dropbox is a big user of Python. It’s our most widely used language both for backend services and the desktop client app (we are also heavy users of Go, TypeScript, and Rust). At our scale—millions of lines of Python—the dynamic typing in Python made code needlessly hard to understand and started to seriously impact productivity.

Python es un lenguaje con tipado dinámico (esto es, una variable puede tener un tipo en un momento dado y más adelante tener otro). Eso es cómodo, porque nos quita preocupaciones cuando programamos pero puede ser un inconveniente cuando el código crece y empezamos a no entender lo que sucede.

Once your project is tens of thousands of lines of code, and several engineers work on it, our experience tells us that understanding code becomes the key to maintaining developer productivity. Without type annotations, basic reasoning such as figuring out the valid arguments to a function, or the possible return value types, becomes a hard problem.

¿Qué puede devolver esta función? ¿Cómo debería ser este argumento? ¿Qué puede significar este nombre?

Puede que haya documentación, pero que sea ambigua o poco precisa.

Even if there is a docstring, it’s often ambiguous or imprecise, leaving a lot of room for misunderstandings.

Si definimos los tipos y podemos verificarlos, tenemos algunas ventajas: no poner datos en lugares donde no serán bien recibidos, por ejemplo. Pero también, por ejemplo, poder cambiar el código (refactorizar) más fácilmente:

Refactoring is much easier, as the type checker will often tell exactly what code needs to be changed.

El trabajo se ha desarrollado sobre casi 5 millones de líneas de código y ha permitido mejorar la situación:

It has been a long journey from the early prototypes to type checking 4 million lines in production. Along the way we’ve standardized type hinting in Python,…

La organización ha asumido este trabajo como propio y ya se da por supuesto, pero aún queda camino por recorrer:

Even though type checking is already taken for granted at Dropbox, I believe that we are still in early days of Python type checking in the community, and things will continue to grow and get better

Intersante.