Software Whistleblowing Anticorruzione di ANAC o GlobaLeaks per legge 179/2017?

Ciao Lorenzo,

sono Giovanni, il responsabile tecnico del progetto GlobaLeaks e da una veloce analisi tecnica del sistema ANAC ti confermo che si tratta di una versione di GlobaLeaks software integralmente coincidente con quella che hai indicato tu, la 2.60.144.

Lo si evince principalmente da due aspetti:
Sulla piattaforma ANAC sono presenti alcune interfacce REST che furono tolte nelle versioni successive per fini di ottimizzazione: ne è un esempio la risorsa /node all’indirizzo https://servizi.anticorruzione.it/segnalazioni/node
Da una analisi del file https://servizi.anticorruzione.it/segnalazioni/js/javascript.js si vede che le differenze (clientside) tra le due versioni sono di poche righe e coincidenti con sole correzioni grafiche.

Rispetto a quella versione di software sono notevoli i passi avanti e le caratteristiche integrate.

Per un dettaglio completo puoi visionare il changelog completo.

Sicuramente la criticità principale fra l’edizione di allora e quella attuale riguarda la complessità di deployment, cioè all’epoca per avere un Tor Onion Service bisognava installare Tor a mano, per avere un Server Web HTTPS bisogna installare e configurare da command line Tor2web acquistando un certificato digitale.

Con GlobaLeaks 3 invece:

  • Tor viene configurato automaticamente tramite la control port usando TxTorCon
  • il Webserver HTTPS è integrato (basato su Python Twisted), senza necessità di installare Tor2web o configurare reverse-proxy applicativi con Apache o Nginx,
  • il certificato digitale si attiva automaticamente usando l’integrazione di Let’sEncrypt con gli ovvi vantaggi di semplificazioni non tanto in termini di costi quanto di automazione.

Inoltre in GlobaLeaks 2 avevamo delle componenti tecniche destinate a fare una brutta fine, in primis l’ORM Storm che non è più mantenuto, ed è stato sostituito con SQLAlchemy, acquisendo così pieno supporto Multi Database (funziona oltre che SQLite anche preliminarmente su MySQL, PostgreSQL e SQLServer 2016).

Sono state poi rimosse componenti non-python3 compatibili come il Webserver cyclone, appoggiandoci nativamente sul motore ad alte prestazioni Python Twisted, garantendo la compatibilità con la prossima Ubuntu 18.04 LTS (Long Term Support).

Tralasciando la quantità infinita di bugfix e di minor features (si vedano i ticket chiusi), la ciliegina sulla torta è la funzionalità multi-tenancy.

GlobaLeaks 3 ha il supporto per creare molteplici siti di whistleblowing virtuali, anche integrandosi con provisioning API, così da consentire a consorzi di enti pubblici, fornitori di servizi cloud, società IT, enti pubblici che ne controllano altri (es: le Regioni che controllano le ASL) di fornire loro con un solo server (e quindi un solo sforzo sistemistico) molteplici siti.

Ovviamente per fare questo è stato fatto un significativo refactoring della base dati, ora interamente generata dall’ORM con SQLAlchemy senza hard-coded SQL, con l’eliminazione di alcuni problemi prestazionali verificatisi in presenza di una grande quantità di segnalazioni.

Grazie poi ai diversi penetration test ricevuti in questi anni è stato migliorato il security footprint del software (li trovi linkati tutti qui, l’ultimo di Gennaio 2018).

Circa le modalità di riuso, condivido che la scelta “alla Barcellona” sia la migliore, ci vorrebbe che ANAC facesse le pull requests necessarie sul nuovo software per integrare le modifiche o pubblicasse le modifiche della vecchia edizione “openwhistleblowing”, noi ce la studiamo e vediamo di derivarne feature/modifiche mantenibili sulla nuova edizione.

Ai fini del riuso, è in generale importante che non vada in giro una edizione software vecchia più di 2 anni, quindi di difficile manutenzione sia dal punto di vista funzionale che di sicurezza, ma che sia allineata e quindi integrata nella versione principale comunitaria.

Ing. Giovanni Pellerano

1 Mi Piace