De puertas traseras y software libre

Es casi imposible que no hayas oido hablar del backdoor xz, no es que yo pueda darte más información sobre el tema, os dejo un video de alguien que os cuenta el caso completo como si de un episodio de serie negra se tratase:

El caso es que, alguien durante tres años ha ido infiltrándose en un repositorio de un elemento pequeño pero crítico de software libre llamado xz, de tal manera que consiguió, no solo quedarse como mantenedor de ese repositorio sino que fue introduciendo, poco a poco, una puerta trasera que permitía el acceso remoto (todavía hay que ver el payload real lo que llegaba a hacer) y conseguir que ese backdoor se distribuyese en algunas de las más importantes distribuciones.

Por suerte, o mejor dicho, por la misma estructura del software libre, esta versión no pasó de las versiones inestables de las distribuciones y se descubrió el pastel porque una persona notó que algo iba más lento de lo que debía después de la actualización. Esta persona (Andres Freund) no se paró en medir el tiempo de respuesta sino que terminó encontrando la causa subyacente y la puerta trasera que habían metido (aquí el aviso que dió a la comunidad) y, obviamente, la reacción de los mantenedores de la distribución, e incluso del antiguo mantenedor del repositorio fue inmediata y reliminó todas las trazas del código dañino.

Hay varias cosas que podemos destacar, pero yo me quedo con un par de ellas:

  1. La dependencia que tenemos de código que han escrito terceros y que pueden estar bien mantenidos o no (dependiendo del ánimo de esa persona o de sus circunstancias personales)
  2. La potencia del ecosistema open source para descubrir y arreglar este tipo de problemas. Todos los sistemas operativos actuales, desde mac os hasta windows usan componentes externos, no hay ninguno 100% original y tampoco es que se pueda saber qué es lo que usan exactamente. Si hay un backdoor en windows o en macos nos lo tendremos que comer con patatas porque nadie puede mirar lo que hay dentro.

Estoy seguro de que esta forma de actuar, por muy inteligente y paciente que sea, no deja de ser un ataque en toda regla con unas finalidades seguramente malvadas (crear una botnet inmensa, por ejemplo) y no creo que sepamos realmente quien está detrás de ello y, posiblemente, nos de para una docuserie de Netflix un día de estos.

En fin, no ha pasado nada, todo está en orden de nuevo y lo malo es que nos deja un regusto amargo y hace bajar un peldaño la confianza que teníamos en el ecosistema (pero no mucho, oye, que seguimos estando a salvo).

Ser empresario también es tener que tratar con malnacidos

Como se diría en twitter, acompañemé a conocer esta triste historia…

Luis Carballo Rua con nuestro portatil

Llevo 19 años siendo empresario y he contratado unas cuantas decenas de personas. Antes era más sencillo dar con alguien competente, pero ahora con tanto bootcam y con tanto FP con esteroides es más complicado saber si un trabajador sabe lo que dice que sabe o no. Antes tener un título significaba un mínimo, ahora tienes que bucear para encontrar si la persona en cuestión sabe lo que es el http o le han dicho que eso es magia de Angular. En fin, que se te pueden colar inútiles sin comerlo ni beberlo.

Uno de esos casos me pasó recientemente, una persona respondió a un anuncio de trabajo que pusimos en LinkedIn. La plaza que pedíamos de desarrollador front la terminamos ocupando con otra persona, pero me pareció interesante el cv que nos pasó, lleno de dibujos hechos por él mismo.

El caso es que en la siguiente plaza para full stack se volvió a presentar, decidimos entrevistarle y, quitando que hablaba muy deprisa, nos dijo que si a todo lo que le preguntamos, no parecía perdido en ningún área de los que preguntamos y su CV era molón, así que le hicimos una oferta a los dos días… Oferta que rechazó porque dijo que ya estaba trabajando en otra empresa que le llamó después de nosotros… En fin, cosas que pasan, a seguir entrevistando.

Esta vez el proceso se hizo un poco más largo y a eso de las dos semanas me contacta de nuevo diciendo que las condiciones de la nueva empresa no le interesan y que si le mantengo la oferta. Yo, que soy un hombre de palabra, le digo que le mantengo exactamente la misma oferta que le hice… Y, dicho y hecho, le preparamos el contrato y quedamos ya para que empiece a trabajar en remoto, básicamente, aunque esperábamos que al menos el primer día se quedase en la oficina para que le explicásemos las cosas.

