Cómo las Herramientas para desarrolladores de Chrome te ayudan a defenderte de los ataques de XSS por cuenta propia

Wolfgang Beyer
Wolfgang Beyer

¿Qué son los ataques de XSS propios?

Self-XSS, o secuencia de comandos entre sitios, es un tipo de ataque de ingeniería social que te engaña para que ejecutes código malicioso en tu navegador web. A diferencia de los ataques XSS normales, que se basan en vulnerabilidades en aplicaciones web que permiten a los atacantes inyectar código malicioso, los ataques de XSS propios dependen de tus propias posibles acciones de ejecución de código.

Los ataques de Self-XSS suelen implicar que el atacante te engañe para que copies y pegues código malicioso en la Consola de Herramientas para desarrolladores de tu navegador. Por lo general, el atacante logra esto prometendo algún tipo de recompensa. Esto puede deberse a lo siguiente:

  • Prometerte que el código te dará acceso a funciones ocultas o recompensas virtuales
  • Aparentar que el código es una prueba de seguridad o una corrección de errores
  • Prometer que el código permita hackear un sitio web para tu beneficio

Una vez que ejecutes el código, el atacante podrá obtener el control de tu cuenta. Esto puede permitir al atacante hacer lo siguiente:

  • Robar información personal, como nombre, dirección y número de tarjeta de crédito
  • Publicar mensajes o comentarios no autorizados en tu nombre
  • Controla tus cuentas de redes sociales.
  • Distribuye software malicioso a otros usuarios.

¿De qué manera las Herramientas para desarrolladores de Chrome intentan mitigar los ataques de XSS por cuenta propia?

Permitir que los usuarios peguen código en Herramientas para desarrolladores y luego lo ejecuten es intrínsecamente riesgoso. Sin embargo, también es una de las funciones principales de las Herramientas para desarrolladores de Chrome. Por lo tanto, tuvimos que encontrar un equilibrio entre mitigar los posibles ataques de XSS propios y no interferir en el trabajo de los desarrolladores que solo quieren depurar sitios web.

Los desarrolladores no suelen copiar el código que encuentran en algún lugar de la Web, lo pega en Herramientas para desarrolladores y lo ejecutan sin antes tener que ver rápidamente lo que hace el código. La mayoría de los desarrolladores son muy conscientes de los riesgos de seguridad relacionados con la ejecución de código que encuentran en un rincón boceto de la Web.

Las Herramientas para desarrolladores de Chrome confían en que los desarrolladores sepan lo que están haciendo. No queremos ralentizarlos ni distraerlos de ninguna manera cuando copian y pegan código.

Creemos que quienes no son desarrolladores tienen un riesgo mucho mayor de ser víctima de un ataque de XSS propio. Para protegerte, creemos que es aceptable y beneficioso interrumpir cuando estás haciendo algo potencialmente peligroso. Cuando las Herramientas para desarrolladores de Chrome detecten que un usuario sin experiencia intenta pegar código en Herramientas para desarrolladores, se detendrá y mostrará una advertencia.

¿Cuándo mostrará Herramientas para desarrolladores las advertencias de self-XSS?

Herramientas para desarrolladores usa una heurística muy simple para decidir si mostrar advertencias de auto-XSS: se basa en el historial de la consola de tu perfil de usuario.

Si tu perfil tiene al menos 5 entradas en el historial de la consola, Herramientas para desarrolladores no te molestará con advertencias ni ventanas emergentes. El historial de la consola es la lista de comandos que escribiste y ejecutaste en Console. Estos son los comandos que ves cuando colocas el cursor en Console y presionas la flecha hacia arriba varias veces.

¿Cómo son las advertencias de auto-XSS?

Cuando un usuario sin experiencia intenta pegar código en Console, esta acción se bloquea y Console muestra una advertencia en su lugar.

La advertencia de Self-XSS en Console.

Puedes anular esta advertencia y habilitar el pegado, pero debes escribir "Permitir el pegado" para hacerlo.

Cuando un usuario sin experiencia pega código en el editor de código de Herramientas para desarrolladores (por ejemplo, el panel Sources), la experiencia del usuario es muy similar. En lugar de una advertencia, verás un diálogo modal.

Diálogo modal self-XSS del panel Sources.

De nuevo, cerrar este diálogo por sí solo no es suficiente para habilitar el pegado. Para anular la advertencia, debes escribir "permitir pegado" en el campo de entrada.

¿Es una configuración única?

Sí, una vez que decidas permitir el pegado, no volverás a recibir advertencias de autoXSS.

Esperamos que esto logre un buen equilibrio entre utilidad y molestia. Si agregas fricción, aumentamos la probabilidad de que leas la advertencia y, por lo tanto, disminuimos la probabilidad de un ataque exitoso de Self-XSS.

Las Herramientas para desarrolladores de Chrome tienen una marca que especifica si se muestran advertencias de autoXSS en tu perfil de Chrome. Por lo tanto, si creas un perfil nuevo y comienzas a pegar código de inmediato en Herramientas para desarrolladores, se bloqueará el pegado y se mostrarán las advertencias de auto-XSS.

¿Se puede inhabilitar para la automatización de pruebas?

Pero ¿qué ocurre con las pruebas automatizadas? Muchas herramientas de prueba crean un perfil temporal nuevo para cada ejecución de prueba. Por lo tanto, si usas Herramientas para desarrolladores para depurar tus pruebas automatizadas, inicialmente se bloqueará la acción de pegar datos en la consola. Para evitarlo, usa Chrome for Testing. Chrome for Testing es una versión dedicada de Chrome diseñada específicamente para pruebas y automatización, con las advertencias de auto-XSS desactivadas.

Conclusión

¿Qué opinas sobre esta estrategia para mitigar los ataques de tipo XSS? Si tienes comentarios o sugerencias, agrégalos a este error o comunícate con nosotros por medio de uno de los siguientes métodos.

En especial si estás trabajando en un sitio web que advierte sobre ataques de XSS propios a través de registros de consola, nos encantaría hablar sobre cómo alinear nuestros esfuerzos o medir el impacto de las medidas de mitigación de XSS propias.

Descarga los canales de vista previa

Considera usar Canary, Dev o Beta de Chrome como tu navegador de desarrollo predeterminado. Estos canales de vista previa te brindan acceso a las funciones más recientes de Herramientas para desarrolladores, prueba APIs de plataformas web de vanguardia y encuentra problemas en tu sitio antes que tus usuarios.

Cómo comunicarse con el equipo de Herramientas para desarrolladores de Chrome

Usa las siguientes opciones para analizar las nuevas funciones y los cambios en la publicación, o cualquier otra cosa relacionada con Herramientas para desarrolladores.

  • Envíanos tus sugerencias o comentarios a través de crbug.com.
  • Informa un problema en Herramientas para desarrolladores mediante Más opciones   Más   > Ayuda > Informar problemas con Herramientas para desarrolladores en Herramientas para desarrolladores.
  • Envía un tweet a @ChromeDevTools.
  • Deja comentarios en los videos de YouTube de las Novedades de las Herramientas para desarrolladores o en las sugerencias de Herramientas para desarrolladores (videos de YouTube).