194 Commits

Author SHA1 Message Date
Toni
42c54d3755 Initial tunnel decoding (GRE - Layer4 only atm) (#55)
Initial tunnel decoding (GRE - Layer4 only atm). Fixes #53
 * make finally use of the thread distribution seed
 * Handle GRE/PPP subprotocol the right way
 * Add `-t` command line / config option
 * Removed duplicated and obsolete IP{4,6}_SIZE_SMALLER_THAN_HEADER which is the same as IP{4,6}_PACKET_TOO_SHORT
 * Updated error event schema

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2025-02-25 15:17:16 +01:00
Toni Uhlig
471ea83493 bump libnDPI to e946f49aca13e4447a7d7b2acae6323a4531fb55
* incorporated upstream changes

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2025-01-25 10:07:25 +01:00
Toni Uhlig
1aa7d9bdb6 nDPId daemon status event: serialize nDPI API version + Size/Flow
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-11-17 13:12:33 +01:00
Toni Uhlig
9efdecf4ef bump libnDPI to 59ee1fe1156be234fed796972a29a31a0589e25a
* set minimum nDPI version to 4.12.0 (incompatible API changes)
 * fixed `ndpi_debug_printf()` function signature
 * JSON schema (flow): added risk `56`: "Obfuscated Traffic"
 * JSON schema (flow): added "domainame"
 * fixed OpenWrt build

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-11-13 17:23:31 +01:00
Toni Uhlig
8c114e4916 cosmetics
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-11-10 13:43:26 +01:00
Toni Uhlig
a733d536ad Added env check NDPID_STARTED_BY_SYSTEMD to prevent logging to stderr in such a case
* removed `nDPId` shutdown on poll/epoll error
 * fixed `chmod_chown()` rv check

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-11-07 11:32:42 +01:00
Toni Uhlig
ce5f448d3b Switched OpenWrt GitHub Actions SDK to main branch
* fixed some SonarCloud complaints
 * added more systemd CI tests
 * fixed debian package scripts to obey remove/purge
 * changed `chmod_chown()` error handling

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-11-02 18:36:54 +01:00
Toni Uhlig
2b48eb0514 Added vlan_id dissection of the most outer (first) 802.1Q header. Fixes #50
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-11-02 15:48:45 +01:00
Toni Uhlig
817559ffa7 Set an optional UUID used within all events (similar to the "alias").
* added default values to usage
 * UUID can be either read from a file or used directly from option value
 * adjusted example config file

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-29 12:12:02 +01:00
Toni Uhlig
25944e2089 Fixed some SonarCloud issues
* fixed dependabot werkzeug (3.0.3 to 3.0.6)

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-26 11:35:30 +02:00
Toni Uhlig
5423797267 Added nDPId ndpi_process_packet() LLVM fuzzer
* replaced dumb `dumb_fuzzer.sh`
 * fixed nDPId NULL pointer deref found by fuzzer
 * nDPI: `--enable-debug-build` and `--enable-debug-messages` for non release builds
 * nDPI: do not force `log.level` to `3` anymore, use config value instead

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-24 15:45:04 +02:00
Toni Uhlig
7d58703bdb Removed ENABLE_MEMORY_STATUS CMake option as it's now enabled for **all** builds
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-22 13:12:59 +02:00
Toni Uhlig
ae36f8df6c Added libnDPI global context init/deinit used for cache mgmt.
* support for adding *.ndpiconf for nDPI config tests
 * all other configs should have the suffix *.conf
 * fixed nDPI malloc/free wrapper set (was already too late set)

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-21 16:17:01 +02:00
Toni Uhlig
8c5ee1f7bb Added config testing script.
* nDPId-test may now make use of an optional config file as cmd arg

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-21 16:10:09 +02:00
Toni
efed6f196e Read and parse configuration files. Fixes #41. (#42)
Read and parse configuration files. Fixes #41.

 * supports nDPId / nDPIsrvd via command line parameter `-f`
 * nDPId: read general/tuning and libnDPI settings
 * support for settings risk domains libnDPI option via config file or via `-R` (Fixes #45, thanks to @UnveilTech)
 * added some documentation in the config file
 * adjusted Systemd and Debian packaging to make use of config files

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-10-16 14:13:55 +02:00
Toni Uhlig
9ef17b7bd8 Added some static assertion based sanity checks.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-09-11 13:28:20 +02:00
Toni Uhlig
1c9aa85485 Save hostname after detection finished for later use within analyse/end/idle flow events. Fixes #39.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-09-11 13:01:23 +02:00
Toni
5e4005162b Add PF_RING support. (#38) 2024-08-19 18:33:18 +02:00
Toni Uhlig
930aaf9276 Added global (heap) memory stats for daemon status events.
* added new CMake option `ENABLE_MEMORY_STATUS` to restore the old behavior
   (and increase performance)
 * splitted `ENABLE_MEMORY_PROFILING` into `ENABLE_MEMORY_STATUS` and `ENABLE_MEMORY_PROFILING`

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-06-19 14:25:42 +02:00
Toni Uhlig
c7eace426c bump libnDPI to 9185c2ccc402d3368fc28ac90ab281b4f951719e
* incorporated API changes from 41eef9246c6a3055e3876e3dd7aeaadecb4b76c0

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-04-04 11:49:48 +02:00
Toni Uhlig
ea968180a2 Read Ipv6 address and netmask using getifaddrs() instead of reading /proc/net/if_inet6.
* fixes a compatibility issue with Mac OSX

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-02-07 14:25:14 +01:00
Toni Uhlig
556025b34d Removed API version macro check as it's inconsistent on different platforms.
* set min required nDPI version to 4.9.0

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-02-06 10:49:47 +01:00
Toni Uhlig
feb2583ef6 bump libnDPI to 4543385d107fcc5a7e8632e35d9a60bcc40cb4f4
* incorporated API changes from nDPI

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2024-02-06 10:34:52 +01:00
Toni Uhlig
71d933b0cd Fixed an event issue.
* a "detection-update" event was thrown even if nothing changed
 * in some cases "not-detected" events were spammed if detection not completed
 * tell `libnDPI` how many packets per flow we want to dissect
 * `nDPId-test` validates total active flows in the right way

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-12-14 15:45:08 +01:00
Toni Uhlig
f5c5bc88a7 Replaced ambiguous naming of "JSON string" to more accurate "JSON message". #2
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-12-04 13:13:05 +01:00
Toni Uhlig
53d8a28582 Replaced ambiguous naming of "JSON string" to more accurate "JSON message".
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-12-04 13:01:27 +01:00
Toni Uhlig
37f3770e3e Improved zlib compression ratio.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-12-01 06:43:39 +01:00
Toni Uhlig
ff77bab398 Warn about unused return values that are quite important.
* CI: ArchLinux build should now instrument `-Werror`
 * CI: Increased OpenWrt build verbosity

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-12-01 06:43:39 +01:00
Toni Uhlig
fa7e76cc75 Fixed SonarCloud complaints.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-20 13:40:48 +01:00
Toni Uhlig
82934b7271 Fixed clang-tidy warnings.
* fixed/improved c-captured logging

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-13 13:52:42 +01:00
Toni Uhlig
dcb595e161 bump libnDPI to b08c787fe267053afdea82701071f3878c09244b
* fix ndpi data anylsis struct min/max issue
 * py-flow-info cosmetics in printing some information

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-09 19:52:36 +01:00
Toni Uhlig
b667f9e1da Forcefully reset NDPI_UNIDIRECTIONAL_TRAFFIC if classification was done after the first packet. Nonsense.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-08 17:07:20 +01:00
Toni Uhlig
55c8a848d3 Fixed missing deflate during flow event json serializing.
* caused by recently added serializing some nDPI data even packet processing is still ongoing

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-08 13:16:57 +01:00
Toni Uhlig
d80ea84d2e Reset Unidirectional Traffc risk if packets from both directions processed.
* Fixed risk hash value calculation, which was only done lower 32 bits.
 * Reduced default reader threads count to two if cross compiling.

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-08 01:27:42 +01:00
Toni Uhlig
5d56288a11 Fixed more SonarCloud complaints.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-07 00:02:36 +01:00
Toni Uhlig
84b12cd02c Fixed some SonarCloud complaints.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-06 13:31:59 +01:00
Toni
93498fff02 Apple/BSD port (#30)
* Add MacOS to Github CI builds.
* Fixed libnDPI-4.8 CI build.
* Fixed missing include for `struct sockaddr*`.
* Reworked IPv4 address and netmask retrieval.

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-06 13:25:49 +01:00
Toni
1b67927169 Event I/O abstraction layer. (#28)
* Finalize Event I/O abstraction layer.
* Fix possible fd leakage, Gitlab-CI build and error logging.
* Fixed possible uninitialized signalfd variable.
* Fixed possible memory leak.
* Fixed some SonarCloud complaints.
* Fixed nDPId-test nDPIsrvd-arpa-mockup stuck indefinitely.
* Add nDPId / nDPIsrvd command line option to use poll() on Linux instead of the default epoll().

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-11-06 12:38:15 +01:00
Toni Uhlig
dfd0449306 Fix issues detected by SonarCloud.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-10-05 17:26:06 +02:00
Toni Uhlig
e42e3fe406 Serialize nDPId / libnDPI versions within daemon events.
* changed nDPI version hints / requirements

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-09-10 19:32:08 +02:00
Toni Uhlig
dfb8d3379f bump libnDPI to 1f693c3f5a5dcd9d69dffb610b9a81bd33f95382
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-08-27 21:45:14 +02:00
Toni Uhlig
cc60e819e8 Fixed invalid base64 encoding in some rare cases.
* nDPId-test may also verify the correct encoding/decoding

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-08-24 22:51:57 +02:00
Toni Uhlig
ebb439d959 Tiny improvments.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-08-02 21:00:39 +02:00
Toni Uhlig
bc0a5782cc bump libnDPI to 2b230e28e0612e8654ad617534deb9aaaabd51b7
* fixes loading of gambling lists which increased nDPId's memory usage *a lot*
 * nDPId: handle EINTR correctly

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-07-23 18:43:58 +02:00
Toni Uhlig
7217b90cd1 nDPId: `-v' give information about libnDPI linkage
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-07-17 19:32:41 +02:00
Toni Uhlig
74a9f7d86b nDPId: `-v' prints also information about dependecies
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-07-17 19:19:52 +02:00
Toni Uhlig
967381a599 get-and-build-libndpi.sh uses GMake MAKEFLAGS for sub-make (required for e.g. jobserver)
* fixed invalid CMake `test -r ...`

Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2023-07-16 22:06:31 +02:00
lns
2b1db0a556 Required libnDPI version increases (>=4.8.0) due to an API change.
* fix CI issues

Signed-off-by: lns <matzeton@googlemail.com>
2023-05-31 12:53:49 +02:00
lns
5a9b40779d bump libnDPI to 04f5c5196e790db8b8cc39e42c8645fb7f3dd141
* added custom nDPI logging callback

Signed-off-by: lns <matzeton@googlemail.com>
2023-05-30 09:30:24 +02:00
lns
8a936a5072 Fixed integer overflow for tcp timeout (>INT_MAX).
Signed-off-by: lns <matzeton@googlemail.com>
2023-05-26 11:17:38 +02:00