Primer día: quedamos a las 9:30 porque yo tenía reuniones antes… Espero, se hacen las 10, las 11.., le mando un whatsapp, no me contesta, a las 12 ya le llamo por teléfono y me dice que está en Alcorcón, pero llevando su madre al médico, que luego se pasa por aquí (no me parece lo mejor para el primer día y, además, sin avisar), en fin, que a las 13 se pasa por la oficina, firma el contrato, le enseño a entrar en el portatil y en su cuenta de correo; y… Se va. ¡¡!! Que si, que es un trabajo remoto, pero leche, no solo llegas 4 horas tarde sino que ni siquiera te quedas a que te expliquemos nuestra forma de trabajar…

La primera semana de trabajo se perdió intentando que arrancase solo en ubuntu el portatil y que no usase windows (windows=kk), le compramos hasta una docking station para que pudiese enchufar sus dos monitores (y se lo tuvimos que mandar a casa, que él pasar por l oficina ya le daba pereza), la segunda semana ya empieza a hacer algo productivo pero sin hacer puto caso de lo que le decimos. Nos llena el código de librerías que luego tenemos que borrar y nos quita más tiempo del que ahorramos. En la cuarta semana le ponemos a hacer algo para despliegue inmediato (tampoco era muy complicado, pero dediqué yo más horas que él) y nos dice que se va a vivir a la costa que, total, es remoto y no nos vamos a enterar… Y el pavo se va de mudanza el mismo día que pasamos a producción grrrrr. Obviamente la cosa peta y tengo que arreglarlo yo solo.

Lo primero que hace nada más llegar a su destino es pedirme un anticipo (estábamos a día 7 de mes), cosa que me extraña pero que procedemos a hacer sin ningún problema. A partir de ese momento su rendimiento fue cero. La lista de problemas (en orden cronológico):

  • Que el proveedor de internet que tenía no le permitía usar el puerto del ssh y no podía subir nada al servidor
  • Que los que han venido a repararlo no tenían idea y ha terminado tirando el router por la ventana
  • Que me he quedado dormido (excusa para no aparecer por el daily) y el movil estaba descargado
  • Que se me acaban los datos del móvil
  • Que me van a poner la fibra (ese día desapareció tras el daily y apareció después de haber terminado la jornada diciendo que se había dejado el movil en casa mientras le instalaban la fibra)
  • Que me he cargado el móvil (caída fortuita al suelo, dice)
  • Que sigue sin fibra y tiene que hacer el daily desde un bar
  • Que el del bar ha abierto más tarde hoy y no he podido hacer el daily

Y mientras el trabajo que tenía asignado ahí pudriéndose y teniendo que hacerlo entre sus compañeros y yo…

Llegados a este punto decido que es suficiente y que, obviamente, no ha superado el periodo de prueba. Se lo comunico y le indico que empaquete el portatil, la mochila y la docking station y que alguien pasará a recogerla.

Y ahora salta la sorpresa en las gaunas… Esta persona decide que va a quedarse con el material de la empresa, material que vale más que lo que él ha generado para la empresa. Esto no solo está tipificado como una apropiación indebida sino que dado el valor de lo apropiado puede ponerle en un grave aprieto. Mi empresa, como no puede ser de otra manera, le ha pagado finiquito y liquidación (muchas tentaciones de quedarnos con ese dinero en compensación, pero mi abogado me recomendó pagarlo de todas formas) y este desalmado malnacido no ha dado señales de vida.

Ya es duro mantener y gestionar una empresa como para tener que lidiar con gentuza de esta calaña. No solo ha perjudicado a sus compañeros sino que te deja una mala leche que terminas pagando con el primero que pasa… En fin, solo espero que el karma haga su trabajo. Si alguien quiere contratar a un full-stack developer, que me pregunte a quien no contratar nunca.

Cerrando el 2021

Dentro de dos meses hará 15 años que llevo manteniendo este blog, una eternidad en cuestión de tiempo tecnológico y una eternidad también en tiempo biológico. Generalmente se usa este último día del año para hacer un resumen de lo que se ha hecho y se ha dejado de hacer en el año saliente y dar la bienvenida a los nuevos planes y deseos para el año que entra… Bien, hoy no estoy de humor para ello (que eso no quita que no lo haga en algún momento), mi retrospectiva será más de estos 15 años de blog que de este año de pandemia continuada. Es más, se cumplen ya 20 desde que se publicó algo bajo este dominio… Y eso requiere un poco de historia.

Compré el dominio yoprogramo.com allá por 2001 poco después de haber contratado mi adsl con terra y con el ánimo de poner una web informativa sobre temas de programación. Yo, como muchos sabréis, me defino como programador, un programador con vocación empresarial y con muchas ganas de hacer cosas útiles por todo el mundo. De hecho, si sentís curiosidad, hay entradas de la web en Internet Archive (os muestro la primera de todas de Agosto de 2001):

