I browser consentono alle pagine caricate su una scheda di accedere / intercettare / iniettare dati in altre schede?

11

Sono rimasto sorpreso dal questo video Reuters che era possibile caricare una pagina su una scheda per accedere e / o iniettare dati su un'altra pagina caricata su una scheda diversa.

TL; DW (troppo pigro, non guardato) L'intervistato nel video suggerisce che quando si fa il banking online, l'utente esce dal browser (chiudendo così tutte le finestre) e avvia un nuovo browser sessione con solo la pagina bancaria / scheda aperta. Presumibilmente, i siti malevoli possono verificare se il tuo sito bancario è aperto e immettere comandi su quei siti.

Qualcuno può confermare e / o negare questo reclamo? È possibile solo anche se non esiste una relazione genitore / figlio tra finestre / schede?

    
posta jairo 06.07.2012 - 16:19
fonte

3 risposte

9

L'implementazione molto comune è la condivisione di sessioni nello stesso processo. Ad esempio: si è effettuato l'accesso al proprio conto bancario nella scheda A. Quando si copia l'URL e lo si incolla nella scheda B (della stessa finestra del browser), quindi: si è ancora connessi. La situazione dovrebbe essere diversa all'avvio un altro processo del browser e incollare l'URL in un'altra finestra del browser.

Significa che il sito web A aperto nella scheda A ha accesso alla sessione da qualsiasi altra scheda? La risposta è semplice: no, a causa della politica sulla stessa origine . I siti Web dannosi non possono interferire con altri siti Web (anche se sono aperti nelle schede nelle vicinanze).

Un'altra idea potrebbe essere il furto di dati / contenuti dal sito web aperto nella scheda A tramite XMLHttpRequest . XMLHttpRequest apre il link alla nostra banca, analizza i contenuti sensibili e li invia all'autore dell'attacco. Bene, questo scenario è ancora fittizio. Perché? La stessa risposta qui: stessa politica di origine di nuovo. Tuttavia, esiste la possibilità di aumentare le probabilità di successo in questo scenario (ad esempio, Zone Policy in IE o MSXML 3.0 [http / https]), ma IMO è ancora molto improbabile.

Bene, il principale pericolo che dovrebbe essere menzionato in questo contesto sono:

  • CSRF
  • Tabnapping

CSRF :

Diamo un'occhiata a uno scenario semplice. Sei connesso alla tua banca, che non ha alcuna protezione CSRF. Nel frattempo si passa a un'altra scheda (o addirittura si chiude la scheda con il sito Web della propria banca - il più importante è che non si è disconnessi, la sessione non è stata distrutta e si dice che si è ancora connessi). Un'altra scheda invia richieste HTTP alla tua banca. Poiché il sito web non ha idea se i reqests sono generati da script o da umani, li accetta. Quindi comandi / richieste non autorizzati sono stati trasmessi alla tua banca.

Tabnapping:

È un tipo piuttosto nuovo di attacco di phishing. C'è uno script JS messo su un sito dall'aspetto normale che rileva se la tua scheda è attiva (focalizzata) o meno. Si passa a un'altra scheda. Quindi JS sostituisce la favicon e il titolo (ora hanno lo stesso aspetto della favicon e del titolo della tua banca). Quando fai di nuovo clic sulla scheda falso, vedrai il contenuto modificato (che ha lo stesso aspetto del sito web della tua banca).

    
risposta data 06.07.2012 - 18:51
fonte
2

Ciò dipende in gran parte dall'implementazione e dalle misure di sicurezza attuate dal browser. In realtà? Chrome o Firefox o Opera probabilmente prevengono questo tipo di attacco. Era un problema anni fa, ma in generale ora non lo è. Potrebbe ancora succedere? Potenzialmente. Richiederebbe comunque di trovare un bug di sicurezza nel browser e di sfruttarlo per farlo,

Chrome per impostazione predefinita raggruppa le schede padre / figlio nello stesso processo di tabulazione, ma ogni gruppo di schede viene eseguito in processi isolati in modalità sandbox in modo specifico per prevenire questo tipo di problema. Credo che Firefox e Opera abbiano misure di sicurezza simili, ma non conosciamo abbastanza per commentare in profondità.

Se questo è qualcosa di cui ti preoccupi e stai usando chrome, crea semplicemente una nuova finestra di navigazione privata ( Ctrl + Maiusc + N ) e fai il tuo banking lì. Ciò farà sì che Chrome crei un nuovo processo di tabulazione isolato e tutte le estensioni siano disabilitate per impostazione predefinita in modalità di navigazione privata, il che significa che l'unico javascript in esecuzione con accesso alle informazioni proviene dal sito Web bancario stesso.

    
risposta data 06.07.2012 - 16:29
fonte
0

