You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -37,6 +37,7 @@ For more information on the NGINX App Protect WAF security features, see [NGINX
37
37
|[XFF headers & trust](#xff-headers-and-trust)| Disabled by default. User can enable it and optionally add a list of custom XFF headers. |
38
38
|[gRPC Protection](#grpc-protection-for-unary-traffic)| gRPC content profile detects malformed content, parses well-formed content, and extracts the text fields for detecting attack signatures and disallowed meta-characters. In addition, it enforces size restrictions and prohibition of unknown fields. The Interface Definition Language (IDL) files for the gRPC API must be attached to the profile. gRPC protection can be on [unary](#grpc-protection-for-unary-traffic) or [bidirectional](#grpc-protection-for-bidirectional-streaming) traffic.|
39
39
|[Secure Traffic Between NGINX and App Protect Enforcer using mTLS](#secure-traffic-between-nginx-and-app-protect-enforcer-using-mtls)| Disabled by default. You can manually configure mTLS to secure the traffic between NGINX and App Protect Enforcer.|
40
+
|[Brute Force Attack Preventions](#brute-force-attack-preventions)| Configure brute-force-attack-preventions parameters to secured areas of a web application from brute force attacks.|
40
41
41
42
### Disallowed File Types
42
43
@@ -788,6 +789,118 @@ To enable mTLS in NGINX, you need to perform the following steps:
788
789
789
790
Refer to the example for mTLS deployment in the admin guide, whether you're using [Docker]({{< relref "/nap-waf/v5/admin-guide/deploy-on-docker.md#docker-compose-file-with-mtls" >}}) or [Kubernetes]({{< relref "/nap-waf/v5/admin-guide/deploy-on-kubernetes.md#mtls-deployment" >}}).
790
791
792
+
## Brute Force Attack Preventions
793
+
794
+
### Overview
795
+
796
+
Brute force attacks are attempts to break in to secured areas of a web application by trying exhaustive,
797
+
systematic, username/password combinations to discover legitimate authentication credentials.
798
+
To prevent brute force attacks, WAF tracks the number of failed attempts to reach login pages
799
+
with enforced brute force protection. When brute force patterns are detected,
800
+
the WAF policy considers it to be an attack if the failed logon rate increased significantly or
When enabled, enables Brute Force Protection for all configured login URLs.
846
+
When disabled, only brute force configurations for specific login pages are applied in case they exist.
847
+
848
+
detectionCriteria:
849
+
Specifies configuration for detecting distributed brute force attacks.
850
+
action:
851
+
Specifies action that is applied when the defined thresholds ( failedLoginAttemptsRateReached) is reached.
852
+
- **alarm**: The system will log the login attempt.
853
+
854
+
detectDistributedBruteForceAttack:
855
+
When enabled, the system detects distributed brute force attacks.
856
+
857
+
failedLoginAttemptsRateReached:
858
+
After configured threshold (number of failed login attempts within measurementPeriod) defined action will be applied for the next login attempt.
859
+
860
+
loginAttemptsFromTheSameIp:
861
+
Specifies configuration for detecting brute force attacks from IP Address.
862
+
863
+
action:
864
+
Specifies action that is applied when defined threshold is reached.
865
+
- **alarm**: The system will log the login attempt.
866
+
- **alarm-and-blocking-page**: The system will log the login attempt, block the request and send the Blocking page.
867
+
- **alarm-and-drop**: The system will log the login attempt and reset the TCP connection.
868
+
869
+
enabled:
870
+
When enabled, the system counts failed login attempts from IP Address.
871
+
872
+
threshold:
873
+
After configured threshold (number of failed login attempts from IP Address) defined action will be applied for the next login attempt.
874
+
875
+
loginAttemptsFromTheSameUser:
876
+
Specifies configuration for detecting brute force attacks for Username.
877
+
878
+
action:
879
+
Specifies action that is applied when defined threshold is reached.
880
+
- **alarm**: The system will log the login attempt.
881
+
882
+
enabled:
883
+
When enabled, the system counts failed login attempts for each Username.
884
+
885
+
threshold:
886
+
After configured threshold (number of failed login attempts for each Username) defined action will be applied for the next login attempt.
887
+
888
+
measurementPeriod:
889
+
Defines detection period (measured in seconds) for distributed brute force attacks.
890
+
891
+
preventionDuration:
892
+
Defines prevention period (measured in seconds) for distributed brute force attacks.
893
+
894
+
reEnableLoginAfter:
895
+
Defines prevention period (measured in seconds) for source-based brute force attacks.
896
+
897
+
sourceBasedProtectionDetectionPeriod:
898
+
Defines detection period (measured in seconds) for source-based brute force attacks.
899
+
900
+
url:
901
+
Reference to the URL used in login URL configuration (policy/login-pages). This login URL is protected by Brute Force Protection feature.
902
+
903
+
791
904
## Custom Dimensions Log Entries
792
905
793
906
### Overview
@@ -931,11 +1044,7 @@ In the cases where decompression fails, NGINX App Protect WAF will continue wit
931
1044
932
1045
---
933
1046
934
-
## Converter Tools
935
-
936
-
NGINX App Protect WAF includes a number of tools that can be used to facilitate the process of porting existing resources or configuration files from the BIG-IP for use in the NGINX App Protect WAF environment. Note that these tools are available in the compiler package, and do not require a full installation of NGINX App Protect WAF or NGINX Plus.
937
-
938
-
### Policy Converter
1047
+
## Policy Converter
939
1048
940
1049
The NGINX App Protect WAF v5 Policy Converter tool `/opt/app_protect/bin/convert-policy` is used to convert XML policies to JSON format. The converted JSON policy is based on the NGINX App Protect WAF policy base template and contains the minimal differences to it in JSON declarative policy format.
941
1050
@@ -947,7 +1056,7 @@ Using the tool:
947
1056
/opt/app_protect/bin/convert-policy
948
1057
```
949
1058
950
-
####Convert Policy using Command Line Interface (CLI Usage)
1059
+
### Convert Policy using Command Line Interface (CLI Usage)
951
1060
952
1061
The input policy can also be converted using convert-policy as a CLI tool from within NGINX App Protect WAF Converter container by using the following commands:
| --dos-profile | Filename of JSON DoS Profile (pre-converted to JSON from tmsh syntax) |
974
1083
| --full-export | If specified, the full policy with all entities will be exported. Otherwise, only entities that differ from the template will be included.<br> Default for the CLI is not specific (only differing entities). <br> Default for the REST endpoint above is "--full-export" (you can not override this).|{{</bootstrap-table>}}
975
1084
976
-
### User Defined Signatures Converter
977
-
978
-
The User Defined Signatures Converter tool `/opt/app_protect/bin/convert-signatures` takes a User Defined Signatures XML file as input and exports the content as a JSON file suitable for use in an NGINX App Protect WAF environment.
979
-
980
-
The tool can optionally accept a tag argument as an input. Otherwise, the default tag value `user-defined-signatures` is assigned to the exported JSON file.
981
-
982
-
Note that the User Defined signatures XML file can be obtained by exporting the signatures from a BIG-IP device.
983
-
984
-
Using the tool:
985
-
```shell
986
-
/opt/app_protect/bin/convert-signatures
987
-
```
988
-
989
-
Output:
990
-
```shell
991
-
USAGE:
992
-
/opt/app_protect/bin/convert-signatures
993
-
994
-
Required arguments:
995
-
--outfile|o='/path/to/signatures.json'
996
-
File name to write JSON format export
997
-
Can also be set via an environment variable: EXPORT_FILE
998
-
--infile|i='/path/to/signatures.xml'
999
-
Advanced WAF/ASM User Defined Signatures file to Convert
1000
-
Can also be set via an environment variable: IMPORT_FILE
1001
-
1002
-
Optional arguments:
1003
-
--tag|t='mytag'
1004
-
Signature Tag to associate with User Defined Signatures.
1005
-
If no tag is specified in the XML file, a default tag of 'user-defined-signatures' will be assigned.
1006
-
Can also be set via an environment variable: TAG
1007
-
--format|f='json'
1008
-
Desired output format for signature file. Default 'json'
1009
-
Supported formats: 'json'
1010
-
1011
-
Optionally, using --help will issue this help message.
1012
-
```
1013
-
1014
-
Example of generating a user defined signature JSON file (with default tag):
0 commit comments