miércoles, 10 de enero de 2018

Cómo hackear unas elecciones. El caso del Referéndum catalán [Parte II:Septiembre]

******************************************************************************
*******************************************************************************

Tras la entrada anterior a esta en la que os conté un poco la historia de Cataluña, no me queda otra que comenzar con la parte de Seguridad Informática y de qué y cómo se hizo lo que se hizo, tanto por una parte como por otra. Aunque no quiero empezar sin antes criticar duramente a todos esos "expertos en Seguridad Informática" que se han callado sobre el tema cuando hay mucho que decir, tanto por un lado como por otro. Mi total desprecio a todos los que han callado sabiendo sobre el tema. A los que, por otro lado, habéis hablado, mi enhorabuena.


Iré por partes, comentando todo lo ocurrido siguiendo un eje cronológico que pueda aclarar a todo el mundo qué se hizo y, sobre todo, cómo. Empecemos por Septiembre.

El 13 de septiembre, alrededor de las 19,00 horas, se cerraba la web sobre el referéndum. El cierre lo realizó la Guardia Civil con una orden judicial del Juzgado de instrucción número 13 de Barcelona que estaba investigando el caso. Así pues, a las 19,00 horas del 13 de septiembre referendum.cat estaba cerrada.



Se consiguió que la web de referéndum en lugar de estar como se muestra en la imagen anterior, luciese así.


¿Y esto cómo de pudo hacer? Puede ser la pregunta de muchos. Pues la verdad es que es bastante sencillo con una orden judicial, ya que la Guardia Civil tenía permiso de un Juez para hacer lo que les diese la gana con la web en cuestión con tal de cerrarla. Por el código a introducir, la verdad es que es muy sencillo.