En aquel momento firmaba como JaeSoft (Jose Antonio Espinosa) ya que lo que más deseaba era crear mi propia compañía de desarrollo de software, aunque por aquel año yo estaba en otra empresa (Sema Group – SlumbergerSema – Atos) haciendo cosas muy complicadas y muy interesantes para la época.

Intenté reunir personas interesadas en programar y en escribir, muy pocas se apuntaron y mi interés por mantener tantas secciones, incluyendo noticias, trucos y demás cosas que podrían servir para configurar un portal se resintió un tanto cuando perdí parte de los contenidos (aquí una imagen para que veáis como era la cosa en 2004 después de recuperar algunos):

A partir de ese año cambié mi rumbo laboral, abandoné la multinacional en la que había trabajado y me puse por mi cuenta. La web sufrió un hackeo en que, afortunadamente, no perdimos nada (pero publicamos el artículo) y la web pasó a estar patrocinada por la nueva empresa que acababa de fundar (Digimate Computer)… Incluso patrocinaba la web más loca que nunca he publicado, una que se llamaba «quiero mi wii» que me ayudo a conseguir una consola wii en un momento en el que había una escased tremenda de ellas. Fue tanta gente la que quería la wii que tuvimos una avalancha de visitas el poco tiempo que estuvo activa:

Hasta que un día de 2007 decidí cambiar de formato, abandonar el portal para el programador que, aparentemente, no usaban demasiados programadores y me daba muchísimo trabajo mantener y creé (utilizando un wordpress que había aparecido el año pasado) mi blog personal.

Y si hace 15 años que llevo escribiendo en este mi blog, puedo seguir escribiendo algunos más… Intentaré estirar lo más posible mi dedicación al mismo durante este año entrante y, finalmente, os deseo a todos que el año 2022 os sea propicio. Desear es gratis, pero es una buena cosa para variar…

Feliz 2022

La verdad en tiempos del coronavirus

Decía Hiram Johnson en 1917 que la primera víctima de una guerra era la verdad, y esto es completamente cierto, ya que cada bando debe utilizar la propaganda para desconcertar y desmoralizar al enemigo. Hay grandes ejemplos de contraespionaje que fueron decisivos en muchas guerras – sin ir más lejos en la segunda guerra mundial cuando hicieron creer al reich que el desembarco de normandía sería por el paso de Calais (operación fortaleza) – y grandes ejemplos de propaganda en tiempos de guerra, que podemos resumir en el decálogo que ya publicaba Arthur Ponsonby en 1928:

  1. “Nosotros no queremos la guerra”.
  2. “El enemigo es el único responsable de la guerra”
  3. “El enemigo es un ser execrable”
  4. “Pretendemos nobles fines”
  5. “El enemigo comete atrocidades voluntariamente. Lo nuestro son errores involuntarios”
  6. “El enemigo utiliza armas no autorizadas”
  7. “Nosotros sufrimos pocas pérdidas. Las del enemigo son enormes”
  8. “Los artistas e intelectuales apoyan nuestra causa”
  9. “Nuestra causa tiene un carácter sagrado, divino, o sublime”
  10. “Los que ponen en duda la propaganda de guerra son unos traidores”.

A estos elementos hay que sumar la desinformación, como un elemento presente en toda competición donde la opinión pública tenga alguna participación, como ya sucedía en la antigua roma y viene sucediendo periódicamente en todas las elecciones, siendo la más descarada la campaña de Trump y el escándalo de cambridge analítica.

Sin embargo, cuando la guerra es contra un enemigo que no es humano, como es el caso actual donde nos enfrentamos a una pandemia sin precedentes, ¿qué hacemos con la información y desinformación? En otros países lo tienen claro, hay que mantener informada a la población de la evolución de la guerra, premiar a los heroes y felicitar a los voluntarios que estén apoyando los esfuerzos por superar la crisis, en España, se prefiere otro enfoque – Spain is different – y se ha optado por buscar un enemigo en casa.

Al igual que los nacionalismos perifericos eligieron el concepto de «Madrid» como el enemigo a batir, el que les impedía su tan utópica independencia y el que le robaba los recursos. Al igual que los ultraderechistas trasnochados buscaron a los emigrantes, a los diferentes como el enemigo que les quitaba los trabajos y les limitaba la asistencia médica, de la misma manera una parte mezquina de la sociedad española ha decidido que es el gobierno el enemigo a batir.

La campaña de descrédito ha sido desmesurada desde el primer momento, un gobierno de coalición es algo inédito en la democracia española y cualquier ocasión es buena para intentar romperlo y volver a ocupar el espacio de poder que la derecha española cree suyo por derecho de nacimiento. Pero tanto es así que han utilizado todas las armas a su alcance para, en lugar de aportar soluciones, propuestas o apoyo a los profesionales que están al pié del cañon intentando paliar los efectos del virus, demonizar la gestión del ejecutivo para culparles de las muertes por el coronavirus.

