menu di navigazione del network

Software di Whistleblowing Anticorruzione ANAC e Riuso GlobaLeaks


(Giovanni Pellerano) #1

Oggi 15 Gennaio 2019 l’Autorità Nazionale Anticorruzione (ANAC) ha pubblicato l’edizione di GlobaLeaks da loro chiamata OpenWhistleblowing, realizzata a partire dalla edizione Software GlobaLeaks del 2016 versione 2.60.144.

In quanto sviluppatori del software GlobaLeaks, come Centro Hermes, abbiamo effettuato immediatamente una analisi del software pubblicato e rendiamo quì pubblicamente disponibile la nostra Valutazione tecnica dell’edizione GlobaLeaks messa in riuso con nome OpenWhistleblowing da ANAC.

Riteniamo che le modifiche minori di tipo funzionale apportate alla edizione OpenWhistleblowing 1.0.1 di ANAC vadano re-integrate nella più moderna, performante e manutenuta edizione ufficiale di GlobaLeaks 3.6. Difatti la diffusione di una edizione di software basata su componenti tecnologiche non più manutenute comporterebbe un certo aggravio di costi di installazione e manutenzione per la PA, nonché potenziali rischi di cybersecurity.

Ulteriormente, in considerazione delle diverse PA che effettuano progetti di riuso su base GlobaLeaks, pubblichiamo la guida sulle Regole di Riuso per Software di Whistleblowing Anticorruzione GlobaLeaks dove sono indicate le diverse esigenze di compliance nell’operare su GlobaLeaks, in quanto software opensource di terze parti. Non è stata ancora effettuata una analisi di compliance dell’edizione software in riuso da parte di ANAC.

Di seguito condividiamo il risultato sintetico della valutazione tecnica al 15/01/2019

Risultato sintetico della valutazione tecnica

ANAC ha rilasciato in data 15/01/2019 l’edizione GlobaLeaks dal nome OpenWhistleblowing sul repository Github https://github.com/anticorruzione/openwhistleblowing .

Tale edizione è basata sul software GlobaLeaks versione 2.60.144, rilasciato il 14 Marzo 2016.

Lo sviluppo software effettuato dal fornitore di ANAC è basato sull’edizione 2.x, obsoleta, invece che sulla attuale 3.x; in questo modo il software rilasciato da ANAC non gode dei benefici e miglioramenti apportati dalle centinaia di correzioni e nuove funzionalità che trovano spazio nell’edizione 3.x, richiedendo quindi ulteriori adeguamenti con i connessi costi.

L’edizione correntemente manutenuta e diffusa del software GlobaLeaks, è giunta alla edizione 3.6.

GlobaLeaks 3.6 rispetto alla edizione ANAC ha avuto significativi miglioramenti conseguiti in oltre 5 anni uomo di sviluppo software, tecnicamente realizzati attraverso 7357 commit, 911 file cambiati di cui 263.257 righe aggiunte e 33.946 righe rimosse e oltre 202 versioni intermedie rilasciate in cui sono state introdotte oltre 630 funzionalità tra minori, maggiori, e correzioni di irrobustimento.

Tali significativi miglioramenti non sono disponibili nella edizione GlobaLeaks rilasciata da ANAC, in quanto non re-integrata all’interno del supporto software della edizione 3.x .

L’edizione GlobaLeaks rilasciata da ANAC con il nome OpenWhistleblowing presenta le seguenti caratteristiche, dal punto di vista della valutazione tecnica:

  • si basa su una edizione di GlobaLeaks piuttosto vecchia (2.60.144 del 14/03/2016) senza recepire alcuno dei suoi aggiornamenti evolutivi o correttivi;
  • impiega alcune componenti tecnologiche core obsolete, non più mantenute e abbandonate dagli sviluppatori originali, e ciò introduce rischi di sicurezza oltre ad aumentare significativamente i costi di manutenzione;
  • aumenta la complessità e costo di installazione e manutenzione introducendo software terzi come dipendenze funzionali (postgresql, tor2web, apache) andando nella direzione opposta agli obiettivi di design del progetto GlobaLeaks (autocontenimento e semplificazione per installazione, manutenzione e gestione);
  • introduce funzionalità, quali ad esempio la rimozione dei metadati, che vanno a ledere l’integrità dei dati apportati come evidenze documentali dai segnalanti, rendendoli di difficile impiego in giudizio;
  • manca della completa pubblicazione dei codici sorgenti;
  • manca della pubblicazione della documentazione in formato editabile;
  • manca della pubblicazione di tutti gli applicativi software menzionati nel manuale installatore;
  • non è stato effettuato un riuso software secondo quanto determinato da AgID, in particolare orientato alla collaborazione e integrazione delle modifiche nel software opensource di terze parti;
  • aumenta i costi di approvvigionamento hardware, con requisiti esagerati (3 server per 72GB di RAM, 10 CPU core e 600GB di dischi) di un ordine di grandezza superiori rispetto all’edizione software GlobaLeaks 3.6 (1 server con 2GB di RAM, 20GB di disco e 2 core);
  • aumenta i costi di approvvigionamento software, richiede l’uso di sistemi operativi commerciali, Redhat Enterprise Linux Server 7.x, con almeno 3 licenze server per circa 1.000 euro di costi di licenze software;
  • aumenta la superficie di vulnerabilità applicativa, richiede di disabilitare le funzionalità di sicurezza informatica native del sistema operativo (SELinux Sandboxing).

