Volver a todas las publicaciones
Publicado el · por Renaud Deraison

Cómo Bromure bloquea los anuncios antes de que la página llegue a verlos

La mayoría de los bloqueadores de anuncios son extensiones del navegador, y la mayoría de las extensiones del navegador se ejecutan dentro del mismo proceso que la página de la que intentan protegerte. Bromure lo hace de otra manera. Aquí te contamos cómo, y por qué importa.

Un bloqueador de anuncios que vive dentro del navegador está intentando arbitrar una pelea desde dentro del propio ring. Bromure traslada al árbitro a la red misma, donde ninguna página puede alcanzarlo, ningún script puede tocarlo y ningún banner «anti-bloqueadores» puede discutir con él.

El bloqueo de anuncios es la función más popular de los navegadores que, sin embargo, no viene incluida en ellos. Cientos de millones de personas instalan una extensión de terceros el primer día porque la web moderna es sencillamente inutilizable sin una. Eso, en sí mismo, ya es un mal olor de diseño. Pero la manera en que casi todos los bloqueadores de anuncios funcionan merece atención, porque la arquitectura resulta importar muchísimo —tanto para lo bien que funcionan como para lo que ocurre cuando la página intenta activamente pelear contra ellos.

Este artículo repasa cómo suele funcionar un bloqueador de anuncios, por qué esa forma tiene límites reales y cómo Bromure adopta un enfoque distinto que toma prestada su idea central de una herramienta que quizá hayas oído correr en una Raspberry Pi en el sótano de algún conocido.

Los anuncios no son solo molestos. Son un problema de carga, un problema de privacidad y un vector de ataque.

Es fácil olvidar, después de unos años usando un bloqueador de anuncios, cómo es la web en crudo. Un artículo de noticias popular, cargado sin ningún filtrado, suele pedir recursos a entre 30 y 80 dominios de terceros. La mayoría son analíticas, píxeles de seguimiento y puntos finales de pujas en tiempo real. Añaden peso, añaden latencia, dejan cookies en nombre de empresas de las que nunca has oído hablar y —como se comentaba en el artículo sobre ransomware de principios de este mes— son uno de los vehículos silenciosos de distribución de malware, porque a las redes publicitarias se las engaña de vez en cuando para que sirvan creatividades maliciosas en sitios legítimos.

news.example.comun artículodoubleclick.netgoogletagmanager.comfacebook.netadnxs.comscorecardresearch.comcriteo.nethotjar.comsegment.comchartbeat.compubmatic.comrubiconproject.comliveramp.comtaboola.comoutbrain.comnewrelic.comamplitude.commixpanel.com… 40 másCada logo es un dominio nuevo, un DNS nuevo, un TLS nuevo y un nuevo conjunto de cookies. Nada de lo que tú pediste.
Lo que una sola visita a una página se trae realmente, en 2026, sin ningún filtrado. El artículo que estás leyendo suele ser la petición más pequeña de la página. Todo lo demás es la maquinaria en la que el artículo venía envuelto.

Bloquear esas peticiones no es, por tanto, un problema cosmético. Es una victoria en rendimiento, una victoria en privacidad y —porque las redes publicitarias son un canal habitual de distribución de malware— una auténtica victoria en seguridad. La única pregunta es cómo las bloqueas.

Cómo bloquea los anuncios una extensión de navegador típica.

Casi todos los bloqueadores de anuncios del mercado, incluidos los más populares que probablemente tengas instalados, son extensiones del navegador. Lo que significa que, arquitectónicamente, viven dentro del navegador —ejecutan JavaScript dentro del proceso del navegador, registran callbacks contra las APIs de red del navegador (webRequest, declarativeNetRequest) e inspeccionan cada petición que el navegador está a punto de hacer.

PROCESO DEL NAVEGADORPáginacarga, ejecuta scripts,pide recursosExtensión bloqueadorainspecciona cada petición,permite o bloqueaRedTCP / TLShacia el sitio(bloqueada)La extensión es código cargado por el navegador.Un renderizador comprometido o un permiso revocado pueden dejarla fuera.Una página hostil puede ver si está instalada y negarse a cargar.Internetservidor de anuncios · rastreador · analíticas
Cómo funciona habitualmente un bloqueador de anuncios basado en extensión. La extensión vive dentro del navegador. Cada petición saliente se le entrega para su aprobación; bloquea aquellas cuyas URL coinciden con sus reglas. La página y la extensión comparten el mismo proceso y, en la mayoría de los casos, los mismos permisos.

Esa forma funciona —al fin y al cabo, es en lo que confía la mayoría de la gente todos los días— pero tiene límites estructurales reales:

La página se entera

Como la extensión vive en el mismo proceso que la página, el propio JavaScript de la página puede sondearla: «¿salió realmente mi petición?, ¿acabó definiéndose esta variable?». Sitios enteros (y la mayoría de los medios con muro de pago) detectan las peticiones que faltan y se niegan a cargar sin ellas, exigiendo al usuario que «desactive su bloqueador de anuncios».

