¿Los navegadores permiten que las páginas cargadas en una pestaña accedan / intercepten / inyecten datos en otras pestañas?

11

Me sorprendió saber de este video de Reuters que era posible para una página cargada en una pestaña para acceder y / o inyectar datos en otra página cargada en una pestaña diferente.

TL; DW (demasiado perezoso; no vio) El entrevistado en el video sugiere que al realizar operaciones bancarias en línea, el usuario salga de su navegador (cerrando así todas las ventanas) e inicie un nuevo navegador sesión con solo su página bancaria / pestaña abierta. Al parecer, los sitios malintencionados pueden verificar si su sitio bancario está abierto e inyectar comandos en esos sitios.

¿Puede alguien confirmar y / o negar esta afirmación? ¿Es solo posible incluso si no hay una relación padre / hijo entre ventanas / pestañas?

    
pregunta jairo 06.07.2012 - 16:19
fuente

3 respuestas

9

Una implementación muy común es compartir sesiones en el mismo proceso. Por ejemplo: ha iniciado sesión en su cuenta bancaria en la pestaña A. Cuando copia la URL y la pega en la pestaña B (de la misma ventana del navegador), entonces: todavía está conectado. La situación debe ser diferente cuando comienza otro proceso de su navegador y pegue la URL en otra ventana del navegador.

¿Significa que el sitio web A abierto en la pestaña A tiene acceso a la sesión desde cualquier otra pestaña? La respuesta es simple: no, debido a la misma política de origen . Los sitios web maliciosos no pueden interferir con otros sitios web (incluso los que están abiertos en pestañas cercanas).

Otra idea podría ser robar datos / contenido del sitio web abierto en la pestaña A a través de XMLHttpRequest . XMLHttpRequest abre el enlace a nuestro banco, busca contenido sensible y lo envía al atacante. Bueno, este escenario sigue siendo ficticio. ¿Por qué? La misma respuesta aquí: misma política de origen otra vez. Sin embargo, existe la posibilidad de aumentar las posibilidades de éxito en este escenario (por ejemplo, la Política de zona en IE o MSXML 3.0 [http / https]), pero IMO es muy poco probable.

Bueno, el principal peligro que debe mencionarse en este contexto es:

  • CSRF
  • Tabnapping

CSRF :

Veamos un escenario simple. Ha iniciado sesión en su banco, que no tiene protección CSRF. Mientras tanto, cambia a otra pestaña (o incluso cierra la pestaña con el sitio web de su banco; lo más importante aquí es que no se desconectó, su sesión no se destruyó y dice que aún está conectado). Otra pestaña envía solicitudes HTTP a tu banco. Como el sitio web no tiene idea de si los requisitos son generados por script o por humanos, los acepta. Por lo tanto, las órdenes / solicitudes no autorizadas se transmitieron a su banco.

Tabernas :

Es un tipo de ataque de phishing bastante nuevo. Hay un script JS colocado en un sitio de apariencia normal que detecta si su pestaña está activa (enfocada) o no. Cambia a otra pestaña. Luego, JS reemplaza el título y el título (ahora tienen el mismo aspecto y el título del banco). Cuando vuelvas a hacer clic en la pestaña falsa, verás contenido modificado (que se ve igual que el sitio web de tu banco).

    
respondido por el p____h 06.07.2012 - 18:51
fuente
2

Esto depende en gran medida de la implementación y las medidas de seguridad implementadas por el navegador. ¿En realidad? Chrome o Firefox u Opera probablemente evitarán este tipo de ataque. Solía ser un problema hace años, pero en general ahora no lo es. ¿Podría aún suceder? Potencialmente. Sin embargo, sería necesario encontrar un error de seguridad en el navegador y explotarlo para hacer esto.

Chrome de manera predeterminada agrupa las pestañas padre / hijo en el mismo proceso de pestañas, pero cada grupo de pestañas se ejecuta en procesos aislados y aislados para evitar este tipo de problemas. Creo que Firefox y Opera tienen medidas de seguridad similares, pero no sé lo suficiente como para comentar en profundidad.

Si esto es algo de lo que te preocupas y estás usando Chrome, simplemente crea una nueva ventana de navegación privada ( Ctrl + Shift + N ) y haz tu banca allí. Esto hará que Chrome genere un proceso de pestañas nuevo y aislado, y todas las extensiones están deshabilitadas de forma predeterminada en el modo de navegación privada, lo que significa que el único javascript que se ejecuta con acceso a la información es el contenido del sitio web bancario.

    
respondido por el Darth Android 06.07.2012 - 16:29
fuente
0

