Perizia CTP stragiudiziale effettuata per un’associazione di Roma

L’associazione XXXX incarica la Web Agency YYYY di realizzare il suo sito web ufficiale. Dopo un certo periodo di tempo il presidente dell\’associazione si accorge che il sito non registra più le iscrizioni. La web agency attribuisce il problema a un terzo amministratore comparso nell\’elenco utenti. In realtà, come risulterà dalla nostra indagine, il malfunzionamento è causato da una cattiva gestione degli aggiornamenti dei plugin di WordPress.

——————————————————————————————————————–

Su incarico del Dott. Pinco per l’Associazione XXXX, rappresentata dall\’Avv. Tizio , mi è stato chiesto di analizzare quanto avvenuto sul sito internet XXXX.it

A seguito dell\’indagine effettuata riporto le seguenti constatazioni:\r\n\r\n

PREMESSA

L’Associazione XXXX è titolare del dominio XXXX.it sul quale insiste un sito realizzato con WordPress, software che consente di creare blog facilmente aggiornabili in tempo reale, tramite un pannello di controllo gestito da un utente amministratore (admin).

Il sito in questione è stato affidato in gestione e manutenzione alla web agency YYYY, che è quindi incaricata di aggiornare le sue pagine (inserendo, modificando o eliminando i contenuti testuali e grafici su indicazione del cliente), ma anche di fornire tutto il necessario affinché il sito stesso svolga efficientemente tutte le funzioni per le quali è stato progettato.

