Perché dovrebbe essere presente crossdomain.xml se esistono file caricati dall'utente?

2

Nel suo libro Michal Zalewski dice:

To protect your users, include a top-level crossdomain.xml file with the permitted-cross-domain-policies parameter set to master-only or by-content-type, even if you do not use Flash anywhere on your site. Doing so will prevent unrelated attacker-controlled content from being misinterpreted as a secondary crossdomain.xml file, effectively undermining the assurances of the same-origin policy in Flash-enabled browsers.

Attualmente il sito ha le seguenti norme per i file caricati dall'utente:

  • Tutti i download hanno Content-Disposition: allegato
  • I link di download dei file caricati dall'utente sono posizionati su un dominio separato dal sito principale
  • X-Content-Type-Options: NOSNIFF

Nel caso in cui non ci sia crossdomain.xml come può l'attaccante posizionare crossdomain.xml in modo che venga interpretato come crossdomain.xml valido? Cosa succede se è presente crossdomain.xml ? Esistono altre vulnerabilità relative a crossdomain.xml ?

    
posta Andrei Botalov 20.03.2012 - 12:18
fonte

2 risposte

2

Non lo so. Non sono Michael Zalewski, e posso solo speculare sulla base di questo consiglio. Ha detto qualcosa di più nel libro?

Il file crossdomain.xml contiene la politica che Flash utilizza per determinare in che modo altri siti possono interagire con questo sito. Se contiene una politica permissiva, allora possono accadere cose brutte. Pertanto, non vuoi che gli utenti siano in grado di caricare un criterio che imposta una politica permissiva per il tuo sito.

Ci sono tre rischi di cui sono a conoscenza:

  1. In questi giorni, per impostazione predefinita, Flash cercherà il file crossdomain.xml nella radice del tuo sito: http://www.example.com/crossdomain.xml . Se un utente ha la possibilità di caricare file nella root del tuo sito e scegliere il suo nome file, l'utente può scegliere il nome file crossdomain.xml e sceglierne il contenuto per specificare un criterio di sicurezza permissivo. Sarebbe male.

  2. Credo che una volta, le applet Flash potessero specificare dove cercare crossdomain.xml file di criteri ; in particolare, Flash guarderebbe volentieri in un luogo diverso dalla radice del tuo sito. Supponiamo che tu consenta agli utenti di caricare file di loro scelta, con la loro scelta di nome file, nella directory /uploads . Un utente malintenzionato potrebbe caricare http://www.example.com/uploads/crossdomain.xml . Quindi, l'utente malintenzionato potrebbe ospitare una malvagia applet Flash sul proprio sito e dirgli alla piattaforma Flash che il file delle politiche di www.example.com può essere trovato in http://www.example.com/uploads/crossdomain.xml . Flash si conformerebbe allegramente, portando a conseguenze infelici.

    Credo che le versioni moderne di Flash Player non soffrano più di questa vulnerabilità. Guarderanno sempre per prima cosa la directory root, per verificare una crossdomain.xml , e cercheranno solo crossdomain.xml di file altrove se quella alla radice lo consente.

  3. C'erano una volta versioni precedenti di Flash Player che presentavano difetti di sicurezza che avrebbero consentito a un utente malintenzionato di imbrogliare il lettore Flash per cercare qualcosa di diverso dalla directory root per il file crossdomain.xml . Quindi siamo nella stessa situazione del rischio precedente. Credo che questa vulnerabilità sia stata risolta molto tempo fa.

Non so se questi ultimi due rischi siano più rilevanti. Penso che siano stati risolti molto tempo fa. Tuttavia, suppongo sia possibile che alcuni dei tuoi utenti utilizzino vecchie versioni di Flash Player che hanno ancora questo problema.

Dato ciò che hai detto sull'hosting di tutti i contenuti utente su un dominio separato, per quanto ne so, il tuo sito dovrebbe essere sicuro, anche se non intraprendi ulteriori azioni. Tuttavia, forse Michael Zalewski sa qualcosa che non so. (OK, sono sicuro che ne sa molto che non so, voglio dire, forse conosce un quarto rischio / attacco di cui non sono a conoscenza.)

    
risposta data 21.03.2012 - 02:01
fonte
1

Ecco una risposta di Michal Zalewski che ho ricevuto via email:

The concern is that is that Flash can be pointed to any URL to interpret it as crossdomain.xml; so for example, if you allow users to upload images, download CSV reports for their data, or host any other sort of attachments or generated text files, you are at risk. Requiring the MIME type to match precisely is a simple countermeasure.

    
risposta data 21.05.2012 - 18:32
fonte

Leggi altre domande sui tag