-
-
Notifications
You must be signed in to change notification settings - Fork 140
Comparing changes
Open a pull request
base repository: nfstream/nfstream
base: master
head repository: drnpkr/nfstream
compare: all-features-merged-ja4-fixes
- 17 commits
- 68 files changed
- 1 contributor
Commits on Jan 22, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 7367ea5 - Browse repository at this point
Copy the full SHA 7367ea5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0b3dd50 - Browse repository at this point
Copy the full SHA 0b3dd50View commit details
Commits on Feb 9, 2025
-
Configuration menu - View commit details
-
Copy full SHA for f8e3878 - Browse repository at this point
Copy the full SHA f8e3878View commit details
Commits on Jul 9, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 17b74d2 - Browse repository at this point
Copy the full SHA 17b74d2View commit details -
Upgrade nDPI to 4.12 and update test expectations
- Upgraded nDPI submodule from 4.0 to 4.12 - Added JA4 client fingerprint support alongside existing JA3 support - Updated 33 test result files to match improved nDPI 4.12 detection: - 1kxun.pcap: 5 flows now detected as Mikrotik (previously Unknown) - KakaoTalk_talk.pcap: 1 flow now detected as AmazonAWS (previously Unknown) - Various other test files with improved protocol detection - All tests now pass with nDPI 4.12
Configuration menu - View commit details
-
Copy full SHA for aafec4e - Browse repository at this point
Copy the full SHA aafec4eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e3681f6 - Browse repository at this point
Copy the full SHA e3681f6View commit details -
Upgrade to nDPI 4.14 with fingerprint field updates
- Upgrade nDPI submodule from 4.12 to 4.14 - Remove JA3C support (removed in nDPI 4.14) - Rename fingerprint fields: ja4_client_fingerprint → ja4c_fingerprint, ja3_server_fingerprint → ja3s_fingerprint - Update C code to use JA4C instead of JA3C - Update Python code to match new field names - Update test expectations for nDPI 4.14's improved protocol classification - All tests passing with new nDPI 4.14 detection results
Configuration menu - View commit details
-
Copy full SHA for 4439c68 - Browse repository at this point
Copy the full SHA 4439c68View commit details -
Configuration menu - View commit details
-
Copy full SHA for ae865b0 - Browse repository at this point
Copy the full SHA ae865b0View commit details
Commits on Jul 10, 2025
-
Enhance CSV export with safer data handling
- Replace manual string concatenation with csv.writer() for RFC 4180 compliance - Update open_file() to use text mode with proper encoding and newline handling - Remove manual quoting from csv_converter() as csv.writer() handles this properly - Bump version to 6.7.0 This addresses potential data corruption with special characters (commas, quotes, newlines) in network flow data by using Python's standard CSV module instead of manual string formatting.
Configuration menu - View commit details
-
Copy full SHA for 0e5bb12 - Browse repository at this point
Copy the full SHA 0e5bb12View commit details -
Update nDPI to include JA4 fingerprinting fixes from PR #2915
- Updates nDPI from 4.14 stable (90090b9ae) to dev branch (5f312c0cd) - Includes fixes for JA4 ALPN fingerprint calculation - Includes fixes for JA4 SNI detection with missing extensions - Resolves JA4 fingerprint accuracy issues for proper interoperability
Configuration menu - View commit details
-
Copy full SHA for 4af71b6 - Browse repository at this point
Copy the full SHA 4af71b6View commit details -
Revert "Update nDPI to include JA4 fingerprinting fixes from PR #2915"
This reverts commit 4af71b6.
Configuration menu - View commit details
-
Copy full SHA for 24715bb - Browse repository at this point
Copy the full SHA 24715bbView commit details -
Add JA4 fingerprinting fixes and bump version to 6.7.1
- Update nDPI submodule to custom fork with JA4 fixes (drnpkr/nDPI:ja4-fixes-4.14) - Incorporates fixes from nDPI PR #2915: ntop/nDPI#2915 - Fix JA4 ALPN calculation to use first+last characters (not first+second) - Fix JA4 SNI detection to properly handle missing SNI extensions - Bump version from 6.7.0 to 6.7.1 - Maintains nDPI 4.14 API compatibility while improving JA4 accuracy - All tests pass successfully with corrected JA4 fingerprints
Configuration menu - View commit details
-
Copy full SHA for c5c2468 - Browse repository at this point
Copy the full SHA c5c2468View commit details -
Revert fingerprint field names to reflect multi-protocol nature
Reverted field names from ja4c_fingerprint/ja3s_fingerprint back to client_fingerprint/server_fingerprint to better reflect that these fields contain protocol-specific fingerprints: - DHCP: Option request list fingerprints - SSH: HASSH client/server fingerprints - TLS: JA4C client / JA3S server fingerprints This resolves confusion where field names suggested they only contained JA4/JA3 values, when they actually store various protocol fingerprints by design (as in the original NFStream design). Changes: - Reverted Python field names in flow.py - Updated C code field references in lib_engine.c - Updated test assertions in tests.py - Added comments explaining multi-protocol fingerprint nature The underlying C struct fields remain ja4c/ja3s for nDPI compatibility.
Configuration menu - View commit details
-
Copy full SHA for d40c02e - Browse repository at this point
Copy the full SHA d40c02eView commit details
Commits on Jul 13, 2025
-
Fix C struct field names to match nDPI convention
Update fingerprint field names from ja4c/ja3s to ja4_client/ja3_server to align with nDPI's struct field naming convention. This improves code clarity and consistency with the underlying nDPI library. Changes: - Update C struct fields in lib_engine.c - Update Python field access in flow.py - Maintain existing client_fingerprint/server_fingerprint API The CFFI bindings were rebuilt to sync the new field names, and all tests pass including TLS fingerprinting verification.
Configuration menu - View commit details
-
Copy full SHA for 46de15b - Browse repository at this point
Copy the full SHA 46de15bView commit details -
Fix bumpversion configuration and add to dev requirements
- Update setup.cfg with correct current version (6.7.1) - Fix quote style to match actual file patterns - Remove reference to non-existent lib_engine.c version field - Add bumpversion>=0.6.0 to dev_requirements.txt for proper version management
Configuration menu - View commit details
-
Copy full SHA for b41fc54 - Browse repository at this point
Copy the full SHA b41fc54View commit details
Commits on Jul 14, 2025
-
Fix IPv6 accounting mode consistency with IPv4
Make IPv6 ip_size calculation consistent with IPv4 for unified accounting modes. IPv6 ip6_un1_plen field excludes the IPv6 header (per RFC), while IPv4 tot_len includes the IPv4 header. This caused inconsistent accounting behavior between IPv4 and IPv6 flows. Updated packet_get_ipv6_info() to include IPv6 header size in total length calculation for consistent accounting semantics: - Before: iph.tot_len = iph6->ip6_hdr.ip6_un1_plen (payload only) - After: iph.tot_len = htons(sizeof(struct ndpi_ipv6hdr) + ntohs(iph6->ip6_hdr.ip6_un1_plen)) This ensures unified accounting behavior across IPv4 and IPv6: - Mode 0: Raw packet (all headers + data) - Mode 1: IP packet (IP header + transport + data) - Mode 2: Transport segment (transport header + data) - Mode 3: Application payload (data only) Previously IPv6 Mode 1 and Mode 2 were identical, now they differ by 40 bytes.
Configuration menu - View commit details
-
Copy full SHA for 9e1ffed - Browse repository at this point
Copy the full SHA 9e1ffedView commit details -
Configuration menu - View commit details
-
Copy full SHA for 719cc5d - Browse repository at this point
Copy the full SHA 719cc5dView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...all-features-merged-ja4-fixes