XXXX.it infatti, non è solo l’organo divulgativo dell’associazione, ma ha il prezioso compito di raccogliere, tramite un’apposita pagina denominata “Diventa un associato” (presso l’URL http://www.XXX.it/wp-login.php?action=register) le richieste di adesione all’associazione stessa. La pagina in questione è dotata di un form di raccolta dati, che riempito dai navigatori, viene salvato nel database Mysql di WordPress. Il cliente può dunque, tramite il pannello di controllo, consultare le richieste di iscrizione, registrare i dati personali forniti dagli aspiranti associati ed eventualmente contattarli.

Risulta quindi evidente la straordinaria importanza e potenzialità che hanno il sito e in particolare questa pagina per l\’attività dell\’Associazione XXXX.

In data 2 Aprile 2015 il Dott. Pinco, presidente dell’associazione, ha riscontrato che tutte le richieste di adesione avvenute dal 7 Maggio 2013 fino ad oggi sono inspiegabilmente prive di gran parte dei dati personali dei sottoscrittori. Ha immediatamente chiesto spiegazioni via mail al Sig. Pallo, titolare dell’azienda YYYY (all.1), il quale si è dichiarato ignaro dell’accaduto, ipotizzando l’intervento di un terzo ignoto e abusivo amministratore, identificato tra gli utenti già registrati in tale zzzz@zzzz.it (trattasi di nickname).

ANALISI

Occorre precisare che il pacchetto WordPress viene rilasciato e reso scaricabile completo di alcune funzioni di default, tra queste è presente quella della registrazione utenti, che avviene di norma presso l’URL www.nomedominio/wp-login.php?action=register\r\n

Il form previsto in questa pagina però, comprende soltanto 2 campi: Nome utente e e-mail. L’inserimento di questi due dati comporta poi l’invio all’utente tramite posta elettronica di una password.

Per poter soddisfare l\’esigenza del cliente di raccogliere più dati dei propri potenziali associati, il webmaster, in fase di realizzazione del sito, ha avuto la necessità di aggiungere altri campi al form fornito dagli sviluppatori della piattaforma. I campi necessari sono quelli attualmente visibili presso la già citata pagina “Diventa un associato”, ovvero: nome, cognome, data di nascita, nazione, regione, indirizzo, comune, cap, provincia, accetta regolamento, accetta privacy. Per poterli aggiungere il webmaster è ricorso a un cosiddetto “plugin”.

WordPress è supportato da una comunità di sviluppatori che, spesso secondo una logica di volontariato, scrivono porzioni di codice e software che creano nuove funzioni o migliorano quelle già presenti. Detti plugin sono facilmente scaricabili dai siti dedicati a WordPress o da quelli degli stessi sviluppatori, spesso in modo gratuito.

La web agency YYYY ha dunque deciso di ricorrere a una di queste soluzioni reperibili in rete (avrebbe potuto anche decidere di modificare il codice a mano) e, per modificare il modulo di registrazione di default, ha scelto un plugin chiamato “Register Sempronio”.

La prova evidente è nel codice sorgente, reperibile da un qualsiasi browser, della già citata pagina http://www.XXXX.it/wp-login.php?action=register (all.2, linea 77 e seguenti – nello stralcio che segue evidenzio in grassetto il nome del plugin):

————————————————————————————————————–

<!– required plugins –>\r\n

<script type=\”text/javascript\” src=\”http://www.XXXX.it/wp-content/plugins/register-sempronio/datepicker/date.js\”></script>

<!–[if IE]><script type=\”text/javascript\” src=\”http://www.XXXX.it/wp-content/plugins/register-sempronio/datepicker/jquery.bgiframe.js\”></script><![endif]–>

<!– jquery.datePicker.js –>

<script type=\”text/javascript\” src=\”http://www.XXXX.it/wp-content/plugins/register-sempronio/datepicker/jquery.datePicker.js\”></script>

<link href=\”http://www.XXXX.it/wp-content/plugins/register-sempronio/datepicker/datePicker.css ecc. ecc. …

————————————————————————————————————–

Lo script register-sempronio come si vede è richiamato più volte nel codice.

Nello stesso modo lo script è presente anche nella pagina del pannello amministrativo della sezione in cui vengono elencati i plugin (all.3), all’indirizzo http://www.XXXX.it/wp-admin/plugins.php

Lo script viene indicato come attivo, quindi, come già evidenziato, nel momento in cui redigo questo documento è in uso sul sito.

Presso l’URL http://www.XXXX.it/wp-admin/options-general.php?page=register-plus (allegati 4a, 4b, 4c, 4d) possiamo vedere il pannello di controllo tramite il quale YYYY ha impostato tutti i valori del modulo di associazione con i campi che mancavano alla pagina di registrazione di default di WordPress.

E’ necessario sottolineare fortemente che l\’uso di plugins da parte di un webmaster necessita di un costante e scrupoloso impegno nell’aggiornare gli script che imposta e decide di utilizzare.

Nel malaugurato caso questo impegno non venisse onorato con attenzione, i danni per il cliente potrebbero divenire, come nel caso in esame, seri e ingenti. Infatti i plugins richiedono un aggiornamento periodico a discrezione dei loro creatori, che viene prontamente segnalato all\’interno del pannello di amministrazione di WordPress; tant’è vero che al momento della stesura del presente risultano in attesa di aggiornamento altri 3 plugins (!), indicati con un pallino rosso nella colonna di sinistra e con una striscia rosa nella sezione apposita della pagina (allegati 3, 5 e 6).

Un plugin non aggiornato è estremamente pericoloso per la sicurezza di un sito. Ogni aggiornamento viene rilasciato per riparare bug e errori di programmazione, oppure come necessaria evoluzione di un codice divenuto nel tempo obsoleto.

Basti pensare che alcuni fornitori di hosting avvisano i propri clienti quando i loro script sono da aggiornare, proprio per evitare che tramite questi avvengano attacchi o violazioni sui loro server.

In tutti i casi la perdita o il danneggiamento dei dati, il cattivo funzionamento di intere parti di un sito web sono tra le conseguenze più comuni della trascuratezza negli aggiornamenti.

Tralasciando dunque il fatto che nel momento in cui scrivo sono 3 gli script non aggiornati, prendiamo in esame il plugin che sottende alla raccolta dei dati degli associati, il più importante per gli interessi dell\’Associazione XXXX.

Nel pannello plugin non si notano a prima vista anomalie, ma una più attenta indagine ci rivela che YYYY ha fornito al cliente un plugin non solo non aggiornato, ma non più aggiornabile, in quanto lo sviluppo dello stesso è stato abbandonato dal suo creatore, già nel lontano Settembre 2008, come risulta nella directory ufficiale di WordPress all’URL https://wordpress.org/plugins/register-sempronio/

Risulta abbastanza chiaro dal testo della pagina citata che l‘ultima versione del plugin è la 3.5.1, proprio quella attualmente installata sul sito XXXX.it

E’ evidenziato che l\’autore del plugin (nickname Caio) non è più operativo, tant’è che ancora oggi il suo sito risulta non più visibile (caio.com).

La pagina di wordpress.org ci informa altresì che l\’evoluzione di quel plugin del 2008 è oggi un altro plugin denominato Register Semproniox, che non contiene più le falle e i bug che erano stati riscontrati nel suo antenato Register Sempronio (“Register Sempronio was abandoned by caio sometime after September, 2008 following the release of Register Sempronio 3.5.1. As of September, 2009 caio’s website was undergoing maintenance. Several bugs had been reported to the Register Sempronio plugin forum since that time, to resolve these bugs and continue development radiok forked the project.”).

Alla luce di questa indagine risulta abbastanza chiaro il motivo per cui improvvisamente l’Associazione XXXX ha improvvisamente smesso di ricevere i dati dei potenziali sottoscrittori. Un plugin obsoleto è inadeguato e instabile. Può essere installato sul wordpress ma non da alcuna garanzia di continuità dell’esercizio delle proprie funzioni. Non è necessario alcun intervento “di terza parte” a causare la non ricezione dei dati dei potenziali aderenti all\’associazione, anzi, la comparsa tra gli utenti di un terzo amministratore sconosciuto, non è che la riprova della poco accorta installazione di questo script. E’ ovvio che con l’obsolescenza la sicurezza ne risente e le violazioni diventano non solo possibili, ma prevedibili. Quand’anche fosse zzzz@zzzz.it il responsabile della scomparsa dei dati, la sua presenza tra gli utenti è diretta conseguenza degli effetti di un form gestito tramite un plugin non adeguato.

YYYY peraltro prende coscienza del malfunzionamento dello script, dopo la mail del 2 aprile 2015 del Dott. Pinco e si attiva per rendere obbligatori durante la compilazione quei campi del form destinati proprio alla raccolta dei dati fondamentali all’associazione per gestire le richieste di adesione degli utenti.

A prescindere dunque dalla presenza del terzo misterioso amministratore è molto probabile che i potenziali aderenti, dal 2013 a oggi, abbiano senz’altro riempito il form presente nella pagina “Diventa associato”, ma i dati a causa del plugin obsoleto e difettoso non siano mai giunti nel database Mysql del sito e dunque neanche nel pannello di amministrazione.

CONCLUSIONI

Come evidenziato ci troviamo di fronte a un sito che non è stato e non è seguito con continuità e diligenza, tant’è vero che anche altri plugins sono attualmente da aggiornare.

L’Associazione Italiana XXXX non è intervenuta sul sito in alcun modo, per cui non può avere responsabilità di nessuna sorta, così come l’aggiornamento di WordPress e dei suoi componenti non può spettare certamente all’hoster.

Che vi sia stata una violazione da parte di un presunto malfattore denominato zzzz@zzzz.it, o che i dati degli utenti non siano giunti in archivio a causa del plugin obsoleto e del malfunzionamento del sistema che prevede campi obbligatori nel form, la responsabilità è comunque senza dubbio di YYYY, che ha installato uno script non più aggiornato dal 2008 senza preoccuparsi di sostituirlo con un altro più evoluto e ha tardato e tarda tuttora a effettuare gli altri update richiesti dal sistema nella sezione plugin.