Noticias y Alertas
Header

Vot.AR ¿vulnerabilidad en las máquinas?

junio 24th, 2015 | Posted by kwelladm in Firma Digital / Voto Electrónico | Publicaciones

Como es sabido, las próximas elecciones en Ciudad de Buenos Aires se realizarán con voto electrónico (llamadas Boleta Única Electrónica -BUE- por una cuestión de marketing) y desde que se conocieron las máquinas a utilizar se ha desatado una tormenta de idas y vueltas sobre las posibles y potenciales vulnerabilidades del sistema desarrollado por la empresa MSA y a las cuales los partidos políticos no han podido tener acceso, si bien se informó que se ha practicado una auditoria de código en la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires (UBA).

Primero se informó de supuestas vulnerabilidades en la lectura/escritura de los chips NFC/RFID incluido en la boleta electrónica, luego fue la falta de cumplimiento de la Ley 25.326 de Protección de Datos Personales y ahora alguien ha publicado en Github el código fuente de las máquinas y varios especialistas ya se encuentran analizando el código fuente.

Actualmente se encuentran publicadas dos versiones no oficiales del código y, a primera vista no son iguales: versión del usuario Yabr4n (publicado aquí) y la versión de prometheus-ar, sobre la que se realizó el análisis actual.

Nota: el código fuente debería haberse publicado oficialmente por la empresa MSA, antes de que ocurra todo esto. La transparencia del proceso es la clave en cualquier situación de este tipo. La seguridad por oscuridad no es seguridad.

Si bien las vulnerabilidades no se pueden confirmar sin tener acceso a la máquina física y a la versión oficial del código, a través de su cuenta de Twitter, el investigador Alfredo Ortega, publicó una (puede haber más) vulnerabilidad de inyección de código que permitirían ejecutar comandos del sistema operativo (Linux) y potencialmente tomar control de la máquina y del sistema que se ejecuta sobre el mismo.

En esta imagen, la función “crear_qr()” en Python toma una variable de entradas “datos” sin validar ni sanitizar y la utiliza para armar un “comando” a ejecutar sobre el sistema operativo. Esto podría da lugar a una inyección de comandos ya que si el dato que ingresa es, por ejemplo:

autoridad.apellido: test;/bin/bash -i >& ls >&1'
autoridad.nombre = test
autoridad.nro_documento = 11111111

En este caso se ejecutaría el comando “ls” en el sistema. Por supuesto esto podría dar lugar a cualquier tipo de ejecución de comandos o shell reversa, como explica Alfredo en su documento.

Si bien algunos caracteres y comandos son filtrados previamente, el código es ciertamente vulnerable, y solamente se necesita un poco de imaginación y/o una vulnerabilidad adicional para poder ser explotada (por ejemplo un XSS).

Adicionalmente, Alfredo nos informa que ha hallado otra vulnerabilidad grave aquí. En este caso se informa en un comentario que “Si el tag no es ICODE se descarta el evento.” pero el código jamás chequea que sea un tag ICODE, lo que a priori permitiría modificar el voto en la urna, una vez emitido.

Es importante destacar que estas vulnerabilidades no se pueden confirmar hasta tener el código fuente oficial y acceso a las máquinas físicas. De todos modos se puede descargar una ISO para probar la máquina de voto.
Lamentablemente no disponer del código, obliga a hacer análisis extra-oficiales sobre otras versiones, lo cual podría derivar en errores y falsos positivos innecesarios. También es extraño que la auditoria oficial de la UBA no haya encontrado este tipo de errores, que podrían no ser explotables, pero existen y están claramente evidenciados.

Una vez más observamos como la falta de conocimiento técnico, la ambición política y económica hace mella en la confianza del ciudadano, haciendo que un sistema que debería ser altamente confiable y transparente se ensucie y se termine desvirtuando totalmente su uso.

Actualización: al parecer el mensaje que siempre ha dado la empresa MSA de que “las máquinas son impresoras sin ninguna funcionalidad adicional”, no sería tan cierto, según se puede ver en la imagen.

Actualización: excelente post de Juan Pedro Fisanotti (empleado de MSA) explicando el funcionamiento completo del sistema y despejando algunas dudas al respecto.

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

Deja un comentario