La página está en la misma zona de confianza

La extensión y la página hostil que intenta filtrar comparten un proceso del navegador, un renderizador y a veces un conjunto de permisos. Un exploit del navegador suficientemente malo desde la página desactiva la extensión junto con todo lo demás. Las extensiones son código; también son superficie de ataque.

La petición ya ha nacido

Cuando la extensión ve una petición, el navegador ya ha decidido hacerla, ha analizado la URL y (según la API) ha realizado la búsqueda DNS. Bloquear en esa fase es filtrar, no prevenir.

La API de filtrado cada vez da menos margen

La reescritura Manifest v3 de Chrome restringió lo que las extensiones de filtrado pueden hacer, principalmente poniendo un tope al número de reglas y reemplazando el webRequest dinámico por declarativeNetRequest. La arquitectura de la API de extensiones la decide el fabricante del navegador, no tú.

Cómo lo hace Bromure: el muro no es la extensión.

El bloqueador de anuncios de Bromure no es una extensión. El propio navegador no tiene ningún código de bloqueo de anuncios. En su lugar, la pila de red de la VM Linux desechable dentro de la que se ejecuta el navegador es el bloqueador de anuncios —y, desde el punto de vista del navegador, los dominios de anuncios simplemente no se resuelven.

VM INVITADA · red del perfilNavegadorsin extensiónbloqueadora instaladaProxy Squid:3128 · HTTP/HTTPSresuelve vía DNS localdnsmasqresolutor DNS localenvía coincidencias al sinkholeLISTA DE BLOQUEOgravity.listmás de 100 000 dominiosredirige a 0.0.0.0Internetnews.example.comdoubleclick.netadnxs.comBLOQUEADONi la página ni sus scripts ven más allá del proxy. Desde dentro del navegador, los dominios de anuncios simplemente no existen.
Dentro de la VM de un perfil de Bromure, cada conexión saliente del navegador se encamina a través de un proxy HTTP local. Ese proxy resuelve cada dominio mediante un servidor DNS local cuya lista de «no» es una lista de bloqueo. Si el dominio está en la lista, el navegador recibe una dirección inalcanzable y nunca abre la conexión —ni siquiera los propios scripts de la página.

En términos mecánicos, dos pequeñas y aburridas piezas de software hacen el trabajo:

Un proxy HTTP local (Squid)

Cada petición saliente del navegador se enruta de forma transparente a través de un proxy Squid que corre en localhost:3128 dentro de la VM. Squid es la fontanería: no decide qué es un anuncio, solo se encarga de la resolución DNS y del reenvío para el navegador.

Un resolutor DNS local (dnsmasq)

Se le indica a Squid que resuelva cada dominio a través de una instancia local de dnsmasq en 127.0.0.1. La configuración de dnsmasq incluye una lista de bloqueo de unos 100 000 dominios —redes publicitarias, rastreadores, analíticas, hosts conocidos por ser maliciosos—. Todo lo que está en la lista se resuelve a 0.0.0.0, que no va a ninguna parte.

El resultado es una red que, desde la perspectiva del navegador, tiene forma de internet, salvo que los dominios de anuncios y de seguimiento no tienen ningún registro DNS. El navegador pide doubleclick.net, recibe un «no hay ruta» y sigue adelante. No se abre ninguna conexión. No se intenta ningún handshake TLS. Ninguna cookie va a ninguna parte, porque no hay ninguna parte a la que enviarla.

La misma idea que lleva años corriendo en sótanos.

Si alguna vez has montado pi-hole, el pequeño sinkhole DNS que mucha gente ejecuta en una Raspberry Pi para filtrar los anuncios de toda su red doméstica, la arquitectura de Bromure te resultará profundamente familiar. La lista de bloqueo subyacente es el archivo hosts unificado de Steven Black, el mismo que esas instalaciones caseras llevan años usando. El movimiento conceptual es idéntico: no intentes quitar los anuncios de la página, simplemente niégate a decirle al navegador cómo encontrar el servidor del anuncio en primer lugar.

La diferencia importante es dónde vive el sinkhole. Un sinkhole a nivel de hogar protege todos los dispositivos de la red doméstica; un sinkhole de Bromure protege exactamente un perfil del navegador. Actívalo en el perfil que usas para leer noticias; déjalo apagado en el perfil donde tu banco preferiría que no enrutaras a través de ningún middleware inusual.

Lo que realmente te aporta esto.

La extensión lo bloqueaEl navegador analiza la URL del anuncio.Se realiza la búsqueda DNS del dominio del anuncio.Puede iniciarse el intento de conexión.La extensión veta en el último momento.La página puede detectar la petición que falta.EL SERVIDOR DE ANUNCIOS SABE«alguien intentó alcanzarnos,desde la IP X, y se retiró.»Bromure no preguntaEl navegador pide el dominio al DNS local.dnsmasq responde 0.0.0.0.No se abre ninguna conexión de red.Sin TLS, sin SNI, sin petición HTTP.La página no puede distinguirlo de un fallo de DNS.EL SERVIDOR DE ANUNCIOS SABEnada.No hay ninguna conexión que observar.
Misma visita a una página, arquitecturas distintas. La extensión deja que la petición arranque y la filtra en el último momento posible. Bromure rehúsa la pregunta antes de que se haga. El servidor de anuncios no sabe nada del usuario de Bromure —ni siquiera que lo intentó.

