-
Notifications
You must be signed in to change notification settings - Fork 703
TLS fingerprinting enablement #7325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
TLS fingerprinting enablement #7325
Conversation
|
Hi @gtriggiano! Welcome to our community and thank you for opening your first Pull Request. Someone will review it soon. Thank you for committing to making Contour better. You can also join us on our mailing list and in our channel in the Kubernetes Slack Workspace |
This commit modifies the TLS Inspector instantiation to support an optional parameter for enabling JA3/JA4 fingerprinting. The following changes were made: - Updated the TLS Inspector instantiation across multiple test files to use the new parameter, defaulting to false. - Introduced a new field `EnableTLSFingerprinting` in the ListenerConfig struct to manage this feature. - Adjusted the secureProxyProtocol function to accept the new parameter and pass it to the TLS Inspector. - Updated documentation to reflect the new `enableFingerprinting` option in the API reference. Signed-off-by: Giacomo Triggiano <[email protected]>
Signed-off-by: Giacomo Triggiano <[email protected]>
6609e06 to
39885d7
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #7325 +/- ##
==========================================
- Coverage 81.85% 80.60% -1.25%
==========================================
Files 130 130
Lines 15747 15791 +44
==========================================
- Hits 12889 12728 -161
- Misses 2574 2607 +33
- Partials 284 456 +172
🚀 New features to boost your workflow:
|
| serve.Flag("enable-ja3-fingerprinting", "Enable JA3 fingerprinting in the TLS Inspector filter (requires Envoy 1.21.0+).").BoolVar(&ctx.enableJA3Fingerprinting) | ||
| serve.Flag("enable-ja4-fingerprinting", "Enable JA4 fingerprinting in the TLS Inspector filter (requires Envoy 1.35.0+).").BoolVar(&ctx.enableJA4Fingerprinting) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @gtriggiano for your contribution!
I haven’t had a chance to look into this topic yet, but one quick note, something you’ve probably noticed yourself also since I saw you added config file and CRD support: we now generally avoid adding new command-line switches unless absolutely necessary, and we prefer using the config file and ContourConfiguration instead. I think we don't need to add command line flags for this one.
Add TLS Fingerprinting Support (JA3/JA4)
Enables TLS fingerprinting in Envoy's TLS Inspector listener filter for security monitoring, analytics, and bot detection. Provides independent control over JA3 and JA4 fingerprinting methods.
Configuration
ContourConfig CRD fields (under
spec.envoy.listener.tls):enableJA3Fingerprinting: Enable JA3 fingerprinting (requires Envoy 1.21.0+)enableJA4Fingerprinting: Enable JA4 fingerprinting (requires Envoy 1.35.0+)Command-line flags:
--enable-ja3-fingerprinting: Enable JA3 fingerprinting--enable-ja4-fingerprinting: Enable JA4 fingerprintingBoth settings default to
false.Implements: #7307