El consejo en el video no es una tontería total, aunque no sería algo que enfatizaría a mis amigos o familiares. Sin embargo, la explicación en el video es potencialmente un poco confusa.

Los navegadores están diseñados específicamente para intentar evitar que una página en una pestaña ataque una página abierta en otra pestaña (asumiendo que son de dos dominios diferentes). El mecanismo de seguridad específico se conoce como política del mismo origen . Entonces, en términos generales, generalmente puede suponer que una página abierta en una pestaña no puede atacar a otro sitio abierto en otra pestaña. Sin embargo, hay dos excepciones importantes:

  1. Si el navegador tiene una vulnerabilidad, todas las apuestas están desactivadas. Si el navegador tiene una vulnerabilidad sin parchear, una página maliciosa en una página podría ser capaz de explotar la vulnerabilidad, obtener el control del navegador y luego atacar a la otra página.

    Los proveedores de navegadores hacen todo lo posible para evitar vulnerabilidades como esta, pero a veces sucede. Si está utilizando un navegador moderno (la última versión de Chrome, Firefox o IE), estas vulnerabilidades deberían ser relativamente raras. Si está utilizando una versión anterior, oh chico, podría estar en problemas.

    Apagar el navegador e iniciarlo solo con el sitio del banco cargado no ayuda a defenderse contra este tipo de ataque.

  2. Si el sitio web tiene una vulnerabilidad, podría ser susceptible a este tipo de ataque. Supongamos que el sitio bancario, bank.com , tiene un tipo particular de vulnerabilidad conocida como vulnerabilidad de falsificación de solicitud entre sitios (CSRF). Luego, si tiene una página bank.com abierta en una pestaña y una página de evil.com abierta en otra pestaña, la página de evil.com podría atacar su sesión bancaria explotando la vulnerabilidad CSRF en el sitio del banco.

    Con suerte, cualquier sitio de banca en línea razonable debe estar diseñado para evitar las vulnerabilidades de CSRF, por lo que espero que esto sea raro en los sitios de alta seguridad. Sin embargo, sí sucede. (Y es mucho más común en los sitios de baja calificación).

    Apagar su navegador y ponerlo en marcha solo con su banco cargado se defiende contra este tipo de ataque.

Por lo tanto, si toma todo esto en cuenta, es probable que no tenga que preocuparse por cerrar su navegador e iniciarlo solo con el sitio de su banco. Me doy cuenta de que hay algunas circunstancias en las que podría ayudar, pero son bastante limitadas.

Si me pidiera consejos sobre cómo garantizar que la banca en línea sea segura, esto es lo que sugeriría. Si eres un consumidor:

  • Elija un banco que se comprometa a hacerlo en su totalidad, en caso de fraude o transacciones no autorizadas. En los Estados Unidos, la mayoría de los bancos tienen esta política para las cuentas de los consumidores.

  • Activa las actualizaciones automáticas de tu sistema operativo. Asegúrese de mantener actualizado su sistema operativo.

  • Elija un navegador moderno y manténgalo actualizado (la mayoría de los navegadores se actualizarán automáticamente en estos días). Si quieres ser especialmente paranoico, Chrome tiene una buena reputación de seguridad.

  • Elija una contraseña difícil de adivinar.

  • En Windows, instale un programa antivirus (hay productos A / V gratuitos razonables).

Y eso es todo. Si desea ser más cauteloso, podría tomar algunos pasos adicionales: instale Secunia PSI y siga sus recomendaciones; también puede iniciar un Linux LiveCD para su banca en línea.

Si eres un negocio, asegurar la banca en línea es mucho más difícil, porque los bancos generalmente no te reembolsan por fraude: si un malvado roba todo tu dinero, muy mal, pierdes. Es posible que desee preguntarse cuidadosamente si realmente lo necesita. Si lo hace, le sugiero que utilice una serie de pasos paranoicos: arranque en un LiveCD cada vez que necesite hacer banca en línea; establecer límites de transacción con su banco; considere habilitar la autenticación de dos factores, como uno que usa RSA SecurID o su teléfono móvil para confirmar las transacciones; Considere comprar una máquina separada que utilice solo para banca en línea y nada más (ni correo electrónico, ni navegación web, nada más).

    
respondido por el D.W. 08.07.2012 - 03:51
fuente

Lea otras preguntas en las etiquetas