¿Por qué se permiten los iframes en los navegadores modernos?

17

Leí una serie de blogs de seguridad de TI (aunque no soy un experto en seguridad), y parece que un porcentaje significativo de las vulnerabilidades en la naturaleza se realizan mediante la adición de iframes maliciosos a un sitio web pirateado, con el iframe apuntando a los maliciosos carga útil.

Teniendo en cuenta esto, junto con el hecho de que realmente no he visto casi ninguna aplicación legítima de iframe que no sea detestable, ¿por qué están permitidas en los navegadores modernos? Me parece que una forma fácil de bloquear un número significativo de ataques directos es simplemente deshabilitar la compatibilidad con iframe en el navegador.

Alternativamente, un mecanismo de "clic para cargar", similar a los complementos "clic a flash" comunes para muchos navegadores tendría un efecto similar, sin impedir por completo que los sitios existentes que usan iframes funcionen.
Alternativamente, deshabilitar los iframes que cargan contenido de otro dominio probablemente también sería efectivo.

Ciertamente, no afirmo que el bloqueo de iframes solucione todas las soluciones de seguridad web, pero desde una perspectiva de costo-beneficio, parece una manera muy fácil de bloquear una cantidad significativa de problemas de seguridad.

    
pregunta Fake Name 21.02.2013 - 09:06
fuente

6 respuestas

19

Dado que el marco está en desuso, y AJAX tiene control de origen, iframes es prácticamente la única forma de incrustar otra página en la suya.

Otra cosa es que puedes usar iframes para mostrar archivos PDF / etc. Claro, también puedes usar <object> para eso, pero los iframes son más fáciles.

GMail está hecho de iframes. El UX suave de GMail (aún puede usarlo cuando se rompe su conexión a Internet, la navegación sin problemas sin tener que volver a cargar cada vez) proviene de iframes. Nuevamente, esto podría implementarse en AJAX, pero es más difícil.

Una última cosa que viene a la mente es la compatibilidad hacia atrás. Muchos sitios usan iframes, y deshabilitarlos rompería muchos de ellos. Claro, el clic para habilitar tampoco lo cortará aquí. Uno de los precursores de AJAX fue un truco con iframes y javascript. Muchos sitios web solían usar eso, y "hacer clic para cargar" interrumpirá el flujo de JS.

Por otro lado, los desarrolladores modernos conocen bien los problemas con iframes (CSRF, clickjacking, etc.) y pueden tomar medidas para evitarlo.

Si lo observa, los argumentos en esta pregunta podrían aplicarse igualmente a los applets de Java. O Flash. O incrustación en PDF. O imágenes (CSRF). O galletas. Por ejemplo, otros sitios pueden CSRF a través de imágenes. Depende de usted asegurarse de que su sitio no sea vulnerable a estos.

    
respondido por el Manishearth 21.02.2013 - 09:24
fuente
8

sistemas de pago 3-D Secure (por ejemplo, MasterCard SecureCode ) use un iframe . Las versiones anteriores utilizaban una ventana emergente, cuya procedencia era mucho más fácil de verificar por el usuario. Al parecer, resultó que los usuarios que se presentan con una ventana emergente de VISA / MasterCard no verifican, en realidad, la procedencia de la ventana emergente; en cambio, se confunde y se rescata, abortando su transacción.

De esto podemos sacar la siguiente conclusión: iframes no desaparecerá pronto. Ahora son necesarios para la compatibilidad hacia atrás con los sistemas de pago que, en última instancia, pagan por toda Internet. Además, podemos decir que no usar iframes brinda beneficios de seguridad solo en la medida en que los usuarios activen su cerebro y no se asusten, no apostaría por eso.

    
respondido por el Thomas Pornin 21.02.2013 - 20:16
fuente
5

Deshabilitar iframes rompería la funcionalidad y no lograría nada.

La inyección de exploits generalmente se realiza con un iframe porque es la forma más conveniente para que los atacantes configuren y administren la redirección. Pero los iframes reales no tienen nada que ver con exploits. No es como Click-to-Play en el que está protegido de ataques reales en los complementos de Java y Flash directamente.

Si solo unos pocos usuarios tienen iframes desactivados, obtienen un beneficio de seguridad al evitar estos ataques. (Aunque, dado que los iframes se usan ampliamente para muchos tipos diferentes de funcionalidad en la web, es cuestionable si vale la pena).

Pero si todos los navegadores desactivaran la compatibilidad con iframe, los atacantes simplemente elegirían algún otro método para inyectar exploits en sitios comprometidos, como direct <script> , redirección de páginas, ventanas emergentes, etc.

Una medida de seguridad que aborde síntomas como <iframe> en lugar de la causa raíz del problema solo es útil si es inusual, por lo que los atacantes no lo esperan. Tan pronto como se convierte en la corriente principal, pierde su valor. Si usted es un importante proveedor de navegadores, no tiene mucho sentido implementar un control de seguridad que se volverá inútil de inmediato.

    
respondido por el bobince 22.02.2013 - 11:57
fuente
1

La red mundial es una colección de recursos vinculados. El iframe es el último enlazador, se vincula a paquetes completos de recursos. Y como cualquier tecnología, puede ser usada para bien y para mal.

El iframe no es la única forma de vincular a los recursos de malware. En última instancia, hay un script de JavaScript u otro recurso como un SWF o un JAR que explota el navegador. iframe es solo una forma agradable, flexible y compacta de administrar la carga de contenido de malware desde fuentes centralizadas.

Noscript tiene el tipo de controles que bloquea iframes . Está deshabilitado por defecto porque rompe muchas cosas. Una gran cantidad de tecnología web se basa en el iframe y gran parte de Internet se rompería si bloquea o solicita iframes .

    
respondido por el Cristian Dobre 21.02.2013 - 09:26
fuente
1

El iframe es solo un elemento que permite mezclar contenido de diferentes fuentes en un solo cliente. Hay otros elementos como este. Si prohíbe los elementos iframe , seguirán existiendo los mismos riesgos de seguridad, por ejemplo, con animaciones Flash. En un elemento object o embed , un sitio A que muestra anuncios Flash permite que un sitio B decida qué contenido se mostrará a los usuarios del sitio A. Flash anims puede ejecutar secuencias de comandos, acceder a un micro-almacenamiento ... Los riesgos del sitio están ahí.

    
respondido por el Nicolas Barbulesco 23.02.2013 - 11:36
fuente
1

El 99% de los videos se presentan en iframes, incluidos Youtube, vimeo, Vk y la mayoría de los hosts de archivos.

También mire en Paypal, 3D seguro, la mayoría de los sistemas bancarios, EBAY, Amazon, Alibaba, Facebook, la lista es interminable.

TODOS usan iframes. Visite los 100 sitios web principales, vea la fuente, apuesto a que encuentra iframes en casi todos.

    
respondido por el analyzes 18.06.2014 - 11:55
fuente

Lea otras preguntas en las etiquetas