La digitalización de las pymes, una cuestión de supervivencia

Mar Carpena    15 septiembre, 2021

La digitalización es un hecho, un objetivo e incluso un plan concreto para las empresas de nuestro país. Nadie parece poner en duda esta afirmación, y menos aún si echa un vistazo al Plan de Digitalización de Pymes 2021-2025, que cuenta con 4.060 millones de euros hasta 2023 y con el que el Gobierno tiene como objetivo acelerar la digitalización de 1.500.000 pequeñas y medianas empresas.

Lo que tampoco nadie duda es de que son precisamente esas pequeñas y medianas empresas las más débiles en la carrera hacia la transformación digital y que, precisamente, su supervivencia depende de que consigan subirse a ese tren.

Un desafío que la pandemia ha puesto sobre la mesa con total clarividencia. La crisis económica derivada de las medidas de distancia social hizo que, durante los primeros siete meses de 2021, desaparecieran en nuestro país 44.640 empresas respecto al mismo periodo de 2019, según ha alertado la Confederación Española de la Pequeña y Mediana Empresa, CEPYME.

Sectores más castigados

Como señala CEPYME, el sector más castigado durante la crisis del coronavirus ha sido el de servicios, que cuenta con 44.357 compañías menos en los primeros siete meses de 2021 en comparación con el mismo periodo del año 2019.

El siguiente más dañado ha sido la industria, que ha perdido 3.399 compañías en este mismo periodo. En cambio, sectores como la construcción y la agricultura ya han recuperado los niveles precrisis.

“Las restricciones asociadas con determinadas actividades de la hostelería y la restauración, así como una menor demanda asociada a las limitaciones de movilidad en el ámbito internacional están detrás de este comportamiento”, explican.

Pero, además de esta realidad ya de por sí preocupante, el futuro más cercano aún está marcado por la incertidumbre económica y podrían ser más las pymes que no logren seguir adelante en los próximos meses.

Por ello, además de ayudas económicas o ERTES más flexibles como pide la Confederación, muchos son los que ponen todas sus esperanzas en la digitalización, una vía que podría no solo ayudar a algunas empresas a adaptarse a la nueva realidad, sino que podría, además, propiciar la creación de nuevas pymes.

Digitalizarse, una obligación

El estallido de la COVID-19 hizo que todo cambiase y que, en esa gran transformación, nuevos modelos como el teletrabajo y el comercio electrónico se erigiesen como grandes protagonistas.

Dos nuevas realidades con un denominador común: la tecnología.

El distanciamiento social hizo, como ya hemos señalado, que fueran muchas las empresas que de la noche a la mañana buscaran nuevas fórmulas para continuar con su negocio y, sobre todo, para mantener sus ingresos.

Las ventas a través de Internet fueron, durante un tiempo, incluso la única fórmula para muchos. Esto explica cómo, según los últimos datos hechos públicos por la Comisión Nacional de los Mercados y la Competencia (CNMC), tan solo en el cuarto trimestre de 2020, la facturación del comercio electrónico en España aumentó un 9,3% interanual, hasta alcanzar los 14.613 millones de euros.

Y si tomamos en cuenta el conjunto del año, según la CNMC, en nuestro país se batieron todos los récords debido a la pandemia, superando los 51.600 millones de euros, un 5,8% más que en 2019.

Sin embargo, son muchas las pymes que aún no han podido dar ese salto, muchas veces por falta de conocimiento y talento tecnológico, muchas otras por sus escasos recursos económicos. De hecho, en el caso del comercio electrónico, el propio Gobierno señala que, hoy en día, tan solo el 10 por ciento de las pymes españolas vende sus productos a través de Internet, un porcentaje que, con el Plan de Digitalización de Pymes 2021-2025, el Ejecutivo quiere elevar al 25%.

Tecnología para sobrevivir

Estamos, por tanto, ante un escenario en el que no solo es importante contar con una web, vender online o tener presencia en las redes sociales. La digitalización va más allá de eso y debe entenderse como un proceso continuo, en el que la tecnología sea un compañero no solo para vender, sino también para ser más eficiente, ganar en agilidad u ofrecer una mejor experiencia de cliente.

Como explica Rafael Sánchez Pulido, la digitalización de las pymes tiene un punto inicial, pero no un punto final.

Conseguir que puedan acceder a soluciones innovadoras y que se están imponiendo en el día a día del tejido empresarial como el teletrabajo, el cloud computing, el big data, la ciberseguridad o, por qué no, la inteligencia artificial es el auténtico reto de un proceso de transformación digital efectivo.

Más productividad y rentabilidad

Un proceso que no solo implica poder adaptarse a la nueva sociedad, con un cliente cada día más online, exigente y omnicanal. La transformación digital también ofrece a las pequeñas y medianas empresas la oportunidad de aumentar su productividad y con ello su rentabilidad, una mejor toma de decisiones o nuevas oportunidades de negocio.

La digitalización además “es sinónimo de crecimiento y empleo de calidad, de sostenibilidad e inclusión. Su potencial permitiría aumentar el PIB entre 1,5 y 2,5 puntos porcentuales anuales hasta 2025, e incrementar la productividad de las pymes entre un 15% y un 25%” asegura José María Álvarez-Pallete, presidente ejecutivo de Telefónica en el informe Sociedad Digital en España 2020-2021, elaborado por la Fundación Telefónica.

Un desafío pero también una oportunidad, como revela un estudio realizado por la plataforma de comercio electrónico eBay y el Instituto IO Sondea de Investigación de Mercados, en el que se señala que el 80% de las pequeñas y medianas empresas ha reducido el impacto de la crisis gracias a la digitalización y que, de no haberse digitalizado, un 78% de las pymes habría tenido que cerrar de manera temporal o definitiva.

Como vemos, son muchas las razones para abordar esta transformación y cada vez menos los “peros”. De hecho, es la única vía posible para muchas pequeñas empresas que, de no subirse al tren de la digitalización, podrían perderse para siempre en el camino.

La colaboración como pilar de la agilidad

Javier Rosado López    15 septiembre, 2021

Hace 70.000 años nuestros antepasados eran animales insignificantes. Su impacto no era mayor que el de otros, incluso menor que el de especies más fuertes como los neandertales. Sin embargo, hoy dominamos el mundo. ¿Cómo hemos llegado hasta aquí? ¿Cómo hemos evolucionado desde los simios que éramos a controlar el planeta?

El historiador israelí Yuval Noah Harari cuenta en su libro «Sapiens. De animales a dioses» que la verdadera diferencia entre los humanos y el resto de los animales no está en el plano individual, sino en el colectivo. Somos los únicos que podemos cooperar flexiblemente y en masa.

La colaboración ágil también juega un papel clave en las grandes empresas.

La capacidad humana de cooperar en masa de manera flexible

Las hormigas y las abejas pueden trabajar juntas en gran número, pero de una forma muy rígida y solo con parientes cercanos. Los lobos, elefantes y chimpancés, en cambio, sí lo hacen de una forma más flexible, pero solo con un pequeño número de individuos que se conocen íntimamente. El único animal que puede combinar ambas habilidades a la vez es el ser humano. 

Y a ello se deben todos los grandes logros de la humanidad: desde construir pirámides hasta viajar a la Luna. Nuestras mayores hazañas no se han basado en aptitudes individuales, sino en la capacidad de cooperar en masa de manera flexible. Una capacidad que, al igual que fue clave en el pasado, lo sigue siendo en el presente en la forma en que luchamos contra el COVID-19, y lo será en el futuro para superar desafíos como el cambio climático.

Esta capacidad es también la que nos ha permitido crear grandes organizaciones de éxito, en las que cooperan miles de trabajadores. Desde el que atiende al cliente para resolver una avería, hasta el responsable de marketing que coordina la estrategia de venta o el departamento de compras, que adquiere los productos y servicios necesarios para el buen funcionamiento de la empresa están coordinados.

