ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está...

12
Página 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.

Transcript of ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está...

Page 1: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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.

Page 2: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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

Page 3: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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:

Page 4: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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.

Page 5: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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 .

Page 6: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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:

Page 7: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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.

Page 8: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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.

Page 9: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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.

Page 10: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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:

Page 11: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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.

Page 12: ANÁLISIS DEL REPOSITORIO DE SOFTWARE DE …...GITHUB PODEMOS-INFO contiene software que está desplegado en los servidores de producción de PODEMOS. Por lo tanto, estos repositorios

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”.