volver al inicio Más artículos

¿Te detectan como bot? Pon a prueba tu navegador en busca de fugas de automatización

Analizando tu navegador en busca de señales de automatización...

Si automatizas un navegador, ya sea para scraping, pruebas de QA o gestión de cuentas, una sola pregunta decide si pasas o si te cae un CAPTCHA: ¿tu navegador parece humano? El widget de esta página le plantea esa pregunta a tu navegador actual, comprobación por comprobación.

Hace unos años bastaba con una sola línea de JavaScript para resolverlo. Selenium, Puppeteer y Playwright ponían todos navigator.webdriver en true, y los sitios web simplemente lo leían de vuelta. Hoy esa comprobación no atrapa casi nada, porque cualquier configuración de automatización seria parchea el flag antes de que se cargue la página. La detección avanzó. Este artículo recorre hacia dónde se movió.

La versión corta: la detección de bots ya no es un solo flag, es una pila entera de ellos. Las señales fáciles (webdriver, un User-Agent headless) están muertas. Las duraderas viven en el pipeline de renderizado y en el canal de DevTools, y cuanto más se esfuerza un plugin de sigilo por ocultar las señales fáciles, más reconocibles se vuelven sus parches.

Las señales clásicas, y por qué dejaron de funcionar

Estas son las comprobaciones que todavía enseña cada tutorial de 2019, y que cada plugin de sigilo moderno derrota:

  • navigator.webdriver. Puesto en true por Selenium, Puppeteer y Playwright, y revertido a false por cada herramienta de sigilo en una sola línea.
  • Un User-Agent con “HeadlessChrome”. El viejo Chrome headless se anunciaba a sí mismo en la cadena del User-Agent. Nadie que lo intente en serio deja eso ahí.
  • Listas de plugins e idiomas vacías. Valores por defecto del modo headless que una línea de configuración corrige. Un Chrome de escritorio real trae plugins de PDF y siempre reporta al menos un idioma.
  • Un objeto window.chrome ausente. Algunas builds automatizadas lo eliminan, lo cual resulta extraño en un navegador que dice ser Chrome.

Ninguna de estas detiene ya a un bot competente. Siguen en la prueba porque exponen al instante a los descuidados, y porque un navegador real las pasa sin esfuerzo.

Dónde ocurre realmente la detección ahora

Las comprobaciones que todavía funcionan no son flags cosméticos. Son consecuencias de cómo se está controlando el navegador, y eso las hace mucho más difíciles de parchear.

El canal de DevTools. Puppeteer y Playwright controlan Chrome a través del Chrome DevTools Protocol, y para hacer su trabajo habilitan su dominio Runtime, que serializa de forma silenciosa cada objeto que se pasa a la consola. Esa serialización lee propiedades que nada más lee. Registra un objeto Error con una trampa en su propiedad stack y el canal de automatización se delata a sí mismo, sin importar con cuánto cuidado se hayan parcheado los flags de superficie. Esta es la señal más difícil de ocultar. También se dispara si simplemente tienes DevTools abierto ahora mismo, y por eso el widget lo señala.

Renderizado por software. Un navegador headless en un servidor no tiene GPU, así que recurre a un renderizador por software: SwiftShader en Chrome, llvmpipe en Linux. La cadena del renderizador de WebGL lo dice en texto plano. Un portátil real reporta una GPU de Intel, Apple, AMD o NVIDIA, y “Google SwiftShader” significa un servidor haciéndose pasar por una. Es la misma cadena de renderizador que lee nuestro artículo sobre fingerprinting de canvas por otras razones.

Funciones nativas parcheadas. He aquí la paradoja en el corazón de las herramientas de sigilo: para ocultar navigator.webdriver, un plugin tiene que sobrescribirlo, y un método nativo sobrescrito deja de reportar [native code] cuando un script inspecciona su código fuente. Cada función que toca un plugin de sigilo se convierte en evidencia de ese plugin. Cuanto más exhaustivo el parcheo, más hay que encontrar. Las extensiones de privacidad que falsifican las lecturas de canvas o WebGL caen en la misma comprobación, lo cual conviene saber aunque nunca automatices nada.

Consistencia del motor. Pequeñas constantes internas, como la longitud exacta del código fuente de eval, están fijadas por cada motor de JavaScript. Afirma ser Chrome mientras las constantes de tu motor dicen otra cosa y el User-Agent queda expuesto como un disfraz. Es la misma trampa de contradicción que describimos para el sistema operativo en Un navegador, cinco sistemas operativos declarados y para la versión del navegador en Tu User-Agent miente.

