Punti chiave
L’HTML 5, il nuovo linguaggio erede di Flash Player è davvero così completamente al sicuro? O esistono delle vulnerabilità di sicurezza che lo rendono un prodotto non del tutto inattaccabile?
Adobe Flash Player, lo storico strumento per la visualizzazione di elementi multimediali su internet, che ha dominato gli anni ’90 e i primi anni 2000, cesserà di esistere nel 2020 ed la soluzione destinata a prendere il suo posto è senza dubbio l’HTML 5, ormai da tempo considerato da sviluppatori ed utenti il degno successore di questo programma.
Tecnicamente l’HTML5 possiede delle caratteristiche che rendono più facile per i programmatori creare dei siti web in grado di caricare e far funzionare video in differenti formati: il contenuto che è possibile ottenere non avrà problemi infatti ad essere riprodotto su computer desktop, tablet, smartphone, televisori e piattaforme di gaming.
E non si può fare a meno di ricordare che anche YouTube, il noto aggregatore di video, è già passato da tempo all’HTML5 abbandonando Adobe Flash Player e dando modo di adattare e far cambiare automaticamente la risoluzione video in base alla connessione di rete dell’utente finale per ottenere una migliore performance.
Un altro esempio? E’ grazie a questa tecnologia che i gamer della Xbox One possono eseguire delle live stream delle proprie partite.
Attenzione però: questo non significa che tale struttura possa rimpiazzare interamente il prodotto di Adobe: l’HTML5 non è infatti in grado, ad esempio, di interagire con una webcam e l’audio registrato da un microfono e da solo non può essere usato per creare animazioni o video interattivi. In questi casi vi è bisogno di integrare JavaScript o CSS3 per raggiungere il risultato sperato.
Ma sul fronte della sicurezza? L’HTML5 è più sicuro da usare in alternativa a Flash? Sicuramente sì. Ma vi sono delle falle alle quali fare attenzione per prevenire i problemi.
HTML 5. Prima vulnerabilità: il codice sorgente è troppo leggibile e attaccabile
Una delle prime vulnerabilità collegate all’HTML5 risiede nel codice sorgente facilmente leggibile da qualsiasi browser in tutte le pagine che non hanno una connessione criptata. Qualsiasi persona capace di visionare l’header, le sezioni, gli articoli ed i tag video potrebbe essere in grado di raggiungere i file video. Un semplice esempio di codice non criptato facilmente sfruttabile:
<video width=”320″ height=”240″ controls>
<source src=”movie.mp4″ type=”video/mp4″>
<source src=”movie.ogg” type=”video/ogg”>
<source src=”movie.webm” type=”video/webm”>
</video>
Come è possibile notare, i file video sono elencati in bella vista con tutto ciò che necessita ai browser per visualizzarli, sia sui dispositivi fissi che mobili. E sebbene alcuni formati non possano contare su supporti diretti da parte di alcuni browser, nella maggior parte dei casi basta una semplice connessione ad internet per dare modo ai malintenzionati di agire sui brani video del sito.
Tramite software di terze parti in grado di convertire i file AVI in MP4 o se le clip video sono caricate tutte in questo formato, facilmente leggibile da ogni browser, si possono eseguire danni concreti.
Un hacker o chiunque voglia sferrare un attacco, con un codice HTLM5 non criptato, non avrà problemi a trovare i video, farne una copia, modificarne i frame inserendo codice pericoloso e da lì tentare di entrare nell’amministrazione del sito web.
HTML 5. Secondo bug: non ci sono strumenti di sicurezza per i tutti i browser
Un’altra vulnerabilità di questo codice, da non sottovalutare, è che manca di strumenti e sistemi di sicurezza sufficientemente solidi. Il problema fondamentale è la mancanza di un sistema di autenticazione FIDO (Fast Identity Online) che rende la maggior parte dei browser esposti all’esecuzione di codice dannoso, nascosto tra le pieghe dei tag HTML 5.
Solo Firefox 54 e Xbox One al momento hanno parzialmente implementato questo sistema ma il WWWC (World Wide Web Consortium) non ha ancora elaborato delle regole di sicurezza comuni per tutti i browser, nel momento in cui visualizzano una pagina in HTML 5.
Grazie ad HTML5Test, un’applicazione web molto popolare che calcola quanto funzionino bene i diversi browser, si può verificare come i più sicuri per visualizzare l’HTML 5 siano Opera 45 ( punteggio 518 su 555) e Edge 16. Ma si tratta di strumenti ancora incompleti e che non danno sufficiente protezione.
HTML 5, la terza falla: è facilissimo inserire codice malevolo
L’ultima importante falla dell’HTML5 consiste nel fatto che è molto facile inserire del codice malevolo dall’esterno. L’HTML 5 in realtà è molto ricco di codici per far funzionare degli elementi: ci sono quelli per la comunicazione come le chat integrate sui siti web, quelli che si occupano delle integrazione con i social network, gli strumenti per la geolocalizzazione, o per gestire le applicazioni offline.
Qualsiasi hacker o programmatore può attaccare un sito tramite vulnerabilità dell’HTML 5 e inserire del codice malevolo creando danni: ad esempio può attivare un loop infinito di un video o un elemento interattivo, bloccando un sito web.
Problema simile nel caso in cui si attacchi un “sandboxed frame”: in questo caso si può ottenere il totale blocco del video riprodotto nel sito. Non solo: anche i messaggi scambiati fra il sito web e i navigatori, come una chat per un supporto tecnico, possono essere alterati o spediti agli interlocutori sbagliati. E ancora: i web socket possono essere sottoposti ad attacchi DoS e di conseguenza i server che ospitano il sito potrebbero dover gestire una serie di richieste false in grado di rallentare il portale.
Cosa indica questo? Che per quanto il formato HTML5 sia avanzato ed in grado di gestire al meglio la creazione e gestione di file video “intelligenti”, alcune sue falle nella sicurezza potrebbero mettere a rischio il sito web, a volte in modo maggiore rispetto a ciò che accadrebbe utilizzando Flash.
HTML 5. Come mettere in sicurezza il codice e i video
Come già anticipato, le falle di sicurezza nell’HTML5 ci sono, ma questo non significa che non si possa fare niente per ovviare alla loro presenza. Ecco alcune delle azioni che si possono intraprendere:
- Criptare il codice sorgente HTML5 e rendere impossibile per le persone intenzionate ad attaccare il sito web l’utilizzo di strumenti come Encrypt HTML Pro
- Installare un’utility in grado di filtrare il codice per rimuoverne le parti modificate e pericolose: il migliore in tal senso è HTML Purifier
- mantenere sempre aggiornati i router wireless e i dispositivi Bluetooth
- ridurre i permessi relativi ai codici non sicuri
- prevenire la stampa o la copia del codice sorgente
- cambiare le password di amministratore date di default
- trovare gli input provenienti da fonti non attendibili e non consentirgli di girare
- utilizzare HTML5Test per testare il supporto sicurezza per i propri browser
- far girare HTML5 con HTTPS
Per aumentare la sicurezza dell’HTML5 utilizzato nel proprio sito è poi raccomandato utilizzare i seguenti HTTP headers:
- X-Frame-Options
- X-XSS Protection
- Strict Transport Security
- Content Security Policy
- Origin.
HTML5: l’importanza degli aggiornamenti
Le falle dell’HTML5 insegna una lezione inconfutabile: per godere di questo linguaggio, tutti gli strumenti collegati dovranno essere sempre aggiornati. Solo in questo modo si potrà lavorare in modo sicuro.
La futura dipartita di Adobe Flash Player rappresenterà un problema? No. Il passaggio ad HTML 5 è un passo in avanti gigantesco, specie per la sicurezza, e le enormi possibilità dell’HTML5 si vedono già con grande soddisfazione. Ma è importante ricordare che ogni persona o azienda che vorrà lavorare con questo nuovo linguaggio dovrà conoscerne gli inevitabili difetti, senza pensare di lavorare con uno strumento immune alle vulnerabilità.