Il consiglio nel video non è una totale assurdità, anche se non sarebbe qualcosa che sottolineo ai miei amici o alla mia famiglia. Tuttavia, la spiegazione nel video è potenzialmente un po 'confusa.

I browser sono progettati specificamente per cercare di impedire a una pagina in una scheda di attaccare una pagina aperta in un'altra scheda (supponendo che provengano da due domini diversi). Il meccanismo di sicurezza specifico è noto come criterio della stessa origine . Quindi, in generale, di solito si può presumere che una pagina aperta in una scheda non possa attaccare un altro sito aperto in un'altra scheda. Tuttavia, ci sono due importanti eccezioni:

  1. Se il browser ha una vulnerabilità, tutte le scommesse sono disattivate. Se il browser ha una vulnerabilità senza patch, una pagina dannosa in una pagina potrebbe essere in grado di sfruttare la vulnerabilità, ottenere il controllo del browser e quindi attaccare l'altra pagina.

    I venditori di browser fanno del loro meglio per evitare vulnerabilità come questa, ma a volte succede. Se si utilizza un browser moderno (l'ultima versione di Chrome, Firefox o IE), tali vulnerabilità dovrebbero essere relativamente rare. Se stai usando una versione precedente, oh boy, potresti trovarti nei guai.

    Spegnere il browser e avviarlo con solo il sito della banca caricato non aiuta a difendersi da questo tipo di attacco.

  2. Se il sito web presenta una vulnerabilità, potrebbe essere suscettibile a questo tipo di attacco. Supponiamo che il sito bancario, bank.com , abbia un particolare tipo di vulnerabilità noto come vulnerabilità di cross-site request forgery (CSRF). Quindi, se hai una pagina bank.com aperta in una scheda e una pagina da evil.com aperta in un'altra scheda, la pagina da evil.com potrebbe attaccare la tua sessione bancaria sfruttando la vulnerabilità CSRF nel sito della banca.

    Si spera che qualsiasi ragionevole sito di banking online debba essere progettato per evitare le vulnerabilità di CSRF, quindi speriamo che questo sia raro per i siti ad alta sicurezza. Tuttavia, succede. (Ed è molto più comune per i siti di bassa qualità.)

    Lo spegnimento del browser e l'avvio solo con la tua banca caricata difendono da questo tipo di attacco.

Quindi, se si tiene conto di tutto questo - le probabilità sono, probabilmente non è necessario fare questo business per spegnere il browser e avviarlo con il solo sito della banca. Mi rendo conto che ci sono alcune circostanze in cui potrebbe essere di aiuto, ma sono piuttosto limitate.

Se mi hai chiesto un consiglio su come garantire che l'online banking sia sicuro, ecco cosa suggerirei. Se sei un consumatore:

  • Scegli una banca che ti prometta di farti sentire, in caso di frode o di transazioni non autorizzate. Negli Stati Uniti, la maggior parte delle banche ha questa politica per gli account dei consumatori.

  • Attiva gli aggiornamenti automatici sul tuo sistema operativo. Assicurati di mantenere aggiornato il tuo sistema operativo.

  • Scegli un browser moderno e mantienilo aggiornato (la maggior parte dei browser si aggiornerà automaticamente in questi giorni). Se vuoi essere particolarmente paranoico, Chrome ha una buona reputazione per la sicurezza.

  • Scegli una password difficile da indovinare.

  • Su Windows, installa un programma antivirus (ci sono prodotti A / V gratuiti ragionevoli).

E questo è tutto. Se vuoi essere più cauto, puoi fare qualche passo in più: installa Secunia PSI e segui i suoi consigli; puoi anche avviare un LiveCD Linux per il tuo banking online.

Se sei un'azienda, la sicurezza online è molto più difficile, perché le banche di solito non ti rimborsano per frode: se un cattivo ti ruba tutti i tuoi soldi, peccato, perdi. Potresti chiederti attentamente se ne hai davvero bisogno. Se lo fai, ti suggerisco di utilizzare una serie di passaggi paranoici: avviare in un LiveCD ogni volta che devi fare il banking online; stabilire limiti di transazione con la tua banca; considerare l'attivazione dell'autenticazione a due fattori, come quella che utilizza RSA SecurID o il proprio telefono cellulare per confermare le transazioni; considera l'acquisto di una macchina separata che utilizzi solo per l'online banking e nient'altro (non e-mail, non navigazione sul Web, nient'altro).

    
risposta data 08.07.2012 - 03:51
fonte

Leggi altre domande sui tag