Son empresas que, cuando aprovechan nuestra asombrosa capacidad de crear “redes de cooperación” para trabajar hacia objetivos comunes por encima del interés individual, pueden incluso -por qué no- cambiar el mundo.

El desafío de la colaboración en las grandes empresas

Doc Rivers, actual entrenador de los Philadelphia 76ers, de la NBA, siempre que entra en un vestuario, desde hace veintiún años, lanza la siguiente reflexión a sus jugadores: «Las decisiones que tome serán por el bien del equipo. Quizá no son buenas ni para vosotros ni para mí. Pero deben ser buenas para el equipo».

Y es que ahí está la verdadera complejidad de la colaboración. No siempre el teórico objetivo de cada jugador es lo mejor para el equipo.

El teórico objetivo de un delantero, por ejemplo, es meter goles. Pero si estamos en el último minuto del partido y su equipo va ganando por un solo gol, lo mejor para el grupo en ese momento será que el delantero defienda. ¿Os imagináis que no quisiera hacerlo porque, si no logra un gol más, no cobraría el bono?

Esto que vemos muy claro en deportes de equipo y nos parecería absurdo que no fuera así, en una organización de miles de trabajadores no siempre es tan obvio. Y es que, a veces, hacer muy bien el trabajo de uno puede no ir en algún momento en sintonía con el objetivo de la empresa.

La realidad es que nos encontramos a directores de diferentes departamentos con sus propios objetivos y presupuestos. Cuando las decisiones solo se toman de forma jerárquica, cuando el mantenimiento de silos se impone sobre el sentido común y cuando las funciones de las personas se fijan por la descripción de puesto tipo, que les permiten justificar la inacción fuera de sus límites, conseguir que más de mil personas remen en una misma dirección no es tarea fácil. 

La agilidad, clave para la supervivencia

En un entorno cambiante e imprevisible como el actual lograr una colaboración ágil y flexible entre un gran número de personas se convierte en una cuestión crítica para empresas de gran tamaño. El pez gordo ha dejado de comerse al pequeño; ahora, más bien, el rápido se come al lento. Tenemos muchos ejemplos como el de WhatsApp, una empresa que con solo cincuenta empleados se hizo con el negocio de los mensajes de texto que dominaban las Telco.

Tres principios para conseguirlo

Es un problema de difícil solución y seguramente con un remedio diferente para cada empresa.  

Es importante ser conscientes de ello, admitir que hay margen de mejora es el primer paso. Algunos puntos que nos ayudarán son los siguientes:

1-Objetivos compartidos y sistémicos

Dejar de pensar en el yo para pensar en el nosotros. Ganamos todos o perdemos todos.

En 2018, el Movistar Team de ciclismo acudió al Tour de Francia con tres de los mejores ciclistas del pelotón internacional: Valverde, Quintana y Landa. La estrategia fue que, en un inicio, todos aspirasen a ganarlo; luego la competición ya diría quién lo conseguiría. Ninguno de los tres ganó ese Tour, el mejor resultado fue el séptimo puesto de Landa. Por muy buenos que fueran individualmente eran tres corredores con tres objetivos diferentes y contrapuestos. Y eso, en un deporte de equipo como el ciclismo, al igual que en la empresa, no funciona. 

2Autonomía

Trabajar en un entorno complejo requiere que los equipos puedan tomar decisiones de forma ágil, sin depender de jerarquías y, a ser posible, con las mínimas dependencias externas. Pero ¡ojo! autonomía no significa que se pueda hacer lo que se quiera, hay unas limitaciones. 

Un equipo autónomo es como un equipo de fútbol: hay una estrategia por parte del entrenador y unas reglas de juego, pero es el equipo el que decide cómo resolver los problemas. El entrenador no da ordenes, hace que el equipo funcione como tal: marca la dirección, motiva, ayuda al grupo a mejorar. Pero muchas veces nos encontramos jefes que simplemente ordenan: para el balón, pásalo, regatea, dispara. Eso que se ve ridículo en el futbol, ocurre con frecuencia en la empresa e impacta muy negativamente en la agilidad. A la segunda orden que dé el jefe, la competencia ya habrá metido gol. No hay que decir qué hacer, sino saber qué hay que conseguir.

3-Entrenador líder

Muchas veces llamamos equipo a un grupo de personas dentro de un mismo departamento. Pero es un equipo en el que cada persona lleva un proyecto diferente, independientes unos de otros. 

En cambio, el concepto de equipo en agilidad tiene más que ver con un grupo de personas de distintos departamentos de la organización cuya acción coordinada es imprescindible para dar respuesta al cliente. Para conseguir esa colaboración coordinada en la que prime el objetivo del equipo sobre los individuales se hace necesaria la figura de alguien que trabaje para que todas las piezas engranen cada vez mejor.

La historia nos ha enseñado que por encima del músculo está nuestra capacidad de colaboración. Reaprendamos a cooperar flexiblemente y en masa. De lo contrario, nuestra extinción (como gran empresa) podría ser cuestión de tiempo.

Imagen: Luigi Mengato

1 comentario en La colaboración como pilar de la agilidad

Telefónica Tech en el pódium del IoT y Big Data

Bernardo Campillo Soto    15 septiembre, 2021

Hoy queremos revisitar con vosotros una buena noticia que recibimos en Telefónica Tech a mediados de junio, un poco antes de la temporada vacacional de julio y agosto, antes del tórrido verano, de las Olimpiadas, del Tour y la Vuelta a España, y que hizo que nos fuéramos a esas merecidas vacaciones con un poquito más de alegría (si cabe).

Como muchos recordaréis, GlobalData, una de las casas de analistas referencia a nivel mundial, evaluó las capacidades de Telefónica Tech IoT&BigData específicamente en el ámbito de IoT y nos consideró Líderes en la última actualización de su informe “Global Industrial IoT Services: Competitive Landscape Assessment”.

Por puntualizar, a pesar del apellido “Industrial IoT”, en realidad se trata de un ejercicio de revisión global de todo nuestro portfolio de productos y soluciones, capacidades profesionales y capacidad de ejecución de proyectos para nuestros clientes y cómo todo ello compara con nuestros competidores globales, tanto telcos como compañías específicas de IoT. Vamos, que en año olímpico estamos en el pódium de los Juegos Olímpicos del IoT.

En su informe final, GlobalData remarca como Fortalezas de nuestra apuesta como Telefónica IOT&BigData Tech las siguientes:

  • Experiencia en el sector: dado que ya gestionamos más de 35M conexiones IoT (incluyendo todo tipo de tecnologías: celular, fija, LPWA, satélite, etc.) para muchos clientes globales de perfil alto.
  • Visión AI of Things: la unión de los ecosistemas y capacidades que teníamos para IoT y BigData/AI que hemos ejecutado en los últimos meses se considera diferenciadora ya que podemos ofrecer un e2e2 real con más valor a nuestros clientes y sus negocios.
  • Nuestra propuesta en Industria 4.0: a las capacidades que ya se nos reconocían en anteriores versiones del informe (e.g. soluciones especiales de conectividad a través de Redes Privadas LTE y 5G) se añade este año la consideración de que hemos extendido nuestra oferta con partners especialistas en este espacio, siendo capaces así de ofrecer no solo conectividad, sino casos de uso más complejos y valiosos.

Podemos considerar que la mejora en la posición global está debida a que, de las 7 áreas evaluadas, nos hemos mantenido en 5 de ellas y hemos mejorado en 2 de ellas que, además, son vistas por GlobalData como clave en sus consideraciones hacia potenciales clientes de servicios IoT. En concreto, hemos mejorado en las áreas de:

  • Value Services (de Very Strong a Leader): se evalúan muy positivamente nuestras capacidades en servicios Profesionales, de Consultoría, de Seguridad y de Data Analytics.
  • Partnerships (de Strong a Very Strong): se destaca el universo de partners comerciales (i.e. Partnership Programme como canal de reventa) y de partners de aplicaciones (e.g. Geotab, soluciones Edge con Microsoft, con AWS, etc.).

