Skip to content

pab10v/detracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦊 DeTracker Privacy Swarm

Motor de Inteligencia Descentralizada contra Rastreo y Explotación del Navegador

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 Híbrido de Decisión

  • 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

Sistema de Aprendizaje Federado

  • 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

🔒 Privacidad Primero (Zero-Knowledge)

  • 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)

🛡️ Características Principales

Protección Avanzada

  • 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

Sistema de Iconos Dinámico "Snow Fox"

  • 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)

Dashboard Forense Avanzado

  • 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

Swarm P2P (WebRTC)

  • 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

Motor de Audio Procedural

  • 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

Configuración Avanzada

  • 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)

Internacionalización (i18n)

  • 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

🛠️ Stack Tecnológico

Core

  • JavaScript ES2022+: Lógica principal de la extensión
  • WebAssembly (AssemblyScript): Motor EKF de alto rendimiento
  • Manifest V3: Arquitectura moderna de extensiones Chrome

Persistencia

  • 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)

Red

  • 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

Arquitectura MV3

  • Service Worker: Orquestador de eventos de corta duración
  • Offscreen Document: Motor WASM persistente y conexiones Swarm
  • Content Scripts:
    • ISOLATED world: Puente de comunicación seguro
    • MAIN world: Sensor de telemetría con monkey patching

📊 Telemetría del Sensor

El sensor (sensor.js) intercepta APIs sensibles sin afectar el rendimiento:

APIs Monitoreadas

  • Red: fetch, XMLHttpRequest, navigator.sendBeacon
  • Fingerprinting: CanvasRenderingContext2D.getImageData, AudioContext
  • DOM: MutationObserver para overlays maliciosos
  • Navegación: window.open, redirecciones automáticas

Optimizaciones

  • 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_ATTEMPT se emiten inmediatamente
  • Modo Silencioso OAuth: Suprime observaciones durante flujos de autenticación

🧮 Algoritmo EKF (Filtro de Kalman Extendido)

Modelo HMM 3D

El estado del filtro es un vector tridimensional:

  • x₀: Intención (cross-site intent)
  • x₁: Velocidad (injection speed)
  • x₂: Volumen (interaction volume)

Fases del Filtro

  1. Predicción: x' = Ax + w (con decaimiento temporal)
  2. Innovación: y = z - x' (diferencia observación-predicción)
  3. Ganancia de Kalman: K = P / (P + R)
  4. Actualización: x = x' + Ky
  5. Anomalía: zScore = |x - μ| / σ
  6. Aprendizaje: Actualización de media y varianza si zScore ≤ 3.0

Umbral Dinámico

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)

🐝 Protocolo Swarm (DTS1 v1)

Estructura de Trama

┌─────────────────────────────────────────────────┐
│ MAGIC (4 bytes): 0x44 0x54 0x53 0x31 ("DTS1")  │
│ VERSION (1 byte): 0x01                          │
│ OPCODE (1 byte): 1=PING, 2=PONG, 3=IMPRINT     │
│ PAYLOAD (variable)                              │
└─────────────────────────────────────────────────┘

Opcodes

  • 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)

Algoritmo de Vacunación

  1. Difusión: Nodo local promueve patrón a L2 → broadcast a peers
  2. Cuarentena: Receptor almacena en swarmQuarantine (IndexedDB)
  3. Validación: Solo se bloquea si EKF local detecta zScore ≥ threshold del mismo host
  4. Promoción: Firma validada → DFA local + actualización de confianza del peer
  5. Expiración: Firmas no validadas expiran en 48h

📁 Estructura del Proyecto

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

🚦 Instalación

Desde el Código Fuente

  1. Clona el repositorio:

    git clone https://github.com/artesanous/detracker.git
    cd detracker
  2. Carga la extensión en Chrome:

    • Abre chrome://extensions/
    • Activa "Modo de desarrollador"
    • Click en "Cargar extensión sin empaquetar"
    • Selecciona la carpeta detracker/

Compilar WASM (Opcional)

Si modificas el motor EKF:

cd wasm
npm install
npm run asbuild

🎯 Uso

Configuración Inicial

  1. Abre el Popup: Click en el icono de DeTracker
  2. Ajusta Strictness: Normal (3σ) recomendado para uso general
  3. Activa Swarm: Habilita "Contribute to Swarm" para inteligencia colaborativa
  4. Revisa Dashboard: Click en "Open Dashboard" para ver análisis forense

Modos de Operación

  • 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

Interpretación del Icono

  • 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%

🔬 Casos de Uso Avanzados

Calibración de Sensibilidad

  1. Activa Shadow Mode
  2. Navega normalmente durante 24-48h
  3. Revisa el Dashboard → pestaña "Entities"
  4. Identifica falsos positivos (sitios legítimos bloqueados)
  5. Ajusta Strictness o añade a whitelist
  6. Desactiva Shadow Mode

Análisis Forense

  1. Abre Dashboard → pestaña "Live Feed"
  2. Filtra por rango temporal (ej. "Last 6 hours")
  3. Ordena por columna "Hits" para ver trackers más agresivos
  4. Click en un dominio para ver detalles de detección
  5. Exporta datos (función en desarrollo)

Contribución al Swarm

  1. Habilita Diagnostics en Settings
  2. Activa Contribute to Swarm
  3. Selecciona modo Balanced o Aggressive
  4. El sistema compartirá automáticamente firmas L2 validadas
  5. Monitorea estado en "Swarm Status" (ej. "balanced · 2/2 peers")

⚖️ Legal y Transparencia

Este proyecto está construido para usuarios que desean recuperar el control de su experiencia de navegación.


🤝 Contribuir

Reportar Bugs

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)

Desarrollo

  1. Fork el repositorio
  2. Crea una rama: git checkout -b feature/nueva-caracteristica
  3. Commit cambios: git commit -am 'Añade nueva característica'
  4. Push: git push origin feature/nueva-caracteristica
  5. Abre un Pull Request

Añadir Idiomas

  1. Copia _locales/en/messages.json a _locales/[código]/messages.json
  2. Traduce los valores de "message"
  3. Añade el código de idioma a languageSelect en popup.html

🏗️ Roadmap

v1.1 (Q2 2026)

  • 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

v1.2 (Q3 2026)

  • 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

v2.0 (Q4 2026)

  • 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

📜 Licencia

MIT License - Ver archivo LICENSE para detalles.


🙏 Agradecimientos

  • 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)

📞 Contacto


Construido con ❤️ para una web más limpia y segura

License: MIT Chrome Web Store PRs Welcome

About

Stochastic Privacy Intrusion Detection System (IDS) & Tracker Blocker for Chrome. Detracker is a privacy-first browser extension designed to protect users from modern tracking techniques. DeTracker uses a probabilistic and dynamic engine to identify and neutralize trackers without relying on massive, central blacklists.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors