Picosnitch: el “sniffer” moderno para Linux que desglosa el tráfico de red por ejecutable y lo muestra con claridad

En un mundo donde cada aplicación “habla” con decenas de servicios remotos sin que el usuario sea plenamente consciente, la pregunta ya no es solo cuánto tráfico consume un equipo, sino qué proceso lo está consumiendo, hacia dónde, cuándo y por qué. En ese terreno —a medio camino entre la observabilidad, la seguridad y la privacidad— está ganando atención Picosnitch, una herramienta open source pensada para monitorizar el tráfico de red por ejecutable y presentarlo con una visualización especialmente cuidada.

La propuesta de Picosnitch es sencilla de explicar y muy difícil de ejecutar bien: atribuir cada conexión y cada byte a un binario concreto, incluso cuando hay procesos padre/hijo de por medio, y ofrecer un historial consultable sin que el sistema se vuelva pesado. Para quienes administran Linux en escritorio o servidor, esto se traduce en un tipo de transparencia que normalmente exige combinar varias herramientas dispersas, interpretar salidas complejas y, aun así, quedarse sin contexto.

Qué hace exactamente y por qué puede ser útil

Picosnitch se centra en dos ideas: notificar y registrar.

Por un lado, permite recibir avisos cuando un programa nuevo se conecta a la red o cuando un ejecutable se modifica. Este matiz —la modificación del binario— es relevante: no solo “sale a Internet”, sino que además puede alertar de que algo ha cambiado en el ejecutable que origina la conexión.

Por otro, su base es la telemetría de ancho de banda desglosada. La herramienta puede presentar el tráfico agrupado por ejecutable, hash, proceso padre, dominio, puerto o usuario, y hacerlo a lo largo del tiempo, de forma que sea fácil detectar patrones (picos, procesos “habladores”, conexiones repetitivas, etc.).

El enfoque es especialmente útil en escenarios cotidianos:

  • Un portátil que “misteriosamente” consume datos: identificar si es el navegador, un launcher, un servicio de sincronización o un agent.
  • Un servidor con cargas variables: detectar qué demonio abre conexiones inesperadas o a destinos no habituales.
  • Entornos con contenedores: diferenciar aplicaciones incluso si hay varias versiones coexistiendo, gracias a la identificación por hash.
  • Auditoría rápida tras una incidencia: revisar el histórico para ver qué ejecutable se conectó, con qué frecuencia, a qué dominios y en qué franjas.

Cómo lo consigue: BPF para el tráfico y fanotify para vigilar binarios

La parte más “técnica” de Picosnitch no es un adorno: es el corazón del proyecto. La herramienta utiliza BPF (eBPF) para la monitorización de ancho de banda con baja sobrecarga y fanotify para vigilar si los ejecutables cambian. Esa combinación busca dos objetivos a la vez: precisión al asociar sockets/procesos y fiabilidad al identificar binarios.

Para evitar depender únicamente del nombre del proceso (que puede ser ambiguo o incluso suplantable en ciertos escenarios), Picosnitch apoya la identificación en hashes del ejecutable. Además, registra el ejecutable padre porque, en Linux, es habitual que un proceso invoque a otro para establecer conexiones en su nombre. Esa cadena padre/hijo puede marcar la diferencia entre una conexión “normal” y otra sospechosa.

Como extra opcional, el proyecto permite consultar hashes o ejecutables en VirusTotal (si el usuario aporta clave de API) y mostrar GeoIP en las interfaces para contextualizar conexiones por geolocalización de IP.

Dos interfaces: web y terminal, con historial consultable

Picosnitch ofrece dos formas principales de exploración:

  • Interfaz web para revisar conexiones pasadas y navegar por visualizaciones.
  • Interfaz de terminal para una consulta rápida e interactiva, con filtros y cambios de rango temporal.

En ambos casos, la idea es que el historial sea realmente utilizable: filtrar, excluir entradas, moverse por el tiempo y ajustar unidades, sin depender de exportaciones manuales.

A nivel operativo, el proyecto está pensado para integrarse en el día a día: puede ejecutarse como servicio (por ejemplo, gestionando su arranque con systemd) y luego abrir la interfaz de consulta cuando haga falta.

Registro y persistencia: SQLite por defecto y opción de base remota

Una de las decisiones prácticas del proyecto es cómo guarda los datos. Por defecto, Picosnitch registra el historial en SQLite, y mantiene ficheros auxiliares con el histórico de ejecutables vistos, además de un log de errores.

También contempla un punto importante para un uso “serio” como herramienta de auditoría: si se quiere reducir la posibilidad de manipulación local de registros, permite escribir el log completo en una base de datos externa (por ejemplo, MariaDB/MySQL/PostgreSQL). En la propia documentación se plantea como una mitigación frente a escenarios en los que un actor con privilegios pudiera intentar alterar el sistema o los registros.

El comportamiento es configurable: retención de días, límite de escritura (para agrupar eventos y reducir I/O), qué campos registrar (direcciones, puertos, comandos), listas de exclusión, etc. La configuración se guarda en el directorio del usuario y requiere reiniciar el servicio para aplicar cambios si está en ejecución.

Limitaciones: lo que conviene entender antes de venderlo como “antimalware”

Picosnitch se presenta como una herramienta fiable, pero no como un escudo mágico. Su propia documentación reconoce limitaciones típicas de este tipo de soluciones:

  • Un programa con privilegios suficientes podría intentar alterar el software o sus logs, o utilizar mecanismos de comunicación no observados.
  • El hash se calcula sobre el ejecutable, pero no cubre por defecto posibles compromisos en bibliotecas compartidas o cargas dinámicas (casos tipo LD_PRELOAD), algo que, si preocupa, obliga a complementar con controles de integridad o enfoques de sistema más rígidos.
  • En escenarios de procesos extremadamente efímeros, puede ocurrir que no se llegue a abrir el descriptor a tiempo para hashear (se describe como raro).
  • En picos de carga, el diseño prioriza no degradar la latencia del sistema; si hay eventos que se pierden, se intenta detectar y registrar el error para que el usuario sepa que hubo una anomalía.

En otras palabras: es una herramienta potente de observabilidad y auditoría, pero en seguridad siempre funciona mejor como parte de una estrategia (reglas de red, hardening, aislamiento, backups de logs, etc.) que como solución única.


Preguntas frecuentes

¿Cómo monitorizar el tráfico de red por proceso en Linux sin depender de Wireshark?
Picosnitch permite asociar tráfico a ejecutables concretos y consultarlo después con interfaz web o terminal, sin necesidad de capturas manuales por interfaz y sin perder la trazabilidad por binario.

¿Picosnitch sirve para detectar conexiones sospechosas o “llamadas a casa”?
Puede ayudar mucho: notifica cuando un programa nuevo se conecta, registra destinos, puertos y dominios (según configuración) y ofrece histórico para comparar comportamientos. No sustituye a un EDR, pero aporta contexto muy accionable.

¿Se puede usar Picosnitch en servidores y contenedores (Docker/Podman)?
Sí: el proyecto contempla la detección de aplicaciones que se ejecutan dentro de contenedores y diferencia versiones por hash, lo que facilita auditorías en hosts que ejecutan múltiples imágenes o revisiones.

¿Qué opciones hay para evitar que alguien borre el historial si obtiene acceso al servidor?
Además del registro local, Picosnitch permite enviar el log a una base de datos externa (MariaDB/MySQL/PostgreSQL), una medida útil para conservar una copia “fuera del sistema” y dificultar manipulaciones.


Fuentes:

  • Repositorio oficial y documentación de Picosnitch (GitHub).
Scroll al inicio