aixisstudio/Snitch
aixisstudio/Snitch has 801 GitHub stars and 53 forks. GitHot measured +38 stars in 24 hours and +129 in 7 days. Last checked 2026-11-06 19:42 UTC. Last push 2026-11-01.
Real-time network monitor + outbound firewall — see & block every connection. Privacy-first, local-first, Rust fleet agent, SIEM exports, 8 languages. / Moniteur réseau temps réel + pare-feu sortant, agent de flotte Rust, exports SIEM. 100 % local.
What you can do
- Force Graph - Live node graph — your machine at the center, every connection as a node
- World Map - Geolocated IPs with animated arcs on an interactive globe
- 15/30/60-min Timeline - Sliding history stored locally in SQLite (24 h retention)
- Anomaly Detection - Flags port scans, beaconing (regular-interval C2), potential exfiltration
Crecimiento de estrellas medido
- in 24h
- +38
- in 7 days
- +129
- in 15 days
- Actualización retrasada
- in 1 month
- Actualización retrasada
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
README.es.md
OriginalSnitch
Rastrea cada conexión oculta.
English | Français | Español | Deutsch | Русский | 日本語 | Português | 中文
⭐ Si Snitch te ayuda, ¡una estrella significa mucho! ⭐

Snitch es un visualizador de tráfico de red en tiempo real. Mira cada conexión que hace tu ordenador: con quién habla, dónde está y qué aplicación es la responsable.
Toda la interfaz está disponible en English, Français, Español, Deutsch, Русский, 日本語, Português (BR) y 简体中文: usa el selector de idioma en la barra de herramientas.
¿Por qué Snitch?
- vs Little Snitch / Lulu — misma idea (visibilidad por app + reglas de bloqueo saliente), pero Snitch es multiplataforma, gratuito y de código abierto. El bloqueo se orquesta a través del firewall nativo del SO (
netsh/iptables/pf) — Snitch nunca filtra en espacio de usuario. - vs GlassWire — Snitch es gratuito, open-source (AGPL), sin cuenta y con cero llamadas salientes por defecto; incluso la geolocalización es offline.
- vs Wireshark — Snitch ofrece una vista de alto nivel en vivo que cualquiera puede leer, en lugar de disección cruda de paquetes.
- vs monitores en la nube — todo corre en
127.0.0.1tras un token; tus datos de tráfico nunca salen de la máquina.
Funciones
| Función | Descripción |
|---|---|
| Grafo de fuerza | Grafo de nodos en vivo — tu máquina al centro, cada conexión un nodo |
| Mapa mundial | IPs geolocalizadas con arcos animados en un globo interactivo |
| Timeline 15/30/60 min | Historial deslizante en SQLite local (retención 24 h) |
| Detección de anomalías | Escaneos de puertos, beaconing (C2 a intervalo regular), exfiltración potencial |
| Detección avanzada | Heurística de túnel DNS, puertos en claro, desviación de baseline de país por app |
| Orquestación de firewall | Reglas de bloqueo (IP/CIDR/dominio/proceso/puerto) aplicadas al firewall del SO — netsh/iptables/pf, persistidas, contadores por regla |
| Modo lockdown | Interruptor de pánico — marca y bloquea todo el tráfico saliente público, la LAN sigue activa |
| Respuesta a incidentes | Matar / suspender un proceso, bloquear una IP — un clic desde el detalle |
| Threat intelligence | Verificaciones de reputación opt-in (AbuseIPDB / AlienVault OTX / VirusTotal) con tu propia clave API — desactivado por defecto, resultados en caché |
| Auditoría de seguridad | Informe de hardening integrado — puntuación, hallazgos, recomendaciones en lenguaje claro |
| Export forense | Paquete de investigación en un clic — árbol de procesos + SHA-256 del binario, historial y alertas asociadas (JSON/CSV/STIX) |
| Webhooks de alertas | Reenvío opt-in de alertas warning/críticas a Discord, Slack, Telegram o cualquier endpoint |
| Atribución de procesos | Sabe qué app genera qué tráfico (top 5 por conexión) |
| Escáner LAN | Descubrimiento pasivo vía tabla ARP del sistema (sin escaneos broadcast) |
| Privacy Score | Puntuación en vivo de la exposición de tu tráfico saliente |
| Vista por aplicación | Destinos, volúmenes e historial de 60 min por proceso |
| Supresión de alertas | Reglas «ignorar host/tipo» persistidas, gestionables en la UI |
| Panel de ajustes | Idioma, retención, filtros, descarga GeoIP con consentimiento, diagnósticos |
| Detección de trackers | Listas de dominios por sufijo en archivos editables (backend/classifier/lists/) |
| Monitor de ancho de banda | Sparkline de MB/s en vivo |
| UI en 8 idiomas | EN · FR · ES · DE · RU · JA · PT-BR · ZH-CN — cambio con un clic, locales en frontend/src/locales/ |
| Tema claro / oscuro | Sigue la preferencia del SO, conmutación manual persistida |
| Actualización automática | La app de escritorio consulta GitHub Releases (desactivable en Ajustes; SNITCH_NO_UPDATE=1) |
| QUIC / HTTP/3 | Flujos UDP/443 etiquetados honestamente — el SNI QUIC está cifrado y nunca se lee |
| Watchlist | Fija IPs/dominios — alerta dedicada en cuanto el tráfico los toca |
| Alerta de pico de subida | Techo de MB/min por proceso con umbral ajustable |
| Selector de interfaz | Elige qué adaptador se escucha — sin variable de entorno |
| Contexto Wi-Fi | SSID actual en la barra de herramientas |
| Export | Grafo + alertas a JSON/CSV, un clic |
Descarga
| Plataforma | Paquete |
|---|---|
| macOS (Apple Silicon) | brew install --cask aixisstudio/tap/snitch — o Snitch.app zip/dmg desde la última release |
| Linux | Snitch AppImage / .deb / .rpm / .snap desde la última release — o sudo docker compose up --build, ver Docker (Linux) |
| Headless (cualquier SO) | brew install aixisstudio/tap/snitch → daemon snitchd (servidores/VM, sin GUI) |
| Windows | Snitch Setup .exe — instalador NSIS de un clic (app nativa, prompt UAC al lanzar, detección de Npcap integrada) desde la última release. Alternativa lite: Snitch-Lite-Setup (backend + UI en navegador). Requiere Npcap |
| Todas (1 clic) | Pinokio — instala dependencias, lanza el backend, abre la UI |
O descarga la última release: github.com/aixisstudio/Snitch/releases
Primer arranque en macOS — Snitch está firmado ad-hoc, no notarizado (sin Developer ID de pago). El
brew install --caskelimina la cuarentena por ti. Para el zip manual: clic derecho → Abrir, oxattr -dr com.apple.quarantine /Applications/Snitch.app. En el primer arranque pide tu contraseña de admin una vez — la captura de paquetes la exige, como tcpdump/Wireshark; la UI sigue sin privilegios.Firma de código en Windows — los builds de Windows serán firmados con Authenticode gracias a un certificado open source gratuito ofrecido por la SignPath Foundation vía SignPath.io (solicitud enviada, pendiente de aprobación). Hasta el primer build firmado, SmartScreen puede advertir — clic en Más información → Ejecutar de todas formas.
Stack
| Capa | Tecnología |
|---|---|
| Captura de paquetes | ctypes → libpcap — Npcap (Windows) / libpcap (Linux/macOS) — parser propio (IPv4/IPv6/TCP/UDP/DNS/TLS-SNI) |
| API backend | FastAPI — WebSockets — SQLite |
| Frontend | React 19 — Vite — D3.js v7 — TopoJSON |
| Envoltorio de escritorio | Electron 44 |
| Geolocalización | Solo offline — DB-IP Lite (CC BY 4.0) empaquetada gzip en backend/data/geo/, extraída en el primer arranque; también admite .mmdb de MaxMind GeoLite2 |
Seguridad y privacidad
- Token de API — cada endpoint REST y el WebSocket exigen un token. Electron lo genera por lanzamiento; en Docker/navegador se imprime una vez en los logs del backend y se guarda en
data/api_token.txt. Abre la UI conhttp://localhost:8000/?token=<TOKEN>. - Solo loopback por defecto — la API escucha en
127.0.0.1en todos los modos. UsaSNITCH_BIND=0.0.0.0solo si quieres explícitamente acceso LAN (el token sigue siendo obligatorio). - Allowlist CORS/Origin de WebSocket — solo
localhost:5173, el propio origen del backend y las páginasfile://de Electron pueden conectar. - Geolocalización 100 % offline — ninguna consulta en línea. DB-IP Lite (CC BY 4.0) se autoextrae a
<data_dir>/geo/; puedes soltar.mmdbde MaxMind más recientes o descargar DB-IP Lite desde Ajustes (consentimiento explícito; las demás llamadas salientes opt-in — threat intel, webhooks, actualizaciones — están en PRIVACY.md). - Todos los datos se quedan en local —
snitch.db(ventana deslizante de 24 h,retention_hours) ydata/logs/snitch.lognunca salen de la máquina. Sin telemetría. Cada llamada saliente es opt-in. - Los ajustes persisten — filtros de puertos, procesos excluidos, whitelist IP, reglas de firewall, idioma y retención se guardan en SQLite y se restauran al reiniciar.
- Reglas de firewall best-effort — el backend pilota el firewall del SO (
netsh advfirewall,iptables, anchorspf); sin privilegios la regla se conserva y se evalúa para visibilidad (alertas BLOCKED_ATTEMPT) marcada «no aplicada», sin fingir aplicación real. El lockdown mantiene loopback + LAN para que la UI siga accesible. - Threat intel y webhooks opt-in — desactivados por defecto; activar un proveedor o un webhook añade llamadas salientes, documentadas en PRIVACY.md.
- Supresión de alertas — cada alerta ofrece «Ignorar este tipo/host»; reglas persistidas (
alert_suppressions), gestionables víaPOST|DELETE|GET /alerts/ignore. - Historial — agregados por minuto, por host y por proceso en SQLite (
host_history,process_history), alimentando la vista por aplicación yGET /history/*. - Diagnósticos —
GET /diagnosticsdevuelve una instantánea JSON del runtime sin secretos; exportable desde Ajustes. - Dispositivos LAN descubiertos pasivamente vía tabla ARP — sin escaneo broadcast activo. Los nombres se aprenden de lo que los propios dispositivos emiten: mDNS
*.local, LLMNR/NetBIOS, hostname DHCP, tabla IEEE OUI offline; la puerta de enlace se detecta como router. - Ver docs/threat-model.md para el modelo de amenaza completo y docs/FIREWALL.md para la suite de seguridad.
Docker (Linux)
El despliegue Docker es para usuarios Linux que quieren ejecutar Snitch sin instalar nada más.
La captura funciona vía network_mode: host — el contenedor ve el tráfico real del host.
Imagen precompilada — sin clonar ni compilar:
sudo docker run --network host --cap-add NET_ADMIN --cap-add NET_RAW \
-v snitch-data:/app/data ghcr.io/aixisstudio/snitch
Nota: Docker Desktop en Mac/Windows corre dentro de una VM y no puede capturar el tráfico del host. Usa la app Electron en esas plataformas.
Obtén el token de API (impreso una vez al inicio, o cat data/api_token.txt) y abre http://localhost:8000/?token=TOKEN en tu navegador.
En segundo plano: sudo docker compose up -d --build
Limitaciones de Docker: la atribución de procesos se limita a los del contenedor; el escáner LAN puede no estar disponible según la red.
Desarrollo
Requisitos: Python 3.11+, Node.js 18+, Npcap (solo Windows), terminal con privilegios para el backend.
Modo demo —
SNITCH_DEMO=1alimenta tráfico sintético por el pipeline real: sin root, sin libpcap, sin paquetes reales. Ideal para capturas y pruebas.
cd backend && pip install -r requirements.txt && python run_backend.py
cd frontend && npm install && npm run dev # http://localhost:5173/?token=TOKEN
cd electron && npm install && VITE_DEV=1 npx electron .
Tests:
cd backend && pip install -r requirements-dev.txt && python -m pytest tests/ -v
cd frontend && npm test
Estructura del proyecto
snitch/
├── backend/ FastAPI + captura libpcap (ctypes, parser propio)
├── frontend/ UI React + D3.js (8 idiomas)
├── electron/ Envoltorio Electron (main, splash, preload)
├── data/ Datos en ejecución (SQLite, .mmdb en geo/)
└── dist/ Salida compilada (exe backend, instalador)
Enterprise y flota
Snitch también funciona headless para despliegues SOC — todo por archivos y gratis:
- Security-as-Code — un
snitch.toml(o$SNITCH_CONFIG) sobreescribe todos los ajustes; provisiona flotas con Ansible (deploy/ansible/), Puppet, Salt o GPO. - Agente Rust — un daemon sin dependencias (
agent/) envía sockets aPOST /ingest/eventscon atribución/proc→PID en Linux;POST /ingest/enrollemite tokenssagt_…de un solo uso (hasheados, revocables). - Nativo SIEM — syslog CEF o RFC 3164, webhooks genéricos y
GET /forensics/export?format=ecs(NDJSON Elastic Common Schema) alimentan Wazuh, Splunk, Graylog, Loki y Elastic. Importación Sigma (POST /alerts/rules/sigma), exportación YARA-L (GET /alerts/rules/yaral). - Vista de flota —
GET /remote/fleetfusiona las auditorías de todos los pares; un chart Helm (deploy/helm/snitch) ejecuta el colector en el clúster. - Feeds TI gratuitos —
POST /firewall/blocklistimporta listas de dominios (StevenBlack) e IPs (Blocklist.de, URLhaus/Feodo);ti_feedsprograma actualizaciones automáticas.
Recetas paso a paso en docs/INTEGRATIONS.md.
Licencia
AGPL v3 — ver LICENSE. Libre de usar, estudiar y modificar; las obras derivadas deben permanecer open source bajo AGPL v3.
Historial de estrellas
Explorar proyectos relacionados
trimstray/the-book-of-secret-knowledge
Una colección de listas inspiradoras, manuales, chuletas, blogs, trucos, comandos de una línea, herramientas de CLI y web, y más.
256,557 estrellasHack-with-Github/Awesome-Hacking
Una colección de diversas listas awesome para hackers, pentesters e investigadores de seguridad.
124,831 estrellasswisskyrepo/PayloadsAllTheThings
Una lista de payloads y métodos de bypass útiles para la seguridad de aplicaciones web y para pentesting/CTF.
82,444 estrellascaddyserver/caddy
Servidor web HTTP/1-2-3 rápido, extensible y multiplataforma con HTTPS automático
78,857 estrellas