Per approfondimenti, domande, dubbi, elaborazioni e ragionamenti sul tema si può usare tanto il forum quanto condividere la chat pubblica GlobaLeaks nel canale #globaleaks-support-it.


Ing. Giovanni Pellerano - CTO
HERMES - Centro Hermes per la Trasparenza ed i Diritti Umani Digitali


(Alessandro Carloni) #2

Interessante valutazione, ma vorrei chiedere più informazioni sui seguenti punti:

Dove è indicata questa informazione sui requisiti ?
Io ho letto:

sistema operativo RedHat Enterprise Linux o Centos 7.*
100 GB di disco per lo storage di allegati
4 GB RAM (suggeriti 8)

Per carità sono sempre tanti (troppi!) ma non mi torna con i punti citati…


(Fabio (Naif) Pietrosanti) #3

Salve Alessandro,

nel manuale installazione alla pagina 11, capitolo 7, sezione 1 ci sono indicati tali requisiti:
https://github.com/anticorruzione/openwhistleblowing/blob/master/doc/A01.S04.I01_MIG_20171023V1.1.pdf .


Considera che la versione GlobaLeaks 2.x su cui è basato OpenWhistleblowing aveva gravi problemi prestazionali che ci hanno portato a cambiare l’ORM (anche perchè Storm è diventato abbandonware) con SQLAlchemy nonché a fare il refactoring completo delle base dati per introdurre:

  • risolvere in modo strutturale i problemi prestazionali
  • supporto multi-tenancy per istanze virtuali applicative (su un singolo server con 2GB di ram ci tieni su 500-1000 siti di whistleblowing virtuali)
  • supporto nativo multi-database (di default usa SQLite, per modello di auto-contenimento, riduzione dei costi e tempi di deployment, gestione e sicurezza come visione strategica del progetto GlobaLeaks)

Con oltre 5 anni uomo di sviluppo alle spalle rispetto alla versione di GlobaLeaks 2.x su cui si basa OWB nonché alcune migliaia di installazioni in più, personalmente ritengo che ANAC dovrebbe consapevolmente evitare di promuovere l’uso di una base di software non più manutenuta, con tutte queste problematiche documentate ma puntare alla condivisione dell’effort in modo comunitario.

Stiamo lavorando per reintegrare le piccole modifiche funzionali apportate al software in GlobaLeaks 3.6, così da consentire alle PA di continuare ad usare una edizione dove c’è un contributo comunitario diffuso e distribuito.

Ad esempio il Comune di Milano ha fatto sviluppo su base GlobaLeaks, ma con la versione 3.x, interagendo con il team nel tempo e c’è già in atto un percorso di integrazione delle modifiche al fine di avere una versione unica del software, ben manutenuta con uno sforzo collaborativo e comunitario (fra l’altro come richiesto per legge dalle Linee Guida Riuso di Agid, Allegato E sul riuso con software di terze parti).

Inoltre con GlobaLeaks 3.x abbiamo implementato assieme a Transparency International Italia il servizio di Whistleblowing Anticorruzione gratuito WhistleblowingPA a cui ci si può iscrivere gratuitamente su https://www.whistleblowing.it .

WhistleblowingPA è interamente realizzato su base GlobaLeaks 3.6 con codice opensource, così da facilitare la replica e realizzazione di iniziative di Whistleblowing Anticorruzione anche da parte di unioni di comuni, società in-house, regioni e così via dicendo second una logica di “riuso” che integri i le funzionalità di multi-tenancy di GlobaLeaks 3.x (ovvero la possibilità di creare un numero virtualmente illimitato di istanze/siti di whistleblowing su un singolo server fisico).

Se hai bisogno di supporto nell’andare in una direzione (iscrivendo i propri enti al servizio gratuito WhistleblowingPA) o un altra (dotandoti di infrastruttura propria usando l’opensource GlobaLeaks 3.6), possiamo darti supporto pro-bono in chat su https://slack.hermescenter.org sul canale #globaleaks-support-it dove ci sono già molti RPCT nonché IT di enti e in-house che usano il software e si supportano vicendevolmente.

Saluti
Fabio Pietrosanti


(Alessandro Carloni) #4

Grazie della spiegazione: non mi spiego allora la differenza che c’è con quanto presente nel file di README.md


(Giovanni Pellerano) #5

Si concordo nel non capire questa discrepanza, anche perchè seppure piu importanti che nella versione attuale i requisiti di GlobaLeaks 2.60.144 erano estremamente ridotti.