En esta gráfica adjunta podéis ver cómo hemos sido puntuados y cómo comparan esas puntuaciones con media del mercado.

Esta calificación de Líderes, de hecho, supone una mejora con respecto a la posición de “Very Strong” que teníamos en los anteriores análisis de GlobalData sobre este tipo de servicios y, por tanto, confirma que estamos en la dirección correcta en cuanto a cómo nos armamos de capacidades y soluciones, cómo ha mejorado nuestra visión estratégica y la potenciación de las capacidades de ejecución que tenemos en este ecosistema, tanto a nivel de productos como de proyectos más especializados.

Finalmente, solo quiero recordar que este logro es fruto de toda la compañía. Yo lo veo como que somos un equipo y todos tiramos a una en todo momento.

¡Vamos a por la siguiente medalla o campeonato del mundo o lo que nos echen, Telefónica Tech!

Consulta el informe completo pinchando en este enlace.

Volava y Movistar: cómo conectamos a Telefónica con las startups

Hernán Bastiani    14 septiembre, 2021

Wayra nació en 2011 con la finalidad de conectar a Telefónica con startups innovadoras con soluciones disruptivas. Hoy, diez años después, podemos decir que hemos cumplido nuestros principales objetivos y como ejemplo de ello, te presentamos el caso de éxito de la startup Volava y Movistar.

A lo largo de este tiempo hemos invertido de manera ininterrumpida en más de una startup por semana, lo que se traduce en un total de 800 startups en Europa y Latinoamérica.  Como parte de la estrategia de apoyo a la startups en las que invertimos, desde el equipo de desarrollo de negocios de Wayra, buscamos trabajar con todas las áreas de negocio que puedan tener necesidades de complementar, mejorar o diversificar su portfolio de soluciones de cara a los clientes con los que trabajan, o bien que estén atravesando un proceso de transformación digital interno, para el cual buscan soluciones ya probadas en el mercado.  

Gracias a nuestro trabajo y comunicación continua con el equipo de Nuevos Negocios de Telefónica de España, a inicios de 2021 comenzamos a conocer los e-verticals, nuevos verticales de negocio que permiten a Movistar ampliar su propuesta de valor, incursionando en diferentes sectores con partners estratégicos,y como se han ido creando paulatinamente cada uno de ellos. Desde Movistar Prosegur Alarmas, la Living App en Movistar+ que permite, conocer los servicios de alarmas de Prosegur y ofrece consejos de seguridad con los que reforzar la tranquilidad y la seguridad de los clientes de Movistar, hasta Movistar Salud, la apuesta por la telemedicina de Telefónica.

El caso de éxito de Volava con Movistar

En marzo decidimos acercar a la startup barcelonesa Volava, que veíamos interesante desde el punto de vista de inversión, y que creíamos potencialmente interesante para explorar junto a Movistar.

Fundada en 2017, esta nueva forma de hacer deporte nos permite realizar un ejercicio completo y divertido a través de un moderno equipamiento totalmente sensorizado. La compañía ha diseñado y comercializa varios equipos deportivos de Cycling, Boxing y Running, que los clientes pueden adquirir para sus hogares y que se complementan con una experiencia digital de clases de fitness en directo y bajo demanda. Los entrenamientos son de fácil acceso y están disponibles para todos los niveles de rendimiento. Además, generan una actividad en grupo gracias a clasificaciones en tiempo real durante las clases en directo y comparativas de rendimiento con el resto de la comunidad Volava.  

Con la llegada de la pandemia, el interés de los consumidores en el sector del deporte en casa se ha disparado, multiplicando por diez las ventas de la compañía en el último año y Volava desarrolla un modelo de home fitness conectado único en el mercado.

Telefónica en el hogar

Siendo Telefónica líder indiscutible en propuestas para el hogar, veíamos una clara oportunidad de que la operadora se convirtiera en canal de ventas para las soluciones de Volava, y no nos equivocamos. Desde la primera reunión entre la startup y el equipo de Estrategia de Movistar, “surgió el amor”, modelos de negocio similares, público objetivo común, una propuesta innovadora para un nuevo vertical de negocio… Por ello, se decidió lanzar en tiempo récord una prueba piloto poniendo a la disposición de los clientes de Movistar la bicicleta estática Volava Smart Bike, y el nuevo pulsómetro Volava Smart Pulse , en una selección de 24 tiendas de Movistar en España y en canal online. Como parte del acuerdo, los clientes de Movistar podrán además comprar los equipos financiados al 0% TAE incluyendo 2 meses de suscripción gratis.

Tras el primer mes de piloto, contamos ya con buenos resultados de ventas y mucho interés por parte de nuestros clientes. Desde Wayra seguimos aportando soluciones a una Telefónica que apuesta por la innovación abierta y la colaboración con startups como camino para ello.  

10 gestiones superútiles que puedes hacer en Import@ss, el portal de la Seguridad Social

Mercedes Blanco    14 septiembre, 2021

Solo el nombre, “Importas”, es ya toda una declaración de intenciones. Se acabó eso de ir buscando dónde realizar gestiones cotidianas, como descargarse un informe de vida laboral o volverse loco para darse de alta como autónomo.

Información y trámites reunidos en un mismo sitio para todos los ciudadanos, esto es lo que ofrece el portal Import@ss de la Tesorería de la Seguridad Social. Hasta 40 trámites que se pueden hacer de forma unificada, diciendo adiós al papeleo por las diferentes administraciones y con una sección personalizada para los autónomos.

¿Cómo funciona Import@ss?

Para acceder al portal, hay que dirigirse a esta página de la Seguridad Social, donde encontrarás un área pública, donde están detallados los servicios y trámites que puedes realizar, y un área personalizada, a la que se accede mediante SMS, Cl@ve o Certificado digital.

En el área pública, los trámites se organizan en cuatro grandes bloques

  • Vida laboral e informes.
  • Consulta de pagos y deudas.
  • Altas, bajas y modificaciones.
  • Datos personales.

En el área personalizada se visualizan tus datos personales, información sobre tu vida laboral, en qué situación estás actualmente o si tienes a una persona en tu casa dada de alta como empleada de hogar.

Trámites de interés si eres autónomo

Lo más interesante que ofrece Import@ss para los autónomos es la gestión de trámites online de manera unificada y sin necesidad de identificarse para cada uno de ellos. Una vez te identificas, puedes realizar todos los servicios que están a tu disposición, ya estés en el área pública o personalizada.

Dirígete al bloque “Altas, bajas y modificaciones» y apunta todo lo que puedes hacer:

  1. Solicitar el número de la Seguridad Social (NUSS). Es el número que la Seguridad Social te adjudica cuando te das de alta como trabajador en cualquier régimen. Este número es obligatorio e identifica al ciudadano en su relación con la Seguridad Social.
  2. Solicitar el alta como trabajador autónomo. Si quieres trabajar por tu cuenta, en este apartado verás todos los requisitos necesarios y tramitar el alta tú mismo antes de comenzar con tu actividad.
  3. Solicitar la baja como trabajador autónomo. De la misma manera, si vas a dejar de ejercer tu actividad profesional, puedes comunicar tu baja desde este apartado.
  4. Cambiar base de cotización. Puedes modificar tu base de cotización o bien por ti mismo o bien como apoderado.
  5. Modificación de actividad. Imagina que, por error, has anotado una actividad cuando te diste de alta que no se corresponde con la tuya. Desde este apartado podrás corregirla o, simplemente, modificarla si ha cambiado.
  6. Modificación de mutua colaboradora y de coberturas. Puedes cambiar de mutua y/o modificar la cobertura de incapacidad temporal, accidente de trabajo o enfermedad profesional, o cese de actividad y formación.
  7. Modificación de tus datos como trabajador autónomo. Para este trámite necesitarás firma electrónica.
  8. Modificación de condición de trabajo autónomo. Este apartado es para cuando necesites corregir o modificar la condición en la que desarrollas tu trabajo autónomo, ya sea como titular, colaborador familiar, socio colaborador, etc.

