1name: crowdsecurity/appsec-bot-challenge-scoring
2inband:
3 on_challenge_submit:
4 - filter: EvaluateMismatches().Has("cdp")
5 apply:
6 - AddRequestScore(100, "cdp")
7 - filter: EvaluateMismatches().Has("webdriver")
8 apply:
9 - AddRequestScore(100, "webdriver")
10 - filter: EvaluateMismatches().Has("webdriver_writable")
11 apply:
12 - AddRequestScore(100, "webdriver_writable")
13 - filter: EvaluateMismatches().Has("selenium")
14 apply:
15 - AddRequestScore(100, "selenium")
16 - filter: EvaluateMismatches().Has("playwright")
17 apply:
18 - AddRequestScore(100, "playwright")
19 - filter: EvaluateMismatches().Has("webdriver_iframe")
20 apply:
21 - AddRequestScore(100, "webdriver_iframe")
22 - filter: EvaluateMismatches().Has("webdriver_worker")
23 apply:
24 - AddRequestScore(100, "webdriver_worker")
25 - filter: EvaluateMismatches().Has("bot_user_agent")
26 apply:
27 - AddRequestScore(100, "bot_user_agent")
28
29
30
31 - filter: EvaluateMismatches().Has("headless_screen_resolution")
32 apply:
33 - AddRequestScore(50, "headless_screen_resolution")
34 - filter: EvaluateMismatches().Has("missing_chrome_object")
35 apply:
36 - AddRequestScore(50, "missing_chrome_object")
37 - filter: EvaluateMismatches().Has("impossible_memory")
38 apply:
39 - AddRequestScore(50, "impossible_memory")
40 - filter: EvaluateMismatches().Has("inconsistent_etsl")
41 apply:
42 - AddRequestScore(50, "inconsistent_etsl")
43 - filter: EvaluateMismatches().Has("mismatch_webgl_worker")
44 apply:
45 - AddRequestScore(50, "mismatch_webgl_worker")
46 - filter: EvaluateMismatches().Has("mismatch_platform_iframe")
47 apply:
48 - AddRequestScore(50, "mismatch_platform_iframe")
49 - filter: EvaluateMismatches().Has("mismatch_platform_worker")
50 apply:
51 - AddRequestScore(50, "mismatch_platform_worker")
52
53
54
55 - filter: EvaluateMismatches().Has("platform_mismatch")
56 apply:
57 - AddRequestScore(30, "platform_mismatch")
58 - filter: EvaluateMismatches().Has("gpu_mismatch")
59 apply:
60 - AddRequestScore(30, "gpu_mismatch")
61 - filter: EvaluateMismatches().Has("high_cpu_count")
62 apply:
63 - AddRequestScore(30, "high_cpu_count")
64
65
66
67
68 - filter: EvaluateMismatches().Has("utc_timezone")
69 apply:
70 - AddRequestScore(15, "utc_timezone")
71 - filter: EvaluateMismatches().Has("ua_mobile")
72 apply:
73 - AddRequestScore(15, "ua_mobile")
74 - filter: EvaluateMismatches().Has("accept_language")
75 apply:
76 - AddRequestScore(15, "accept_language")
77
78
79
80 - filter: EvaluateMismatches().Has("swiftshader_renderer")
81 apply:
82 - AddRequestScore(5, "swiftshader_renderer")
83 - filter: EvaluateMismatches().Has("mismatch_languages")
84 apply:
85 - AddRequestScore(5, "mismatch_languages")
86 - filter: EvaluateMismatches().Has("timezone_country")
87 apply:
88 - AddRequestScore(5, "timezone_country")
89
90 post_eval:
91
92
93
94 - filter: "true"
95 apply:
96 - SendChallenge()
97