Le estensioni Chrome / browser interrompono la sandbox delle schede?

4

Quindi, per quanto ne so, Chrome e probabilmente altri browser hanno un processo di privilegio molto basso generato per ogni scheda.

In che modo le estensioni del browser interagiscono in relazione a questo sandboxing? Non sto parlando di compromettere direttamente un'estensione, ma di compromettere Chrome, e quindi di eseguire l'escape dalla sandbox delle schede compromettendone l'estensione.

    
posta domen 28.02.2014 - 17:57
fonte

2 risposte

5

L'accesso ai metodi privilegiati in un'estensione di Chrome dipende da due fattori:

  1. Le autorizzazioni di estensione attive.
  2. Il processo corrente.

Le estensioni di Chrome possono solo richiedere l'accesso alle API privilegiate dopo aver dichiarato le necessarie autorizzazioni nel file manifest. Esiste anche una serie di API private che sono disponibili solo per un'estensione quando il loro ID di estensione è autorizzato nella whitelist (codificato nel codice sorgente di Chromium). Questo non è davvero rilevante se vuoi sfuggire alla sandbox, definisce solo i confini dell'impatto di un compromesso.

Ci sono due "sandbox". Uno che è visibile agli sviluppatori di estensioni, che mira a proteggere gli utenti dai siti Web che cercano di sfruttare i metodi di estensione privilegiati. L'altro è trasparente per gli sviluppatori di estensioni e fornisce protezione contro i processi compromessi (rendering).

Chrome è un'applicazione multi-processo, costituita da un processo browser (ad alto privilegio) e da più processi di rendering. Ogni scheda / sito viene eseguito nel suo stesso processo vedi Modelli di processo per ulteriori dettagli , con i privilegi minimi necessari per eseguire il loro compito.

Le estensioni possono utilizzare i cosiddetti script di contenuto per modificare l'aspetto o la funzionalità dei siti web. Questi script di contenuto condividono lo stesso processo del sito Web sul quale agiscono, ma il codice JavaScript viene eseguito in un contesto separato. Ciò consente al sistema di estensione di offrire un insieme molto limitato di metodi JavaScript privilegiati allo script del contenuto, ad es. nella forma dell'estensione API che passa messaggi e cross-origine AJAX . Quando un processo di tabulazione è compromesso, il danno è limitato. Potrebbe fare richieste interdominio (se l'estensione ha il permesso di farlo) e inviare messaggi al processo background dell'estensione , ma non leggere i file dal tuo filesystem, né usare nessuna delle più potenti API di estensione. Quando un processo di tabulazione (renderer) è compromesso, il danno è solitamente limitato a quella singola scheda / origine, grazie all'architettura di sicurezza.

Altre parti dell'estensione (ad es. pagine di sfondo , pagine popup e pagine in cui la omnibox visualizza chrome-extension://[EXTENSIONID]/... ) eseguite nel processo di estensione. Le pagine all'interno del processo di estensione possono utilizzare potenti API purché abbiano autorizzazioni richieste per utilizzarle , incluso l'accesso in lettura ai file sul tuo file system locale (purché abbia richiesto l'accesso, e hai messo un segno di spunta nella casella di controllo "Permetti l'accesso ai file URL" nella pagina delle impostazioni degli interni - questo non accade per caso, non t preoccupare).
Quando un processo di estensione è compromesso, il danno è limitato a ciò che un'estensione può fare. Ad esempio, non è possibile scrivere su file arbitrari sul proprio file system.

(nota che uno sviluppatore di estensioni maligne non ha bisogno di impegnarsi a compromettere un processo di estensione, perché se installi un'estensione malevola che richiede "Accedi ai tuoi dati su tutti i siti web" e "Accedi alle tue schede e attività di navigazione ", quindi ha già il potere sufficiente per confondere con i tuoi siti web, ad esempio rubando le password quando le digiti).

Risorse esterne

  • link
    Descrive i diversi modelli di processo supportati da Chromium per la creazione di processi di rendering.
  • link
    Descrive come il sistema di estensione di Chromium è stato progettato dall'approccio basato sulla sicurezza.
  • link
    Descrive l'architettura di sicurezza di Chromium (non solo le estensioni, ma il browser nel suo complesso).
  • link
    Isolamento del sito (non specifico dell'estensione, ma rilevante per la valutazione della sicurezza degli script del contenuto)
risposta data 28.02.2014 - 22:51
fonte
2

Potrei non rispondere correttamente alla tua domanda, ma direi che non lo fanno. Le estensioni sono sandboxed e seguono una rigorosa norme sulla sicurezza dei contenuti .

Da Sandboxing Eval :

...The solution on offer is a sandbox in which eval can execute code without access either to the extension's data or the extension's high-value APIs. No data, no APIs, no problem.

We accomplish this by listing specific HTML files inside the extension package as being sandboxed. Whenever a sandboxed page is loaded, it will be moved to a unique origin, and will be denied access to chrome.* APIs.

Lo stesso articolo ha un video molto informativo collegato qui su YouTube sullo sviluppo di estensioni sicure di Chrome che vanno più in profondità dettagli sulla sicurezza dell'estensione.

    
risposta data 28.02.2014 - 18:34
fonte

Leggi altre domande sui tag