El colectivo promotor del Manifiesto 'NUEVO IMPULSO por la democracia interna de PODEMOS', en el que participo, declaramos en rueda de prensa el pasado jueves 20 de diciembre, en Madrid, que en el repositorio de software de PODEMOS figura un programa de creación de DNIs falsos: 'Faker Spanish Document'. Ampliamos la información con la entrega de este avance del dosier que estamos elaborando para que las bases del partido, a las que no podemos llegar de otro modo que a través de las redes y los medios, puedan leerlo.
COMUNICADO CNE-CAMPAÑA Y PROPAGANDA ELECTORAL 20240423.pdf
Analisis pericial faker spanish document de podemos
1. P á g i n a 1 | 12
ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE PODEMOS
1 INTRODUCCIÓN
El presente documento tiene por objetivo analizar el contenido del repositorio de software de
PODEMOS publicado en GITHUB analizando si del mismo se pudiera desprender que existen
riesgos razonables sobre la validez de los procesos electorales de dicha organización.
El análisis se ha realizado dentro del ámbito de lo que marca la legislación actual en cuanto a
protección de datos y confidencialidad de los sistemas, por lo que TODA la información
contenida en este informe se ha obtenido de fuentes públicas, usando programas estándar que
puedan suponer una entrada ilegal en servidores o bases de datos de PODEMOS: en ningún
momento se ha usado ninguna técnica de lo que se conoce como “Hacking”.
Es importante indicar que GITHUB SÓLO CONTIENE CÓDIGO FUENTE, FICHEROS DE
CONFIGURACIÓN Y COMPILACIÓN, así como todo lo necesario para desplegar el software en los
servidores donde se desee ejecutar. Al no tener acceso a los servidores, se procede a analizar:
Si el Site de GITHUB está gestionado por PODEMOS.
Si el contenido de éste es código vivo, o si se trata simplemente de site donde se han
dejado ficheros fuente sin más.
Si existe contenido que pudiera suponer un riesgo para garantizar la veracidad de los
resultados de las consultas y de las votaciones.
Un análisis más detallado precisaría de la colaboración de PODEMOS dando acceso a sus
servidores para la revisión del código fuente, configuraciones, logs y otras evidencias
informáticas.
Todas las capturas van acompañadas de la correspondiente URL y, si procede, del programa que
se ha utilizado de tal manera que cualquier lector pueda reproducirlos por su cuenta.
2. P á g i n a 2 | 12
2 Características del Repositorio
Se localiza un site denominado PODEMOS-INFO asignado al partido político PODEMOS en la
plataforma GITHUB en la siguiente URL:
https://github.com/podemos-info
Este tipo de plataformas de desarrollo colaborativo son utilizadas normalmente por los
desarrolladores para publicar el software OPEN SOURCE y ponerlo a disposición de otros, para
que se beneficien de sus experiencias, o bien en otras casos por las comunidades de desarrollo
OPEN SOURCE para ponerlo a disposición de quien quiera utilizarlo, todo ello bajo ciertas
condiciones de licenciamiento.
En total, hay 39 repositorios, todos ellos enlazados al usuario “leio10”, que es Leonardo Díez.
En la imagen adjunta, que es una captura de la URL https://github.com/podemos-info se puede
observar: , cómo se indica mediante el logo y enlace a la URL de la página principal de
PODEMOS; téngase en cuenta que mantiene la misma nomenclatura que el dominio.
Asimismo, , se puede ver que hay un total de 39 aplicaciones gestionadas en este site, y que
la persona que las administra, , es el usuario leio10.
La propia plataforma GITHUB nos informa acerca de quién es leio10, en la captura adjunta de
la URL https://github.com/leio10
3. P á g i n a 3 | 12
En esta misma captura se puede ver que este usuario es propietario de 15 repositorios, algunos
de ellos de PODEMOS, y otros que no lo son, como comprobaremos más adelante.
Respecto a Leonardo Díez, si realizamos una búsqueda en la red social de perfiles profesionales,
LINKEDIN, se le encuentra bajo el mismo nombre de usuario Leio10, en la URL:
https://www.linkedin.com/in/leio10/?originalSubdomain=es ,
y cuya captura se incluye a continuación:
4. P á g i n a 4 | 12
Según esta captura, Leonardo Díez es colaborador en activo de PODEMOS, donde presta
servicios como DESARROLLADOR DE SOFTWARE desde noviembre de 2014, encargándose de
“Desarrollo y mantenimiento de herramientas de participación y de organización interna.
Desarrollo de webs de campañas. Coordinación del equipo de desarrollo”.
Leonardo Díez, por tanto, sería la persona responsable de las aplicaciones que PODEMOS utiliza
para los procesos de participación que son objeto del presente estudio.
Más aún, para comprobar que Leonardo Díez tiene una relación innegable con el partido político
PODEMOS, se ha investigado la siguiente URL:
https://presupuestosconlagentedentro.info/
Accediendo a su información de DNS, nos indica que es propiedad de dicho partido, tal y como
puede comprobarse en la captura adjunta.
5. P á g i n a 5 | 12
Pues bien, revisando el código fuente publicado para dicha URL encontramos que Leonardo Díez
Dolinski reconoce la autoría de dicha página:
Todo esto nos viene a confirmar que, efectivamente, LEORNARDO DÍEZ DOLINSKI está actuando
en representación de PODEMOS cuando usa su nombre, su logo, URL y código para crear los
repositorios mencionados anteriormente y que, por ende, contienen código fuente de
PODEMOS.
Por lo tanto, se puede afirmar, sin ningún género de dudas, que el site
https://github.com/podemos-info está gestionado por personal perteneciente al partido
político PODEMOS, y que realiza esta actividad en nombre de dicha organización.
3 Actividad del Site
Una vez demostrado que la URL está gestionada por PODEMOS, se procede a analizar la
actividad del site para comprobar si lo que contiene es código “muerto” que no se utiliza o si,
por el contrario, es código “vivo” y, por lo tanto, el código fuente que contienen estos
repositorios es altamente probable que sea igual al que está desplegado en los servidores de
PODEMOS.
A continuación, se muestra cómo se puede analizar la actividad del site.
3.1 Resumen de Actividad de los repositorios.
En la URL del site se incluye una lista de todos los repositorios que son de PODEMOS; si
observamos una captura de cualquiera de ellos, vemos que en se incluye el nombre del
repositorio, que vendría a ser el nombre del software que contiene, cuándo se actualizó su
contenido por última vez, y un gráfico de actividad .
6. P á g i n a 6 | 12
A continuación se muestran ejemplos de capturas, son de los 39 repositorios que tiene
PODEMOS en este site que se está analizando:
7. P á g i n a 7 | 12
En total 19 de ellos, que son los que se muestran, han tenido actualizaciones este año de 2018.
3.2 Detalle de la Actividad de cada Repositorio
La propia plataforma GITHUB proporciona bastante información acerca de la actividad, ya que
está diseñada para favorecer la creación de comunidades de desarrollo y la colaboración de
desarrolladores en un mismo proyecto, por ello recoge toda la información necesaria para poder
conocer el estado del software.
A continuación, se muestra una captura del detalle de uno de los anteriores:
En se indica el número total de veces que se ha actualizado el software desde que se creó el
repositorio.
8. P á g i n a 8 | 12
En las ramas que se han ido abriendo para trabajar los programadores sobre ellas.
En las versiones estables que se han marcado para poder desplegarlas en servidores.
En el número de desarrolladores que ha contribuido al proyecto.
Con estos datos y tomando en cuenta los ejemplos anteriores, es decir los más actualizados, se
ha revisado el detalle de cada uno de ellos elaborando la siguiente tabla resumen:
Repositorio Ultima Actualización commits contribuidores
CMS 20/12/2018 3 1
programas2019 20/12/2018 34 1
participa 18/12/2018 4.198 14
onlyoffice-owncloud 19/12/2018 300 4
decidim 19/12/2018 2.765 52
participa2 19/10/2018 102 2
census 17/10/2018 374 4
rectify 22/06/2018 120 11
understrap 28/09/2018 826 35
humhub-modules-calendar 10/09/2018 424 12
iban_bic 03/09/2018 63 1
humhub-modules-custom-pages 30/08/2018 164 9
humhub-modules-polls 30/08/2018 219 9
gataloger 16/05/2018 12 1
faker-spanish_document 10/05/2018 2 1
En esta tabla se observa que en el presente año 2018 se registra actividad y, por lo tanto, se
desprende de ello que estos repositorios están vivos.
Para que se entienda por aquellas personas que no están familiarizadas con el proceso de
desarrollo de software, aclaramos que el proceso de escritura de programas (software) es muy
complejo y requiere de una metodología de trabajo especializado, ya que es habitual que varios
programadores trabajen en un mismo proyecto simultáneamente. Para evitar que el trabajo de
alguno de ellos pueda sobrescribirse sobre el de otro y, en consecuencia, perderlo, así como
para hacer las pruebas del software, se dispone de repositorios como los que estamos
analizando.
Una vez que el software ha superado pruebas, se DESPLIEGA en servidores que se denominan
de PRODUCCIÓN, que es donde los usuarios finales acceden y tienen visión de los programas.
Por lo tanto, este registro de actividad demuestra que este site está siendo utilizado por
PODEMOS para que sus equipos de desarrolladores puedan trabajar de forma coordinada, y
desde aquí poder desplegar así el SOFTWARE en los servidores de PRODUCCIÓN.
3.3 Despliegue en los entornos de Producción.
En este apartado se va a analizar si el software depositado en los repositorios es utilizado para
ser puesto en producción.
9. P á g i n a 9 | 12
Este análisis se va a basar en una serie de indicios obtenidos del propio repositorio, los cuales
tomados en conjunto conducen a una conclusión racional que, para un juez, podría constituir
prueba indiciaria.
En primer lugar, si observamos en detalle cada uno de los repositorios, sobre todo los que tienen
mayor número de contribuidores, se encuentra en algunos la rama “production” que, para
cualquier persona que tenga experiencia en este tipo de procesos, indica claramente que es la
versión que está en producción.
Por otro lado, se encuentra la carpeta /config/deploy/ que contiene el fichero
production.rb y cuyo contenido se reproduce a continuación:
La captura adjunta muestra que cuando se ejecuta este script el contenido del repositorio
participa se vuelca en lo que se conoce como https://participa.podemos.info/
En consecuencia, con estos dos indicios puede deducirse, sin ningún género de duda, que el site
GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de
producción de PODEMOS.
Por lo tanto, estos repositorios contienen código fuente VIVO, que además está desplegado
en los servidores de producción de PODEMOS.
10. P á g i n a 10 | 12
4 ANALISIS DE RIESGOS DEL SOFTWARE.
En este apartado, una vez que se ha determinado con alta probabilidad que los repositorios
objeto de estudio pertenecen al partido político PODEMOS y que contienen software que está
siendo desplegado en los servidores de producción de éste, se procederá a analizar si este código
pudiera ser malicioso y si pudiera ser una herramienta para conseguir variar los resultados de
consultas y de votaciones internas.
Para este informe, la metodología seguida ha consistido en analizar el código fuente de cada una
de los repositorios.
Los resultados son los que se indican a continuación.
4.1 REPOSITORIO faker-spanish_document
La URL de este repositorio es https://github.com/podemos-info/faker-spanish_document
La captura de su página principal se reproduce a continuación:
Este software se describe por el autor de la siguiente forma: “Genera DNIs y NIEs españoles
aleatorios, también genera números de pasaporte aleatorios”.
Más abajo da ejemplos de su uso, que es desde línea de comandos como muestra la captura
adjunta:
11. P á g i n a 11 | 12
Por lo tanto, es importante destacar que este módulo no está pensado para ser integrado en
ninguna aplicación, sino que más bien es lo que los técnicos de informática denominan
“utilidad”; es decir, un programa pensado para ser utilizado FUERA de las aplicaciones para
obtener o preparar datos.
El código que se usa para generar estos números, puede verse a continuación, capturado desde
la carpeta /lib/faker el fichero spanish_documents.rb:
Una inspección de este código permite comprobar con facilidad que implementa los algoritmos
para generar los dígitos de control de NIE y la letra de NIF.
12. P á g i n a 12 | 12
Llegados a este punto, cabe preguntarse la razón por la cual desde PODEMOS han considerado
necesaria la implementación de un módulo de tales características, ya que su mera existencia
supone un riesgo importante para seguridad en cuanto a la fiabilidad de los procesos.
En primer lugar, para comprender el alcance del riesgo que supone este módulo, es preciso
entender algunos aspectos clave de la operativa de los procesos participativos de PODEMOS.
Si se revisa el repositorio podemos-info/participa existe un script en la carpeta /lib,
denominado podemos_import.rb, que permite importar un fichero de usuarios en formato
CSV (texto separado por comas).
Según los comentarios que aparecen en el código fuente parece que se pensó inicialmente para
importar en la base datos usuarios de otras aplicaciones, pero tal y como está diseñado nada
impide generar manualmente: por ejemplo, desde Excel un fichero con el formato adecuado, en
que se incluyan DNIs generados con el módulo FAKER::SPANISH_DOCUMENT, cargando correos
electrónicos y números de teléfono.
Además, el proceso de verificación de DNIs puede obviarse fácilmente, ya que en el código
disponen de la posibilidad de indicar que no se realice mediante el flag
“current_user.photos_unnecessary”, con lo que sería posible desde el entorno de
administración, en línea de comandos, realizar una importación masiva de usuarios fake
simplemente disponiendo de los privilegios y credenciales necesarios para ejecutarlo, de
administrador, que normalmente sería por orden de la dirección de PODEMOS.
Conclusión: se han podido detectar, sin profundizar mucho en el código, las herramientas
necesarias para variar el sentido de las votaciones y de las consultas mediante la creación de
“usuarios fake”.