Per un utente finale, HTML5 / JavaScript è più sicuro di Flash?

46

Non sto parlando di sicurezza lato server o anche di vulnerabilità XSS, in quanto si tratta di attacchi a servizi vulnerabili e non utilizzano alcuna vulnerabilità preesistente sul lato client per influenzare un utente finale. Esisteranno finché gli sviluppatori web continueranno a creare applicazioni Web vulnerabili.

Voglio concentrarmi sulla sicurezza dell'utente finale in questi due diversi scenari:

  1. Flash installato e abilitato, ma JavaScript disabilitato
  2. JavaScript abilitato, Flash non installato o abilitato

Sono interessato alle risposte che potrei ottenere ponendo un tipo di domanda che richiede il confronto di due tecnologie (internamente) quasi completamente diverse, ma in competizione, in termini di sicurezza dell'utente finale.

    
posta Jonathan Gray 28.11.2015 - 04:02
fonte

3 risposte

55

In teoria, se tutti i server e le connessioni fossero perfettamente sicuri (impossibili) e affidabili (non veri), nessuno dei due sarebbe più "sicuro" dell'altro - principalmente perché lo sviluppatore / i del sito Web sono in pieno controllo del contenuto del sito. Poiché Flash e JS vengono offerti ai client, il server deve pubblicare contenuti dannosi per l'utente finale in modo che l'utente finale ne risenta.

Purtroppo, non viviamo in un mondo perfetto e JS tende ad essere più sicuro nel caso di un compromesso tra server: è molto più limitato nella sua capacità di influenzare il cliente. Molte vulnerabilità di Flash hanno la capacità di eseguire codice arbitrario, che è molto più dannoso degli exploit del browser, che spesso richiedono più vulnerabilità per uscire dalla sandbox. Ciò significa che gli exploit JS spesso possono solo manipolare il client mentre il client sta visualizzando quella pagina e di solito non è in grado di persistere dopo che è stato chiuso, mentre gli exploit di Flash possono infettare i client con RAT o altro malware, che consente all'utente malintenzionato di avere il controllo sul client anche dopo la chiusura del browser.

Un altro vantaggio dell'utilizzo di JS è che la sorgente è visualizzabile dai client. Qualcuno che usa il sito può notare qualcosa di sospetto nella fonte e avvisare gli sviluppatori, consentendo di rilevare più facilmente l'intrusione. Nel caso di Flash, un utente malintenzionato può immettere codice dannoso in uno swf esistente e, poiché gli utenti non possono visualizzare l'origine senza dissimulare lo swf, il codice dannoso potrebbe non essere rilevato più a lungo.

Per un utente finale, scenario 2:

JavaScript enabled, Flash not installed or enabled

sarebbe molto più sicuro per le ragioni precedenti e dato la storia di exploit di Adobe Flash. Una ricerca nel NVD rivela un totale di 610 vulnerabilità , 330 di questi sono compresi tra gennaio 2014 e dicembre 2015. La maggior parte degli exploit correlati a JS tendono a essere specifici del browser, il che riduce il numero di client interessati, mentre Flash è pensato per essere multipiattaforma, il che aumenta il numero di utenti interessati clienti (meno oggi, considerando che molte persone hanno disabilitato Flash).

TLDR: tieni Flash disattivato e utilizza invece JS.

    
risposta data 28.11.2015 - 06:15
fonte
32

Oltre alla risposta eccellente di WillS, un paio di altre differenze che riguardano la sicurezza:

  • Flash è un prodotto, mentre HTML5 / Javascript è una specifica. Con un prodotto (e soprattutto uno closed-source), si dipende sempre dal venditore per giocare a whack-a-mole (che Adobe sta facendo mirabilmente, ma a lungo termine è una battaglia persa). Una specifica può essere riattivata se necessario (a meno che non ci sia un difetto nelle specifiche stesse), ma anche quello può di solito essere risolto).
  • Gli utenti finali potrebbero non avere l'ultima versione di Flash e potrebbero non essere in grado di eseguire l'aggiornamento. Ad esempio, le implementazioni Linux e Android sono obsolete e non supportate.
  • Flash è molto vecchio; è stato creato per la prima volta nel secolo scorso. A questo punto, qualsiasi software di quell'età è probabilmente un'enorme palla di nastro adesivo. Di nuovo, questa è principalmente una conseguenza del fatto che Flash è un prodotto piuttosto che una specifica. Anche HTML e Javascript risalgono a molto tempo fa, ma non soffrono di questo problema, almeno non nella stessa misura.

Aggiornamento due ulteriori problemi con Flash:

  • Flash può stabilire le proprie connessioni TCP. Se un cifrario o un hash risulta vulnerabile, il browser potrebbe deprecarlo, ma Flash potrebbe ancora utilizzarlo. Adobe tende ad essere piuttosto bravo a correggere tali problemi (almeno sulle piattaforme supportate), ma comunque raddoppia il fattore whack-a-mole.
  • Flash ha i suoi cookie, separati dai cookie del browser. Questo è principalmente un problema di privacy più che un problema di sicurezza, ma molte persone considerano questi due problemi collegati.
risposta data 28.11.2015 - 08:13
fonte
0

Dal punto di vista di "la possibilità di eseguire xx dal tuo browser fa crashare la tua macchina o compromettere la tua sicurezza" la risposta è chiara: la tecnologia flash è vecchia, poco supportata e con una lunga storia di exploit. Quindi è noto per essere potenzialmente pericoloso.

Come per html5, javascript e altre tecnologie attualmente efficaci, non sono intrinsecamente più sicuri: stanno eseguendo il codice scritto da terze parti sulla tua macchina. C'è un tentativo di limitare quello che loro può fare, ma l'efficacia dipende dalla qualità delle implementazioni così come il design sottostante. Gli exploit sono inevitabili.

    
risposta data 03.12.2015 - 21:30
fonte

Leggi altre domande sui tag