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
If you're new to CrowdSec, here's a quick overview:
10
+
11
+
**CrowdSec** is an open-source, collaborative security solution that:
12
+
- Detects and blocks malicious actors threatening your infrastructure and applications
13
+
- Provides real-time threat intelligence through a participative community
14
+
- Offers both **Infrastructure Protection** (IP reputation, DDoS mitigation) and **Application Security** (WAF capabilities)
15
+
16
+
:::tip New to CrowdSec?
17
+
For a more detailed introduction, check out our [Getting Started Guide](/u/getting_started/intro).
18
+
:::
8
19
9
-
<!-- xx : fix crowdsec version -->
20
+
## Introduction
10
21
11
22
Meet the Crowdsec **Application Security Component** (AKA : **AppSec Component**), a new capability for advanced application security turning your CrowdSec install into a full fledged **WAF**.
12
23
@@ -23,10 +34,55 @@ This component capitalizes on existing remediation functions in web servers (suc
23
34
24
35

25
36
37
+
### How it works
38
+
26
39
1. The Web Server receives the HTTP request
27
-
2. The HTTP Request is intercepted and passed to the CrowdSec Security Engine via [the HTTP API](appsec/protocol.md)
28
-
3. The Security Engine answers to the Web Server once the Appsec inband rules have been processed.
29
-
4. Based on the [Security Engine answer](appsec/protocol.md#response-code), the Web Server either blocks the HTTP Request or processes it as usual
40
+
2. The HTTP Request is forwarded to the CrowdSec Security Engine via a local HTTP interface
41
+
3. The Security Engine analyzes the request against AppSec rules (inband rules for immediate blocking)
42
+
4. Based on the analysis, the Web Server either blocks the HTTP Request or processes it as usual
43
+
44
+
## Supported Web Servers & Reverse Proxies
45
+
46
+
The AppSec Component works seamlessly with modern web servers and reverse proxies:
**Looking for other integrations?** Check out the [full list of remediation components](https://hub.crowdsec.net/browse/#remediation-components) on the CrowdSec Hub. We're constantly adding new integrations!
30
86
31
87
## Inband Rules and Out-Of-Band Rules
32
88
@@ -75,4 +131,4 @@ Or consider learning more about the AppSec capabilities:
75
131
-**Scenarios**: [How to create scenarios that leverage the AppSec Component events](/appsec/alerts_and_scenarios.md)
76
132
-**Hooks**: [To customise behavior of the AppSec at runtime](/appsec/hooks.md)
77
133
-**Troubleshoot**: [How to troubleshoot the behavior of the AppSec Component](/appsec/troubleshooting.md)
78
-
-**AppSec Protocol**: [if you're maintaining or creating a remedation component and want to add the AppSec capabilities](/appsec/protocol.md)
134
+
-**AppSec Technical Details**: [For developers integrating with the AppSec Component](/appsec/protocol.md)
Copy file name to clipboardExpand all lines: crowdsec-docs/docs/appsec/rules_syntax.md
+9-7Lines changed: 9 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -67,6 +67,8 @@ The target allows to specify which part of the requests needs to be inspected. Y
67
67
- `ARGS_NAMES`: Name of the query string parameters
68
68
- `BODY_ARGS`: Body args
69
69
- `BODY_ARGS_NAMES`: Name of the body args
70
+
- `COOKIES`: Cookies sent in the request
71
+
- `COOKIES_NAMES`: Names of the cookies sent in the request
70
72
- `HEADERS`: HTTP headers sent in the request
71
73
- `HEADERS_NAMES`: Name of the HTTP headers sent in the request
72
74
- `METHOD`: HTTP method of the request
@@ -75,6 +77,7 @@ The target allows to specify which part of the requests needs to be inspected. Y
75
77
- `URI_FULL`: The full URL of the request including the query string
76
78
- `RAW_BODY`: The entire body of the request
77
79
- `FILENAMES`: The name of the files sent in the request
80
+
- `FILES_TOTAL_SIZE`: Total size of the uploaded files in the request,
78
81
- _(optional)_ `variables` containing one or more variable names to restrict the matching operation to (only relevant for `ARGS`, `BODY_ARGS` and `HEADERS`)
79
82
80
83
```yaml
@@ -94,11 +97,12 @@ The target allows to specify which part of the requests needs to be inspected. Y
94
97
:::info
95
98
96
99
The default config `crowdsecurity/base-config` enables specific decoders when the following content-types are set:
97
-
- **application/x-www-form-urlencoded**
98
-
- **multipart/form-data**
99
-
- **application/xml**
100
-
- **application/json** : when used, all the variable names are prefixed with `json.`
101
-
- **text/xml**
100
+
101
+
- **application/x-www-form-urlencoded**
102
+
- **multipart/form-data**
103
+
- **application/xml**
104
+
- **application/json** : when used, all the variable names are prefixed with `json.`
105
+
- **text/xml**
102
106
103
107
:::
104
108
@@ -157,7 +161,6 @@ Match provides the pattern to match the target against, including optional trans
157
161
value: BLAH
158
162
```
159
163
160
-
161
164
### Seclang Support
162
165
163
166
In order to support your existing/legacy rules set, CrowdSec's AppSec Component is also able to load rules in the **seclang** format (**ModSecurity** rules).
@@ -177,7 +180,6 @@ The default paths for the data directory per OS:
0 commit comments