AppSec whitelist? Ignore vpatch-git-config when matching?

Hello, I am new to CrowdSec and have always worked with Fail2Ban before. I secured my NPM with CrowdSec. Like many others, NPM acts as a bridge to underlying services. The access.logs and error.logs are processed, and AppSec is also configured. Everything works. Today, I put my Nextcloud behind the NPM into operation. I was able to successfully configure the parser whitelist (s02-enrich) so that http-sensitive-files does not block my .git directories, etc. However, I still occasionally got 403 and 404 errors during synchronization, which ultimately led to a ban for some directories (http-probing). I didn't understand this at first, so as a newbie, I had to dig pretty deep and found out that it was due to the AppSec Rules vpatch-git-config. Due to the large number of .git directories with the usual subfiles, the large number of 403 errors triggered the http-probing alarm and ban. Anyway, my problem now is that I don't want to simply and stupidly disable vpatch-git-config completely because of the other services behind it in NPM. I want to create an AppSec whitelist that responds to a URI including regex and does not execute any further AppSec or only vpatch-git-config. I've googled, I've asked the AI, I've looked in the Crowdsec docs – without success. Can anyone help me? For the sake of completeness, here is my s02-enrich whitelist, which does not work for AppSec InBand rules, as these are processed before the parser.
name: perrycox007/nextcloud-webdav-git-whitelist
description: "Whitelist für Access Logs verursacht durch Nextcloud Sync Client Anfragen"
filter: "(evt.Parsed.program == 'apache2' or evt.Parsed.program == 'nginx' or evt.Parsed.program == 'npmplus') and evt.Meta.log_type == 'http_access-log'"
whitelist:
reason: "Whitelist für Access Logs verursacht durch Nextcloud Sync Client Anfragen"
expression:
- "evt.Parsed.request contains '/remote.php/dav/' and (evt.Parsed.request contains '/.git' or evt.Parsed.request endsWith '.dll' or evt.Parsed.request endsWith '.env') and evt.Parsed.http_user_agent contains 'Nextcloud'"
name: perrycox007/nextcloud-webdav-git-whitelist
description: "Whitelist für Access Logs verursacht durch Nextcloud Sync Client Anfragen"
filter: "(evt.Parsed.program == 'apache2' or evt.Parsed.program == 'nginx' or evt.Parsed.program == 'npmplus') and evt.Meta.log_type == 'http_access-log'"
whitelist:
reason: "Whitelist für Access Logs verursacht durch Nextcloud Sync Client Anfragen"
expression:
- "evt.Parsed.request contains '/remote.php/dav/' and (evt.Parsed.request contains '/.git' or evt.Parsed.request endsWith '.dll' or evt.Parsed.request endsWith '.env') and evt.Parsed.http_user_agent contains 'Nextcloud'"
Thanks.
34 Replies
CrowdSec
CrowdSec4d ago
Important Information
Thank you for getting in touch with your support request. To expedite a swift resolution, could you kindly provide the following information? Rest assured, we will respond promptly, and we greatly appreciate your patience. While you wait, please check the links below to see if this issue has been previously addressed. If you have managed to resolve it, please use run the command /resolve or press the green resolve button below.
Log Files
If you possess any log files that you believe could be beneficial, please include them at this time. By default, CrowdSec logs to /var/log/, where you will discover a corresponding log file for each component.
Guide Followed (CrowdSec Official)
If you have diligently followed one of our guides and hit a roadblock, please share the guide with us. This will help us assess if any adjustments are necessary to assist you further.
Screenshots
Please forward any screenshots depicting errors you encounter. Your visuals will provide us with a clear view of the issues you are facing.
© Created By WhyAydan for CrowdSec ❤️
blotus
blotus4d ago
For appsec, you'll need to create a custom appsec config in /etc/crowdsec/appsec-configs/, for example whitelist.yaml with this content:
name: custom/appsec-whitelist
pre_eval:
- filter: IsInBand == true && req.URL.Host == "<your_nextcloud_fqdn>" && req.URL.Path contains '/remote.php/dav/'
apply:
- RemoveInBandRuleByName("crowdsecurity/vpatch-git-config")
name: custom/appsec-whitelist
pre_eval:
- filter: IsInBand == true && req.URL.Host == "<your_nextcloud_fqdn>" && req.URL.Path contains '/remote.php/dav/'
apply:
- RemoveInBandRuleByName("crowdsecurity/vpatch-git-config")
(I've taken the path from your example, feel free to change it or add more conditions) And finally, reference this new appsec-config (custom/appsec-whitelist) in your acquisition config with the appsec-configs parameter (if you use appsec-config instead of appsec-configs, it's the same thing except it can take multiple config) and because you also allow .env you'll also likely want to disable this rule as well in the apply, add another item with RemoveInBandRuleByName("crowdsecurity/vpatch-env-access")
PerryCox007
PerryCox007OP4d ago
Great. Thanks for the quick reply. I'll test it later or tomorrow and get back to you if necessary, or mark the post as solved. So, the filters req.URL.Host, req.URL.Path, etc. – where can I find them, or where can I see which ones are available and recognized? Is there something similar to the following for AppSec detection:
docker exec crowdsec cscli explain --log '1.2.3.4 - nico [04/Sep/2025:13:17:05 +0200] “PROPFIND /remote.php/dav/files/nico/Documents/Nico/.../GitHub/.../.git HTTP/1.1” 207 11786 “-” "Mozilla/5.0 (Windows) mirall/3.17.1 (build 20250818) (Nextcloud, windows-10.0.26100 ClientArchitecture: x86_64 OsArchitecture: x86_64)"' --type apache2 -v
docker exec crowdsec cscli explain --log '1.2.3.4 - nico [04/Sep/2025:13:17:05 +0200] “PROPFIND /remote.php/dav/files/nico/Documents/Nico/.../GitHub/.../.git HTTP/1.1” 207 11786 “-” "Mozilla/5.0 (Windows) mirall/3.17.1 (build 20250818) (Nextcloud, windows-10.0.26100 ClientArchitecture: x86_64 OsArchitecture: x86_64)"' --type apache2 -v
Here you can already see which parameters are available for the filter. By acquisition config, you mean the one under acquis.d in my case, npmplus.yaml.
listen_addr: 0.0.0.0:7422
appsec_config: crowdsecurity/appsec-default
name: appsec
source: appsec
labels:
type: appsec
listen_addr: 0.0.0.0:7422
appsec_config: crowdsecurity/appsec-default
name: appsec
source: appsec
labels:
type: appsec
Here, I add source or labels, then appsec-config: custom/appsec-whitelist? Correct? Am I too stupid, or can't I find these options or possible parameters in the documentation? https://docs.crowdsec.net/docs/next/log_processor/data_sources/intro
blotus
blotus4d ago
AppSec Component Hooks | CrowdSec
The Application Security Component allows you to hook at different stages to change its behavior at runtime.
blotus
blotus4d ago
you'll want something like:
listen_addr: 0.0.0.0:7422
appsec_configs:
- crowdsecurity/appsec-default
- custom/appsec-whitelist
name: appsec
source: appsec
labels:
type: appsec
listen_addr: 0.0.0.0:7422
appsec_configs:
- crowdsecurity/appsec-default
- custom/appsec-whitelist
name: appsec
source: appsec
labels:
type: appsec
PerryCox007
PerryCox007OP4d ago
Hi @blotus, without filter req.URL.Host == "nas.home.perrycox007.de" it works. What am I doing wrong with req.URL.Host?
# https://docs.crowdsec.net/docs/next/appsec/hooks/#req-object
name: perrycox007/appsec-test-whitelist
pre_eval:
- filter: IsInBand == true && req.URL.Host == "nas.home.perrycox007.de"
#- filter: IsInBand == true
apply:
- RemoveInBandRuleByName("crowdsecurity/vpatch-git-config")
- RemoveInBandRuleByName("crowdsecurity/vpatch-env-access")
- RemoveInBandRuleByName("crowdsecurity/vpatch-suspicious-extensions")
# https://docs.crowdsec.net/docs/next/appsec/hooks/#req-object
name: perrycox007/appsec-test-whitelist
pre_eval:
- filter: IsInBand == true && req.URL.Host == "nas.home.perrycox007.de"
#- filter: IsInBand == true
apply:
- RemoveInBandRuleByName("crowdsecurity/vpatch-git-config")
- RemoveInBandRuleByName("crowdsecurity/vpatch-env-access")
- RemoveInBandRuleByName("crowdsecurity/vpatch-suspicious-extensions")
docker logs crowdsec -f
time="2025-09-05T12:58:05+02:00" level=info msg="AppSec block: crowdsecurity/vpatch-env-access from 123.456.789.0 (10.250.1.5)"
time="2025-09-05T12:58:05+02:00" level=info msg="(localhost) alert : crowdsecurity/vpatch-env-access by ip 123.456.789.0 (DE/XXXXX)"
time="2025-09-05T12:58:05+02:00" level=info msg="AppSec block: crowdsecurity/vpatch-env-access from 123.456.789.0 (10.250.1.5)"
time="2025-09-05T12:58:05+02:00" level=info msg="(localhost) alert : crowdsecurity/vpatch-env-access by ip 123.456.789.0 (DE/XXXXX)"
docker logs npmplus -f
2025/09/05 12:56:55 [alert] 71058#71058: *445201 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: nas.home.perrycox007.de, request: "GET /crowdsec-test.env HTTP/2.0", host: "nas.home.perrycox007.de"
2025/09/05 12:56:55 [alert] 71058#71058: *445201 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: nas.home.perrycox007.de, request: "GET /crowdsec-test.env HTTP/2.0", host: "nas.home.perrycox007.de"
blotus
blotus4d ago
can you add debug: true in the appsec config ? This will make crowdsec log more details about the expression eval, so you'll be able to see what is actually being compared
PerryCox007
PerryCox007OP4d ago
Wait a moment, test briefly ' instead of " Nope
time="2025-09-05T13:03:23+02:00" level=fatal msg="crowdsec init: while loading acquisition config: while configuring datasource of type appsec from /etc/crowdsec/acquis.d/npmplus.yaml (position 2): unable to parse appsec configuration: cannot parse appsec configuration: yaml: unmarshal errors:\n line 10: field debug not found in type appsecacquisition.AppsecSourceConfig"
time="2025-09-05T13:03:23+02:00" level=fatal msg="crowdsec init: while loading acquisition config: while configuring datasource of type appsec from /etc/crowdsec/acquis.d/npmplus.yaml (position 2): unable to parse appsec configuration: cannot parse appsec configuration: yaml: unmarshal errors:\n line 10: field debug not found in type appsecacquisition.AppsecSourceConfig"
listen_addr: 0.0.0.0:7422
debug: true
appsec_configs:
- crowdsecurity/appsec-default
- perrycox007/appsec-nextcloud-whitelist
- perrycox007/appsec-test-whitelist
name: appsec
source: appsec
labels:
type: appsec
listen_addr: 0.0.0.0:7422
debug: true
appsec_configs:
- crowdsecurity/appsec-default
- perrycox007/appsec-nextcloud-whitelist
- perrycox007/appsec-test-whitelist
name: appsec
source: appsec
labels:
type: appsec
blotus
blotus4d ago
not in the acquisition, directly in your custom appsec config
PerryCox007
PerryCox007OP4d ago
lol 😄
blotus
blotus4d ago
you can also put the acquisition in debug, but it will be way too verbose just to debug this
PerryCox007
PerryCox007OP4d ago
the same:
time="2025-09-05T13:07:22+02:00" level=fatal msg="crowdsec init: while loading acquisition config: while configuring datasource of type appsec from /etc/crowdsec/acquis.d/npmplus.yaml (position 2): unable to load appsec_config: unable to load appsec-config /etc/crowdsec/appsec-configs/test-whitelist.yaml : unable to parse yaml file /etc/crowdsec/appsec-configs/test-whitelist.yaml : yaml: unmarshal errors:\n line 3: field debug not found in type appsec.AppsecConfig"
time="2025-09-05T13:07:22+02:00" level=fatal msg="crowdsec init: while loading acquisition config: while configuring datasource of type appsec from /etc/crowdsec/acquis.d/npmplus.yaml (position 2): unable to load appsec_config: unable to load appsec-config /etc/crowdsec/appsec-configs/test-whitelist.yaml : unable to parse yaml file /etc/crowdsec/appsec-configs/test-whitelist.yaml : yaml: unmarshal errors:\n line 3: field debug not found in type appsec.AppsecConfig"
blotus
blotus4d ago
ah my bad log_level: debug it supports more granular logging configuration than just debug on/off
PerryCox007
PerryCox007OP4d ago
It's not easy to read...
time="2025-09-05T13:11:09+02:00" level=debug msg="Evaluating operator: NO MATCH" arg=/crowdsec-test.env band=inband chain_rule_id=1168119676 name=appsec operator_data="/%77ebui_wsma_https" operator_function=@endsWith rule_id=3435141823 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
...
time="2025-09-05T13:11:09+02:00" level=debug msg="Finished rule evaluation" band=inband chain_rule_id=2545094649 name=appsec rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="Finished phase" band=inband chain_rule_id=2545094649 name=appsec phase=2 rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="rules matched for body : 3783132254" name=appsec runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 type=appsec
time="2025-09-05T13:11:09+02:00" level=debug msg="Evaluating phase" band=inband chain_rule_id=2545094649 name=appsec phase=5 rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="Finished phase" band=inband chain_rule_id=2545094649 name=appsec phase=5 rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="Transaction marked for audit logging" band=inband chain_rule_id=2545094649 name=appsec rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="custom rule for event, setting name: crowdsecurity/vpatch-env-access, version: 0.2, hash: 821917dc21f3b7bf1e5cacfbb33eb8d0213116e3808324763f78fe930bd59c12" name=appsec runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 type=appsec
time="2025-09-05T13:11:09+02:00" level=debug msg="inband rules matched : 3783132254" name=appsec runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 type=appsec
time="2025-09-05T13:11:09+02:00" level=info msg="AppSec block: crowdsecurity/vpatch-env-access from 123.456.789.0 (10.250.1.5)"
time="2025-09-05T13:11:09+02:00" level=debug msg="Evaluating operator: NO MATCH" arg=/crowdsec-test.env band=inband chain_rule_id=1168119676 name=appsec operator_data="/%77ebui_wsma_https" operator_function=@endsWith rule_id=3435141823 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
...
time="2025-09-05T13:11:09+02:00" level=debug msg="Finished rule evaluation" band=inband chain_rule_id=2545094649 name=appsec rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="Finished phase" band=inband chain_rule_id=2545094649 name=appsec phase=2 rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="rules matched for body : 3783132254" name=appsec runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 type=appsec
time="2025-09-05T13:11:09+02:00" level=debug msg="Evaluating phase" band=inband chain_rule_id=2545094649 name=appsec phase=5 rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="Finished phase" band=inband chain_rule_id=2545094649 name=appsec phase=5 rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="Transaction marked for audit logging" band=inband chain_rule_id=2545094649 name=appsec rule_id=3783132254 runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 tx_id=53308339-584d-47de-9bcf-1c03103563da type=appsec variable=REQUEST_FILENAME
time="2025-09-05T13:11:09+02:00" level=debug msg="custom rule for event, setting name: crowdsecurity/vpatch-env-access, version: 0.2, hash: 821917dc21f3b7bf1e5cacfbb33eb8d0213116e3808324763f78fe930bd59c12" name=appsec runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 type=appsec
time="2025-09-05T13:11:09+02:00" level=debug msg="inband rules matched : 3783132254" name=appsec runner_uuid=372154d4-f428-4fb5-be15-55b2e73eb273 type=appsec
time="2025-09-05T13:11:09+02:00" level=info msg="AppSec block: crowdsecurity/vpatch-env-access from 123.456.789.0 (10.250.1.5)"
I can't find anything in the output with nas.home or similar. What should I look for? Reminder: Without filter req.URL.Host == "nas.home.perrycox007.de" it works.
blotus
blotus4d ago
I just did a test locally, I think we have a small bug with the logging of expressions in the waf: they don't seem to properly use the logger (not sure why).
PerryCox007
PerryCox007OP3d ago
Thanks!! 😘 Its 1.16.11 @blotus You ping me if there is anything new or is there anything else I can do? Thanks a lot
blotus
blotus3d ago
for this issue, not much, for some reason the log level of the logger is set to panic, regardless of the configuration, meaning it will never log anything This also means that the helpers that can log by themselves (LogInfo for example) will not work :/ Can you try with req.Host instead ?
PerryCox007
PerryCox007OP3d ago
Works. Nice.
blotus
blotus3d ago
cool We need to fix the documentation then and clean up a bit the content of req I guess
PerryCox007
PerryCox007OP3d ago
Do you know if req.URL.Path is correct? I can only test it at home tonight.
blotus
blotus3d ago
it should be yes
PerryCox007
PerryCox007OP3d ago
Nope.
2025/09/05 13:51:44 [alert] 72801#72801: *462019 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/hooks HTTP/1.1", host: "cloud.home.perrycox007.de"
2025/09/05 13:51:44 [alert] 72800#72800: *459500 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/refs HTTP/1.1", host: "cloud.home.perrycox007.de"
2025/09/05 13:51:44 [alert] 72801#72801: *462019 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/hooks HTTP/1.1", host: "cloud.home.perrycox007.de"
2025/09/05 13:51:44 [alert] 72800#72800: *459500 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/refs HTTP/1.1", host: "cloud.home.perrycox007.de"
time="2025-09-05T13:52:01+02:00" level=info msg="AppSec block: crowdsecurity/vpatch-git-config from 123.456.789.0 (10.250.1.5)"
time="2025-09-05T13:52:01+02:00" level=info msg="(localhost) alert : crowdsecurity/vpatch-git-config by ip 123.456.789.0 (DE/1234)"
time="2025-09-05T13:52:01+02:00" level=info msg="AppSec block: crowdsecurity/vpatch-git-config from 123.456.789.0 (10.250.1.5)"
time="2025-09-05T13:52:01+02:00" level=info msg="(localhost) alert : crowdsecurity/vpatch-git-config by ip 123.456.789.0 (DE/1234)"
# https://docs.crowdsec.net/docs/next/appsec/hooks/#req-object
name: perrycox007/appsec-nextcloud-whitelist
#log_level: debug
pre_eval:
#- filter: IsInBand == true && req.URL.Host == "cloud.home.perrycox007.de" && req.URL.Path contains '/remote.php/dav/'
#- filter: IsInBand == true && req.URL.Path contains '/remote.php/dav/'
- filter: IsInBand == true && req.Host == "cloud.home.perrycox007.de" && req.URL.Path contains '/remote.php/dav/'
apply:
- RemoveInBandRuleByName("crowdsecurity/vpatch-git-config")
- RemoveInBandRuleByName("crowdsecurity/vpatch-env-access")
- RemoveInBandRuleByName("crowdsecurity/vpatch-suspicious-extensions")
# https://docs.crowdsec.net/docs/next/appsec/hooks/#req-object
name: perrycox007/appsec-nextcloud-whitelist
#log_level: debug
pre_eval:
#- filter: IsInBand == true && req.URL.Host == "cloud.home.perrycox007.de" && req.URL.Path contains '/remote.php/dav/'
#- filter: IsInBand == true && req.URL.Path contains '/remote.php/dav/'
- filter: IsInBand == true && req.Host == "cloud.home.perrycox007.de" && req.URL.Path contains '/remote.php/dav/'
apply:
- RemoveInBandRuleByName("crowdsecurity/vpatch-git-config")
- RemoveInBandRuleByName("crowdsecurity/vpatch-env-access")
- RemoveInBandRuleByName("crowdsecurity/vpatch-suspicious-extensions")
Try it: - req.Path = type http.Request has no field Path - req.URL = invalid operation: contains (mismatched types url.URL and string)
blotus
blotus3d ago
req.URL.Path
PerryCox007
PerryCox007OP3d ago
- filter: IsInBand == true && req.Host == "cloud.home.perrycox007.de" && req.URL.Path contains '/remote.php/dav/'
- filter: IsInBand == true && req.Host == "cloud.home.perrycox007.de" && req.URL.Path contains '/remote.php/dav/'
is not working.
2025/09/05 13:51:44 [alert] 72801#72801: *462019 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/hooks HTTP/1.1", host: "cloud.home.perrycox007.de"
2025/09/05 13:51:44 [alert] 72800#72800: *459500 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/refs HTTP/1.1", host: "cloud.home.perrycox007.de"
2025/09/05 13:51:44 [alert] 72801#72801: *462019 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/hooks HTTP/1.1", host: "cloud.home.perrycox007.de"
2025/09/05 13:51:44 [alert] 72800#72800: *459500 [lua] crowdsec.lua:642: Allow(): [Crowdsec] denied '123.456.789.0' with 'ban' (by appsec), client: 123.456.789.0, server: cloud.home.perrycox007.de, request: "PROPFIND /remote.php/dav/.../Skripts/.git/refs HTTP/1.1", host: "cloud.home.perrycox007.de"
blotus
blotus3d ago
🙁 try req.URI contains "/remote.php/dav/"
PerryCox007
PerryCox007OP3d ago
Nope.
time="2025-09-05T14:15:11+02:00" level=fatal msg="crowdsec init: while loading acquisition config: while configuring datasource of type appsec from /etc/crowdsec/acquis.d/npmplus.yaml (position 2): unable to build appsec_config: unable to build pre_eval hook : unable to compile filter IsInBand == true && req.Host == \"cloud.home.perrycox007.de\" && req.URI contains '/remote.php/dav/' : type http.Request has no field URI (1:62)\n | IsInBand == true && req.Host == \"cloud.home.perrycox007.de\" && req.URI contains '/remote.php/dav/'\n | ............................................................^"
time="2025-09-05T14:15:11+02:00" level=fatal msg="crowdsec init: while loading acquisition config: while configuring datasource of type appsec from /etc/crowdsec/acquis.d/npmplus.yaml (position 2): unable to build appsec_config: unable to build pre_eval hook : unable to compile filter IsInBand == true && req.Host == \"cloud.home.perrycox007.de\" && req.URI contains '/remote.php/dav/' : type http.Request has no field URI (1:62)\n | IsInBand == true && req.Host == \"cloud.home.perrycox007.de\" && req.URI contains '/remote.php/dav/'\n | ............................................................^"
blotus
blotus3d ago
sorry friday 😄 req.RequestURI
PerryCox007
PerryCox007OP3d ago
I feel like we're looking for a needle in a haystack. I think it's a German proverb. It might sound strange to you.
blotus
blotus3d ago
we have the same in french 🙂
PerryCox007
PerryCox007OP3d ago
I think it works, but now I have to adjust my s02 parser again. 😄 It's ridiculous. Thanks for your hard work!
blotus
blotus3d ago
you don't need to change anything in the s02 parser I think ? It's not the same objects that are exposed
PerryCox007
PerryCox007OP3d ago
No, that's not what I mean. Because AppSec now lets me through, http-sensitive-files triggers the access.log. So now I have to adjust the s02 parser.
blotus
blotus3d ago
aah ok 🙂
PerryCox007
PerryCox007OP3d ago
Works! Thanks. Solved!

Did you find this page helpful?