Crédito:Alexander Sinn/Unsplash
En marzo de 2022, el autor de node-ipc, una biblioteca de software con más de un millón de descargas semanales, rompió deliberadamente su código. Si el código descubre que se está ejecutando en Rusia o Bielorrusia, intenta reemplazar el contenido de cada archivo en la computadora del usuario con un emoji de corazón.
Una biblioteca de software es una colección de código que otros programadores pueden usar para sus propósitos. El nodo-ipc de la biblioteca es utilizado por Vue.js, un marco que impulsa millones de sitios web para empresas como Google, Facebook y Netflix.
Esta vulnerabilidad de seguridad crítica es solo un ejemplo de una tendencia creciente de programadores que sabotean su propio código con fines políticos. Cuando los programadores protestan a través de su código, un fenómeno conocido como "protestware", puede tener consecuencias para las personas y las empresas que confían en el código que crean.
Distintas formas de protesta
Mi colega Raula Gaikovina Kula y yo hemos identificado tres tipos principales de material de protesta.
Los sistemas de software modernos son propensos a las vulnerabilidades porque dependen de bibliotecas de terceros. Estas bibliotecas están hechas de código que realiza funciones particulares, creadas por otra persona. El uso de este código permite a los programadores agregar funciones existentes a su propio software sin tener que "reinventar la rueda".
El uso de bibliotecas de terceros es común entre los programadores:acelera el proceso de desarrollo y reduce los costos. Por ejemplo, las bibliotecas incluidas en el popular registro NPM, que contiene más de 1 millón de bibliotecas, dependen de un promedio de cinco a seis bibliotecas del mismo ecosistema. Es como un fabricante de automóviles que utiliza piezas de otros fabricantes para completar sus vehículos.
Estas bibliotecas generalmente son mantenidas por uno o un puñado de voluntarios y están disponibles para otros programadores de forma gratuita bajo una licencia de software de código abierto.
El éxito de una biblioteca de terceros se basa en su reputación entre los programadores. Una biblioteca construye su reputación con el tiempo, a medida que los programadores ganan confianza en sus capacidades y la capacidad de respuesta de sus mantenedores a los defectos informados y las solicitudes de funciones.
Si se explotan las debilidades de la biblioteca de terceros, podría dar a los atacantes acceso a un sistema de software. Por ejemplo, recientemente se descubrió una vulnerabilidad de seguridad crítica en la popular biblioteca Log4j. Esta falla podría permitir que un atacante remoto acceda a información confidencial registrada por aplicaciones que utilizan Log4j, como contraseñas u otros datos confidenciales.
¿Qué pasa si las vulnerabilidades no son creadas por un atacante que busca contraseñas, sino por el propio programador con la intención de que los usuarios de su biblioteca tomen conciencia de una opinión política? La aparición del protestware está dando lugar a este tipo de preguntas, y las respuestas son variadas.
Abundan las cuestiones éticas
Una publicación de blog en el sitio de la Iniciativa de código abierto responde al auge del software de protesta afirmando que "la protesta es un elemento importante de la libertad de expresión que debe protegerse", pero concluye con una advertencia:"Las desventajas de destrozar proyectos de código abierto superan con creces cualquier posible beneficio, y el retroceso finalmente dañará los proyectos y los contribuyentes responsables".
¿Cuál es la principal cuestión ética detrás del protestware? ¿Es ético empeorar algo para hacer un punto? La respuesta a esta pregunta depende en gran medida de las creencias éticas personales del individuo.
Algunas personas pueden ver el impacto del software en sus usuarios y argumentar que el protestware no es ético si está diseñado para hacerles la vida más difícil. Otros pueden argumentar que si el software está diseñado para resaltar un punto o crear conciencia sobre un problema, puede verse como más aceptable desde el punto de vista ético.
Desde una perspectiva utilitaria, se podría argumentar que si una forma de material de protesta es efectiva para generar un bien mayor (como un cambio político), entonces puede justificarse moralmente.
Desde un punto de vista técnico, estamos desarrollando formas de detectar y contrarrestar automáticamente el protestware. Protestware sería un evento inusual o sorprendente en el historial de cambios de una biblioteca de terceros. La mitigación es posible a través de redundancias, por ejemplo, código que es similar o idéntico a otro código en la misma biblioteca o en diferentes.
El auge del protestware es un síntoma de un problema social mayor. Cuando las personas sienten que no están siendo escuchadas, pueden recurrir a diferentes medidas para transmitir su mensaje. En el caso de los programadores, tienen la capacidad única de protestar a través de su código.
Si bien el protestware puede ser un fenómeno nuevo, es probable que esté aquí para quedarse. Debemos ser conscientes de las implicaciones éticas de esta tendencia y tomar medidas para garantizar que el desarrollo de software siga siendo un campo estable y seguro.
Confiamos en el software para administrar nuestros negocios y nuestras vidas. Pero cada vez que usamos software, confiamos en las personas que lo escribieron. La aparición del protestware amenaza con desestabilizar esta confianza si no tomamos medidas.
Este artículo se vuelve a publicar de The Conversation bajo una licencia Creative Commons. Lea el artículo original. Un estudio encuentra que la herramienta de reparación automática hace que más programadores actualicen el código