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?

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 habituales, que se basan en vulnerabilidades en las aplicaciones web que permiten a los atacantes inyectar código malicioso, los ataques de XSS se basan en tus propias acciones potenciales de ejecución de código.

Por lo general, los ataques de Self-XSS implican que el atacante te engañe para que copies y pegues código malicioso en la consola de Herramientas para desarrolladores de tu navegador. El atacante generalmente lo logra prometiendo algún tipo de recompensa. Puede ser:

  • Prometerte que el código te dará acceso a funciones ocultas o recompensas virtuales.
  • Simular que el código es una prueba de seguridad o una corrección de errores
  • Prometer que el código permite 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 permitirle 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
  • Toma el control de tus cuentas de redes sociales.
  • Distribuir software malicioso a otros usuarios

¿Cómo trata las Herramientas para desarrolladores de Chrome de mitigar los ataques de XSS?

Permitir que los usuarios peguen código en Herramientas para desarrolladores y luego lo ejecuten es inherentemente 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 y no interferir en el trabajo de los desarrolladores que solo quieren depurar sitios web.

Por lo general, los desarrolladores no copian el código que encuentran en alguna parte de la Web, lo pegan en Herramientas para desarrolladores ni lo ejecutan sin antes echarle un vistazo rápido a lo que hace el código. La mayoría de los desarrolladores son muy conscientes de los riesgos de seguridad que conlleva ejecutar un código que encontraron en un rincón oscuro de la Web.

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

Creemos que quienes no son desarrolladores tienen un riesgo mucho mayor de ser víctimas de un ataque de XSS. Para protegerlo, creemos que es aceptable y beneficioso interrumpir cuando realiza una acción potencialmente peligrosa. Cuando las Herramientas para desarrolladores de Chrome detectan que un usuario inexperto intenta pegar código en Herramientas para desarrolladores, se detiene y muestra una advertencia.

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

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

Si tu perfil tiene al menos 5 entradas en el historial de su 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 repetidamente la flecha hacia arriba.

¿Cómo son las advertencias de autoXSS?

Cuando un usuario sin experiencia intenta pegar código en la Consola, esta acción se bloquea y, en la consola, se muestra una advertencia.

La advertencia de autoXSS en Console.

Puedes anular esta advertencia y habilitar la función de pegar, pero deberás escribir "permitir pegado".

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

Diálogo modal self-XSS en el panel Sources.

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

¿Esa configuración se establece por única vez?

Sí, una vez que decidas permitir el pegado, ya no volverás a recibir advertencias de auto-XSS.

Esperamos que esto logre un buen equilibrio entre la utilidad y la molestia. Como agregamos fricción, aumentamos la probabilidad de que leas la advertencia y, por lo tanto, disminuimos la probabilidad de que se produzca un ataque de auto-XSS exitoso.

Las Herramientas para desarrolladores de Chrome mantienen una marca que especifica si se muestran advertencias de autoXSS en tu perfil de Chrome o no. Por lo tanto, si creas un perfil nuevo y comienzas a pegar código de inmediato en Herramientas para desarrolladores, el pegado se bloquea y, en su lugar, se muestran advertencias de autoXSS.

¿Puedes inhabilitarlo 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 las Herramientas para desarrolladores para depurar tus pruebas automatizadas, primero se bloqueará la opción de pegar contenido en Console. Para evitarlo, utiliza Chrome for Testing. Chrome for Testing es una variante dedicada de Chrome diseñada específicamente para pruebas y automatización, con las advertencias de autoXSS desactivadas.

Conclusión

¿Qué opinas sobre esta estrategia para mitigar los ataques de XSS? Si tienes comentarios o sugerencias, agrega un comentario a este error o comunícate con nosotros a través de uno de los siguientes métodos.

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

Descarga los canales de vista previa

Considera usar Chrome Canary, Dev o Beta como navegadores de desarrollo predeterminados. Estos canales de vista previa te brindan acceso a las funciones más recientes de Herramientas para desarrolladores, prueban API de plataforma web de vanguardia y detectan problemas en tu sitio antes que los usuarios.

Comunicarse con el equipo de Herramientas para desarrolladores de Chrome

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

  • Para enviarnos sugerencias o comentarios, accede a crbug.com.
  • Para informar un problema de Herramientas para desarrolladores, use Más opciones   Más   > Ayuda > Informar problemas de Herramientas para desarrolladores en Herramientas para desarrolladores.
  • Twittea a @ChromeDevTools.
  • Deja comentarios en nuestros videos de YouTube de Herramientas para desarrolladores o en videos de YouTube de las Sugerencias de las Herramientas para desarrolladores.