E’ possibile che questa maggiore richiesta in OpenWhislteblowing sia dovuta ad un temporaneo aggiramento di qualche limite prestazionale.
Noto infatti che l’aggiunta che è stata fatta per effetturare la rimozione dei METADATI dagli allegati lo fa trattando i file integralmente in RAM richiedendo quindi un alto quantitativo per la gestione di file di importante dimensione e accessi concorrenti.


(Michele “O Zone” Pinassi) #6

Al di là della bella ed interessante analisi tecnica, mi chiedo per quale motivo l’ANAC abbia sentito la necessità di investire tempo (e presumibilmente anche denaro) nel realizzare una versione alternativa a Globaleaks.


(Fabio (Naif) Pietrosanti) #7

Michele, qui trovi la timeline del percorso che GlobaLeaks ha avuto come interazioni con ANAC https://www.globaleaks.org/it/anticorruzione/anac-e-globaleaks/ inclusivo della spiegazione di quando sia spuntata l’esigenze di fare un bando rispetto alla proposta di andare beta online con un “progetto pilota”.

In pratica il bando, a mio personale avviso, è stato un overkill infrastrutturale per introdurre il supporto a tecnologie legacy usate in casa ANAC (Redhat 6 e Microsoft SQL Server 2008), con un effettivo contributo di sviluppo applicativo molto ridotto (infatti ci sono alcune relativamente piccole funzionalità come cambiamenti) di cui abbiamo scritto qui all’epoca quando partecipando al bando siamo stati pubblicamente critici delle scelte di bando fatte https://www.whistleblowingsolutions.it/globaleaks/bando-anac-anticorruzione-whistleblowing/ .

Nel frattempo, ovviamente la tecnologia di base (ovvero il GlobaLeaks 2.60.144 su cui noi come Centro Hermes gli abbiamo fatto pro-bono molti sviluppi) è andata avanti con quasi 5 anni uomo di sviluppo, che potrai immaginare hanno portato a major refactoring strutturali del software (dettagliati nella relazione tecnica).

Il risultato di fronte a cui ci troviamo è quindi un software di circa 3 anni fa’, non più manutenuto, con alcune modifiche funzionali e alcune macroscopiche modifiche architetturali (supporto RedHat anziché Ubuntu, supporto PostgreSQL anziché SQLite), dove già in GlobaLeaks 3.x c’è il supporto nativo multi-database perché abbiamo cambiato l’ORM Storm (Ora abbandonware) per SQLAlchemy, facendo ulteriormente refactoring della base dati per questo scopo oltre a risolvere i problemi prestazionali di GlobaLeaks 2.x (che non regge bene in condizioni di multi-utenza spinta né con tante segnalazioni a bordo) e introdurre la funzionalità di multi-tenancy, per favorire la nascita di iniziative come WhistleblowingPA https://www.whistleblowing.it per erogare gratuitamente servizi di Whistleblowing.

Già prima che la gara fosse implementata dall’aggiudicatario facemmo un appello ad ANAC, richiedendo un metodo di sviluppo comunitario, che purtroppo non è avvenuto, portandoci alla situazione corrente:
https://www.hermescenter.org/appello-del-centro-hermes-ad-anac-per-la-tecnologia-di-whistleblowing-open-source/

Grossa parte delle indicazioni del nostro appello, benché non siano state seguite nello svolgimento del bando, sono poi divenute parte delle Linee Guida sul Riuso Agid, attualmente obbligatorie secondo il CAD Art. 69 comma 2.

Insomma, è una storia appassionante, il progetto GlobaLeaks va avanti per la sua strada e già migliaia di PA lo usano (sia all’estero che in Italia), ora confido che non appena abbiamo completato la reintegrazione di quella manciata di modifiche funzionali della edizione OWB ANAC, si possa guardare a una dinamica di manutenzione evolutiva comunitaria e collaborativa, senza fork() fatti in questo modo.


(Glauco Rampogna) #8

Come ho gia’ avuto modo di scrivere in passato, usiamo Globaleaks da anni e ho avuto modo di farlo usare ed apprezzare da decine di RPC.

Approfitto di questa analisi tecnica per aggiungere un decimale alla discussione: uno dei motivi che hanno spinto verso l’adozione di questo software risiede anche nella serieta’ con cui viene affrontata la tematica della sicurezza.

Infatti e’ disponibile un Threat Model completo e i report di vari pen test dell’applicazione, che, in tempi di grande attenzione alla Data Protection dopo l’avvento del GDPR, consentono ai Titolari del trattamento di verificare la sicurezza by design e beneficiare di verifiche approfondite di terze parti indipendenti.

Vista la tipologia di dati trattati, sottolinerei la necessità di avere un software continuamente revisionato, con una superficie di attacco quanto più ridotta possibile.
Alla luce di ciò, in questo momento Globaleaks rappresenta la scelta più razionale.


(Glauco Rampogna) #9

Un commento a riguardo: