La OpenSSF ha detectado intentos de ingeniería social para obtener el control de proyectos de código abierto
![Pingüino (tux) hacker en linux con cara malévola](https://www.linuxadictos.com/wp-content/uploads/Tux-hacker.jpeg)
Tux-hacker
El incidente en XZ sin dudas dejará una huella la cual será recordada durante muchos años y es que, como mencione en su momento en uno de los artículos donde compartimos el seguimiento del incidente, «el trabajo realizado por Jia Tan es uno de los mejores ejemplos de ingeniería social aplicada» y que será la base de muchos otros intentos y casos que se lleguen a dar a conocer a futuro.
Esto es algo que tienen muy en claro en este momento tanto desarrolladores, como proyectos y fundaciones, y que a pesar de los grandes esfuerzos y cambios que lleguen a implementar, existen muchos paquetes y proyectos que carecen de personal y los mantenedores que tienen pueden caer en algo similar a lo que le sucedió a XZ.
Estos casos ya se han comenzado a dar y la OpenSSF (Open Source Security Foundation, una entidad creada bajo los auspicios de la Fundación Linux para mejorar la seguridad del software de código abierto) ya ha comenzado a notar este tipo de actividad, pues hace poco emitió una advertencia a la comunidad sobre actividades preocupantes relacionadas con intentos de tomar el control de proyectos populares de código abierto.
En un incidente similar al ataque a xz, se descubrió que individuos desconocidos previamente en el desarrollo de código abierto intentaron manipular y controlar proyectos de software de código abierto. Estos individuos utilizaron métodos de ingeniería social para comunicarse con miembros del consejo de gobierno de la Fundación OpenJS, una plataforma neutral para el desarrollo de proyectos de JavaScript.
Estos individuos incluía a desarrolladores externos con historiales dudosos en el desarrollo de código abierto. En sus mensajes, intentaban persuadir a la gerencia de OpenJS sobre la necesidad urgente de actualizar uno de los proyectos populares de JavaScript. Alegaron que la actualización era necesaria para agregar protección contra vulnerabilidades críticas, aunque no proporcionaron detalles específicos sobre estas vulnerabilidades.
Para implementar los cambios propuestos, el desarrollador sospechoso ofreció incluirse entre los mantenedores del proyecto, a pesar de haber tenido un rol limitado en el desarrollo hasta ese momento. Además, se detectaron casos similares de intentos sospechosos de introducir código en otros dos proyectos JavaScript populares no asociados con OpenJS.
Es por ello que la OpenSSF (Open Source Security Foundation) y OpenJS (OpenJS Foundation) han emitido una advertencia a todos los desarrolladores y mantenedores de proyectos open source, a estar atentos a los siguientes patrones sospechosos que podrían indicar un intento de tomar el control del proyecto.
¿Cómo proteger tu proyecto open source?
La OpenSSF menciona que debido a la naturaleza colaborativa que hay en los proyectos open source, esto hace que sean propensos a una serie de vulnerabilidades que los atacantes pueden aprovechar, es por ello que comparte una lista de las vulnerabilidades más comunes que aprovechan los atacantes para aplicar la ingería social:
Patrones sospechosos en los intentos:
-
Dependencias desactualizadas: Una de las vulnerabilidades más comunes es el uso de dependencias desactualizadas.
-
Comportamiento amistoso pero agresivo y persistente: Un miembro de la comunidad relativamente desconocido busca perseguir al mantenedor o a la entidad que lo aloja (fundación o empresa).
-
Solicitud para ser elevado de rango: Personas nuevas o desconocidas solicitan ser ascendidas sin tener un historial significativo de contribuciones al proyecto.
-
Respaldo de otros miembros desconocidos de la comunidad: Los atacantes pueden utilizar identidades falsas para respaldar sus solicitudes y generar una falsa sensación de confianza.
-
Pull Requests: Los archivos maliciosos pueden estar ocultos dentro de archivos binarios o blobs, dificultando su detección.
-
Código fuente intencionadamente ofuscado o difícil de entender: El objetivo es dificultar la revisión del código y ocultar posibles vulnerabilidades.
-
Escalada gradual de los problemas de seguridad: El atacante puede comenzar introduciendo vulnerabilidades menores para luego escalar a problemas más graves.
-
Desviación de las prácticas típicas de compilación, construcción e implementación del proyecto: Estas desviaciones pueden permitir la inserción de código malicioso en los binarios.
-
Falsa sensación de urgencia: El atacante puede crear un ambiente de urgencia para presionar al maintainer a realizar una revisión superficial del código.
Estos ataques de ingeniería social buscan aprovecharse del sentido del deber que tienen los mantenedores con sus proyectos y comunidades para manipularlos, ya que al generar una presión sobre la introduccion de cambios, solución de vulnerabilidades o dar una mayor confianza a algún miembro de una forma muy insistente, hacen que la persona o personas a cargo terminen por ceder antes de verificar o realizar las pruebas pertinentes.
Si estas interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.