Che cosa dovrei cercare quando controllo un estensione / plugin di Firefox?

12

Mi è stato chiesto di fare un controllo di sicurezza su un componente aggiuntivo di Firefox sviluppato da una terza parte. Sono uno sviluppatore web con una ragionevole conoscenza di JavaScript ma non sono un esperto di sicurezza del browser.

Che tipo di cose dovrei cercare nel codice sorgente che potrebbe rappresentare un rischio per la sicurezza. Inoltre, esistono strumenti efficaci per offuscare il codice sorgente dell'estensione del browser?

    
posta codecowboy 11.03.2013 - 17:56
fonte

2 risposte

12

IMPORTANTE : questa è in questo momento un elenco completo delle cose che dovresti cercare, usa questa risposta come esempio, un primo passo nel tuo percorso e ricerca per conto tuo. Ho avuto un compito simile molto tempo fa. Ho dovuto rivedere la sicurezza del codice di un addon di Firefox, sono sicuro che troverai facilmente gli equivalenti di Chrome / altri browser. Tieni presente anche che le estensioni in Chrome vengono eseguite in un Sandbox .

1. Tutto ciò che interagisce con i file locali:

Ogni volta che viene creato l'oggetto FileUtils.File e viene chiamato uno qualsiasi dei suoi metodi

  • Controlla se l'accesso ai file locali è un comportamento documentato. A cosa servono i file? Perché? Sono stati rilasciati con successo?

  • Controlla se qualche file locale è in fase di modifica. È un comportamento documentato? Quali sono i file modificati? Perché?

2. Tutto ciò che interagisce con il registro di Windows:

Ogni volta che viene creata un'istanza di nsIWindowsRegKey o viene chiamato uno dei suoi metodi

  • Il registro di Windows accede a un comportamento documentato? A quali chiavi si accede? Perché?

  • La modifica del Registro di sistema di Windows è un comportamento documentato? La modifica è temporaneamente? Quali chiavi sono state modificate? Perché?

3. Tutto ciò che interagisce con i cookie

Ogni volta che nsICookieService viene utilizzato

  • L'accesso ai cookie è un comportamento documentato? Perché?

  • A quale dominio appartengono questi cookie? Perché?

4. Tutti i comandi eseguiti nella shell dell'utente

Ogni volta che nsIProcess viene creato e viene chiamato uno dei suoi metodi (guarda attentamente .run() e .launch() )

  • L'esecuzione di comandi è un comportamento documentato? Perché?

  • Quali comandi vengono eseguiti? Dove viene reindirizzato l'output?

5. Accesso a qualsiasi finestra / scheda

Ogni volta che si accede a window e / o viene chiamato qualsiasi metodo getElement* ( Osserva attentamente createElement chiamate che iniettano <script> elementi.

  • L'accesso al DOM di una pagina Web è un comportamento documentato? Perché?

  • Quali sono gli elementi aggiunti / rimossi / modificati? Perché?

risposta data 11.03.2013 - 21:05
fonte
6

Ogni volta che si sta verificando un nuovo tipo di applicazione, si dovrebbero considerare gli altri tipi di vulnerabilità che sono stati trovati. Un buon modo per farlo è cercare nel database CVE. Nel caso delle estensioni del browser, dovresti dare un'occhiata a questo talk di Defcon 17: Abuso dei componenti aggiuntivi di Firefox . Le estensioni hanno diritti elevati e possono essere estremamente pericolose.

In termini di offuscamento, qualsiasi obsbulatore di JS dovrebbe funzionare. Un'estensione è solo file .js in un archivio.

    
risposta data 11.03.2013 - 18:11
fonte

Leggi altre domande sui tag