L'attacco MarioNET consente agli hacker di controllare il browser, anche dopo aver lasciato la pagina di attacco

L'ascesa delle tecnologie web ha aperto nuove possibilità su Internet. I browser sono diventati più potenti con l'arrivo di nuove API e l'introduzione del supporto per alcune funzionalità.

Un nuovo attacco, chiamato MarioNET dai ricercatori che l'hanno scoperto, evidenzia che le API possono anche essere abusate se non esistono misure di protezione adeguate (che è il caso in questo momento).

L'attacco si basa su API HTML5 esistenti supportate da tutti i browser Web moderni. Non richiede l'installazione di software o l'interazione dell'utente e persiste anche dopo che l'utente ha lasciato la pagina Web su cui ha avuto origine l'attacco.

L'utente malintenzionato può abusare delle risorse del computer per tutti i tipi di attività, inclusi attacchi DDOS, operazioni di cripto-mining o cracking di password.

Aggiornamento : trovi una voce critica che discute contro lo scenario descritto nel documento di ricerca qui. Il punto principale della critica è che il metodo di attacco si basa su una funzione chiamata PeriodicSync e che non fa parte di alcuna specifica a questo punto. Fine

MarioNET utilizza Service Workers, script eseguiti separatamente dalle pagine Web visitate e in background, in attacco. L'idea principale alla base dei Service Workers è spostare determinati calcoli in un thread separato in modo che non blocchi o rallenti l'app o la pagina Web con cui l'utente interagisce.

Il ciclo di vita di Service Workers è completamente indipendente dalla pagina in cui sono stati creati. I Service Service non hanno accesso al DOM (Document Object Model) della pagina Web e delle variabili e funzioni della pagina padre.

L'uso di Service Workers isola il sistema dal sito Web di origine, fornisce un controllo costante all'attaccante e rende difficile per gli utenti rilevare cosa sta succedendo.

In particolare, il nostro sistema soddisfa tre importanti obiettivi:

(i) isolamento dal sito Web visitato, consentendo un controllo approfondito delle risorse utilizzate; (ii) persistenza, continuando il suo funzionamento ininterrottamente sullo sfondo anche dopo aver chiuso la scheda genitore; e (iii) evasività, evitando il rilevamento da parte delle estensioni del browser che tentano di monitorare l'attività della pagina Web o la comunicazione in uscita.

MarioNET registra un addetto all'assistenza quando un utente visita una pagina Web su cui possono provenire gli attacchi. Le possibilità di diffondere l'attacco includono la creazione di siti Web dannosi, la pirateria informatica o l'utilizzo di annunci pubblicitari.

I browser forniscono poche informazioni agli utenti sui lavoratori del servizio; infatti, i browser non evidenziano la creazione di nuovi operatori del servizio sui siti per gli utenti. Non vi è alcun avviso, nessun prompt e nemmeno un'opzione per visualizzare un prompt per chiedere l'autorizzazione dell'utente quando vengono creati i lavoratori del servizio.

L'unica richiesta che rivela l'esistenza del lavoratore del servizio è la richiesta GET iniziale al momento della prima visita del sito Web dell'utente, quando il lavoratore del servizio viene inizialmente registrato. Sebbene durante tale richiesta GET un'estensione di monitoraggio sia in grado di osservare i contenuti del lavoratore del servizio, non osserverà comunque alcun codice sospetto: il codice che eseguirà le attività dannose viene consegnato al Servo solo dopo la sua prima comunicazione con il burattinaio, e questa comunicazione è nascosta dalle estensioni del browser

Ciò che rende particolarmente preoccupante MarioNET è che continua a funzionare in background dopo che l'utente ha chiuso il sito web su cui ha avuto origine l'attacco. Il controllo termina alla chiusura del browser Web; i ricercatori hanno trovato un modo per superare anche questo, ma richiede l'interazione dell'utente in quanto utilizza l'API Push Web per farlo.

Protezione

I browser più moderni includono opzioni per visualizzare gli operatori di servizio esistenti. Gli utenti di Firefox possono caricare about: serviceworkers o about: debugging # worker e gli utenti Chrome possono caricare chrome: // serviceworker-internals / per farlo.

È possibile annullare la registrazione di qualsiasi tecnico dell'assistenza utilizzando le funzionalità fornite in queste pagine. Gli utenti di Firefox possono inoltre disabilitare completamente i Service Worker.

Si noti che ciò può influire sulla funzionalità dei siti che lo utilizzano per scopi legittimi. È necessario impostare la preferenza dom.serviceWorkers.enabled su false su about: config.

Alcune estensioni del browser, ad esempio Service Worker Detector per Chrome e Firefox, avvisano gli utenti quando una pagina Web registra un Service Worker.

Ora tu : gli sviluppatori di browser dovrebbero implementare ulteriori garanzie? (tramite ZDNet)