Aggiornamento di sicurezza per l’estensione di LastPass

Resoconto dell’incidente di sicurezza: 31 marzo 2017 (20:10)

Sabato 25 marzo, il ricercatore di sicurezza del Project Zero di Google, Tavis Ormandy, ha dichiarato di aver individuato una falla di sicurezza nelle estensioni per browser di LastPass. Nelle ultime 24 ore, abbiamo rilasciato un aggiornamento che riteniamo corregga la suddetta vulnerabilità in tutti i browser, cosa che abbiamo verificato con Tavis stesso.

La maggior parte degli utenti riceverà l’aggiornamento automaticamente. Verificare che la versione installata sia quella più recente (4.1.44 o superiore), sempre disponibile all’indirizzo https://www.lastpass.com/.

Adesso che il problema è stato risolto, ci teniamo a presentare alla nostra community un’analisi retrospettiva sulle implicazioni del rapporto di Tavis e su come ci spinga a migliorare LastPass e la sua sicurezza per il futuro. Precisiamo che, a causa della natura della vulnerabilità in questione, la seguente analisi retrospettiva ha un carattere decisamente tecnico.

Riepilogo

  • La falla riguardava una vulnerabilità lato client nelle estensioni per browser di LastPass e poteva essere sfruttata per sottrarre dati e manipolare tali estensioni.
  • Per sfruttarla, l’utente doveva essere attirato su un sito Web dannoso (mediante phishing, spear phishing o altro tipo di attacco) o su uno attendibile contenente adware dannoso.
    • Ciò richiedeva un attacco individuale da eseguire tramite browser locale dell’utente.
  • Tutte le estensioni sono state aggiornate con la correzione e trasmesse ai rispettivi store dei componenti aggiuntivi.
    • Le nostre app per iOS o Android non ne risultano compromesse.
  • Tutte le vostre estensioni per browser di LastPass dovrebbero essere aggiornate alla versione 4.1.44 o superiore.
    • Verificare la propria versione facendo clic su icona LastPass > Più opzioni > Informazioni su LastPass.
    • Anche se la maggior parte degli utenti riceverà l’aggiornamento automatico, le versioni più recenti sono sempre disponibili all’indirizzo https://www.lastpass.com/.
    • Per scaricare la versione aggiornata non è necessario disinstallare quella precedente.

Analisi retrospettiva

Il rapporto

La vulnerabilità lato client nelle estensioni per browser di LastPass era causata dal modo in cui LastPass si comporta nei “mondi isolati”. Come spiegato nel rapporto, “un mondo isolato è un ambiente di esecuzione JavaScript che, seppur condividendo lo stesso DOM (Document Object Model) come altri mondi, non condivide cose come le variabili e le funzioni. Senza i mondi isolati, le pagine prive dei privilegi necessari potrebbero interferire con gli script dotati di privilegi più elevati, prendendone il totale controllo.” Per quanto riguarda la versione binaria dell’estensione, utilizzata da meno del 10% degli utenti LastPass, avrebbe potuto essere manipolata in modo da consentire l’esecuzione di codice remoto sull’estensione.

 “Mondi isolati” e pagine attendibili

I content script sono alla base del funzionamento di LastPass e contribuiscono a renderlo uno strumento di estrema utilità. Si tratta di frammenti di JavaScript che inseriamo nei siti di terze parti per acquisire i dati di accesso ed eseguire il riempimento automatico. A loro volta, i content script comunicano con il resto dell’estensione per fare il lavoro pesante: decrittografare i siti salvati, aggiornare la cassaforte e così via. Il resto dell’estensione è del tutto inaccessibile ai siti di terze parti e non dovrebbe essere in grado di influenzare i content script.

Di solito, i content script sono separati dal resto del sito mediante il concetto dei “mondi isolati”. Secondo questo concetto, sebbene i nostri content script possano leggere i contenuti DOM di un sito di terze parti, non hanno alcun accesso alle variabili e alle funzioni JavaScript interne. Vale anche il contrario: il sito di terze parti non può invocare alcuna funzione o accedere ad alcuna variabile dei nostri content script. Questa separazione dovrebbe garantire maggiore protezione a entrambe le parti da manipolazioni esterne.

In alcuni casi, queste variabili possono influenzare la logica dei content script. Usare questa tecnica per inserire valori arbitrari nel codice JavaScript risulta difficile. Tuttavia, con una mossa particolarmente astuta, il rapporto ha dimostrato come l’inserimento di stringhe arbitrarie fosse possibile e che ne bastasse soltanto una per indurre l’estensione con l’inganno a pensare di trovarsi in esecuzione su lastpass.com. Così facendo, un pirata informatico avrebbe potuto manipolare l’estensione di LastPass per accedere ai dati memorizzati dell’utente e, nel caso della versione binaria, avviare eseguibili arbitrari.

