¿Se puede instalar un shim (a.k.a. polyfill) en IE, FF o Chrome sin el conocimiento del usuario, y puede leer las contraseñas ingresadas por el usuario en una página de inicio de sesión?

2

Las preguntas aquí son acerca de las correcciones de compatibilidad en los 3 navegadores más utilizados.

Un shim (también conocido como polyfill) es un fragmento de código (a menudo JavaScript o Flash) implementado para aumentar la API nativa en un navegador web.

Tengo dos preguntas sobre esta tecnología:

  • ¿Se puede instalar un shim en IE, FF o Chrome sin el conocimiento del usuario?
  • ¿El código en la cuña tiene acceso a las credenciales de inicio de sesión ingresadas por usuario en una página web?
pregunta coderworks 22.08.2015 - 19:13
fuente

3 respuestas

3

Un desarrollador elige escribir un polyfill porque satisface sus necesidades personales. De este aspecto personal pueden surgir todos los problemas que pueda imaginar, a saber, el código JavaScript malicioso.

  

¿Se puede instalar un shim en IE, FF o Chrome sin el conocimiento del usuario?

Seguramente. Ataques de descarga drive-by que consisten en la entrega de malware sin el conocimiento / consentimiento del visitante de una aplicación web comprometida determinada. Dichos ataques explotan vulnerabilidades en los propios navegadores web o en los de sus complementos instalados. Tenga en cuenta que estos complementos pueden ser inocuos pero vulnerables, o maliciosos por diseño;

  

¿El código en la cuña tiene acceso a las credenciales de inicio de sesión ingresadas por   usuario en una página web?

Calce o no, siempre que un atacante logre instalar y ejecutar algún código JavaScript malicioso en su navegador, cualquier cosa puede pasar. No tengo un mejor ejemplo para darles que el notorio ZombieBrowserPack . Este es un proyecto de código abierto desarrollado primero como un POC por Zoltan Balazs, y está dirigido a algunos de los navegadores más utilizados (Chrome, Firefox e IE). Este complemento se puede manipular de forma remota para robar las credenciales de autenticación, e incluso omitir los mecanismos de autenticación de dos factores, como los implementados por Yahoo y Google. También puede secuestrar su cuenta de Facebook u obtener las credenciales de su cuenta bancaria si realiza una compra en línea. Puedes imaginar un plugin de este tipo destinado a cumplir con esta o aquella característica (shim) y hacer algo nefasto en el fondo.

    
respondido por el user45139 23.08.2015 - 12:13
fuente
3

Un shim o polyfill no se instala en un navegador, pero se entrega como parte de una página web para proporcionar funcionalidad para esta página. Es solo el contenido activo normal (JavaScript, Flash ...) que solo recibe el nombre de shim o polyfill porque cumple el propósito específico descrito por estos nombres. No tiene permisos ni restricciones especiales en comparación con otro contenido activo.

Como no es nada especial, se incluye en una página web de la misma forma que otro contenido activo, por ejemplo, utilizando la etiqueta script en el caso de JavaScript. Y como un shim no tiene restricciones en comparación con otro contenido activo, puede hacer cualquier cosa que pueda hacer otro contenido activo, incluida la manipulación del árbol DOM, la captura de pulsaciones de teclas, la lectura del contenido de los campos de entrada, el acceso a las cookies para la página, etc. también toda la restricción que tiene otro contenido activo, es decir, que estas acciones están sujetas a la misma política de origen, etc. Esto significa que no puede capturar contraseñas de sitios de terceros, pero puede capturar contraseñas del sitio donde se incluyó el shim.

Al incluir un shim / polyfill de un tercero en su propio sitio web, debe tener en cuenta que el contenido del shim está fuera de su control. No solo puede desaparecer y así romper su sitio, sino que también puede modificarse para incluir la funcionalidad que no le gusta (como capturar contraseñas). Esto puede suceder porque el tercero es malicioso por sí mismo o ha sido hackeado. Este vector de ataque no solo es relevante para los shims, sino también para cualquier tipo de contenido activo que incluya de una fuente de terceros; es decir, bibliotecas de Javascript como jQuery, anuncios, botones para redes sociales, etc.

Por lo tanto, si necesita un shim, es mejor copiarlo en su sitio para tener un control total sobre la disponibilidad y las modificaciones. Debería echarle un vistazo al código para asegurarse de que el shim en sí no incluya el código de un tercero, porque entonces todavía tendría las mismas vulnerabilidades.

    
respondido por el Steffen Ullrich 23.08.2015 - 16:59
fuente
1

Un shim o polyfill no es nada especialmente especial. Es solo un código javascript: el nombre se usa para describir la tarea que realiza (es decir, hacer que el comportamiento esperado se complete en navegadores antiguos o incompatibles)

Para responder a sus preguntas:

  • ¿Se puede instalar un shim en IE, FF o Chrome sin el conocimiento del usuario?
    Como los shims y polyfills son solo bibliotecas de Javascript, el modo más probable de infección sería una extensión de navegador malintencionado. Estos a menudo se instalan aprovechando el proceso de instalación de las aplicaciones de escritorio. (Piense en las barras de herramientas de búsqueda, etc.)

  • ¿El código de la cuña tiene acceso a las credenciales de inicio de sesión ingresadas por el usuario en una página web?
    Si Javascript ha encontrado su camino hacia el contexto de la página que está viendo, generalmente será muy sencillo para que pueda interceptar envíos de formularios o tomar el valor de los campos de entrada que ingresa. Es una razón por la que debe tener cuidado cuando instalando extensiones de navegador y dándoles acceso a "Todos los sitios" o "Todos los datos del sitio".

respondido por el Nic Barker 23.08.2015 - 04:56
fuente

Lea otras preguntas en las etiquetas