DeTracker es un sistema de detección de intrusiones (IDS) descentralizado que utiliza un algunas matematicas, probabilidades (Filtro de Kalman Extendido (EKF)) y estructuras automatizadas para prediccion (Autómatas Finitos Deterministas -DFA), combinando estas herramientas de la computacion para identificar y neutralizar patrones de comportamiento malicioso en tiempo real.
Los bloqueadores tradicionales dependen de listas negras estáticas que quedan obsoletas rápidamente. DeTracker observa la trayectoria del comportamiento de los scripts:
-
Motor EKF/WASM: Modelo matemático que calcula la probabilidad de malicia basándose en velocidad de inyección, volumen de interacción e intención cross-site
-
DFA de Componentes: Autómata finito determinista con Bloom Filter para coincidencia ultrarrápida de firmas confirmadas
-
Defensa Quirúrgica del DOM: Identifica y destruye automáticamente overlays invisibles y secuestradores de clics
-
Enjambre P2P: Cuando un nodo identifica una nueva amenaza, la "huella" se comparte a través del enjambre vía WebRTC, protegiendo a todos instantáneamente sin servidor central
- Cuarentena Inteligente: Las firmas externas del Swarm se validan localmente antes de aplicarse
- Promoción Automática: Los patrones detectados repetidamente (≥2 hits, score ≥0.75) se promueven automáticamente a firmas DFA
- Histéresis Adaptativa: Sistema de confirmación que requiere múltiples detecciones antes de bloquear para evitar falsos positivos
- Ejecución Local: El motor EKF/WASM se ejecuta completamente en tu navegador
- Sin Datos Personales: El enjambre solo comparte "Huellas de Comportamiento" (hashes matemáticos de comportamiento de scripts), nunca tu historial o identidad
- Transparencia Abierta: Audita cada bloqueo a través del Dashboard Forense
- Formato Binario P2P: Protocolo DTS1 optimizado para mínima huella de red (6 bytes de cabecera + payload)
- Interceptor de Tab Hijacking: Bloquea popups y redirecciones no solicitadas con verificación de confianza del evento
- Neutralizador de Overlays: Elimina quirúrgicamente elementos de pantalla completa maliciosos
- Motor de Scriptlets LALR: Ejecuta acciones compiladas para neutralización específica por sitio
- Surrogates Inteligentes: Inyecta mocks de APIs de publicidad para evitar romper sitios legítimos
- Protección OAuth: Detecta y permite flujos de autenticación legítimos sin bloqueos falsos
- Filtro de Kalman Visual: El icono cambia de color según el nivel de amenaza de la pestaña
- Grados de Pureza: S (95%+, Snow Fox azul) → A (80%+, verde) → B (60%+, azul) → C (40%+, ámbar) → D (<40%, rojo)
- Decaimiento Temporal: El estado de amenaza decae naturalmente con el tiempo si no hay nuevas detecciones
- Modo Compacto: Contador de badge con formato inteligente (1.2K, 5.3M)
- 5 Tipos de Visualización:
- Scatter Timeline: Línea de tiempo con agregación por dominio
- Heatmap: Actividad por hora del día × día de la semana
- Bubble Chart: Alcance cross-site vs. hits vs. z-score
- Upset Plot: Intersecciones de conjuntos de trackers
- Network Graph: Grafo de fuerza dirigida (Force-directed) mostrando relaciones sitio-tracker
- Rangos Temporales: 1h, 6h, 24h, 7d, 30d, All time
- Vista de Entidades: Tabla ordenable de trackers agresivos
- Feed en Vivo: Stream de detecciones en tiempo real
- 3 Modos de Operación:
- Manual: 1 peer, descubrimiento bajo demanda
- Balanced: 2 peers, reconexión automática (por defecto)
- Aggressive: 4 peers, máxima cobertura
- Protocolo DTS1 v1: Formato binario optimizado con magic
DTS1, versión, opcode - Vacunación Federada: Las firmas externas se validan localmente antes de aplicarse (Zero Trust)
- Resistencia al Envenenamiento: Requiere validación EKF local para activar firmas del Swarm
- Signaling Redundante: Múltiples servidores WebSocket con failover automático
- Alertas Acústicas Forenses: Sonidos generados proceduralmente para eventos críticos
alert: Sawtooth 880→110Hz (Anti-Forensics/Hijack)clean: Sine 1200Hz (Sitio limpio)hijack: Square 60→40Hz (Intento de secuestro)
- Control de Volumen Granular: Slider 0-100% con mute automático en 0
- Desbloqueo MV3: Sistema de unlock de AudioContext vinculado a gestos del usuario
- Strictness SBF: 3 niveles (Loose 4σ, Normal 3σ, Strict 2σ)
- Shadow Mode: Observa sin bloquear para calibración
- HUD en Vivo: Notificaciones de bloqueo en tiempo real
- Retención de Logs: Configurable (50, 100, 200, 500, 1000, 5000 entradas)
- Modo Diagnóstico: Contadores anónimos por razón de bloqueo
- Whitelist por Sitio: Pausa la protección en sitios específicos
- Circuit Breaker: Protección automática contra tormentas de detecciones (>15 en 10s)
- 55 Idiomas Soportados: Incluye lenguas originarias (Quechua, Mam, K'iche')
- Localización Completa: UI, mensajes, dashboard, popup
- Detección Automática: Usa el idioma del sistema por defecto
- JavaScript ES2022+: Lógica principal de la extensión
- WebAssembly (AssemblyScript): Motor EKF de alto rendimiento
- Manifest V3: Arquitectura moderna de extensiones Chrome
- IndexedDB: Logs masivos de detecciones forenses (storage-db.js)
- chrome.storage.local: Estado de configuración y aprendizaje
- Versioning: Sistema de migración de esquemas (LEARNING_VERSION)
- Declarative Net Request (DNR): Bloqueo de red a nivel de navegador
- WebRTC: Conexiones P2P para el Swarm
- WebSocket: Signaling para descubrimiento de peers
- Offscreen Document: Mantiene estado del motor y conexiones WebRTC
- Service Worker: Orquestador de eventos de corta duración
- Offscreen Document: Motor WASM persistente y conexiones Swarm
- Content Scripts:
ISOLATEDworld: Puente de comunicación seguroMAINworld: Sensor de telemetría con monkey patching
El sensor (sensor.js) intercepta APIs sensibles sin afectar el rendimiento:
- Red:
fetch,XMLHttpRequest,navigator.sendBeacon - Fingerprinting:
CanvasRenderingContext2D.getImageData,AudioContext - DOM:
MutationObserverpara overlays maliciosos - Navegación:
window.open, redirecciones automáticas
- Caché de Stacks: Memoización de rastros de ejecución (O(1) lookup)
- Batching de Eventos: Ventana de 300ms para reducir storm de mensajes
- Eventos de Alta Prioridad:
TAB_HIJACK_ATTEMPT,ANTI_FORENSICS_ATTEMPTse emiten inmediatamente - Modo Silencioso OAuth: Suprime observaciones durante flujos de autenticación
El estado del filtro es un vector tridimensional:
- x₀: Intención (cross-site intent)
- x₁: Velocidad (injection speed)
- x₂: Volumen (interaction volume)
- Predicción:
x' = Ax + w(con decaimiento temporal) - Innovación:
y = z - x'(diferencia observación-predicción) - Ganancia de Kalman:
K = P / (P + R) - Actualización:
x = x' + Ky - Anomalía:
zScore = |x - μ| / σ - Aprendizaje: Actualización de media y varianza si
zScore ≤ 3.0
El umbral base (σ) se ajusta según contexto:
- Cross-site: -0.2σ (más estricto)
- Burst Score: -0.3σ máximo
- Sin atribución: -0.35σ (ruido de privacidad)
- Eventos críticos: σ ≤ 2.0 (TAB_HIJACK, ANTI_FORENSICS)
┌─────────────────────────────────────────────────┐
│ MAGIC (4 bytes): 0x44 0x54 0x53 0x31 ("DTS1") │
│ VERSION (1 byte): 0x01 │
│ OPCODE (1 byte): 1=PING, 2=PONG, 3=IMPRINT │
│ PAYLOAD (variable) │
└─────────────────────────────────────────────────┘
- OP_PING (1): Flags (1) + timestamp (8) = 9 bytes payload
- OP_PONG (2): t_echo (8) + t_response (8) = 16 bytes payload
- OP_IMPRINT (3): len_uuid (2) + uuid + len_hash (2) + hash + len_target (2) + target + timestamp (8)
- Difusión: Nodo local promueve patrón a L2 → broadcast a peers
- Cuarentena: Receptor almacena en
swarmQuarantine(IndexedDB) - Validación: Solo se bloquea si EKF local detecta
zScore ≥ thresholddel mismo host - Promoción: Firma validada → DFA local + actualización de confianza del peer
- Expiración: Firmas no validadas expiran en 48h
detracker/
├── manifest.json # Configuración MV3
├── background.js # Service Worker (orquestador)
├── offscreen-engine.js # Motor EKF/WASM + Swarm
├── sensor.js # Telemetría (MAIN world)
├── content-isolated.js # Puente (ISOLATED world)
├── rule-compiler.js # Compilador LALR de scriptlets
├── swarm-wire.js # Codec binario DTS1
├── storage-db.js # Wrapper IndexedDB
├── logger.js # Sistema de logs con ErrorManager
├── ekf.wasm # Motor Kalman compilado
├── popup.html/js/css # Interfaz del popup
├── dashboard.html/js # Dashboard forense
├── reports.html/js # Reportes avanzados
├── _locales/ # 55 idiomas
│ ├── en/messages.json
│ ├── es/messages.json
│ ├── cab/messages.json # Garífuna
│ ├── kek/messages.json # Q'eqchi'
│ └── ...
├── docs/ # Documentación técnica
│ ├── ARCHITECTURE.md
│ ├── BLOCKING_LOGIC.md
│ ├── SWARM_ALGORITHM.md
│ ├── FILTER_POLICY.md
│ └── PRIVACY.md
├── wasm/ # Código fuente WASM
│ ├── assembly/index.ts # AssemblyScript EKF
│ └── build/ # Artefactos compilados
└── tests/ # Suite de pruebas
├── audio-test.html
├── fp-surface-test.html
└── swarm-test-bench.js
-
Clona el repositorio:
git clone https://github.com/artesanous/detracker.git cd detracker -
Carga la extensión en Chrome:
- Abre
chrome://extensions/ - Activa "Modo de desarrollador"
- Click en "Cargar extensión sin empaquetar"
- Selecciona la carpeta
detracker/
- Abre
Si modificas el motor EKF:
cd wasm
npm install
npm run asbuild- Abre el Popup: Click en el icono de DeTracker
- Ajusta Strictness: Normal (3σ) recomendado para uso general
- Activa Swarm: Habilita "Contribute to Swarm" para inteligencia colaborativa
- Revisa Dashboard: Click en "Open Dashboard" para ver análisis forense
- Protecting (por defecto): Bloquea activamente trackers detectados
- Shadow Mode: Solo observa sin bloquear (útil para calibración)
- Paused: Desactiva protección en el sitio actual
- Azul Nieve (S): Sitio 100% limpio, 0 trackers
- Verde (A): Muy limpio, pureza ≥80%
- Azul (B): Normal, pureza ≥60%
- Ámbar (C): Precaución, pureza ≥40%
- Rojo (D): Alerta, pureza <40%
- Activa Shadow Mode
- Navega normalmente durante 24-48h
- Revisa el Dashboard → pestaña "Entities"
- Identifica falsos positivos (sitios legítimos bloqueados)
- Ajusta Strictness o añade a whitelist
- Desactiva Shadow Mode
- Abre Dashboard → pestaña "Live Feed"
- Filtra por rango temporal (ej. "Last 6 hours")
- Ordena por columna "Hits" para ver trackers más agresivos
- Click en un dominio para ver detalles de detección
- Exporta datos (función en desarrollo)
- Habilita Diagnostics en Settings
- Activa Contribute to Swarm
- Selecciona modo Balanced o Aggressive
- El sistema compartirá automáticamente firmas L2 validadas
- Monitorea estado en "Swarm Status" (ej. "balanced · 2/2 peers")
Este proyecto está construido para usuarios que desean recuperar el control de su experiencia de navegación.
- Política de Privacidad: Qué datos se almacenan (solo hosts y contadores, sin URLs completas)
- Términos de Servicio: Condiciones de uso del Swarm P2P
- Arquitectura: Detalles técnicos del motor híbrido
- Algoritmo Swarm: Protocolo de vacunación federada
Abre un issue en GitHub con:
- Versión de DeTracker (ver
manifest.json) - Navegador y versión
- Pasos para reproducir
- Logs de la consola (si aplica)
- Fork el repositorio
- Crea una rama:
git checkout -b feature/nueva-caracteristica - Commit cambios:
git commit -am 'Añade nueva característica' - Push:
git push origin feature/nueva-caracteristica - Abre un Pull Request
- Copia
_locales/en/messages.jsona_locales/[código]/messages.json - Traduce los valores de
"message" - Añade el código de idioma a
languageSelectenpopup.html
- Exportación de logs a CSV/JSON
- Modo "Paranoid" (1σ threshold)
- Integración con uBlock Origin (import de listas)
- Dashboard: gráfico de Sankey para flujo de datos
- Soporte para Firefox (Manifest V3)
- API pública para extensiones de terceros
- Machine Learning: clasificador de patrones con TensorFlow.js
- Swarm: protocolo DTS2 con compresión Brotli
- Motor de reglas compatible con AdGuard/uBlock syntax
- Dashboard: modo "Investigador" con query builder
- Swarm: DHT descentralizado (sin signaling server)
- Certificación de privacidad por auditoría externa
MIT License - Ver archivo LICENSE para detalles.
- Comunidad de uBlock Origin: Inspiración en arquitectura de filtros
- Proyecto Tor: Principios de privacidad y anonimato
- WebRTC Community: Protocolos P2P robustos
- Pueblos Originarios: Por preservar lenguas y culturas (soporte i18n)
- Issues: GitHub Issues
- Discusiones: GitHub Discussions
- Email: detracker@endev.us (solo para reportes de seguridad)