Il 31 maggio si è tenuto il seminario ONIF (Osservatorio Nazionale Informatica Forense) a Firenze, intitolato Orizzonte 2020 — Informatica Forense a supporto di Autorità Giudiziaria, Studi Legali, Aziende, Forze dell’Ordine e Privati.
In quell’occasione, ho voluto proporre un intervento riguardante il tampering dei messaggi WhatsApp, con alcune osservazioni sul rilevamento di queste manomissioni e le eventuali conseguenze pratiche. Lo scopo non era certo quello di dichiarare “inammissibile” in tribunale qualsiasi tipo di conversazione WhatsApp, ma solo porre alcune riflessioni sul significato e l’affidabilità che si dà a questo tipo di evidenze.
Nell’informatica forense è sempre utile interrogarsi su come potrebbero agire i malintenzionati per alterare o fabbricare prove digitali fasulle. Questo ci aiuta a ragionare su ciò che analizziamo e considerare tutto quanto con spirito critico.
Durante il talk Conseguenze e rilevamento del tampering sui messaggi WhatsApp, ho proposto due esperimenti per cercare di capire se fosse possibile:
modificare il testo di un messaggio ricevuto da un’altra persona, a vantaggio del destinatario
creare un messaggio finto, mai realmente ricevuto, e inserirlo nel proprio telefono in una conversazione con un’altra persona
Entrambi gli esperimenti sono stati effettuati sul database SQLite delle chat, trasferito su un dispositivo di lavoro tramite backup Google. Il trasferimento ci permette di lavorare su un dispositivo sottoposto a rooting anche quando lo smartphone originale non è “sbloccato”.
La modifica di un messaggio esistente è relativamente semplice, in quanto risulta sufficiente cercare il testo originale, modificarlo e salvare. Per quanto riguarda la creazione di un messaggio fasullo, essa richiede invece più attenzione. È necessario modificare gli id di tutti i messaggi successivi affinché non venga rilevata la manomissione.
In ogni caso, con un po’ di precisione e perseveranza, un malintenzionato potrebbe alterare i messaggi nelle proprie chat WhatsApp senza lasciare tracce visibili, per esempio inserendo illecitamente finti messaggi di minaccia insinuando poi di averli davvero ricevuti.
Maggiori dettagli sui procedimenti accennati sono presentati nel video dell’intervento disponibile su YouTube, nonché nelle slide che potete scaricare qui sotto.
Nella parte finale del video esprimevo stupore sul fatto che il mio contatto non avesse visualizzato notifiche sul codice di sicurezza cambiato. Due partecipanti al convegno mi hanno fatto notare come WhatsApp tenga disattivate queste notifiche, come impostazione di default. Li ringrazio per avermi chiarito questo dettaglio, che mi era totalmente sfuggito.
L’associazione ONIF (Osservatorio Nazionale Informatica Forense) ha pubblicato il programma del convegno Orizzonte 2020 — Informatica Forense a supporto di Autorità Giudiziaria, Studi Legali, Aziende, Forze dell’Ordine e Privati. Il seminario si terrà il 31 maggio a Firenze, presso la Sala Verde di Palazzo Incontri, Via de Pucci 1, 50122 Firenze.
L’agenda è ricca di interventi molto interessanti, sia sul piano tecnico-scientifico che su quello legislativo. Questo è il programma completo:
9:00 — Registrazione
9:15 — Apertura lavori Banca Intesa Sanpaolo, Fondazione Forense di Firenze, Dott. Nanni Bassetti, Segretario Nazionale ONIF
9:30 — Le nuove regole e la revisione dell’albo CTU del Tribunale di Firenze Ufficio di Presidenza del Tribunale di Firenze
10:00 — Il Netherlands Register of Court Experts (NRGD) Dott. Mattia Epifani
10:30 — Legge 48/2008, attesa quanto ignorata: dieci anni di casi reali Ing. Paolo Reale, Avv. Elisabetta Guarnieri
11:00 — Break
11:20 — Analisi di dispositivi mobile: stato attuale, integrazione con il cloud e difficoltà future Ing. Michele Vitiello, Dott. Paolo Dal Checco
11:40 — Rilevamento e conseguenze delle manomissioni sui messaggi WhatsApp Dott. Andrea Lazzarotto
12:00 — Digital Forensics Data Breach: perché gestire la violazione dei dati in maniera forense Dott. Alessandro Fiorenzi
12:20 — Immagini e video digitali come fonte di prova Dott. Massimo luliani
12:40 — Saluti e chiusura
Per partecipare all’evento è necessario procedere all’iscrizione gratuita sulla piattaforma EventBrite, facendo click sul seguente bottone.
Il 5 e 6 marzo a Londra si è svolta la Forensics Europe Expo 2019, un evento focalizzato sulle analisi scientifiche, la scena del crimine, le attrezzature da laboratorio e la digital forensics. La manifestazione ha fatto parte della più ampia cornice della UK Security Week, nella quale erano presenti anche altre expo riguardanti la sicurezza e l’anti-terrorismo.
Entrambe le giornate sono state caratterizzate da un fitto programma di seminari, la maggior parte dei quali riguardanti l’informatica forense. Rimaneva perciò poco tempo per visitare gli stand degli espositori, ma sono comunque soddisfatto perché ho assistito a quasi tutti gli interventi e sono riuscito a dare un’occhiata ai vari padiglioni.
La mattina di martedì è cominciata in grande stile, con dei controlli di sicurezza analoghi a quelli di un aeroporto. Nonostante la puntualità dei partecipanti, la fila per la scansione a raggi X ha fatto perdere a gran parte del pubblico quasi tutto l’intervento di Stuart Hutchinson riguardante l’analisi di partizioni APFS. È stato un vero peccato.
Tanya Pankova ha affrontato una delle applicazioni più “succulente” in ambito forense, con il talk WhatsApp Forensics: evidence hide-and-seek. Tra gli spunti più interessanti spiccano il fatto che i file multimediali nei backup sul cloud non sono criptati, la possibilità di usare il token WhatsApp per decifrare qualsiasi backup associato a uno specifico numero e l’estrazione delle chat sfruttando il QR-code di WhatsApp Web.
I droni stanno aumentando di popolarità, tanto da essere stati oggetto di due interventi diversi, rispettivamente di Harsh Behl e Paul Baxter. Questi apparecchi ricadono nella categoria dei dispositivi mobili e contengono soprattutto file multimediali e tracciati GPS in formato DAT. L’acquisizione molto spesso si rivela la parte più semplice, mentre l’analisi dei dati richiede maggiore impegno.
David Spreadborough di Amped ha illustrato le problematiche che gli agenti di polizia si trovano spesso ad affrontare quando devono analizzare i filmati delle telecamere di videosorveglianza. Nella maggior parte dei casi non servono strumenti avanzati, ma l’obiettivo essenziale è decodificare agevolmente i video, effettuare semplici operazioni (ritaglio, zoom, deinterlacciamento) ed esportare dei fotogrammi.
Al pomeriggio Dusan Kozusnik ha presentato un intervento dal titolo Advanced phone forensics – unlocking phones and getting maximum evidence, fornendo una panoramica generale sull’analisi forense degli smartphone. Dopo aver affrontato una carrellata di tecniche avanzate di accesso ai dati, ha concluso con uno spunto davvero interessante: dopo l’acquisizione, la vera sfida è l’interpretazione dei dati racchiusi nelle app, incluse quelle meno comuni.
Le operazioni di acquisizione forense devono comunque essere svolte in modo corretto, per questo Oleg Afonin le ha affrontate nel talk iOS Forensics: from logical acquisition to cloud extraction sottolineando in particolare cosa (non) bisogna fare quando si sequestra un dispositivo iOS.
Alessandro Di Carlo di BIT4LAW ha proposto un breve intervento intitolato Forensic readiness and digital forensics evidence in the Italian court, focalizzandosi in particolare sulle peculiarità del sistema giudiziario italiano. Nello specifico, la riproducibilità scientifica della prova assume un’importanza assoluta mentre non trovano spazio le testimonianze degli expert witness nel modo in cui si svolgono nei sistemi anglosassoni.
David Toy ha proposto una tecnica per la ricerca di specifici elementi di “contrabbando” basata su un hashing statistico dei blocchi, fornendo tempi di risposta molto più veloci rispetto alle classiche ricerche che sfruttano gli hash di interi file. Infine, Paola Pietrobon di SecureCube ha concluso la giornata con un approfondimento relativo al funzionamento delle celle e all’analisi dei tabulati telefonici.
La giornata di mercoledì è stata dedicata in gran parte al workshop di DigForAsp (Digital forensics: evidence analysis via intelligent systems and practices), un progetto scientifico finanziato dal programma Horizon 2020 dell’Unione Europea. L’agenda è stata ricca di interventi molto interessanti e a contenuto veramente informatico.
I talk si rivolgevano pertanto a un pubblico con almeno alcune conoscenze matematiche di livello universitario, al fine di presentare il lavoro dei ricercatori presenti. Questo mi ha lasciato perplesso: a mio parere i contenuti scientifici erano molto validi ma il format non si è rivelato ottimale. I minuti disponibili per ogni intervento erano pochi e venivano spesi per presentare frettolosamente la parte teorica e matematica, relegando le applicazioni in ambito di informatica forense a brevi cenni che avrebbero meritato più spazio.
Nel complesso ho apprezzato molto questo evento e c’è stata anche la possibilità di rivedere alcuni amici, nonché scambiare due chiacchiere con gli espositori, compresi alcuni membri delle tre aziende italiane presenti. Se volete saperne di più sul contenuto della manifestazione potete trovare qui la lista completa dei seminari.
A partire da quest’anno, finalmente, è stata introdotto l’utilizzo della fatturazione elettronica verso tutti. Avendo lavorato allo sviluppo e l’implementazione di tutte le soluzioni software necessarie per un mio cliente (che gestisce uno studio di commercialisti), ho potuto vedere come molte aziende sono andate in panico per quella che è in realtà una novità bella, utile ed ecologica.
Ovviamente il formato delle fatture elettroniche è documentato, aperto e standard, per consentire a tutti quanti di creare software che permetta di generare fatture elettroniche, nonché visualizzare e importare quelle prodotte da altri. Esistono anche diversi siti web che forniscono un servizio di visualizzatore online per fatture elettroniche.
Una caratteristica interessante della fattura elettronica è il fatto che il formato consente l’inserimento di allegati, tramite l’uso di specifici tag XML e la codifica in base64 del documento allegato. Molti gestionali usano questa possibilità per inserire una rappresentazione in PDF dentro alla fattura elettronica XML. Si tratta della vecchia fattura “cartacea” digitale, più semplice da leggere ma senza valore legale.
Questo si traduce, dentro al file XML, in un codice simile a questo:
Questo esempio può sembrare artificiale, ma in realtà la rappresentazione in base64 scritta qui sopra contiene un vero file PDF, con una sola pagina bianca completamente vuota in formato Letter. Naturalmente un documento con del testo occuperebbe più spazio.
Come potete notare, viene anche indicato il nome del file allegato.
I visualizzatori online
Perché vi ho spiegato tutti questi dettagli sugli allegati alle fatture elettroniche? È presto detto: mi era stato chiesto di cercare un visualizzatore che potesse mostrare agevolmente gli allegati. Tra i primi che ho trovato ce n’erano due:
Provando entrambi i servizi con una fattura contenente allegati, ho potuto verificare che tutti e due i siti (scritti in PHP) funzionavano nello stesso modo:
L’utente carica un file XML
Il sito lo riceve e ne crea una copia in una directory temporanea
Il sito controlla la presenza di eventuali allegati, se presenti estrae anch’essi con il nome originale
All’utente viene permesso di visualizzare graficamente il contenuto della fattura, con i link agli eventuali allegati
Nel caso in cui leggere il punto 3 non vi abbia fatti trasalire, sentendo un forte brivido corrervi lungo la schiena, posso dirvi che mi auguro non lavoriate nell’industria dello sviluppo software. Se invece lo fate, vi chiedo di rileggerlo un paio di volte.
La vulnerabilità
Permettere ad un utente di caricare dei file non è di per sé pericoloso, posto che vengano prese le misure di sicurezza necessarie. Tuttavia i siti analizzati effettuavano dei controlli sulla fattura XML ma non sugli allegati. Questo significa che era possibile creare una fattura (vera o finta, non ha importanza) con allegato un file con estensione PHP, il linguaggio più comunemente usato per programmare siti web.
I siti stessi estraevano i file PHP dagli allegati e li copiavano nella rispettiva directory temporanea, fornendone poi l’URL all’utente. Al malintenzionato di turno sarebbe bastato quindi inserire del codice malevolo per poi effettuare vari tipi di operazioni.
Per fare un test rivelatore ma innocuo, ho creato una fattura la cui sezione degli allegati è la seguente:
Potete visualizzare il documento completo cliccando qui. Il contenuto codificato corrisponde al seguente programma:
<?php phpinfo();
Si tratta di uno script inerte, che non arreca nessun tipo di danno al server sul quale viene eseguito, ma mostra soltanto le informazioni sulla versione del software installato. Perciò consente in modo semplice di verificare se il codice PHP gira correttamente.
Entrambi i siti summenzionati hanno accettato senza problemi la mia fattura emessa da Paperino a Zio Paperone, estraendo l’allegato in PHP e fornendone l’URL. Dagli screenshot potete vedere chiaramente che il codice veniva eseguito:
In realtà, pur avendo eseguito un codice assolutamente innocuo e privo di conseguenze, se io fossi stato un malintenzionato avrei potenzialmente potuto fare molto peggio. Per esempio, un attaccante avrebbe potuto decidere di caricare un file manager in PHP come questo su uno dei siti e usarlo per:
Modificare il visualizzatore di fatture affinché salvasse una copia di ogni file caricato
Alterare la pagina di login, in modo che le credenziali inserite dagli utenti finissero nelle mani sbagliate
Creare pagine in una posizione qualsiasi del sito e usarle per una campagna di phishing
Cancellare completamente tutto il sito web
No, non sto esagerando.
Conclusione
Quando si sviluppa del software, specialmente le applicazioni web esposte all’utilizzo indiscriminato di migliaia di utenti, prestare la massima attenzione alla sicurezza è assolutamente imprescindibile. In questo caso sussisteva un rischio per i dati caricati dagli utenti, nonché per i contenuti stessi del sito web che avrebbero potuto essere alterati o eliminati.
Il rischio dato dalla possibilità di upload di file da parte degli utenti si può eliminare in diversi modi:
Inserendo una whitelist di estensioni consentite (ad esempio PDF, JPG)
Disattivando l’esecuzione degli script nella directory di destinazione degli upload, in tal caso visitare un file PHP avrebbe mostrato il codice senza eseguirlo
Nel caso degli allegati di fatture, optando per non estrarli e ripresentarli all’utente tramite data URL (non tutti i formati sono consentiti, ma quelli ai file PDF sì)
Ovviamente i gestori di entrambi i siti web sono stati preventimente informati del problema ed è stato dato loro modo di correggerlo prima che questo articolo venisse pubblicato. L’autore di AmministrazioniComunali.it ha risposto con estrema prontezza comunicandomi di aver chiuso la falla.
Da quanto ho potuto vedere, tutti e due i siti hanno optato per la whitelist, che è un’ottima soluzione.
Come considerazione finale, aggiungo che prima di scrivere questo post ho verificato che anche Ser.Val. ha risolto la falla segnalata, anche se non avevo ricevuto risposta. Risulta degno di nota il fatto che sul loro server la pagina di informazioni mostrava la presenza di PHP versione 5.6, che è quantomeno bizzarro. Come avevo già avuto modo di commentare su Facebook, PHP 5.6 è una versione fuori supporto dal 31 dicembre 2018 e sarebbe bene migrare prontamente ad una versione più recente, nello specifico PHP 7.2 o 7.3.
A partire dal 2019, circa il 62 percento dei siti web girerà su una versione di PHP fuori supporto, cioè il ramo 5.x. Nonostante questo, ancora oggi capita di trovare servizi di hosting che offrono PHP 5.
So che è assurdo, ma è così. Mi capita di vederne spesso anche per lavoro.
È assolutamente fondamentale che chi si occupa di sviluppo web, nonché chiunque gestisce un sito anche a scopo amatoriale, prenda sul serio l’importanza della sicurezza informatica.
11 gennaio 2019: scorgo la presenza di una potenziale vulnerabilità
13 gennaio 2019: notifico i gestori dei due siti web coinvolti
14 gennaio 2019: AmministrazioniComunali.it risponde confermando di aver risolto il problema
16 gennaio 2019: mi accorgo che anche Ser.Val. ha modificato il sito, senza però rispondere
20 gennaio 2019: pubblico questo articolo
22 gennaio 2019: Ser.Val. risponde confermando di aver risolto il problema ed effettuato una verifica interna per verificare eventuali data breach, ai sensi del GDPR
Aggiornamento del 22 gennaio 2019: Ser.Val. ha risposto alla mia segnalazione dopo la pubblicazione di questo post, ringraziandomi e descrivendo le contromisure che hanno adottato. Il contenuto del post è stato modificato per tenere conto di questa risposta.
Il team di ESC ha fatto come sempre uno straordinario lavoro con i video dei talk, che trovate nel canale YouTube ufficiale (alcuni sono ancora in fase di montaggio).
Il mio intervento verteva sul lavoro svolto per una delle principali distribuzioni Linux in ambito di informatica forense:
CAINE è una delle distribuzioni Linux per l’informatica forense più usate al mondo. Analogamente ad altri progetti simili, l’attuale metodo di sviluppo comporta numerosi step non automatizzati. Molte delle personalizzazioni presenti nella distribuzione sono realizzate a mano, rendendo difficile tenerne traccia e valutare eventuali correzioni di bug o miglioramenti nella procedura. Abel (Automated Build Environment Lab) è un progetto che mira a produrre le nuove versioni di CAINE in modo totalmente automatizzato, tracciabile e peer-reviewed, con un ambiente di build omogeneo basato su Vagrant e numerosi script che applicano tutte le modifiche necessarie.
Lo sviluppo di Abel non è totalmente terminato, in quanto non siamo riusciti a convertire proprio tutti i passaggi di installazione in tempo per la versione 10 di CAINE. Tuttavia la struttura base è completa e infatti al talk ho parlato principalmente di quella. 🙂 Qui potete vedere la slide che descrive com’è fatto Abel:
Struttura di Abel
Questo è il video su YouTube, con un audio di ottima qualità… peccato soltanto per alcuni riferimenti che non sono stati colti da una parte dell’audience. Forse non c’erano abbastanza marshmallow in sala. 😉
Clicca qui per mostrare contenuto da YouTube. (leggi la privacy policy del servizio)
Le slide sono disponibili su SlideShare (cliccate qui per il PDF):
Clicca qui per mostrare contenuto da SlideShare. (leggi la privacy policy del servizio)
Come già saprete, il 27 ottobre si è tenuto in tutta Italia il Linux Day 2018 e su YouTube potete trovare tutti i talk dell’edizione di Vicenza. Il mio intervento è stato relativo al reverse engineering di dispositivi IoT, che è risultato un argomento abbastanza apprezzato dai numerosi studenti dell’ITIS presenti tra il pubblico.
Di seguito trovate il video, così come disponibile su YouTube. Purtroppo ci sono stati dei problemi di acustica dovuti alla forma piuttosto bizzarra dell’edificio: un unico locale che doveva contenere tutto l’evento. Quindi l’audio non è ottimale, però almeno le parole si capiscono bene… portate pazienza. 🙂
Clicca qui per mostrare contenuto da YouTube. (leggi la privacy policy del servizio)
Le slide sono disponibili su Slideshare e le potete scaricare in PDF cliccando qui.
Clicca qui per mostrare contenuto da SlideShare. (leggi la privacy policy del servizio)
Vi ricordo infine che posso lavorare all’analisi di altri dispositivi e applicazioni IoT (e non solo). Per discutere eventuali progetti o collaborazioni potete utilizzare la mia pagina contatti.
Ottobre è il mese che vede protagonista il Linux Day, la principale iniziativa italiana per conoscere ed approfondire Linux ed il software libero. Dal 2001 in tutta Italia si possono trovare vari eventi locali con talk, workshop, spazi per l’assistenza tecnica e dimostrazioni pratiche di software e hardware libero.
L’argomento di quest’anno è World Wild Web. Come socio del Gruppo Utenti GNU/Linux di Vicenza parteciperò proponendo un talk riguardante i dispositivi IoT (Internet of Things) perché in effetti non dobbiamo tenere d’occhio solo il Web, ma anche Internet e tutti gli aggeggi che vengono messi in rete. 😉
Il talk sarà di argomento lievemente tecnico:
Reverse Engineering per dispositivi IoT
Le nostre case sono sempre più popolate da una moltitudine di dispositivi connessi alla rete, che comunicano in vari modi e possono essere comandati tramite smartphone. Ma cosa si può fare se si vuole capirne il funzionamento e integrarli nel proprio software? Come caso di studio prenderemo in considerazione una relay board con un breve guida e una misteriosa app per Android, entrambe in cinese. Analizzeremo il tutto per svelare il protocollo di comunicazione e riuscire comandare i relay.
Ovviamente ci saranno anche molti altri contenuti interessanti: un talk su Odoo, uno sulle criptovalute, un workshop sull’open hardware e la sala maker sempre aperta.
Per tutti i dettagli vi rimando alla pagina del Linux Day 2018 sul sito del LUG Vicenza. L’ingresso è libero e gratuito, perciò non mancate!
Questo argomento ormai sta diventando una vera e propria saga. 😀 Dopo aver parlato di Repubblica e La Stampa, ecco l’ennesimo quotidiano il cui paywall (ovvero il blocco alle sezioni per abbonati) permetteva a chiunque di leggere gli articoli a pagamento, senza nemmeno effettuare un login.
Nel mio precedente articolo ho scritto:
una mancanza del genere solitamente è l’eccezione, non la regola.
Be’, temo che stia diventando la regola, anche se stavolta il finale è diverso. In questo caso ho scoperto il problema dopo che un amico aveva linkato una notizia premium de Il Foglio su Facebook. Avendo cliccato, ho riscontrato il paywall e, dati i precedenti, mi è venuto spontaneo chiedermi se fosse un paywall vero o l’ennesimo messaggio di facciata.
Ho guardato il codice sorgente della pagina, in altre parole il contenuto (testi, immagini, script) che poi il browser rappresenta in modo grafico per farci vedere l’articolo con tutta la sua grafica. Riscontrando questo pezzo di codice Javascript, ho visto qualcosa di estremamente interessante:
function read_paywall(){
var replace=[];
replace['paywall_canRead']='true';
location.href = setUrlParameter(replace);
}
$.ajax({
url: 'https://www.ilfoglio.it/webservices/canRead.jsp',
[...]
success: function(response){
if(response.canRead){
if(response.canRead) {
// può leggere
// reload con parametri
read_paywall();
return;
Ricapitoliamo:
La pagina inizialmente contiene un pezzettino di articolo
Al caricamento, il sito invia una richiesta al server e verifica se l’utente è autorizzato a leggere le notizie integralmente
In caso positivo, richiama la funziona read_paywall la quale aggiunge ?paywall_canRead=true alla fine dell’URL e ricarica la pagina
Questo è un caso di controllo di sicurezza lato client, che in tale contesto non ha assolutamente senso. Ma in altri casi potrebbe pure averlo (per questioni di usabilità), a patto che poi tale verifica venga riconfermata nuovamente lato server, quando una persona cerca di caricare una pagina con il parametro ?paywall_canRead=true.
Ciò non veniva fatto da Il Foglio, perciò gli articoli erano leggibili assolutamente da chiunque.
Apertura di un articolo premium in formato integrale, senza aver effettuato l’accesso
Non vi ho ancora raccontato la parte migliore. Dopo una prima visita a una notizia qualsiasi col parametro “aggiuntivo”, tutte le altre pagine venivano sbloccate in automatico perché l’autorizzazione veniva salvata nel cookie di sessione dell’utente. Insomma, era anche piuttosto pratico. 😉 La prima operazione poteva anche essere automatizzata con un semplicissimo script, esattamente una riga di codice:
Avendo in programma di pubblicare prima il post relativo a La Stampa, ho rimandato la trattazione di questo sito a dopo il termine di ESC 2018. In questi giorni evidentemente qualcuno ha rilevato il problema e vi ha posto rimedio, al contrario delle altre testate precedentemente menzionate le quali hanno ancora dei paywall “scolapasta”.
A mio parere questa vicenda è una dimostrazione di quanto sia importante effettuare dei monitoraggi costanti su chi accede alle risorse riservate, nonché compiere delle periodiche verifiche di sicurezza per riscontrare eventuali bug. In altre parole è la buona cultura della sicurezza che cerco di diffondere a tutte le aziende con cui lavoro.
Precedentemente vi avevo già parlato di come gli articoli premium di Repubblica siano in realtà a pagamento solo per finta. I testi completi degli articoli infatti sono ottenibili in modo abbastanza banale perché il sito li mette a disposizione di chiunque.
Il caso era abbastanza eclatante, perché il testo di ogni articolo veniva semplicemente reso invisibile all’utente, ma effettivamente era presente. La maggior parte dei siti di notizie, invece, effettuano un vero e proprio “taglio” del contenuto. Al browser dell’utente viene mandato il primo paragrafo del testo e poi si vede un banner che invita ad abbonarsi.
Recentemente una persona mi ha chiesto se fosse un fenomeno presente anche su un altro quotidiano, ovvero LaStampa TopNews. Però penso risulti chiaro: una mancanza del genere solitamente è l’eccezione, non la regola. Stavo quindi preparandomi istintivamente a scrivere una risposta negativa.
Poi mi sono detto “vabbè dai, sono in ferie… 5 minuti li spreco, ma non uno di più”. Ho aperto uno degli articoli marcati come TopNews sul sito, in particolare questo:
Ho osservato l’indirizzo e mi sono chiesto se questo avesse anche una versione di stampa. La prima cosa che mi è venuta in mente di fare, in modo del tutto istintivo, è stata di rimpiazzare il nome premium.html con print.html. Certo, un tentativo un po’ sciocco, ma costava poco provare. Quindi ho tentato di visitare questo URL:
Con mia sorpresa, qualcosa si è aperto. 🙂 La figura mostra le due pagine in questione:
Il testo di un articolo, prima e dopo il cambio dell’URL
Lo so, state pensando che è una cosa veramente assurda e bizzarra. L’ho pensato anch’io. 😀 Il fatto che le versioni complete degli articoli siano disponibili online a chiunque, senza login, vanifica completamente il senso del paywall. Considerando poi che i testi degli articoli sono il prodotto offerto da un quotidiano, il business ne risente sicuramente.
La cosa buffa è che nessuna delle due pagine è una “versione stampabile”, se provate a generare delle anteprime in PDF vedrete che vengono entrambe molto male.
Anche in questo caso ho creato un microscopico user-script a scopo dimostrativo, il quale funziona con le estensioni Greasemonkey e Tampermonkey. Se vi trovate su una pagina di TopNews, carica in background il testo integrale dalla versione “intera” e lo mette al posto dell’anteprima. Lo potete installare da qui:
Come sempre, lo script è solo un proof-of-concept e il sito può venire sistemato in qualsiasi momento.
Quando vedo errori del genere rimango piuttosto basito, perché per qualsiasi sviluppatore software si tratta di sbagli alquanto grossolani e gravi. Durante la progettazione di un sito web, specialmente se a pagamento, è importante operare in modo preciso e professionale e occuparsi anche di fare le relative valutazioni di sicurezza.
Proprio come nel 2016 e nel 2017, anche quest’anno sono stato invitato a partecipare ad ESC in qualità di relatore e non ho potuto dire di no, dato che l’evento ha un ottimo spirito ed è ricco di contenuti interessanti. ESC si ripete dal 2005 ed è un incontro non-profit di persone interessate al Software e Hardware Libero, all’Hacking e al DIY. La cosa più bella è che il contenuto viene creato dai suoi partecipanti, perciò è in continua evoluzione.
L’evento è organizzato dall’associazione Endsummercamp APS come “incontro informale della durata di più giorni con possibilità di campeggio, occasione di crescita personale e professionale, condivisione e scambio di conoscenze e di esperienze, gioco e networking tra i partecipanti, e inoltre come conferenza con talk e seminari tecnici su diversi argomenti e livelli” conformemente a quanto previsto dalle linee guida.
CAINE è una delle distribuzioni Linux per l’informatica forense più usate al mondo. Analogamente ad altri progetti simili, l’attuale metodo di sviluppo comporta numerosi step non automatizzati. Molte delle personalizzazioni presenti nella distribuzione sono realizzate a mano, rendendo difficile tenerne traccia e valutare eventuali correzioni di bug o miglioramenti nella procedura. Abel (Automated Build Environment Lab) è un progetto che mira a produrre le nuove versioni di CAINE in modo totalmente automatizzato, tracciabile e peer-reviewed, con un ambiente di build omogeneo basato su Vagrant e numerosi script che applicano tutte le modifiche necessarie.
Come sempre l’evento si terrà a Venezia, precisamente presso Forte Bazzera e ci sono una marea di talk interessanti in programma, perciò vi consiglio calorosamente di venire! Vi ricordo che per partecipare è necessario registrarsi qui.