El comportamiento, la capa que las herramientas de sigilo no alcanzan

Todo lo anterior describe el navegador en reposo. La señal que ningún plugin parchea es lo que ocurre una vez que la página está abierta. Los sistemas anti-bot observan la física de la interacción: un clic sin movimiento de ratón que lo preceda, un cursor que viaja en línea perfectamente recta, un desplazamiento sin suavizado, pulsaciones de teclas espaciadas con regularidad de máquina. Los humanos son ruidosos de maneras consistentes. Los scripts son limpios de maneras que los humanos nunca lo son. Un fingerprint estático puede falsificarse una vez; el comportamiento tiene que interpretarse de forma convincente durante toda la sesión.

La prueba de esta página es solo estática, porque la puntuación conductual necesita un modelo y un servidor. Pero el comportamiento es hacia donde se dirige la detección comercial, y es la razón por la que parchear cada flag sigue sin ser suficiente.

Cómo te puntúan Cloudflare y DataDome

Los sistemas anti-bot comerciales como Cloudflare, DataDome, Kasada y HUMAN no dependen de ninguna comprobación aislada. Combinan las señales de JavaScript anteriores con fingerprints de red (el handshake de TLS y el comportamiento de HTTP/2, que JavaScript no puede ver ni cambiar), reputación de IP y puntuación conductual, y funden todo ello en una única puntuación en milisegundos. DataDome incluso entrena un modelo separado para cada sitio que protege. No estás intentando pasar una sola prueba. Estás intentando parecer consistente en todas ellas a la vez.

Ese es también el límite honesto de cualquier prueba dentro del navegador, incluida esta. Ve el lado del cliente. La mitad de red se mide en el servidor, antes de que se ejecute una sola línea de tu JavaScript.

Los agentes de IA están cambiando la pregunta

Los bots más nuevos son agentes de navegador con IA. Herramientas como el computer use de Claude, el Operator de OpenAI y Browser Use controlan navegadores reales para completar tareas en nombre de las personas, y superan las comprobaciones clásicas porque a menudo son Chrome corriente por debajo. Aun así, las señales duraderas siguen aplicando. Se controlan sobre el DevTools Protocol, con frecuencia corren en modo headless en servidores con GPU por software, y su temporización de interacción es limpia como una máquina. Los proveedores de detección se están moviendo silenciosamente de “¿esto es un bot?” a “¿esto es un humano, un bot bueno o un agente autónomo?”, y lo responden con exactamente las señales del widget de esta página.

Qué hacer en la práctica

  1. Nunca parchees a medias. Un navegador que ha sido visiblemente manipulado es una señal más rara y más ruidosa que uno honesto. Los plugins de sigilo que arreglan los flags uno por uno fabrican precisamente la evidencia que buscan los sistemas anti-bot. Si no puedes hacer que toda la pila sea consistente, añadir parches empeora las cosas.
  2. Prueba tu configuración antes de confiar en ella. Apunta lo que sea que ejecutes a esta página y al análisis completo del navegador antes de que te cueste una cuenta o un día de scraping. Una señal que encuentras tú mismo es una señal que puedes corregir.
  3. Si gestionas varias identidades, usa un navegador que sea consistente por construcción. Un motor de renderizado real, salida de GPU real, funciones nativas intactas y un fingerprint que concuerda consigo mismo desde la cadena de WebGL hasta la lista de fuentes. Ese es el trabajo para el que existen los navegadores anti-detección. Incogniton construye cada perfil como un navegador real y coherente consigo mismo, de modo que las señales encajan en lugar de contradecirse.

Los navegadores de automatización y anti-detección son herramientas legales con muchos usos legítimos, desde pruebas de QA y verificación de anuncios hasta la gestión de cuentas de empresa. Que un sitio determinado los permita lo definen las reglas de ese sitio, así que conócelas antes de actuar a escala.

¿Quieres ver cómo aguanta tu propio navegador? El widget de esta página comprueba las señales de automatización del lado del cliente, y el análisis completo del navegador ejecuta junto a él la prueba de fugas de WebRTC, los hashes de fingerprint y las verificaciones cruzadas de plataforma y versión.

Logotipo de Incogniton

Mejora tu privacidad

Flecha