lunedì 7 ottobre 2013

L'inutilità di sicurezza che è l'incorporazione di forme d'accesso sicure all'interno di pagine non sicure

Ho scritto un mucchio di contenuti intorno HTTPS ultimamente e la registrazione di video per dimostrare la facilità con cui le implementazioni insicure di SSL può essere rotto. Ad esempio, vi è stato il pezzo su cui non si può fidare loghi SSL , allora come caricando moduli di login su HTTP, ma annuncio a HTTPS è inutile e, più recentemente, perché quei avvertimenti contenuto misto significa guadagni facili per gli attaccanti sul layer di trasporto . Tutti questi implicano dimostrazioni di lavoro contro i siti reali che proprio non riesce quasi mai HTTPS.
L'esempio di oggi è su ciò che accade quando una pagina di login viene caricato in modo sicuro, anche se incorporato in una pagina non sicura.Questo è un comune di sicurezza anti-modello e vedrete che in molti siti. L'esempio nel video è da conto alla rovescia in Nuova Zelanda , ma ancora una volta, ci sono innumerevoli altri là fuori. Date un'occhiata al video e poi tornerò a come ho montato l'attacco:

Ha senso? In breve, non si può mai fidare della componente HTTP della comunicazione e senza la possibilità di vedere l'URL nel browser caricato su un indirizzo HTTPS con un certificato valido , l'implementazione SSL è quasi inutile.
La meccanica di come ho dimostrato attacchi contro l'uso insufficiente delle SSL comporta l'uso di script di Fiddler . Molti di voi potrebbero già avere familiarità con Fiddler , l'opzione di scripting ci dà la capacità di manipolare il traffico non crittografato sul filo proprio come un utente malintenzionato potrebbe in qualsiasi punto della rete di comunicazione. Chiaramente un attaccante, diciamo un ISP o l'esecuzione di un hotspot wireless canaglia non sarebbe in esecuzione Fiddler, ma la meccanica di manipolazione richieste e risposte è simile ad altri strumenti.
In questo esempio ho semplicemente aggiunto il seguente script in caso OnBeforeResponse:
se ( oSession . HostnameIs ( "www.countdown.co.nz" ) && oSession . PathAndQuery == "/" ) { 
    / / Rimuovere qualsiasi compressione o 
    

    

    Modificare il percorso di login 
    


    Impostare il corpo di risposta al mutato stringa corpo 
    oSession . utilSetResponseBody ( obody ); 
}

In altre parole, quando viene caricata la pagina iniziale è sufficiente sostituire il link al form di login da quello originale per uno dell'attaccante che sembra la stessa. Lavoro fatto.