Credevamo di poterci fidare dell’ambito globale in cui avviene l’esecuzione dei nostri content script, ma ci sbagliavamo. Per questa ragione, il nostro codice JavaScript conteneva svariate parti in cui delle variabili globali provenienti dall’esterno potevano sostituire un valore predefinito.

Risoluzione del problema

Immediatamente dopo aver ricevuto il rapporto completo, un team di intervento interfunzionale ha esaminato la scoperta, convalidandola. È risultato subito chiaro che la risoluzione del problema avrebbe implicato un profondo cambiamento nelle nostre estensioni per browser. Non si trattava di una semplice patch. Occorreva una correzione ponderata e accurata che avrebbe poi dovuto essere applicata e testata su tutte le estensioni interessate.

In breve: affrontare in modo esauriente la vulnerabilità segnalata in questo rapporto ha richiesto un notevole impegno da parte del nostro team, che ha lavorato incessantemente per completare le correzioni nel più breve tempo possibile.

Per risolvere il problema, ci siamo occupati della gestione delle variabili e abbiamo aggiunto l’oggetto proxy all’ambito esterno del content script, fungendo da “sandbox” per impedire alle proprietà delle finestre provenienti dall’esterno di essere lette dal content script. Per mitigare ulteriormente l’esecuzione di codice remoto, abbiamo applicato delle restrizioni alle tipologie di allegati avviabili dall’estensione e abbiamo limitato le API di estensione disponibili.

Abbiamo collaborato direttamente con il Project Zero di Google per verificare che le nostre correzioni fossero definitive. Una volta pronte, gli aggiornamenti per tutte le estensioni interessate sono stati vagliati dai rispettivi store e distribuiti agli utenti con grande rapidità. Desideriamo ringraziare i nostri partner di Apple, Google, Microsoft, Mozilla, Opera, Yandex e altri che hanno velocizzato la revisione e il rilascio delle estensioni.

Uno sguardo al futuro

Sollecitiamo vivamente gli sviluppatori di altre estensioni ad accertarsi che il proprio codice non presenti questa vulnerabilità.

La gestione delle password è il nostro campo e la sicurezza è e sarà sempre la nostra massima priorità. Apprezziamo con gratitudine il lavoro della community della sicurezza, che mette alla prova il nostro prodotto e collabora con i nostri team per consentirci di fornire un servizio sicuro ai nostri utenti. Come leader di mercato, le prove che LastPass riesce a superare ci premiano con il meglio del meglio e ciò va a diretto vantaggio del prodotto e dei nostri clienti.

Al fine di mantenere il più alto livello di sicurezza, continueremo a collaborare con i ricercatori di sicurezza specializzati nell’hackeraggio etico e a incentivare la partecipazione al nostro programma di bug bounty (https://bugcrowd.com/lastpass). Tornate a visitarci presto per ulteriori sviluppi!

Grazie,

Il team di LastPass

____________________________________________________________________________________________________________________________

27 marzo 2017 (19:10)

Questo fine settimana, il ricercatore di sicurezza di Google, Tavis Ormandy, ha segnalato una nuova vulnerabilità lato client nell’estensione per browser di LastPass. Al momento, stiamo affrontando attivamente il problema.  Questo attacco è unico e altamente sofisticato. Sebbene non sia nostra intenzione rivelare alcun dettaglio specifico al riguardo che possa svelare la situazione a qualsiasi malintenzionato, sarà nostra cura presentarvi un’analisi retrospettiva quando il problema sarà risolto.

Nel frattempo, desideriamo ringraziare persone come Tavis che ci aiutano ad alzare il livello della sicurezza online con LastPass e collaborano con i nostri team per continuare a rendere LastPass il gestore di password più sicuro sul mercato. Ci teniamo inoltre a offrire ai nostri utenti qualche suggerimento per proteggersi ulteriormente da questo tipo di vulnerabilità lato client.

  1. Usate la cassaforte LastPass come una piattaforma di lancio: aprite i siti direttamente dalla cassaforte LastPass. Questo è il metodo più sicuro per usare le vostre credenziali e accedere ai siti fin quando questa vulnerabilità non sarà corretta.
  2. Autenticazione a due fattori per ogni servizio abilitato: quando possibile, attivate l’autenticazione a due fattori per i vostri account. Ora, molti siti Web offrono questa opzione per una maggiore sicurezza.
  3. Fate attenzione agli attacchi di phishing: state sempre all’erta per evitare i tentativi di phishing. Non fate clic sui link ricevuti da persone che non conoscete o che sembrano insoliti se provengono dai contatti e dalle aziende di vostra fiducia. Consultate la nostra guida sul phishing.

Ulteriori aggiornamenti sulla patch saranno forniti una volta completata.