Nadie en su sano juicio sería capaz de algo tan abyecto como acusar a otro de la muerte de un semejante (seguramente en persona serían incapaces de hacerlo, aunque fuese por verguenza), pero no hay nada que una más que un enemigo asesino al que poder poner en el punto de mira de su guerra particular (ver los puntos de arriba), tanto en los nacionalismos, en el fascismo o en las películas de hollywood. Pero España es así, ya no es posible emitir opiniones imparciales porque eres etiquetado como de un bando o de otro, independientemente de la verdad o del mensaje que emitas. Estamos en guerra y ahora o estás con nosotros o estás contra nosotros.

Y de esta manera todo lo que se ha conseguido es eliminar cualquier atisbo de espíritu crítico. Las críticas son meras representaciones de estrategia política, cada cifra, cada gráfico, cada anuncio se convierte en un campo de batalla por saber quien es más mezquino. Si eres de un bando y te atreves a criticar a los tuyos por cualquier cosa (aunque sea verdad) te conviertes en un traidor y así, simplemente, no hay manera de avanzar. Al igual que a mi me da cosa presumir de bandera porque el símbolo de todos los españoles se lo han apropiado gente que no tiene ningún reparo en presumir de machismo, xenofobia, y homofobia y pretenden que cualquiera que ondee la bandera comparte con ellos esos valores; ahora me es imposible criticar al gobierno (que tiene cosas que mejorar) porque parecería que soy uno más de los bots lanzados por la oposición para destruir al gobierno.

Pero lo que es peor, el nivel de virulencia de esta guerra sucia en los medios es tan alto que las consecuencias pueden ser terribles para nuestro futuro. La censura real (no la que falsamente afirman que ya hay en whatsapp) puede estar a la vuelta de la esquina, mediante cambios legislativos, solo porque hay quien ha decidido que el enemigo a batir no es el virus, es el gobierno.

Negacionistas

Supongamos que Guillermo es una persona normal, con una carrera técnica en la que sabe un montón de lo suyo y muy poco de lo demás, obviamente no es médico ni nada similar. Un día, en base a unas molestias se pasa por el médico y después de hacerle unas pruebas le diagnostica un cancer.

Guillermo, no contento con el diagnóstico y acojonado como no podía ser de otra manera, decide visitar a otros médicos, solicitar otras opiniones a conocidos oncólogos y todos coinciden en el diagnóstico, cancer. Por suerte es tratable y solo se le pide que empiece el tratamiento cuanto antes.

Pero algo no le cuadra a Guillermo, decide que lo que los médicos han estudiado y a los pacientes que han tratado no son sinónimo de que tengan la razón, intenta documentarse y visita internet con asiduidad, por desgracia el 99% de lo que encuentra le confirma el diagnóstico y el tratamiento. Para el sería una jodienda tener que someterse al tratamiento y decide elegir al 1% que le dice que los médicos están todos compichados con las farmacéuticas para vender carísimos tratamientos contra el cancer y que, en realidad, sus síntomas se curan con agua diluida en principios mágicos…

Guillermo ha decidido que la ciencia médica ya no le sirve, que él y los cuatro iluminados de internet son más listos y ven la verdad más allá de las tramposas multinacionales de las medicinas. Así que se niega a recibir el tratamiento y decide esperar a que el cancer se cure solo con ayuda de medicinas neanthertales. No le ablanda la preocupación de su familia y amigos, él es más listo y nadie ha sabido argumentarle la forma en que las células sanas mutan en cancerígenas de una manera convincente (nada de estudios con cifras, ni causalidadades de esas que se inventan las farmaceúticas)..

Guillermo es feliz sabiendo que él es más listo que los borregos que le rodean aunque sospechosamente su grupo de afectados por la conspiración global de los falsos diagnósticos de cancer va perdiendo miembros a marchas aceleradas, aunque cada día hay nuevos miembros y él activamente evangeliza a todo el que conoce para que evite seguir el tratamiento…

Guillermo muere entre terribles dolores tras un periodo espantoso donde ha perdido el control de sus funciones motoras poco a poco. ¿FIN?

negar

La historia de Guillermo no es ficción, ahora mismo tenemos negacionistas de cualquier cosa que niegan la evidencia y la autoridad de los científicos para casi todo lo que nos ha convertido en una civilización avanzada. No es ya tener una opinión diferente, eso es muy loable, es pensar que su opinión tiene el mismo peso que décadas o cientos de años de estudios e investigaciones y todo se resume en un «Creo que la tierra es plana ¿puedes hacerme cambiar de opinión?»

Merecemos la extinción, pero ya!

Hay algunos que ya se dan cuenta…