Trent’anni fa quando Tim Berners-Lee presentò il suo World Wide Web mai si sarebbe immaginato che il web sarebbe potuto diventare anche un luogo intrinsecamente insicuro, con un vastissimo numero di pagine che veicolano codice dannoso.
Nell’articolo Browser apre pagine da solo o annunci pubblicitari indesiderati abbiamo visto che quando all’interno del browser web in uso si aprono frequentemente pagine indesiderate e schede dai contenuti sconvenienti, è probabile che sul sistema in uso vi sia qualche tipo di infezione.
Massima attenzione deve essere riposta sulle estensioni per il browser evitando di installare quelle realizzate da soggetti sconosciuti. Chrome, da tempo, integra anche un antivirus (realizzato in collaborazione con ESET) in grado di rilevare e bloccare comportamenti sospetti (Antivirus integrato in Chrome: cos’è e come si utilizza).
Purtroppo non è leggerissimo e talvolta interferisce negativamente con le altre attività in corso sul sistema (tanto che alcuni utenti decidono di disabilitarlo).
I browser hijacker sono componenti malevoli che alterano il normale funzionamento del browser, monitorano la sessione di navigazione e spesso sottraggono dati personali. Si installano sul sistema in vari modi: utilizzando un browser non aggiornato e visitando un sito dannoso oppure compromesso; installando applicazioni che contengono o scaricano componenti aggiuntivi (vedere Software indesiderati si installano anche quando si esprime il proprio diniego); installando estensioni pericolose (anche se all’apparenza del tutto legittime).
L’ottimo e ormai conosciutissimo AdwCleaner aiuta a sradicare dal sistema eventuali hijacker: Rimuovere malware con il nuovo AdwCleaner 7.0.
I reindirizzamenti verso siti indesiderati contenenti malware, materiale sgradevole, phishing e così via non sono però ricollegabili solamente alla presenza di un’infezione sul dispositivo che si sta adoperando. Talvolta, infatti, il problema ha a che fare proprio con il sito web che si sta visitando.
Vi sarà spesso successo di ritrovarvi su una pagina web che non ha nulla a che vedere con il sito di proprio interesse. Talvolta può succedere addirittura di cliccare su un link nei risultati delle ricerche su Google (SERP) e ritrovarsi su pagine dal contenuto dubbio o truffaldino.
Come possono verificarsi queste situazioni se il sistema in uso è assolutamente “pulito” e non contiene alcun tipo di minaccia?
La risposta è semplice: i criminali informatici sono costantemente alla ricerca di siti web che possono essere attaccati, di solito usando vulnerabilità note.
Così, chi amministra un sito realizzato in WordPress, Joomla, Drupal o con qualunque altro CMS opensource e non installa tempestivamente gli aggiornamenti di sicurezza via a via rilasciati, può esporre il proprio sito e i dati conservati nei database collegati a notevoli rischi.
Non solo. Molti webmaster installano plugin per il proprio CMS capaci di modificare o estendere le funzionalità della piattaforma: talvolta non si riflette sulla provenienza di ogni singolo plugin e non si riflette sul fatto che i componenti aggiuntivi sviluppati da programmatori meno esperti possono essi stessi contenere vulnerabilità più o meno gravi.
Quando si amministra un sito web, indipendentemente dal CMS utilizzato, è quindi importante mantenere aggiornata non soltanto la piattaforma in sé (WordPress, Joomla, Drupal,…) ma anche ogni singolo plugin eventualmente installato. Inoltre, è fondamentale installare solo plugin sviluppati da fonti affidabili, che siano supportati (e non abbandonati) e per i quali vengano rilasciati regolarmente degli aggiornamenti.
Chiunque abbia un minimo di nozioni di programmazione PHP può ad esempio sviluppare un plugin per WordPress e interagire con tutte le funzionalità del CMS, comprese quelle di base. Appare evidente quanto sia importante prediligere sempre plugin di elevata qualità.
L’obiettivo dei criminali informatici è infatti aggredire i siti web, soprattutto se piuttosto popolari, per caricarvi codice malevolo. Molto spesso gli aggressori attivano reindirizzamenti indesiderati verso siti web che pongono in essere attività truffaldine oppure predispongono il caricamento di codice congegnato per sfruttare vulnerabilità conclamate di ciascun browser web.
In alcuni casi il fine ultimo è quello di provocare la visualizzazione di messaggi pubblicitari la cui esposizione implica un vantaggio economico per gli aggressori; in altri vengono attivati componenti software per il mining di crittovalute; in altri ancora, si prova ad attivare il download automatico di componenti dannosi (drive-by download).
Limitandosi solamente a WordPress, basti pensare che il National Vulnerability Database ha registrato – nel corso del tempo – la scoperta di oltre 1.700 vulnerabilità (vedere queste pagine): è ovvio che se il CMS e i plugin installati vengono raramente aggiornati da parte degli utenti, gli aggressori possono avere gioco facile.
Anche perché di solito gli aggressori utilizzano dei bot ovvero dei sistemi automatizzati per effettuare la scansione della rete e individuare i siti WordPress (o realizzati con altri CMS) che soffrono di qualche vulnerabilità nota.
Una volta avvenuta l’aggressione, il codice dannoso viene generalmente nascosto usando diverse tecniche di offuscamento così da renderne difficoltosa l’individuazione da parte del gestore del sito.
Di solito i criminali informatici dispongono la modifica dei file index.php, .htaccess, footer.php, header.php, functions.php
In alcuni casi può il problema può dipendere dai circuiti pubblicitari usati dagli amministratori del sito web che si sta visitando: i criminali informatici talvolta utilizzano tecniche di malvertising. Attivano cioè campagne pubblicitarie sui principali network, anche i più famosi, e inseriscono all’interno delle creatività codice JavaScript capace di richiamare il caricamento di altri elementi e siti esterni.
Concatenando le varie chiamate e offuscando il codice JavaScript, in modo da passare il più possibile inosservati ai sistemi di analisi automatizzati, i criminali informatici possono provocare il caricamento di codice potenzialmente dannoso.
Ovvio che i gestori dei principali network pubblicitari sono chiamati a svolgere un attento lavoro di verifica perché il malvertising costituisce un danno d’immagine non indifferente soprattutto per gli editori online.
Gli Strumenti per sviluppatori di Chrome offrono un valido aiuto per risalire al codice che ha disposto un reindirizzamento indesiderato o che ha provocato la comparsa di una pagina dai contenuti sconvenienti.
Per accedervi, basta premere il tasto F12
quindi accedere al sito web oggetto di verifica.
Nella scheda Network si vedranno tutti gli elementi che vengono via a via caricati, il codice di stato (200 significa che l’oggetto è stato correttamente caricato), la tipologia, l’oggetto che ne ha disposto il caricamento, la dimensione, il tempo richiesto per il download.
Suggeriamo di spuntare la casella Preserve log in maniera tale che nel caso in cui si verificassero dei rendirizzamenti il registro contenuto nella scheda Network non venga azzerato.
Durante la fase di analisi è possibile anche spuntare Disable cache in maniera tale che nessun elemento venga conservato nella cache del browser.
Per capire qual è il codice che ha determinato un reindirizzamento, si può fare clic sulla scheda Console e incollare quanto segue:
In questo modo, prima che si verifichi il reindirizzamento vero e proprio, nel dubugger di Chrome apparirà il codice che lo ha disposto. Chi volesse approfondire, può fare riferimento a questa analisi.
In alternativa, come spiegato anche qui, è possibile impostare un breakpoint su altri eventi.
Cliccando su Source quindi su Event listener breakpoints si possono scegliere gli eventi allo scatenarsi dei quali il caricamento della pagina dovrà essere temporaneamente interrotto.
Spuntando furbescamente le caselle più utili è possibile risalire al codice via a via caricato dalla pagina e individuare quello potenzialmente dannoso.
In alcuni casi il codice JavaScript pubblicato sui vari siti web è illeggibile perchè “minificato”. Con il termine minificazione si fa riferimento alla procedura che permette di ridurre le dimensioni di un file JavaScript ottimizzandone la struttura e provvedendo all’eliminazione dei caratteri superflui.
Per leggere in formato “umano” il codice, basta cliccare sul pulsante raffigurato in figura e contenente due parentesi graffe (Pretty print).
È bene inoltre tenere presente che cliccando con il tasto destro su qualunque elemento mostrato nella scheda Network, è possibile bloccare il singolo URL o l’intero dominio (Block request URL o Block request domain).
Nell’articolo Strumenti per sviluppatori Chrome su Android: come smascherare chi carica contenuti malevoli abbiamo visto come fare debugging dei siti web da dispositivo mobile ricorrendo a Chrome.