Domande sull'attacco di download di file riflessi (RFD)

9

Ho letto questo articolo e il whitepaper del ricercatore della sicurezza Oren Hafif che menziona i seguenti punti salienti:

RFD, like many other Web attacks, begins by sending a malicious link to a victim. But unlike other attacks, RFD ends outside of the browser context:

  1. The user follows a malicious link to a trusted web site.
  2. An executable file is downloaded and saved on the user’s machine. All security indicators show that the file was “hosted” on the trusted web site.
  3. The user executes the file which contains shell commands that gain complete control over the computer.

Un esempio di URL dannoso ha il seguente aspetto:

https://www.google.com/s;/ChromeSetup.bat;/ChromeSetup.bat?gs_ri=psy-ab&q=%22%7c%7c%74....

Sembra simile al recente bug shellshock, tranne per il fatto che l'attacco è diretto sul client anziché sul server. Le mie domande sono:

  • Google ospita un file ChromeSetup.bat in una directory /s; sul suo server?
  • Quali sistemi operativi sono vulnerabili? Questo attacco è specifico per un particolare versione del sistema operativo Windows?
  • In che modo i clienti possono proteggersi se un sito Web consente all'utente di farlo inserire URL dannosi nell'attributo src di un tag <img> ?
posta Question Overflow 31.10.2014 - 10:43
fonte

1 risposta

9
  1. Google non ospita ChromeSetup.bat. Un requisito per questo attacco è che un sito web deve avere un endpoint con un Content-Type meno comune e preferibilmente un'intestazione Content-Disposition mal configurata (vale a dire: nessun attributo 'filename'). Queste due intestazioni fanno sì che il browser scarichi la risposta come un file, invece di renderlo.

Nell'URL si fornisce che l'endpoint è "/ s" che fornisce suggerimenti di completamento automatico come JSON, con un tipo di contenuto di applicazione / json. Le versioni precedenti di IE richiedono un download solo in base al tipo di contenuto, alle versioni più recenti e Chrome richiede quell'intestazione content-disposition incompleta per questo attacco.

Un altro requisito è che questo endpoint rifletta alcuni input dell'utente da querystring (i dati di post o cookie funzioneranno ovviamente bene ma non sarebbero altrettanto efficaci per l'utente malintenzionato). Ciò fornirà il contenuto dannoso del file che viene scaricato.

Nell'URL che hai fornito questo sarà il valore del parametro querystring.

Poiché non viene fornito alcun nome file per il download, i browser cercano di sceglierne uno. Poiché il sito Web di Google ha consentito la ricezione di url non validi tramite i parametri url (la parte; /ChromeSetup.bat;), il browser ha scelto una versione pulita di quello (ovvero ChromeSetup.bat) come nome file da presentare all'utente. La webapplication ignora questo input, ma il browser lo usa.

  1. Qualsiasi browser su qualsiasi sistema operativo potrebbe rispondere in questo modo. Chrome scaricherà la risposta con il nome file falsificato, che funzionerà anche su OSX.

In Windows esiste un'ulteriore debolezza che non avvisa l'utente correttamente quando "setup" si verifica nel nome del file. Windows eseguirà anche direttamente un file .bat se si fa clic su di esso. Osx e Linux non eseguiranno questo file poiché molto probabilmente l'autore dell'attacco non è in grado di fornire uno script completo con la notazione hashbang. Anche in questo caso, non ha il bit eseguibile impostato, quindi non verrà eseguito direttamente.

  1. L'utente deve ancora attivare / accettare il download, quindi basta guidare con un non causerà "infezione" immediata. Un client (browser) dovrebbe fornire avvisi appropriati per i file eseguibili invece di eseguirli semplicemente. L'utente dovrebbe sapere meglio di eseguire file .bat casuali, ma questa è la forza di questo attacco: il "file" viene pubblicato da Google.com, quindi dovrebbe essere sicuro, giusto? La parte più importante qui è il sito Web vulnerabile: il sito Web non dovrebbe consentire a un utente di fornire un percorso personalizzato, dovrebbe fornire intestazioni appropriate per evitare ciò e dovrebbe riconsiderare la riflessione sull'input dell'utente.
risposta data 31.10.2014 - 12:11
fonte

Leggi altre domande sui tag