Consulta de pagos y deudas

Además, en el bloque de “Consulta de pagos y deudas” de Import@ss, podrás realizar estos otros dos trámites:

  • Obtener certificado de estar al corriente de tus pagos con la Seguridad Social. En ocasiones, a los autónomos, antes de contratar sus servicios, se les exige un certificado de estar al corriente de sus obligaciones con la Seguridad Social. especialmente cuando se solicitan subvenciones, se participa en procesos de contratación pública o en supuestos de contratas y subcontratas.
  • Consultar recibos de la cuota de autónomos. Podrás consultar la cuota mensual del recibo correspondiente al mes en curso y de meses anteriores. También podrás rescatar recibos desde el 1/06/2018, más antiguos no están disponibles.

Estos son trámites que atañen directamente a la actividad como autónomos, pero, además, puedes realizar otras gestiones, como pueden ser la descarga del informe de tu vida laboral en PDF o diferentes acreditaciones e informes.

Un nuevo modelo de atención con Import@ss

Según la propia Tesorería de la Seguridad Social, han sido necesarios tres años de trabajo para reordenar los trámites y gestiones más comunes que realizan los ciudadanos con la Administración y rediseñar todos sus servicios.

De hecho, está pendiente una actualización específica para los trabajadores autónomos, para que una vez que entren al área personal de Import@ass, puedan consultar toda la información relacionada con su actividad.

En todo caso, se trata de un nuevo enfoque en la comunicación entre ciudadanos y Administración, con especial atención a los trabajadores autónomos.

Si estás leyendo esto y eres moderadamente joven, quizá no sepas lo arduo y complejo que resultaba realizar ciertos trámites con la administración, pero para los que tenemos más recorrido, este nuevo modelo de atención es completamente innovador. ¡Trámites al alcance de la mano, de manera directa y por canales online! Si aún no has navegado, date una vuelta. Seguro que sales con algún trámite hecho.  

Foto de Scott Graham en Unsplash

La vuelta al cole del presentismo laboral

Cristóbal Corredor Ardoy    14 septiembre, 2021

La pandemia nos dejó imágenes insólitas de ciudades balneario y sin vehículos. Mi recuerdo de aquellos días, preocupación aparte, es una sensación de sosiego amenizada por el canto de los pájaros. Pero aquellas tardes dieron pronto paso de nuevo a los atascos, como si nada hubiese ocurrido o simplemente nos hubiésemos detenido a reflexionar. Aquella otra ciudad posible fue un dulce sueño. Y un paso hacia modelos laborales más flexibles.

La pandemia nos impuso el teletrabajo. Las empresas que no lo tenían previsto tuvieron que implementar soluciones como planes de contingencia para facilitar esta modalidad. Durante los últimos 18 meses hemos trabajado desde casa aún más duro que en la oficina pero, a cambio, hemos disfrutado de una cierta flexibilidad. Hemos evitado los atascos y conciliado la vida personal con la laboral, a pesar de las videoreuniones interminables. ¿Será este otro dulce sueño del que también nos tengamos que despertar?

Con la gran mayoría de la población ya vacunada, parece que hay una cierta urgencia por volver al modelo laboral presencial. Desde el punto de vista empresarial, hay opiniones dispares acerca de si el teletrabajo ha aumentado o disminuido la productividad. Sobre lo que hay mayor consenso es acerca de cierta perdida de la cultura empresarial. El networking clásico también se ha resentido de la falta de contacto humano. Por ello, y coincidiendo con la vuelta al cole, la mayoría de las grandes empresas ya ha anunciado sus planes de repliegue del teletrabajo o para compaginarlo con el modelo presencial.

Modelos laborales más flexibles

Parece que triunfará un mundo híbrido: modelos laborales más flexibles. Según un reciente informe de Boston Consulting Group, sólo el 10 por ciento de las empresas se plantea la vuelta a un modelo totalmente presencial en la oficina. El 65 por ciento propondrá un modelo en el que se trabaje desde casa entre dos y tres días a la semana, mientras que el 25 por ciento de los empresarios propone cuatro días de teletrabajo.

¿Y qué piensan los empleados? Lejos del establecimiento de un número fijo de días en remoto o en la oficina, prefieren un modelo flexible en el que cada uno programe libremente la semana en función de sus objetivos, de las necesidades laborales y de los compromisos familiares y personales.

Según el mismo informe de Boston Consulting Group, el 98 por ciento de los trabajadores desea disponer de esta flexibilidad. Todo esto nos hace recordar que el mayor activo de cualquier organización son las personas. Cada vez es más difícil conseguir y conservar perfiles millennials con competencias técnicas. Los nómadas digitales también desearán trabajar para empresas que apuesten por un modelo de teletrabajo totalmente flexible.

Debemos reflexionar, además, sobre el papel de la tecnología. Nos hemos vuelto esclavos de ella, hasta el punto de que ya se habla de “el síndrome de Zoom”. Pero los usuarios no deben estar al servicio de la tecnología, sino las herramientas tecnológicas al servicio de los empleados. Hemos implementado soluciones de colaboración como Microsoft Teams, Cisco Webex o Zoom pero no se ha puesto énfasis en herramientas que permitan socializar virtualmente con los compañeros y nos hagan partícipes de la cultura empresarial.

Por ello, antes de planificar el modelo de teletrabajo habría que plantear un cambio cultural y en el estilo de liderazgo. Hay que romper con el estilo de gestión jerárquico y por horas para fomentar el trabajo por objetivos. Además, habría que hacer una planificación estratégica sobre las herramientas tecnológicas como habilitadoras del networking y de la cultura empresarial.

Esperemos que la urgencia por la vuelta al cole no nos haga perder la oportunidad del cambio en el modelo empresarial.

Imagen: Pixabay/Alexandra_koch

Manageability: la importancia de un sistema maleable en un mundo Cloud Native

Gonzalo Fernández Rodríguez    14 septiembre, 2021

Hace poco publicamos el post Castañas en la nube o que significa que mi software sea cloud native en el que tratábamos de explicar qué significaba el término Cloud Native y qué atributos tendrían que tener nuestras aplicaciones/sistemas para que realmente pudieran ser considerados como Cloud Native.

Comentamos la necesidad de escalar que tienen las aplicaciones de ahora derivada de la fuerte demanda de recursos de las actuales aplicaciones, necesidad a la que daba respuesta la tecnología Cloud Computing ofreciendo bajo demanda los recursos necesarios (casi infinitos), de forma instantánea y pagando solo por su uso.

Sin embargo, cualquier aplicación/sistema distribuido lleva asociado una complejidad, en parte heredada de la dependencia que tienen entre sí los diferentes subsistemas que lo componen (almacenamiento, red, cómputo, bases de datos, servicios/microservicios de negocio, etc.).

Inevitablemente el hardware fallará alguna vez, la red sufrirá cortes, los servicios podrán bloquearse y no responder, etc. Con este panorama no basta con mover las aplicaciones desde los entornos “on-prem” a los entornos “cloud” para convertirlas en aplicaciones Cloud Native, tienen que ser capaces de sobrevivir en entornos de este tipo, recuperarse y seguir funcionando sin que los usuarios perciban esos problemas. Por tanto, han de ser diseñadas para soportar fallos y, en definitiva, ser más fiables que la infraestructura sobre la que se ejecutan, es decir, tienen que ser resilientes.

Además de estos posibles fallos (hardware, red, servicios, etc.), existen otros elementos como son los posibles cambios en el negocio, una fluctuación de demanda de nuestros servicios o la ejecución de los mismos en distintos entornos que hacen que tengamos que actuar sobre nuestras aplicaciones para que incorporen nuevas funcionalidades o para que sigan funcionando correctamente y sin interrupciones como desean los usuarios.