Las ventajas prácticas se acumulan:

No la puede desactivar una página comprometida

La lista de bloqueo no es código cargado por el navegador; es la propia red del navegador. Un exploit del renderizador, un script hostil, una biblioteca de terceros que se comporta mal —ninguno de ellos puede alcanzar la configuración de dnsmasq, porque ninguno puede salir del proceso del navegador hasta la pila de red de la VM.

Las páginas no pueden ver alrededor

El JavaScript de la página puede comprobar las propiedades de navigator todo el día; no puede ver la configuración DNS de la red en la que está, porque eso no es algo que JavaScript tenga permitido saber. Para la página, un anuncio bloqueado parece exactamente un dominio de anuncios que se cayó durante un minuto.

Sin superficie de ataque por extensiones

Las extensiones de bloqueo de anuncios se han visto comprometidas en más de una ocasión —por la tienda de extensiones, por una adquisición o por una actualización maliciosa—. En Bromure no hay tal extensión que comprometer, porque no hay extensión.

Por perfil, se activa como cualquier otra función

El bloqueo de anuncios es un ajuste por perfil («Bloquear anuncios» en Privacidad y Seguridad), desactivado por defecto, activado en los perfiles que tú elijas. Tu perfil de banca se queda sin filtrar; tu perfil de lectura diaria queda limpio.

Los límites honestos.

Nada en este terreno sale gratis. Algunas cosas que el enfoque a nivel de red deliberadamente no hace, y que deberías conocer desde el principio:

Sin filtrado cosmético

Una extensión clásica puede ocultar el hueco vacío donde antes había un banner. Bromure no reescribe la página, así que si el editor reservó un bloque de 728×90, el bloque se queda ahí, en blanco. Es una pequeña molestia estética en unos pocos sitios, y la contrapartida es que no queda nada en la página que un script pueda detectar.

Los anuncios de primera parte sobreviven

Si un sitio sirve sus propios anuncios desde su propio dominio (como hacen ahora algunas grandes plataformas tecnológicas), el bloqueo a nivel de dominio no puede distinguir «artículo» de «anuncio» —ambos viven en el mismo hostname—. Es una brecha real; la respuesta, donde importa, es una capa de content scripts por encima, algo en lo que estamos trabajando.

Los muros anti-bloqueadores siguen detectando la ausencia

Algunos sitios no necesitan encontrar el bloqueador. Simplemente comprueban si se cargó un script concreto y se niegan a mostrar el artículo si no. Para esos sitios, cualquier bloqueador —ya sea extensión o red— quedará atrapado. Esa es una discusión de política con el editor, no una cuestión técnica con el bloqueador.

La lista de bloqueo viene con Bromure

gravity.list se integra en el momento de compilar la imagen y se actualiza cuando actualizas Bromure. No descarga las reglas más recientes cada hora como sí puede hacer un sinkhole doméstico dedicado y siempre encendido. Para una lista basada en hostnames, esto suele ser suficiente —los dominios de anuncios no rotan tan rápido como, por ejemplo, los dominios de malware— pero conviene saberlo.

La forma del asunto.

El punto más amplio no es que el bloqueador de anuncios de Bromure sea mágicamente mejor emparejando reglas que uBlock Origin. El motor de reglas de uBlock es, de hecho, más sofisticado. El punto es dónde sucede el bloqueo. Una extensión es un árbitro educado pidiéndole al navegador que, por favor, no cargue esa cosa. Bromure es la carretera por la que la petición habría viajado, cerrada silenciosamente a la entrada de la autopista, antes de que el conductor se subiera al coche.

El bloqueo de anuncios en una VM sellada no es una función nueva de Bromure; es una consecuencia de la arquitectura que estuvo ahí desde el primer día. La capa de red de cada perfil es su propio pequeño mundo. Ese mundo puede llevar WARP dentro. Puede llevar una VPN de pago. Puede llevar un transporte Tor. Y puede llevar, gratis, el mismo sinkhole DNS que lleva años filtrando anuncios silenciosamente en los sótanos de mucha gente —instalado, configurado y limitado exactamente a la sesión de navegador en la que lo quieres.

Si quieres la versión larga, la lista de bloqueo es un archivo de texto plano incluido dentro de la imagen de la VM —puedes inspeccionarla directamente en la próxima versión y leer cada uno de los cien mil dominios que van a dejar de existir silenciosamente para tu navegador. Si solo quieres la versión corta, abre Privacidad y Seguridad en cualquier perfil de Bromure y activa «Bloquear anuncios». La carretera ya está cerrada. Solo tienes que conducir.