Como veis es programación web muy básica donde se aplica html y javascript, ya que a donde se va a redirigir es una web con una foto. Esa web es una web que la Guardia Civil dispone para casos en los que debe cerrar la aplicación web. El punto fuerte del código es el apartado del script [INCISO: En el código me he equivocado al tomar la captura. La parte equivocada es la de "<script...> y es que en el tipe es /javascript y no /javasript; me he comido la c. Sorry]. Ahí no se hace otra cosa que en el <h1> dar un name determinado para que posteriormente en la variable 'name' recojamos los elementos con id "causa" y los atributos name. A continuación crea una variable vacía que se completará más adelante. Ahora viene "Un menTOCAMOS TODOS LOS PALOS, INCLUIDOS LOS DEL FLAMENCO
ú" que se crea con switch en el que en función del valor recogido en name="" mostrará una cosa u otra. En nuestro caso como el name es igual a "WEB_INTERVENIDA" nos redirigirá a la web localhost/intervenida.html {localhost porque lo estoy haciendo en un entorno de pruebas}. El documento intervenida.html solamente contiene la imagen que pone siempre la Guardia Civil cuando interviene una web.


No es nada del otro mundo, no hace falta ser un genio para intervenir páginas webs trabajando en la Policía, ya que para esto debes tener una orden judicial que te de acceso a los servidores de la web. Una vez que se tiene acceso no hay problema en cambiar el código de la web por el que os he mostrado. Podéis probar vosotros mismos con los códigos que os dejo y disponer de este entorno de pruebas en vuestro laboratorio.

Por lo visto, la primera web del referéndum era de lo peor desde el punto de vista de la seguridad. Tal y como aseguran algunos expertos, es un ejemplo de todo lo que no hay que hacer, pues era un wordpress con pluggins desactualizados que permitía inyectar código, y todos sabemos lo que eso significa.



Pero la gente que quería votar, no se quedó de brazos cruzados, crearon una segunda y tercera web que se replicaron. Carles Puigdemont [Presidente de Cataluña] compartió varios tweets donde daba información y daba a conocer las webs en cuestión. Estaba siendo un duro pulso.




La Guardia Civil contraatacaba interviniendo Fundació puntCAT y obligó a cerrar todos los dominios .cat que tuviesen que ver con el referéndum. Eso era 1 semana después, el 20 de septiembre. Nos acercamos a la fecha de la votación [1 de octubre] y la gente que quería votar parecía que iba perdiendo.

El día 22 de septiembre, llegaba algo bastante gordo. La Guardia Civil entró en casa de Dani Morales, un chico valenciano que solamente había compartido una lista de enlaces de las webs replicadas sobre el referéndum. Sí, ya sé que podéis pensar que este chico es un delincuente muy peligroso, que comete delitos tan graves como compartir una lista de webs, unos delitos que hace que los millones que robó Urdangarin o Bárcenas se queden en minucias. Como no quedaba muy democrático decir que entraban en su casa por no opinar lo mismo que la jueza que dio el visto bueno dijeron algo como "Este además de ser independentista, toma drogas, buscad en su casa drogas en sus discos duros y su teléfono móvil". Aún después de esto, aún se decía que "demasiados buenos han sido, que la intención erra borrar su huella de Internet". Vamos, un asesinato virtual. Bravo.


Por cierto, un apunte a los periodistas que dijeron que este chico era un Hacker. El chico es un Hacktivista, no un hacker. Con el trabajo que costó que la Rae diga que Hacker no siempre es un cibercriminal, no lo volváis a estropear.

También se detuvieron a otros jóvenes que duplicaron las webs proreferéndum. Los jóvenes se negaron a declarar. También se cerró dichas webs e incluso la web de la Asamblea Nacional Catalana.


Tal y como declara el OONI [Open Observatory of Network Interference] se han contabilizado al menos 25 sitios webs intervenidos que tenían que ver con el Referéndum catalán.



OONI asegura que estos bloqueos cibernéticos, se realizaron por varios ISPs como Euskaltel o Telefónica España.


Se concreta que Telefónica lo que realizó fue bloquear el protocolo HTTP para que en lugar de la web de inicio del referéndum, se mostrase la imagen de que la web había sido incautada por la Policía.

¿Cómo tratar de parar la represión?

Esta parte me parece muy ingeniosa y, a pesar de algunos matices, considero que el esfuerzo realizado fue realmente alto. Esto no sé si lo ven los que más mandan, pero me gustaría que se viese cómo la gente hacía lo posible por, simplemente votar.




El Presidente Puigdemont estaba haciendo lo imposible para que todo el mundo pudiese estar informado a cerca del referéndum. Tal era el esfuerzo que hasta subió a su cuenta de Twitter un manual sobre cómo conectarse a un Proxy.


Tal era el ruido mediático que Julian Assange consiguió que el co-fundador de The Pirate Bay, Peter Sunde. Mucho ruido para algo que se ha podido solucionar fácilmente y, sobre todo, sin represión.

Pero el bloqueo no era solamente en Internet, también se bloqueó las comunicaciones postales, por lo que no se pudieron enviar las notificaciones sobre la votación. De nuevo Internet entraba en juego. El día 21 de septiembre, en la cuenta de Twitter del Presidente Catalán, se publicó la web que se llamaba "¿Dónde votar?", pero al día siguiente ya había una orden judicial para cerrarla. Y decían que la Justicia era lenta [a lo mejor lo son para lo que quieren]. Por supuesto, como se estaba haciendo con las otras webs, la web ¿Dónde votar? se replicó en Twitter, Whatsapp, Telegram, Facebook e incluso en una aplicación de Android, que ¡Adivinad qué! El Tribunal ordenó a Google eliminar.


Si a día de hoy nos vamos a la web ¿Dónde votar? Lo que nos encontraremos será algo como lo siguiente.


Pero aquí ya había una sutileza, esta web no era tan fácil de cerrar, ya que estaba alojada en una red distribuida, sin un punto central que se pudiera intervenir. Pero al final, el 25 de septiembre, Telefónica cerró esa puerta a gateway.ipfs.io. Esta web, además de estar alojada en una red distribuida, fue elaborada para ser replicada con facilidad. No obstante, a pesar de esta gran idea, la web disponía de algunos fallos graves de seguridad que, en cierto modo entiendo, ya que se estaba haciendo todo con prisas por los cierres anteriores.

El caso es que cuando se duplicaba la web, se duplicaba TODA LA WEB, incluida la Base de Datos que, en lugar de estar bajo un MongoDB o cualquier otro gestor, estaba en claro. Esa Base de datos, por la propia naturaleza de la web ¿Dónde Votar? asociaba a cada ciudadano con el lugar al que debía acudir a votar el 1 de octubre.

Hay que decir que cada entrada a la Base de Datos se identifica con un hash generado con los siguientes datos:


  1. 5 últimos dígitos del DNI
  2. Letra del NIF
  3. Fecha de nacimiento
  4. Código Postal.
Dicho hash se genera mediante una serie de interacciones de SHA256 sobre esos 4 datos. Ese hash se genera sin salt, y esto es un problema del que hablé en "Fucking your bullshit code". Si a eso le añadimos que el código postal y la fecha de nacimiento es predecible y se repite, facilita el ataque por comparación de hashes. Además, aunque falten las 3 primeras cifras del DNI, sigue incluyendo la letra, y la letra sale tras una serie de operaciones que cualquier niño de Primaria sabe hacer, que se realizan con los números del DNI. Como faltan 3 dígitos, hay 10 posibles número en cada hueco [de 0 a 9], por lo que sabemos que es una combinatoria con repetición, así que aplicando la fórmula, obtenemos lo siguiente.


Vemos que hay 220 posibles combinaciones, lo que para un ataque de fuerza bruta, no es mucho, y más si pensamos que las primeras son combinaciones de las que podemos prescindir como 000, 001,002,etc. Por lo que se nos quedan muchas menos combinaciones y si ya encima reducimos posibilidades por localización, nos pueden quedar, como mucho, 50 posibles DNIs.


Así que si usamos la Teoría de Grafos, veremos que, a poco que cada nodo duplique las webs 2 veces, veremos que ya en la tercera capa, tendríamos las webs duplicadas 7 veces, con los datos de esa gente ampliamente duplicados. No obstante, entiendo que lo que buscan no es seguridad, pues era una lucha socio-política y como en todas las luchas de este tipo {a los hechos históricos me remito} tienden a suprimir seguridad a favor de la libertad. Si se tiene que dejar una hornacina en la seguridad por luchar por la libertad ¿Quiénes somo nosotros para criticarlo? Y en caso de creemos con la superioridad moral de poder criticar ¿Por qué no criticamos con la misma dureza a todas las webs que comentan los mismos fallos de seguridad? ¿Por qué se aprovechan estos fallos para criticar una idea social influida por la clase política?

Búsqueda de nuevos caminos para evitar toxicidad informativa

Las redes sociales se estaban llenando de propaganda y de toxicidad informativa por ambos lados, así que el grupo independentista buscó nuevos caminos para filtrar noticias que venían de medios cuya intención era manipular a la opinión pública. Un ejemplo es cómo las manifestaciones a favor del referéndum se cortaban en el momento, y una manifestación franquista en Madrid el día de antes de la consulta, nadie quiso mirar ni ponerlo en primera plana en los periódicos, vaya a ser que la gente se de cuenta de lo que está pasando en su queridísimo país.

Con el miedo en el cuerpo de los grupos proreferéndum a ser espiados por el Gobierno español, tomaron camino a la red social Telegram para evitar las noticias sensacionalistas. Aún así, hubo mucha gente que seguía usando los Grupos de Whatsapp.



Hubo mucha confusión pues las redes sociales y servicios de mensajería como Whatsapp seguían repletas con artículos, recogidas de firmas y sobre todo, mentiras sistemáticas. Pero esto parecía que estaba funcionando perfectamente para el Estado español, pues se acercaba la consulta y seguía el debate sobre llevar o no la papeleta de casa.

Así pues, se creo una sociedad virtual hasta que el 30 de septiembre, se anunciaba que era muy posible que la Guardia Civil cortase Internet de toda Cataluña. Hay gente que dice que eso no sería posible, pero es que no les hacía falta cortar Internet, con modificar archivos de resolución DNS para que les llevase a webs que o no existen o no son de la consulta, les bastaría. No corta pero sí que "modifica" Internet.

Y ya por la tarde del 30 de septiembre, parecía que la Guardia Civil había ganado al entrar en el centro de Telecomunicaciones de Cataluña y requisar todo el sistema informático con toda la información sobre la consulta, incluída una base de datos de catalanes en el exterior.

Trabajando por la noche

Pero la gente quería votar y así hicieron todo lo posible por lograr votar si querían permanecer o no en España. Lo que se hizo fue que un grupo de informáticos que no pertenecían al Gobierno pero que eran proreferéndum, realizaron una web que estaría alojada en registrameses.com, alojado en Amazon y con la protegidos con CloudFare. La web lo que hacía es permitir la votación por Internet de forma que el responsable de la mesa de turno introducía tu DNI y se votaba. Aquí ya hubo polémica con esta web, pero eso ya os lo comentaré en la tercera parte de esta serie de entradas, pues entramos en octubre, en el día de la consulta.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...