El cómo de fácil o difícil sea para nuestras aplicaciones poder cambiar su comportamiento, bien sea para activar/desactivar alguna funcionalidad, bien para desplegar/replegar más nodos del servicio sin downtime[1], o para hacer un failover[2] desde uno o más recursos que han dejado de funcionar hacia otros que aún están disponibles es de lo que vamos a hablar hoy en este post.

¿A qué nos referimos cuando decimos que nuestra aplicación es maleable?

En nuestro anterior artículo decíamos que uno de los atributos de una aplicación Cloud Native, según la CNCF, era “manageable”. Nosotros hablamos de administrable, pero probablemente el término maleable sea más acertado.

Cuando decimos que un material es maleable nos referimos a que podemos cambiar su forma sin romperlo, y sin ningún proceso de fundición, fusión, o cualquier otro proceso industrial o químico que se nos pueda ocurrir.

Buscando una analogía en el mundo software, podríamos decir que una aplicación es maleable cuando podemos modificar su comportamiento desde fuera, sin necesidad de tocar su código y sin necesidad de detener la aplicación, es decir “sin romperla”, sin que ningún usuario perciba que algo ha dejado de funcionar aunque sea momentáneamente.

Es importante destacar la diferencia entre que nuestra aplicación sea maleable o “manageable” con que nuestra aplicación sea mantenible, en cuyo caso haríamos referencia a la facilidad con la que podríamos cambiar el comportamiento o evolucionar nuestra aplicación desde dentro, es decir, haciendo cambios en el código, algo que es igualmente muy importante, pero que no es objeto de este artículo.

