nDPI 4.6 llega con soporte para nuevos protocolos, servicios y mas

febrero 04, 2023 0 Comments

nDPI

nDPI® es una biblioteca LGPLv3 de código abierto para la inspección profunda de paquetes. Basado en OpenDPI, incluye extensiones ntop.

Se dio a conocer el lanzamiento de la nueva versión de nDPI 4.6 que introduce varias mejoras, asi como tambien el soporte para más protocolos y robustez gracias al código fuzzing introducido en esta versión. La extracción de metadatos de protocolo se ha mejorado en varios protocolos, así como la detección de DGA en nombres de host, entre otras cosas más.

nDPI se caracteriza por ser utilizado tanto por ntop como por nProbe para agregar la detección de protocolos en la capa de aplicación, independientemente del puerto que se esté utilizando. Esto significa que es posible detectar protocolos conocidos en puertos no estándar.

El proyecto permite determinar los protocolos de nivel de aplicación utilizados en el tráfico mediante el análisis de la naturaleza de la actividad de la red sin vincularse a los puertos de la red (puede determinar los protocolos conocidos cuyos controladores aceptan conexiones en puertos de red no estándar, por ejemplo, si se envía http no desde el puerto 80, o, por el contrario, cuando intentan camuflar otra actividad de red como http ejecutándose en el puerto 80).

Principales novedades de nDPI 4.6

En el nuevo lanzamiento de nDPI 4.6, se proporcionó la capacidad de definir protocolos personalizados mediante filtros nBPF (por ejemplo: ‘nbpf:»host 192.168.1.1 y puerto 80″@HomeRouter’).

Tambien se ha mejorado bastante el rendimiento del análisis de tráfico, asi como tambien la detección de código WebShell y PHP en URL HTTP y la definición de DGA (Domain Generational Algorithm).

Se ha ampliado la gama de amenazas de red detectadas y problemas asociados con el riesgo de compromiso (riesgo de flujo). Se agregó soporte para nuevos tipos de amenazas: NDPI_HTTP_OBSOLETE_SERVER (detecta versiones antiguas de Apache y nginx), NDPI_PERIODIC_FLOW, NDPI_MINOR_ISSUES, NDPI_TCP_ISSUES.

Otra de las novedades que se presenta de esta nueva versión, son las pruebas de fuzzing implementadas junto con una comprobación mejorada de las instrucciones AES-NI y las mejoras implementadas en la serialización de datos en formato JSON.

Por otra parte, tambien se destaca que se agregaron estadísticas para Patricia, Ahocarasick y caché LRU, asi como tambien una lógica de antigüedad de entrada de caché LRU configurable, ssoporte para flujos RTP a los metadatos de flujo y que la utilidad ndpiReader implementa soporte para el protocolo Linux Cooked Capture v2.

Por la parte de las adiciones de soporte para protocolos y servicios:

  • Activision
  • AliCloud server access
  • AVAST
  • CryNetwork
  • Anydesk
  • Bittorrent (fix confidence, detection over TCP)
  • DNS, add ability to decode DNS PTR records used for reverse address resolution
  • DTLS (handle certificate fragments)
  • Facebook VoIP calls
  • FastCGI (dissect PARAMS)
  • FortiClient (update default ports)
  • Discord
  • EDNS
  • Elasticsearch
  • FastCGI
  • Kismet
  • Liane App and Line VoIP calls
  • Meraki Cloud
  • Muanin
  • NATPMP
  • HTTP subclassification
  • Check for empty/missing user-agent in HTTP
  • IRC (credentials check)
  • Jabber/XMPP
  • Kerberos (support for Krb-Error messages)
  • LDAP
  • MGCP
  • MONGODB (avoid false positives)
  • Syncthing
  • TP-LINK Smart Home
  • TUYA LAN
  • SoftEther VPN
  • Tailscale
  • TiVoConnect
  • SNMP
  • SMB (support for messages split into multiple TCP segments)
  • SMTP (support for X-ANONYMOUSTLS command)
  • STUN
  • SKYPE (improve detection over UDP, remove detection over TCP)
  • Teamspeak3 (License/Weblist detection)
  • Threema Messenger
  • Zoom
  • Add Zoom screen share detection
  • Add detection of Zoom peer-to-peer flows in STUN
  • Hangout/Duo Voip calls detection, optimize lookups in the protocol tree
  • HTTP
  • Handling of HTTP-Proxy and HTTP-Connect
  • Postgres
  • POP3
  • QUIC (support for 0-RTT packets received before the initial)
  • Snapchat VoIP calls

Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.

¿Como instalar nDPI en Linux?

Para quienes estén interesados en poder instalar esta herramienta en su sistema, pueden hacerlo siguiendo las instrucciones que compartimos a continuación.

Para poder instalar la herramienta, debemos descargar el código fuente y compilarlo, pero antes de ello si son usuarios de Debian, Ubuntu o algún derivado de estos, primero debemos instalar lo siguiente:

sudo apt-get install build-essential git gettext flex bison libtool autoconf automake pkg-config libpcap-dev libjson-c-dev libnuma-dev libpcre2-dev libmaxminddb-dev librrd-dev

En el caso de los que son usuarios de Arch Linux:

sudo pacman -S gcc git gettext flex bison libtool autoconf automake pkg-config libpcap json-c numactl pcre2 libmaxminddb rrdtool

Ahora, para poder realizar la compilación debemos de descargar el código fuente, el cual puedes obtener tecleando:

git clone https://github.com/ntop/nDPI.git

cd nDPI

Y procedemos a comprilar la herramienta tecleando:

./autogen.sh
make

Si estás interesado en poder conocer más al respecto sobre el uso de la herramienta, puedes consultar el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.