#Hack5Stelle – Riassunto

Provo per diletto a riassumere la vicenda “Hacking beppegrillo.it/Rousseau”, basandomi su quel che so dai blog e dalle persone che seguo su Twitter.

  • Per scrivere una sequenza temporale degli eventi.
  • Come riferimento di links per chi vuole approfondire.
  • Magari per spiegare a chi non è competente in materia cosa è successo, cercando di usare un linguaggio non tecnico ove possibile.

Premessa: Non ho MAI tentato un hacking, né cercato vulnerabilità attivamente. Tutto quello che dichiaro l’ho semplicemente dedotto da informazioni pubbliche.

Gennaio 2017

Notai che il certificato SSL (l’accesso https://) di beppegrillo.it era scaduto da 5 giorni.
Nessuno si era accorto, quindi nessuno lo usava.
Accedere ad un sito web senza crittografia significa essere esposti a un attacco chiamato MITM (Men-In-The-Middle, ‘Uomo nel mezzo’).
Ad esempio se qualcuno, collegato ad un WiFi di un albergo, digita in un sito web senza https:// una login e password, chiunque ha accesso al router dell’albergo vede e può alterare questi dati in chiaro.

Se andate su http://www.beppegrillo.it/login.php , noterete che ormai qualsiasi browser moderno segnala il problema.

Claudio d’Angelis notò che in realtà l’accesso https:// non funzionava proprio.
https://twitter.com/daw985/status/818212208945545218
E’ quindi certo che nessuno lo usava.

Poi, per curiosità, avevo usato un test online di controllo sicurezza e configurazione di siti protetti, Qualys SSL Labs.
Se volete provare, basta andare qui: https://www.ssllabs.com/ssltest/ e inserire

https://www.beppegrillo.it

L’esito, a gennaio 2017, non solo mostrava una mal-configurazione di SSL (che di per sè non era così grave, tanto non era usato), ma evidenziava che era vulnerabile a un attacco chiamato POODLE.
Ok, impossibile da usare come vettore di attacco essendo SSL non usato. Ma evidenziava che, evidentemente, il server non era più stato aggiornato perlomeno dal 2014.

Paolo Attivissimo segnalò allo staff di Grillo il problema che avevo sollevato:

Inoltre, il webserver era un Apache 2.2.15, molto molto vecchio (2010). Brutto segno.

2 agosto 2017, 11:40 (OTTO mesi dopo).

Evariste Gal0is apre un sito web, chiamato hack5stelle, in cui evidenzia come imporre un limite MASSIMO di 8 caratteri per una password sia RIDICOLO. Ed evidenzia una serie di vulnerabilità di tipo SQL injection. Sono un tipo di vulnerabilità che permettono di leggere arbitrariamente i dati dal database, anche quelli riservati. Altamente probabile che siano anche alterabili.
Non divulga alcun dettaglio su come sfruttare tali vulnerabilità, e dice che ha informato i responsabili del sito web.

E’ in gergo un WhiteHat, un ricercatore che cerca vulnerabilità nei siti web al solo scopo di aiutare.
Ha al suo attivo centinaia di segnalazioni utili, come si evince dal suo profilo su OpenBugBounty.
Perchè lo fa? Per passione. Per aiutare i webmaster. Per difendere gli utenti. Per imparare. Per farsi conoscere, perchè magari un domani possa diventare un lavoro a tempo pieno.
Lo fa gratis o qualcuno lo paga? Gratis. Non diverso dagli sviluppatori di software open-source che usate tutti quanti. Ricordatelo, grazie.

Già inizia a pentirsene poco dopo, ore 23:51

3 agosto 2017, 18:44

L’Associazione Rousseau pubblica sul blog di Beppe Grillo un post intitolato La sicurezza di Rousseau.

Di notevolmente ridicolo scrivono

Sono già state messe in atto tutte le azioni necessarie per impedire il ripetersi di intrusioni informatiche come questa.

(verranno smentiti successivamente)
e

In ogni caso il suo sito è già scomparso così come i suoi account social, segno che le contromisure contro questi reati funzionano e siamo lieti che siano state così tempestive.

(verranno smentiti successivamente)
ma soprattutto attaccano/minacciano Evariste Gal0is:

Valuteremo l’azione legale da intraprendere nei confronti dell’hacker, il cui attacco è assolutamente da condannare, anziché osannare come fanno i giornali.

Minacciare un WhiteHat è assurdo, stupido, gravissimo.
Oltre che ridicolo…


https://twitter.com/evilsocket/status/893827654562050049

Personalmente non mi pare coerente minacciare un WhiteHat e contemporaneamente sostenere progetti come WikiLeaks (cosa pensano che facciano?) o persone come Julian Assange.
Fantastico l’hashtag #solowikileaksvabene di David Puente.

3 agosto 2017, ore 22:40

Su Twitter l’utente @r0gue_0 dichiara di aver l’accesso al server o ai servers da mesi, e inizia a pubblicare dati come dimostrazione.
E’ un BlackHat, “cappello nero”, diciamo ‘un hacker cattivo’. Ma ‘hacker’ è un parolone per questo tizio.
Afferma e dimostra di poter scrivere nel database, oltre a leggerlo.
Insulta il whitehat Evariste Gal0is, colpevole a suo dire di aver attirato l’attenzione sulla disastrosa situazione intaccando i suoi interessi.
Personalmente, penso che r0gue_0 fosse in attesa di un momento politico più favorevole per sfruttare il suo accesso.
In una successiva intervista a Wired rilascerà dichiarazioni importanti come

“Io li dentro ci stavo già, e da molto tempo. Ho dato due esempi di tabelle molto diverse solo per fare capire il lasso di tempo, come che gli host violati erano diversi. Se non era per il vostro amico wannabe, che ha voluto mettere il cappello bianco e provare a diventare famoso, non si veniva a conoscenza nemmeno della mia esistenza. Non avreste mai visto nulla, e io sarei rimasto lì indisturbato a continuare gli affari miei. Per tutto questo casino potete dunque ringraziare lui”.

Non mi soffermo sulla tipologia di dati divulgati, sui singoli tweet o quant’altro di questo stronzo (scusate il francesismo).

r0gue_0 ha anche messo in vendita tutti i dati trafugati, per poco meno di 1000$. Non si sa chi o quante persone han acquistato questi dati.

Confido che prima o poi ci sarà la ciliegina sulla torta: qualcuno li pubblicherà su WikiLeaks, che il M5S tanto apprezza.

Rimando agli articoli di David Puente per altri dettagli sulle gesta di r0gue_0:

Violato Rousseau! Hacker R0gue0 pubblica su Twitter dati prelevati dalla piattaforma del M5S

Le nuove informazioni di R0gue_0 prelevate dalla piattaforma Rousseau: le email della “call to action”

R0gue_0 e il database di Rousseau: Matteo Renzi ha donato 1 milione di euro al M5S? Ma anche no!

Non solo Rousseau, R0gue_0 ha bucato anche BeppeGrillo.it e Il Blog delle Stelle

5 agosto

Evariste Gal0is torna online. Si era preso una pausa perchè non ha gradito la popolarità.

Smentisce il post dell’Associazione Rousseau relativamente alle contromisure:


Condanna il gesto di r0gue_0:


Avverte che i problemi persistono:


E, nonostante le minaccie ricevute, continua il suo operato da whitehat:


A me ha risposto:

Da ammirare.

6 agosto 2017

Di Maio dichiara:

Il problema non siamo noi ma la sicurezza informatica di questo Paese

.

Gloriosa supercazzola.


https://twitter.com/evilsocket/status/894309046144126976

7 agosto 2017

Matteo Flora riassume la vicenda con un video su YouTube:
Attacco a #Rousseau del Movimento 5 Stelle: tutto quello che dovete sapere

8 agosto 2017, ore 12:14

Evariste Gal0is ed Antonio Sanso pubblicano una nuova analisi: #Hack5Stelle – Parte 1: dump e le password.

Scoprono che il software installato è una versione obsoleta di Movable Type, la versione 4.2.

Esistono dei database contenenti l’elenco delle vulnerabilità dei software, ad esempio i CVE.
Normalmente, quando una vulnerabilità nuova viene scoperta, viene segnalata all’autore del software, che può correggerla. Passato tot tempo (generalmente qualche mese), viene resa pubblica (disclosure), a volte anche con istruzioni dettagliate su come sfruttarla.
La disclosure della versione di un software in uso, soprattutto se obsoleto, equivale a un il mio punto debole è qui, se mi colpisci -per di più così- mi fai male.

Scoprono inoltre che le password, laddove non conservate in chiaro, sono facilmente decifrabili a causa di un algoritmo che risale alla preistoria informatica: DES / Crypt.

E’ altamente probabile che l’Associazione Rousseau abbia installato Movable Type tanti anni fa,
l’hanno adattato alle loro esigenze ottenendo di fatto un fork, e ora non possono più aggiornarlo senza rifare tutti gli adattamenti.
E’ un tipico errore di webmaster incompetenti.

8 agosto 2017

Paolo Attivissimo accenna la vicenda: Due parole sulle vulnerabilità di Rousseau

8 agosto 2017

Evariste Gal0is rilascia un’intervista a David Puente: Intervista a Evariste Gal0is: non era un attacco politico e non sono R0gue_0. Segnalate falle anche nel nuovo Rousseau

Scrive un ultimo articolo: #Hack5Stelle – Parte 2: fix che non lo erano..
Si evince che il team tecnico dell’Associazione Rousseau non è in grado di sistemare decentemente neanche i problemi segnalati.
Non sa come sistemarli, quindi hanno improvvisato cercando di tappare le falle senza alcun know-how sull’argomento. Fallendo, ovviamente.
Niente, pare che rivolgersi a un esperto non sia considerato una priorità.

Evariste Gal0is dichiara che non vuol più occuparsi della vicenda:


(e fa bene, imho).

11 agosto

Leggo dal blog di David Puente l’articolo Cosa devono risolvere e rimuovere da Beppegrillo.it per la loro sicurezza che han lasciato un file chiamato mt-check.cgi.

Funziona così: per poter installare il CMS (Content-Management-System), cioè il software ‘motore’ del sito web, han piazzato un file che serve SOLO a verificare se il server è in grado di ospitare il software.
Non per niente la pagina finisce con “You’re ready to go! … Continue with the installation instructions.”.
Qualunque webmaster sa che quel tipo di file DEVE essere cancellato dopo l’installazione.
Perchè contiene dettagli su come il server è configurato e le versioni dei software che ha, in tempo reale.
Non serve a nient’altro. Tempo richiesto per risolvere il problema: un secondo, cancellare quel file.
Come spiegato prima, sono i dettagli che servono per correlare ricerche nei database di vulnerabilità note (CVE in primis).

Nello stesso post, David Puente fa anche notare che la password viene inviata in chiaro via mail in fase di richiesta recupero (molto male!) confermando ulteriormente che usano un software obsoleto.

15 agosto 2017, 09:50

L’Associazione Rousseau pubblica sul blog di Beppe Grillo un post intitolato I sicari informatici non fermeranno il MoVimento 5 Stelle.

Condannano l’operato di R0gue_0. D’accordo.

Confermano che

Purtroppo non sono stati colti in flagrante

e che quindi R0gue_0 ha accesso al server da tempo indeterminato. Ricordo che aveva potere di scrittura nel db.

Di notevolmente ridicolo:

I dati che sono stati divulgati dall’hacker si sono dimostrati comunque privi di fondamento

No. Erano dati personali veri e confermati.

e ovviamente di nuovo un

In questo momento stiamo prendendo tutte le misure necessarie affinché non si ripetano situazioni del genere e siamo al lavoro anche in questo giorno di festa.

Ora, 15 agosto 2017 ore 21:50, mentre scrivo questo post

Il server è ancora vulnerabile al POODLE attack (2014) e monta ancora Apache/2.2.15 (2010). Snapshot su archive.is Test in realtime

Il file mt-check.cgi c’è ancora. Snapshot su archive.is

Personalmente, correlando versioni e report CVE, penso di aver identificato una vulnerabilità di tipo remote-code-execution.
Significa che a mio avviso c’è una vulnerabilità che permette a chiunque la sfrutti di leggere e scrivere qualsiasi dato sul server, lanciare qualsiasi comando, e di installare una back-door, ovvero un accesso secondario segreto che sarà attivo anche se il server verrà sistemato.

Dovrei verificarla per poi segnalarla? L’Associazione Rousseau ha dichiarato che non gradisce.

Inoltre, si risolve automaticamente sistemando un’altro problema già citato in questo articolo, quindi gli basta rivolgersi a qualcuno di competente prima o poi.

Tralascio volutamente ogni considerazione legale sull’operato dell’Associazione Rousseau, non ne capisco abbastanza da permettermi un’opinione.
Ho letto che il Garante della Privacy ha aperto un’istruttoria.

Spero di non aver dimenticato nessun fatto importante, in caso contrario segnalatemelo via Twitter, grazie.

Aggiornamento 16 agosto 2017

Han rimosso finalmente il file mt-check.cgi. Non han colto minimamente cosa avevano sbagliato, perchè il problema persiste in altri files simili.

An alternative approach to so-called WebRTC leaks

Posted on Reddit here: http://redd.it/32d94q

Recently there were a lot of discussions about the WebRTC IP Leak. Almost all of them are talking about a “Security flaw” or treat it as a bug.

However, many articles about the WebRTC [leaks] talk about a solution: disable WebRTC in favorite browser.
Two questions:

  • Is it really a “Security flaw” that needs to be fixed in browsers? Look at browsers bug-reports to understand how many different opinions exist on this.
  • Why the browser can go outside the VPN tunnel? How many app/protocols can do the same things of the WebRTC leak? So, is disabling WebRTC a sufficient solution for those who use a VPN to avoid exposing their ISP IP address or traffic?

I will explain details of the issue. But first, if you are connected to a VPN service right now, try this:

ipdetection.zip (source available here )

or, under Unix try this (try also as root):

for s in `ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'`; do curl --interface $s http://www.clodo.it/projects/whatismyip/; done

Is your real ISP IP leaked?

Details

When a user connects to OpenVPN, the main interface (ethernet, wifi etc) is still available (also to talk with the VPN server itself).
And another network interface is opened (tun/tap).
This is the scope of OpenVPN: create a tunnel.

As a plus, OpenVPN can be configured to push a directive from the server to their client: “redirect-gateway”.
This tells at client-side that ALL traffic needs to be redirected inside the tunnel by default.

Almost all VPN services use a specific option of that directive: “redirect-gateway def1”.
From OpenVPN manual

def1 — Use this flag to override the default gateway by using 0.0.0.0/1 and 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of overriding but not wiping out the original default gateway.

Now, this means that the original 0.0.0.0/0 route are still active, but there are other routes created by OpenVPN that override the original based on precedence.
But 0.0.0.0/0 is a route assigned to the standard interface, while the new 0.0.0.0/1 and 128.0.0.0/1 are assigned to the TUN interface.

In every OS, when a connection/socket is opened, the program can choose a specific network interface that needs to be used.
This is not common, because most applications don’t need that and let the OS use the default network interface.

The program above do exactly this: bind to specific network interface to query an external what is my ip address service.
When binding to the standard interface, the overriding rules of OpenVPN are simply ignored, at least under Windows.

I think browsers do the same thing in WebRTC discovery.

Can a VPN service based on OpenVPN resolve the issue server-side, transparently to their users?

Yes.
Simply don’t use the def1 option in redirect-gateway directive.
Without def1, OpenVPN client removes totally the 0.0.0.0/0 route, and re-creates it at disconnection.

But I don’t recommend this approach: with def1, if the OpenVPN process is terminated, the overriding routes are automatically deleted or unused, and traffic continues to flow over the standard interface.
Without def1, if OpenVPN process is killed/terminated, the user remains without any route for his/her traffic.

For me, a good VPN service needs to use the def1 option, for the final consideration below.

Final consideration

WebRTC IP Leak is not a fault of browsers.

It is not a fault of OpenVPN (that is designed to be a Tunneling software, not an Always hide my traffic software).

It is a fault of users, because they trust the standard OpenVPN client for things out of its scope, or trust a badly-written VPN service client software.

Users need to use a VPN service that has a software addressing this kind of issue, or need to understand how to configure a firewall or a router.

*Disclaimer: *
I’m the author of the client software of a known VPN service. Anyway I don’t cite it in this reddit.