Para poder entender mejor lo que queremos decir, imaginemos que tenemos una aplicación o sistema en ejecución que se encuentra proporcionando un determinado servicio a N clientes, el cual necesitamos modificar por algún motivo, como por ejemplo:

  • Hay una demanda creciente/decreciente de clientes, y necesitamos incrementar/decrementar el número de ciertos recursos del sistema. Ojo, no estamos hablando de cómo resolver la escalabilidad (supongamos que nuestro servicio ha sido diseñado sin estado y está preparado para escalar horizontalmente[3 sin problemas).
  • Hemos desarrollado una nueva versión de nuestra aplicación, la hemos probado en nuestros entornos de pruebas y queremos ejecutarla en un entorno productivo donde el código es exactamente el mismo, pero los recursos como la red, las BBDD, el almacenamiento, etc. son otros.
  • Hemos detectado un problema en la configuración de un componente que hace que el servicio se comporte de forma errónea y necesitamos modificar esa configuración.

La clave para conseguir esto no está en mover nuestras aplicaciones a un entorno cloud como hemos comentado anteriormente, la clave está en seguir una serie de prácticas en el diseño de la arquitectura de nuestras aplicaciones para conseguir que no sólo podamos modificar su comportamiento sino que se pueda hacer de una forma sencilla y ágil haciendo que los usuarios perciban que el sistema funciona correctamente en todo momento.

¿Pero cómo conseguimos que nuestra aplicación sea maleable?

Observable

Bien, si esto va de hacer cambios en un sistema que está dando servicio en un entorno productivo, primero de todo hemos de enterarnos cuando es necesario hacer esos cambios. En el post Observability qué es, qué ofrece, nuestro compañero Dani Pous nos hizo una introducción a la importancia de que nuestras aplicaciones sean observables, ya que gracias a ello sabremos lo que está ocurriendo en todo momento y podremos tomar decisiones basadas en esa información que recogen nuestras métricas, logs y trazas.

Si queremos que nuestra aplicación sea maleable, es fundamental que sepamos cuándo tomar esas decisiones, para ello es necesario que dediquemos tiempo a diseñar alarmas que activen los mecanismos automáticos correspondientes que cambien el comportamiento de nuestro sistema (por ejemplo detectar un cluster de BD que no responde para poder hacer un failover automático otro), y también los dashboards que nos den información necesaria para hacer un cambio manual en la configuración y que nuestra aplicación se actualice sin necesidad de reiniciarse (por ejemplo, incrementar un timeout en un fichero de configuración para evitar rechazar peticiones de cliente).

Configurable

En segundo lugar, es necesario que nuestra aplicación tenga algún mecanismo para que de forma externa podamos cambiar su comportamiento. Tenemos que tratar de identificar qué partes de nuestra aplicación han de ser parametrizables (cadenas de conexión a BD, URLs para la invocación de servicios web, threads, memoria o CPUs activas para el performance, etc.). Esta configuración o parametrización es algo que puede cambiar entre distintos entornos (development, integration, production, etc.).

La mayoría de los lectores habrán oído hablar de The Twelve-Factor App, para los que no lo conozcan, es una metodología que crearon en su momento varios desarrolladores de Heroku y que establece doce principios que ayudan a crear aplicaciones en la cloud aportando beneficios como portabilidad, paridad[4] entre los entornos de desarrollo y los de producción o mayor facilidad para escalar entre otros.

Variables de Entorno

Uno de estos doce principios hace referencia a la configuración de las aplicaciones y nos indica que el código de las aplicaciones se mantiene entre los distintos entornos en los que se ejecuta. Sin embargo, la configuración varía, y por eso es importante que la configuración se mantenga separada del código. Añadimos también la importancia de que esa configuración se encuentre versionada en un sistema de control de versiones para facilitar la restauración de una configuración específica en caso de que fuera necesario.

Las variables de entorno tienen la ventaja de que son fáciles de implementar y de cambiar entre despliegues sin cambiar el código, además son soportadas por cualquier lenguaje y cualquier sistema operativo. Pero no todo son ventajas en el uso de variables de entorno.

Las variables de entorno definen un estado global y están compartidas con otras muchas variables, con lo cual hemos de tener cuidado a la hora de definirlas para que no se pisen, además tampoco pueden gestionar configuración más compleja que una cadena de texto. En todo caso para representar configuración a nivel de entornos (Development, Staging, Production, etc.) son una solución muy adecuada.

Argumentos en Línea de Comandos

Otra opción utilizada para la configuración de aplicaciones simples, que además no requiere de ningún fichero, son los argumentos en línea de comandos. Este tipo de configuración, que se proporciona en la línea de comandos cuando arrancamos una aplicación, está indicado para cuando interactuamos con scripts. Sin embargo cuando las opciones de configuración se complican, los argumentos en línea de comandos no son una opción manejable, se complican en exceso y además tienen un formato inflexible

Ficheros de Configuración

Los ficheros de configuración por otra parte ofrecen también muchas ventajas, especialmente cuando tenemos aplicaciones verdaderamente complejas, entre otras cosas porque permiten representar estructuras más complejas que pueden agrupar lógica de nuestra aplicación que está relacionada. No obstante, cuando usamos ficheros de configuración puede ser complicado mantener la integridad de la configuración en todo momento de los nodos de un cluster, ya que tendremos que distribuir esta configuración a cada uno de los nodos. Este problema puede mejorarse mediante la incorporación de una solución tipo etcd o consul que nos ofrecen un sistema de almacenamiento (clave, valor) de forma distribuida.

Despliegues y reconfiguraciones sin parada de servicio

Por último, y no menos importante, necesitamos contar con un sistema de despliegue automatizado que permita entre otras cosas:

  • Actualizar todos los nodos necesarios de un sistema a la nueva configuración. Los tiempos en los que una persona del equipo de operaciones actualizaba la configuración de los diferentes nodos que daban servicio a un sistema o componente del mismo han pasado a la historia. Hoy en día hay servicios que soportan millones de usuarios y tiene miles de nodos activos. ¿Alguien se imagina cómo actualizar miles de nodos si no es de forma automática?
  • Gestionar el escalado/desescalado de los componentes de un sistema/aplicación de forma progresiva sin necesidad de detener el servicio. Esto incluye tareas como el despliegue de la infraestructura, despliegue del software, configuración de balanceadores, etc.

Afortunadamente, el uso extendido de contenedores y orquestadores como Kubernetes en las aplicaciones Cloud Native, hace que el problema de distribución de la configuración disminuya en gran medida, ya que estas plataformas ofrecen mecanismos especializados para esto, como por ejemplo el “ConfigMap” de Kubernetes, que permite también gestionar tanto variables de entorno, como parámetros en línea de comandos y ficheros de configuración.

Asimismo, Kubernetes facilita el despliegue de nuevas versiones mediante la aplicación de lo que se conoce como “Rolling Updates”, este técnica permite ir actualizando las distintas instancias de nuestras aplicaciones de forma progresiva, alojando las nuevas versiones en nodos con recursos disponibles, al tiempo que va eliminando las instancias de la versión anterior, consiguiendo de esta forma un despliegue con el ansiado “Zero Downtime”.

En todos los casos hemos de trabajar siempre con el concepto de inmutabilidad, en el cual las imágenes de los contenedores desplegados en nuestra aplicación así como los objetos de configuración son inmutables. De este modo, una vez desplegadas las aplicaciones, cualquier cambio requerirá la sustitución del contenedor por una nueva imagen o del fichero de configuración u objeto (si por ejemplo tenemos un ConfigMap de Kubernetes) por el de la nueva versión.

Conclusión 

Las aplicaciones Cloud Native usan arquitecturas basadas en microservicios, esto facilita que las aplicaciones se puedan desarrollar y evolucionar más fácilmente (equipos independientes, desacoplamiento funcional, independencia de tecnologías, etc.).

El uso de contenedores para el despliegue de los microservicios (e.g: Docker) y los orquestadores de contenedores (e.g: K8s) cada vez más extendidos facilitan el escalado, desescalado de las aplicaciones y la gestión de miles de nodos dentro de una aplicación/servicio.

Sin embargo, todas estas facilidades no vienen exentas de problemas, la gran cantidad de nodos que pueden estar dando servicio en una aplicación Cloud Native hace que se multiplique el número de posibles fallos y por tanto es necesario que diseñemos nuestros sistemas con la mente puesta en que van a fallar.

Adicionalmente, hemos de ser capaces de distribuir las nuevas versiones (tanto de código como de configuración) a través de un enorme número de instancias y sin que los usuarios perciban una pérdida del servicio. La cantidad enorme de máquinas, servicios, etc. manejados dentro de nuestras aplicaciones hace inviable que estos cambios puedan ser manuales y exige además que trabajemos con el concepto de inmutabilidad para garantizar que cada cambio está asociado a una versión que puede ser restaurada en cualquier momento.

Referencias

https://livebook.manning.com/book/cloud-native-spring-in-action/chapter-1/v-1/87

https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition

https://12factor.net/config


[1] Tiempo de indisponibilidad de una máquina o un servicio

[2] Procedimiento mediante el cual un sistema transfiere el control a otro (duplicado) cuando se detecta un fallo en el primero.

[3] Estrategia de crecimiento para que un servicio tenga mayor capacidad basada en el aumento del número de instancias que responden a las peticiones de los clientes.

[4] Se refiere a la importancia que tiene el que los entornos de desarrollo y productivos sean lo más similares posibles con el objetivo de reducir el tiempo entre que el código está listo y es llevado a producción.

¿Cuánta energía consume su empresa? Smart Energy tiene la respuesta

Jorge A. Hernández    14 septiembre, 2021

Un buen uso de la energía no sólo entrega un beneficio reputacional a las empresas, también representa ahorros y reducción de costos operativos. Un vistazo a la solución de eficiencia energética Smart Energy de Movistar Empresas.

Mientras el mundo se mueve a una era de energías renovables, las empresas también ponen su grano de arena buscando soluciones energéticas más eficientes. Una iniciativa que globalmente puede generar ahorros por más de 410 mil millones de euros.

Pero no estamos hablando del futuro, estas soluciones ya se encuentran disponibles en América Latina, y específicamente en Colombia, con iniciativas como Smart Energy, la oferta de eficiencia energética de Movistar Empresas

Se trata de una solución que, según Andrea Pineda Fonseca, Profesional de Desarrollo de Producto y Negocio Digital de Movistar Empresas, permite a las compañías conocer su verdadero consumo de energía (en equipos, infraestructura, entre otros, en cada una de sus sucursales) y reducir sus costos entre 5% y 15%. 

Además, esta solución no solo entrega reportes del consumo actual, también realiza proyecciones a futuro basándose en herramientas como el Internet de las Cosas(IoT), inteligencia artificial, Big Data y, por supuesto, la conectividad M2M.

CEE, el valor agregado

Pero además de las herramientas tecnológicas, si algo diferencia a Smart Energy de otras ofertas de gestión energética, es el recurso humano del Centro de Excelencia de Energía (CEE).  

“El CEE está conformado por un equipo de ingenieros con experiencia en proyectos de eficiencia energética y son el apoyo para los clientes de Movistar Empresas permitiéndoles focalizar los trabajos en los beneficios esperados por el cliente. Es una parte vital que interactúa con los clientes desde la fase preventa hasta la posventa”, asegura Pineda.

Así, usando la tecnología y el CEE, es posible realizar estudios de consumo energético en toda clase de verticales, -desde banca hasta retail-, para determinar en qué procesos se producen la mayoría de los gastos y determinar la calidad misma de la energía que se está usando.

Dichas mediciones de calidad permiten a las empresas determinar qué proveedor energético les conviene y en caso de daños, proveerlos con herramientas para adelantar los reclamos ante los generadores, agrega Pineda.

A partir de la etapa de diagnóstico, que suele tomar de uno a tres meses, se implementan acciones que son monitoreadas permanentemente, a través de tableros de seguimiento, para comprobar el impacto real de consumo en la empresa. 

Porque el consumo global de energía nos concierne a todos.

Foto de Christopher Machicoane-Hurtaud en Unsplash

Análisis del código fuente del ransomware Babuk: Nas y esxi

David García    13 septiembre, 2021

Al igual que sucedió con el malware Mirai (la botnet que surgió en 2016 para apoderarse de dispositivos IoT con la finalidad de ofrecer servicios de denegación de servicio) el código fuente del conocido ransomware Babuk ha sido liberado. ¿Qué curiosidades hay en su código fuente?

Babuk tuvo un pico de actividad a principios de este año. Una de sus víctimas fue el Cuerpo de Policía de Washington D.C. Por las razones que sean (han argumentado enfermedades graves pero nunca nos podemos fiar), el código fuente está disponible, lo que significa que es una oportunidad para poder estudiarlo y aprender sobre este tipo de amenazas. Aunque por otro también representa un recurso más disponible para ser utilizado por otros grupos de cibercrimen. Echemos un vistazo al código para hacernos una idea de su estructura y funcionamiento.

En primer lugar, el código está dividido en tres carpetas a modo de proyectos diferenciados entre si por el objetivo final al que están dirigidos:

‘esxi’, ‘nas’ y ‘windows’. Respectivamente, son proyectos para construir ejecutables para los sistemas Microsoft Windows por un lado (carpeta “windows”) y derivados de UNIX (carpetas ‘esxi’ y ‘nas’) por otro.

Podemos agrupar ‘esxi’ y ‘nas’. Ambos están pensados para sistemas UNIX, la diferencia es, aparte de la forma en la que se construyen (compilan) los proyectos, los archivos que evitan cifrar para inutilizar el sistema. Eso y que el proyecto ‘nas’ está ejecutado en el lenguaje de programación Go, sobre el que ya hablamos aquí respecto de su adopción en el mundo del malware y que esto confirma.

¿Por qué Go?

Porque es muy fácil, tremendamente fácil, realizar una compilación cruzada en Go. Los creadores de Go se centraron en facilitar la vida a los desarrolladores y este fue uno de los puntos en los que lo hicieron increíblemente bien.  Basta con indicarle al compilador de Go en una variable de entorno la arquitectura deseada (siempre que esté soportada por Go, claro):

En concreto, se construirían dos ejecutables, uno para la arquitectura Intel 32 bits y otro para ARM también de 32 bits.

No en vano, ‘nas’ hace reflejo de precisamente dispositivos NAS (2), que suelen implantarse con chips más humildes sin grandes prestaciones computacionales. Dado que allí se guardan archivos es obvio que el interés en cebarse con este tipo de sistemas es prioritario. No obstante, se echa en falta MIPS, arquitectura también popular en los NAS y soportada por Go.

El cifrador de ‘nas’ evita los siguientes componentes de ruta entre archivos y carpetas:

Como hemos comentado, cifrar estos archivos (además de la posible carencia de permisos para escribir en alguno de ellos) inutilizaría los sistemas e incluso podrían causar la parada de los procesos de cifrado.

Por otro lado, ‘esxi’ se centra en sistemas virtualizados, es bastante evidente solo con observar las extensiones de archivos de interés:

Solo que en este caso no los esquiva sino todo lo contrario, son el objetivo. Cifrando los archivos característicos de máquinas virtuales deja de un plumazo a los propietarios de estas privados de su uso.

Rápido en cifrar, lento en recuperar tus archivos

Otra curiosidad es el empleo de concurrencia a la hora de cifrar un sistema. Es obvio que debe ser un proceso rápido, imposibilitando una actuación que pueda advertir de lo que está ocurriendo y pueda existir una ventana de oportunidad para aislar la máquina e incluso desconectarla.

En el caso de ‘nas’, al estar implementado en Go, utiliza un sencillo y potente concepto de paso de mensajes a través de canales incluido en el propio lenguaje. En ‘esxi’ usa una pequeña y elegante librería de fuente abierta que se apoya en ‘pthreads’. En la imagen tenemos el detallede la inclusión directa de la librería multihilo en el proyecto dedicado a cifrar, mientras que se ausenta en su contraparte de descifrado.

Por el contrario, no hay rastro de una orquestación concurrente en los códigos correspondientes a la tarea de descifrado. En el caso de descifrar los archivos secuestrados, el proceso es uno a uno sin ningún tipo de optimización en este sentido. Eso sí, al menos lo hace de forma recursiva y no uno a uno por paso de argumentos…todo un detalle.

Curiosidades de las rutinas de cifrado

Uno de los componentes más importantes es el manejo e implementación o uso de la criptografía. Al final, es el arma que se está empuñando para secuestrar los activos de empresas y personas. En este sentido, en la inmensa mayoría de casos las implementaciones criptográficas vienen de librerías de terceros o incluidas en la librería estándar del lenguaje o plataforma que se use. Las implementaciones propias, además de la alta complejidad que posee realizarlas, habitualmente terminan con errores que pueden ser aprovechables para conseguir revertir el cifrado impuesto (afortunadamente).

‘nas’ usa Chacha20 para cifrar los archivos, empleando para ello el módulo de la librería estándar de Go. ‘esxi’ usa, sin embargo, una implementación del algoritmo SOSEMANUK. Ambos son cifrados simétricos, de flujo, rápidos.

En la implementación de Go (la correspondiente a ‘nas’), existen dos procedimientos de cifrado cuya elección depende del tamaño del archivo. Se cifrará al completo si no sobrepasa los cuatro megabytes, mientras que si está entre aproximadamente cuatro y 20 megabytes solo se cifrarán los primeros cuatro. Si el archivo es mayor a unos 20 megabytes, entonces se efectuará un cifrado por partes (chunks) de diez hasta completar el archivo. Es decir, visto lo anterior, los archivos entre cuatro y 20 megabytes solo son cifrados desde el comienzo (cabecera) hasta los siguientes cuatro megabytes.

Este proceso puede ser visto como una “optimización” en la velocidad de cifrado (sobre todo en ahorro del proceso de apertura de un gran número de archivos). Si son archivos pequeños y numerosos (inferiores a 20 megabytes), simplemente se inutiliza su cabecera, mientras que los archivos grandes sí que son cifrados al completo para impedir cualquier tipo de reparación. En la imagen se observa el detalle de la selección del proceso de cifrado en base al tamaño del archivo.

En el cifrado correspondiente a ‘esxi’ ocurre algo similar, pero no se distingue por tamaño. Directamente se cifran todos los archivos objetivo al completo si pesan menos de 512Mb o solo hasta esa cantidad de bytes desde el inicio del archivo si superan ese tamaño. Suficiente para destrozar una máquina virtual e impedir su uso.

Cifrado

El grupo, evidentemente, posee el control de las claves públicas y privadas de cada operación. Se generan un par vía criptografía elíptica. La pública irá en el cifrador, la privada se incrustará en el descifrador. Son los valores que vemos como ‘m_publ’ y ‘m_priv’ en los archivos correspondientes a cifrador-descifrador:

Cada vez que se procede a cifrar un archivo se crea una clave privada única y aleatoria para ese archivo a través lectura de un generador aleatorio seguro.

A partir de esta clave privada se deriva una clave pública vía criptografía elíptica. Finalmente, la clave compartida (shared), se usará como vector de inicialización del cifrado por flujo ChaCha20:

Inicia el algoritmo con esa clave (en su forma sha256(sha256(shared)), y 12 bytes de esa misma cadena para el nonce) y se procede a cifrar el archivo:

Finalmente, cuando se termina de cifrar el archivo, la clave pública para ese archivo es anexada a este para la posterior recuperación de la clave privada en su contraparte de descifrado:

Además de eso, en la versión ‘nas’, se anexa al archivo un flag particular: “ABBCCDDEEFF0”. Posteriormente, durante el descifrado, se usará para comprobar su presencia. Se inhibirá el descifrado si no se halla este fragmento al final del archivo.

Descifrado

Como dijimos antes, se comprueba la existencia de (ellos lo denominan ‘flag’) una cadena de bytes al final del archivo. Son bytes contiguos. Curiosamente, en la versión ‘nas’, si el tamaño del archivo es inferior a 38 bytes (a pesar de estar cifrado) no se descifrará. La clave pública que vimos mide 32 bytes y el ‘flag’ seis, lo cual suman justo 38 bytes. Es decir, posiblemente se inhibe de descifrar archivos cifrados que estaban… ¿vacíos?

La derivación de la clave compartida (shared) es sencilla. Simplemente se extrae la pública del final del archivo y vía curva elíptica se obtiene la clave compartida de modo similar a como se creaba en el cifrador, pero esta vez usando la clave privada ‘m_priv’, contraparte de ‘m_publ’:

La implementación de ‘esxi’, en lenguaje C, es bastante similar a la empleada en ‘nas’, escrita en Go. Como hemos comentado, se sustituye el cifrado ChaCha20 por SOSEMANUK, no obstante, todo lo relacionado con la compartición y generación de claves sigue siendo válido en esta versión de Babuk orientada a máquinas virtuales.

Nota de rescate

Tanto en la versión ‘nas’ como en la ‘esxi’ se van creando notas de rescate en la que se informa de la extorsión. En el código, el contenido de esta nota es un texto provisional (placeholder). La vemos en su versión esxi y nas.

No deja de ser curioso, y evidente en el caso de las notas, que el nombrado de variables de los dos proyectos tienen poca similitud. Vease ‘notebytes’ frente a ‘ransom_note’. Da la impresión de que haya sido escrito por dos (o más) personas y que ni tan siquiera de hiciera una reescritura de una a otra, sino desarrolladas de forma independiente aun compartiendo diseño en ciertos componentes; algo que no debe sorprender, puesto que se trata de un grupo.

Fallos de programación

El software es software. El código es código. Y no existe un programa en este mundo que no posea errores de programación en las primeras versiones de estos (e incluso a lo largo de todo el ciclo de vida). La herramienta de cifrado de ‘esxi’ está escrita en C y podemos ver algún que otro desliz con la memoria. Por ejemplo, las siguientes reservas de memoria, “mallocs”, no poseen su contraparte “free”:

y

Además, esta última llamada está en una función recursiva, que va a prolongarse tanto como directorios posea el sistema. No es un gran leak de memoria (4097 bytes por directorio más otro tanto si se llega a cifrar un archivo en esa recursión), pero esos mallocs colgados dando vueltas podrían generar un consumo de memoria considerable en sistemas más humildes llegado el caso.

Ese 4097 no es un número al azar. El “path” máximo incluyendo el nombre de archivo en un sistema Linux, por norma general, es de 4096 bytes (el byte suelto es para el carácter nulo).

Es lógico que no se cuiden cosas así en el contexto en el que está creado el software. Recuerda a la anécdota del leak de memoria en el componente de un misil. ¿A quién le preocupaba un leak de memoria en un programa cuyo proceso lo iba a correr una y solo una vez?

Hasta aquí, hemos visto por encima el código fuente de dos componentes aislados de Babuk, sus versiones para sistemas NAS y virtualizados. Hemos dejado a la joya de la corona, Windows, para otro post más adelante.

Como vemos, siempre se aprenden cosas analizando piezas como esta. La ingeniería inversa es una potente herramienta para desentrañar un programa (sobre todo en su vertiente dinámica). Pero disponer del código fuente es otro nivel, no hay barreras si es legible.

Google Lens, la «magia» de identificar cualquier producto o lugar

Lluis Serra    13 septiembre, 2021

Entre octubre de 2017 y diciembre de 2018 Google presentó Lens en varias fases, pero no ha sido hasta principios de este año cuando nos hemos dado cuenta de lo útil que puede ser esta aplicación móvil en nuestro día a día.  

Google Lens funciona utilizando la cámara del teléfono móvil. Su objetivo, identificar lo que estamos enfocando con la cámara, está más que conseguido, ya que busca una imagen similar a la que estamos apuntando con el móvil y nos ofrece información sobre lo que considera que puede ser. Así podremos saber qué flor, animal o árbol estamos observando, qué plato de comida estamos consumiendo, qué edificio tenemos delante, a qué país o región pertenece un determinado paisaje, etc. Para ello, Google realiza un análisis visual mediante Machine Learning.  

Identificación de lugares y objetos en un par de segundos

La identificación de las imágenes es rapidísima, en apenas dos segundos. Y en el caso de que en la imagen aparezcan diferentes objetos, podremos seleccionar el que queramos y nos dará toda la información que encuentre sobre él.

Además de la opción de Buscar, que es la que aparece por defecto, nos proporciona otras seis opciones:

Traducir

Si enfocamos una o varias palabras con la cámara del móvil, estas se traducen automáticamente en la misma pantalla al idioma que hayamos escogido (actualmente tiene 103 lenguas disponibles en su traductor). La dificultad estriba en que las palabras estén escritas a mano, en cuyo caso puede equivocarse al no ser capaz de leer correctamente algunas palabras manuscritas. Pero, en la mayoría de las ocasiones, la traducción es correcta.

También ofrece la posibilidad de realizar una foto de las palabras traducidas y copiarlas en el portapapeles, para pegarlas en cualquier otro documento.

Texto

Detecta y reconoce cualquier texto escrito, números de teléfono y fechas. Esta opción es muy parecida a la anterior, con la diferencia de que, cuando enfocamos un texto, no lo traduce, pero sí nos permite analizar un fragmento del mismo, copiarlo o escucharlo en audio.

Asimismo, es posible pasar a limpio notas o apuntes o añadir a Google Calendar un evento que tendrá lugar en la fecha detectada, o llamar directamente al número de teléfono enfocado y guardarlo en la agenda de contactos. Esta opción, igual que la anterior, utiliza Google Translator.            

Deberes

Mediante esta opción es posible hacer una foto a una pregunta y Google Lens busca la respuesta en la Red. Por ejemplo, si fotografiamos la pregunta: ¿Quién descubrió América?, sale el resultado principal: fecha del descubrimiento y persona que la descubrió. Y a continuación muchos otros resultados relacionados y preguntas de los usuarios con su correspondiente respuesta: ¿Quién descubrió América primero? ¿Quién llegó a América antes que Colón? ¿Por qué algunos afirman que Colón no fue quien descubrió América?, etc.

Compras

La pestaña Compras es una de las más interesantes para los negocios. Si enfocamos cualquier objeto, primero nos informa de la marca, modelo, descripción y referencia. Seguidamente nos ofrece plataformas de comercio electrónico donde obtener ese producto, otros similares y coincidencias visuales. Aparece también la opción de «Más resultados», que nos dirige automáticamente a los resultados de Google.

Sitios

Esta opción es la preferida por las personas que viajan mucho. Permite reconocer edificios y lugares simplemente apuntando hacia ellos con la cámara del móvil. En primer lugar, ofrece la imagen del resultado que más coincide con lo que estamos enfocando con nuestra cámara y, a continuación, coincidencias visuales con imágenes, artículos e información relacionada.

Comida

Mediante esta pestaña de la aplicación, tenemos dos posibilidades: hacer una fotografía de un plato de comida o de la carta de un restaurante, para que identifique qué es. Y, en segundo lugar, identificar la comida y mostrarnos páginas web en las que aparece información sobre ese plato. En la parte superior, nos ofrece la geolocalización de los restaurantes más cercanos.

Cómo acceder a Google Lens en Android e iOS

Si utilizamos el sistema Android, y nuestro smartphone es compatible (año 2016 en adelante), como los terminales que puedes encontrar en tu-com, el primer e-commerce de tecnología sostenible, podemos descargarnos la aplicación directamente desde Google Play. Además, disponemos de otras formas de activarlo, como pueden ser el asistente virtual de Google o en Google Fotos.

Los usuarios de iOS no disponen de la aplicación en la Apple Store. Por ello, es necesario que tengan instalada la aplicación de búsqueda de Google y, en la parte derecha de la barra de búsqueda, encontrarán el icono con una cámara fotográfica, con la que podrán acceder a Google Lens.

Lo interesante, o no, es que todas las búsquedas que realizamos en Lens quedan almacenadas en el historial de búsquedas de nuestra cuenta de Google. 

Google Lens y los negocios

Como he comentado al inicio de este artículo, esta aplicación nos ayuda en nuestro día a día, pero lo realmente interesante para una empresa o proyecto es aparecer en los resultados de las búsquedas de Lens. Es obvio que no todos los proyectos encajan, pero la mayoría sí pueden incorporar esta aplicación en sus estrategias digitales.

Si analizamos la aplicación, veremos que Google emplea Translator para las opciones de traducción y texto. Usa Google Maps para la geolocalización de los sitios y restaurantes. Y en las dos opciones restantes, deberes y compras, utiliza los resultados obtenidos por posicionamiento web.

Por este motivo, es muy importante tener la “ficha” de Google My Business actualizada para las opciones de geolocalización y trabajar un buen plan de posicionamiento SEO de nuestras páginas web, sobre todo en el caso de plataformas de comercio electrónico que tienen a la venta productos y servicios.

Cada día hay más personas que utilizan Lens dentro una tienda física, para fotografiar un producto del escaparate o de una estantería y localizarlo de forma online, en lugar de teclear la consulta en el navegador. Además, permite escanear códigos QR y de barras, con lo que la información es absolutamente fiable y precisa.

Google Lens ofrece datos no solo del producto de una determinada tienda, sino de todas las que lo tienen, lo que facilita que el consumidor compare precios y vea si el producto que tiene delante es el más barato o puede adquirirlo a un precio más reducido en otra tienda.

Dada la utilización cada vez mayor de Lens por parte de los consumidores, es fundamental que las pymes y los comercios actualicen el contenido de sus plataformas digitales y ejecuten una estrategia digital enfocada al posicionamiento natural en los buscadores o en campañas de pago, para aparecer en los resultados de búsquedas de Google.

Imagen: Google Play