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?

El XSS propio, o secuencia de comandos entre sitios propia, 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 las aplicaciones web que permiten que los atacantes inyecten código malicioso, los ataques de auto-XSS se basan en tus propias acciones de ejecución de código potenciales.

Los ataques de auto-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 prometiendo algún tipo de recompensa. Esto puede deberse a lo siguiente:

  • Te prometen que el código te dará acceso a funciones ocultas o recompensas virtuales.
  • Pretender 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 obtener ganancias

Una vez que ejecutes el código, el atacante podrá controlar tu cuenta. Esto puede permitir que el atacante haga lo siguiente:

  • Robar tu información personal, como tu 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.
  • Difundir software malicioso a otros usuarios

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

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

Por lo general, los desarrolladores no copian código que encuentran en algún lugar de la Web, lo pegan en DevTools y lo ejecutan sin antes echar un vistazo rápido a lo que hace el código. La mayoría de los desarrolladores conocen muy bien los riesgos de seguridad que implica ejecutar código que encontraron en un rincón poco confiable de la Web.

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

Creemos que las personas que no son desarrolladores tienen un riesgo mucho mayor de ser víctimas de un ataque de XSS propio. Para protegerte, creemos que es aceptable y beneficioso interrumpirte 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 ellas, se detendrán y mostrarán una advertencia.

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

DevTools usa una heurística muy simple para decidir si mostrar advertencias de XSS propias: 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, DevTools no te molestará con advertencias ni ventanas emergentes. El historial de la consola es la lista de comandos que escribiste y ejecutaste en Consola. Estos son los comandos que ves cuando colocas el cursor en la Consola y presionas la tecla de flecha hacia arriba de forma repetida.

¿Cómo se ven las advertencias de XSS propias?

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

La advertencia de XSS propia en Play Console

Puedes anular esta advertencia y habilitar el pegado, pero para ello debes escribir "allow pasting".

Cuando un usuario sin experiencia pega código en el editor de código de DevTools (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 de auto-XSS en el panel de fuentes

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

¿Es un parámetro de configuración único?

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

Esperamos que esto logre una buena compensación entre utilidad y molestia. Cuando agregamos fricción, aumentamos la probabilidad de que leas la advertencia y, por lo tanto, disminuimos la probabilidad de que se lleve a cabo un ataque de XSS automático con éxito.

Las herramientas para desarrolladores de Chrome mantienen una marca que especifica si se deben mostrar o no advertencias de XSS propias en tu perfil de Chrome. Por lo tanto, si creas un perfil nuevo y comienzas a pegar código en DevTools de inmediato, se bloqueará el pegado y, en su lugar, se mostrarán advertencias de XSS propias.

¿Puedes inhabilitarlo para la automatización de pruebas?

Pero ¿qué pasa con las pruebas automatizadas? Muchas herramientas de prueba crean un perfil temporal nuevo para cada ejecución de prueba. Por lo tanto, si usas DevTools para depurar tus pruebas automatizadas, pegar en Console estará bloqueado inicialmente.

Para solucionar este problema, realiza una de las siguientes acciones:

  • Usa Chrome para pruebas, una variedad de Chrome diseñada específicamente para pruebas y automatización. Las advertencias de XSS propias están desactivadas.

  • Para otros canales de lanzamiento de Chrome, pasa la marca de línea de comandos --unsafely-disable-devtools-self-xss-warnings a Chrome para inhabilitar por completo el diálogo de advertencia de XSS propio.

Conclusión

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

En especial, si trabajas en un sitio web que advierte sobre ataques de XSS propios a través de 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 tu navegador de desarrollo predeterminado. Estos canales de versión preliminar te brindan acceso a las funciones más recientes de DevTools, te permiten probar las APIs de plataformas web de vanguardia y te ayudan a encontrar problemas en tu sitio antes que tus usuarios.

Comunícate con el equipo de Chrome DevTools

Usa las siguientes opciones para hablar sobre las funciones nuevas, las actualizaciones o cualquier otro tema relacionado con DevTools.