datadog 2.3.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +64 -2
  3. data/ext/datadog_profiling_loader/datadog_profiling_loader.c +9 -1
  4. data/ext/datadog_profiling_loader/extconf.rb +10 -22
  5. data/ext/datadog_profiling_native_extension/NativeExtensionDesign.md +3 -3
  6. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +198 -41
  7. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +4 -2
  8. data/ext/datadog_profiling_native_extension/collectors_stack.c +89 -46
  9. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +645 -107
  10. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +15 -1
  11. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +0 -27
  12. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +0 -4
  13. data/ext/datadog_profiling_native_extension/extconf.rb +42 -25
  14. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +50 -0
  15. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +75 -0
  16. data/ext/datadog_profiling_native_extension/heap_recorder.c +194 -34
  17. data/ext/datadog_profiling_native_extension/heap_recorder.h +11 -0
  18. data/ext/datadog_profiling_native_extension/http_transport.c +38 -6
  19. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +1 -1
  20. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +53 -2
  21. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +3 -0
  22. data/ext/datadog_profiling_native_extension/profiling.c +1 -1
  23. data/ext/datadog_profiling_native_extension/ruby_helpers.c +14 -11
  24. data/ext/datadog_profiling_native_extension/stack_recorder.c +58 -22
  25. data/ext/datadog_profiling_native_extension/stack_recorder.h +2 -0
  26. data/ext/libdatadog_api/crashtracker.c +20 -18
  27. data/ext/libdatadog_api/datadog_ruby_common.c +0 -27
  28. data/ext/libdatadog_api/datadog_ruby_common.h +0 -4
  29. data/ext/libdatadog_extconf_helpers.rb +1 -1
  30. data/lib/datadog/appsec/assets/waf_rules/recommended.json +2184 -108
  31. data/lib/datadog/appsec/assets/waf_rules/strict.json +1430 -2
  32. data/lib/datadog/appsec/component.rb +29 -8
  33. data/lib/datadog/appsec/configuration/settings.rb +10 -2
  34. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +1 -0
  35. data/lib/datadog/appsec/contrib/devise/patcher/rememberable_patch.rb +21 -0
  36. data/lib/datadog/appsec/contrib/devise/patcher.rb +12 -2
  37. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +0 -14
  38. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +67 -31
  39. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +14 -15
  40. data/lib/datadog/appsec/contrib/graphql/integration.rb +14 -1
  41. data/lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb +7 -20
  42. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +2 -5
  43. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +9 -15
  44. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +6 -18
  45. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +7 -20
  46. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +5 -18
  47. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +3 -1
  48. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +3 -5
  49. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +5 -18
  50. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +6 -10
  51. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +7 -20
  52. data/lib/datadog/appsec/event.rb +25 -1
  53. data/lib/datadog/appsec/ext.rb +4 -0
  54. data/lib/datadog/appsec/monitor/gateway/watcher.rb +3 -5
  55. data/lib/datadog/appsec/monitor/reactive/set_user.rb +7 -20
  56. data/lib/datadog/appsec/processor/context.rb +109 -0
  57. data/lib/datadog/appsec/processor/rule_loader.rb +3 -1
  58. data/lib/datadog/appsec/processor/rule_merger.rb +33 -15
  59. data/lib/datadog/appsec/processor.rb +42 -107
  60. data/lib/datadog/appsec/rate_limiter.rb +25 -40
  61. data/lib/datadog/appsec/remote.rb +7 -3
  62. data/lib/datadog/appsec/scope.rb +1 -4
  63. data/lib/datadog/appsec/utils/trace_operation.rb +15 -0
  64. data/lib/datadog/appsec/utils.rb +2 -0
  65. data/lib/datadog/appsec.rb +3 -2
  66. data/lib/datadog/core/configuration/agent_settings_resolver.rb +26 -25
  67. data/lib/datadog/core/configuration/components.rb +4 -3
  68. data/lib/datadog/core/configuration/settings.rb +96 -5
  69. data/lib/datadog/core/configuration.rb +1 -3
  70. data/lib/datadog/core/crashtracking/component.rb +9 -6
  71. data/lib/datadog/core/environment/execution.rb +5 -5
  72. data/lib/datadog/core/environment/yjit.rb +5 -0
  73. data/lib/datadog/core/metrics/client.rb +7 -0
  74. data/lib/datadog/core/rate_limiter.rb +183 -0
  75. data/lib/datadog/core/remote/client/capabilities.rb +4 -3
  76. data/lib/datadog/core/remote/component.rb +4 -2
  77. data/lib/datadog/core/remote/negotiation.rb +4 -4
  78. data/lib/datadog/core/remote/tie.rb +2 -0
  79. data/lib/datadog/core/remote/transport/http.rb +5 -0
  80. data/lib/datadog/core/remote/worker.rb +1 -1
  81. data/lib/datadog/core/runtime/ext.rb +1 -0
  82. data/lib/datadog/core/runtime/metrics.rb +5 -1
  83. data/lib/datadog/core/semaphore.rb +35 -0
  84. data/lib/datadog/core/telemetry/component.rb +2 -0
  85. data/lib/datadog/core/telemetry/event.rb +12 -7
  86. data/lib/datadog/core/telemetry/logger.rb +51 -0
  87. data/lib/datadog/core/telemetry/logging.rb +50 -14
  88. data/lib/datadog/core/telemetry/request.rb +13 -1
  89. data/lib/datadog/core/transport/ext.rb +1 -0
  90. data/lib/datadog/core/utils/time.rb +12 -0
  91. data/lib/datadog/core/workers/async.rb +1 -1
  92. data/lib/datadog/di/code_tracker.rb +166 -0
  93. data/lib/datadog/di/configuration/settings.rb +163 -0
  94. data/lib/datadog/di/configuration.rb +11 -0
  95. data/lib/datadog/di/error.rb +31 -0
  96. data/lib/datadog/di/extensions.rb +16 -0
  97. data/lib/datadog/di/instrumenter.rb +301 -0
  98. data/lib/datadog/di/probe.rb +162 -0
  99. data/lib/datadog/di/probe_builder.rb +47 -0
  100. data/lib/datadog/di/probe_notification_builder.rb +207 -0
  101. data/lib/datadog/di/probe_notifier_worker.rb +244 -0
  102. data/lib/datadog/di/redactor.rb +188 -0
  103. data/lib/datadog/di/serializer.rb +215 -0
  104. data/lib/datadog/di/transport.rb +67 -0
  105. data/lib/datadog/di/utils.rb +39 -0
  106. data/lib/datadog/di.rb +57 -0
  107. data/lib/datadog/opentelemetry/sdk/propagator.rb +2 -0
  108. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +12 -10
  109. data/lib/datadog/profiling/collectors/info.rb +12 -3
  110. data/lib/datadog/profiling/collectors/thread_context.rb +32 -8
  111. data/lib/datadog/profiling/component.rb +21 -4
  112. data/lib/datadog/profiling/http_transport.rb +6 -1
  113. data/lib/datadog/profiling/scheduler.rb +2 -0
  114. data/lib/datadog/profiling/stack_recorder.rb +40 -9
  115. data/lib/datadog/single_step_instrument.rb +12 -0
  116. data/lib/datadog/tracing/component.rb +13 -0
  117. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +8 -12
  118. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +5 -0
  119. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +78 -0
  120. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +33 -0
  121. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +2 -0
  122. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +4 -0
  123. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +3 -1
  124. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +3 -1
  125. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +5 -1
  126. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -0
  127. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +6 -1
  128. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -0
  129. data/lib/datadog/tracing/contrib/excon/middleware.rb +3 -0
  130. data/lib/datadog/tracing/contrib/faraday/middleware.rb +12 -0
  131. data/lib/datadog/tracing/contrib/grape/endpoint.rb +24 -2
  132. data/lib/datadog/tracing/contrib/graphql/patcher.rb +9 -12
  133. data/lib/datadog/tracing/contrib/graphql/trace_patcher.rb +3 -3
  134. data/lib/datadog/tracing/contrib/graphql/tracing_patcher.rb +3 -3
  135. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +13 -9
  136. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +6 -3
  137. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +9 -0
  138. data/lib/datadog/tracing/contrib/http/instrumentation.rb +22 -15
  139. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +10 -5
  140. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +1 -14
  141. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +9 -0
  142. data/lib/datadog/tracing/contrib/httprb/patcher.rb +1 -14
  143. data/lib/datadog/tracing/contrib/lograge/patcher.rb +1 -2
  144. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +2 -0
  145. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +13 -6
  146. data/lib/datadog/tracing/contrib/patcher.rb +2 -1
  147. data/lib/datadog/tracing/contrib/presto/patcher.rb +1 -13
  148. data/lib/datadog/tracing/contrib/rack/middlewares.rb +27 -0
  149. data/lib/datadog/tracing/contrib/rails/runner.rb +1 -1
  150. data/lib/datadog/tracing/contrib/redis/tags.rb +4 -0
  151. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +3 -0
  152. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +4 -0
  153. data/lib/datadog/tracing/contrib/stripe/request.rb +3 -2
  154. data/lib/datadog/tracing/distributed/propagation.rb +7 -0
  155. data/lib/datadog/tracing/metadata/ext.rb +2 -0
  156. data/lib/datadog/tracing/remote.rb +5 -2
  157. data/lib/datadog/tracing/sampling/matcher.rb +6 -1
  158. data/lib/datadog/tracing/sampling/rate_sampler.rb +1 -1
  159. data/lib/datadog/tracing/sampling/rule.rb +2 -0
  160. data/lib/datadog/tracing/sampling/rule_sampler.rb +15 -9
  161. data/lib/datadog/tracing/sampling/span/ext.rb +1 -1
  162. data/lib/datadog/tracing/sampling/span/rule.rb +2 -2
  163. data/lib/datadog/tracing/trace_operation.rb +26 -2
  164. data/lib/datadog/tracing/tracer.rb +29 -22
  165. data/lib/datadog/tracing/transport/http/client.rb +1 -0
  166. data/lib/datadog/tracing/transport/http.rb +4 -0
  167. data/lib/datadog/tracing/transport/io/client.rb +1 -0
  168. data/lib/datadog/tracing/workers/trace_writer.rb +1 -1
  169. data/lib/datadog/tracing/workers.rb +2 -2
  170. data/lib/datadog/tracing/writer.rb +26 -28
  171. data/lib/datadog/version.rb +1 -1
  172. metadata +40 -15
  173. data/lib/datadog/tracing/sampling/rate_limiter.rb +0 -185
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "2.2",
3
3
  "metadata": {
4
- "rules_version": "1.8.0"
4
+ "rules_version": "1.13.1"
5
5
  },
6
6
  "rules": [
7
7
  {
@@ -118,6 +118,9 @@
118
118
  },
119
119
  {
120
120
  "address": "graphql.server.all_resolvers"
121
+ },
122
+ {
123
+ "address": "graphql.server.resolver"
121
124
  }
122
125
  ],
123
126
  "list": [
@@ -138,7 +141,10 @@
138
141
  "appscan_fingerprint",
139
142
  "w00tw00t.at.isc.sans.dfind",
140
143
  "w00tw00t.at.blackhats.romanian.anti-sec"
141
- ]
144
+ ],
145
+ "options": {
146
+ "enforce_word_boundary": true
147
+ }
142
148
  },
143
149
  "operator": "phrase_match"
144
150
  }
@@ -346,6 +352,9 @@
346
352
  },
347
353
  {
348
354
  "address": "graphql.server.all_resolvers"
355
+ },
356
+ {
357
+ "address": "graphql.server.resolver"
349
358
  }
350
359
  ],
351
360
  "list": [
@@ -1772,7 +1781,10 @@
1772
1781
  "windows\\win.ini",
1773
1782
  "default\\ntuser.dat",
1774
1783
  "/var/run/secrets/kubernetes.io/serviceaccount"
1775
- ]
1784
+ ],
1785
+ "options": {
1786
+ "enforce_word_boundary": true
1787
+ }
1776
1788
  },
1777
1789
  "operator": "phrase_match"
1778
1790
  }
@@ -1839,6 +1851,9 @@
1839
1851
  },
1840
1852
  {
1841
1853
  "address": "graphql.server.all_resolvers"
1854
+ },
1855
+ {
1856
+ "address": "graphql.server.resolver"
1842
1857
  }
1843
1858
  ],
1844
1859
  "regex": "^(?i:file|ftps?)://.*?\\?+$",
@@ -1881,8 +1896,14 @@
1881
1896
  },
1882
1897
  {
1883
1898
  "address": "graphql.server.all_resolvers"
1899
+ },
1900
+ {
1901
+ "address": "graphql.server.resolver"
1884
1902
  }
1885
1903
  ],
1904
+ "options": {
1905
+ "enforce_word_boundary": true
1906
+ },
1886
1907
  "list": [
1887
1908
  "${cdpath}",
1888
1909
  "${dirstack}",
@@ -1900,7 +1921,6 @@
1900
1921
  "$ifs",
1901
1922
  "$oldpwd",
1902
1923
  "$ostype",
1903
- "$path",
1904
1924
  "$pwd",
1905
1925
  "dev/fd/",
1906
1926
  "dev/null",
@@ -2391,6 +2411,9 @@
2391
2411
  },
2392
2412
  {
2393
2413
  "address": "graphql.server.all_resolvers"
2414
+ },
2415
+ {
2416
+ "address": "graphql.server.resolver"
2394
2417
  }
2395
2418
  ],
2396
2419
  "regex": "^\\(\\s*\\)\\s+{",
@@ -2456,7 +2479,10 @@
2456
2479
  "settings.local.php",
2457
2480
  "local.xml",
2458
2481
  ".env"
2459
- ]
2482
+ ],
2483
+ "options": {
2484
+ "enforce_word_boundary": true
2485
+ }
2460
2486
  },
2461
2487
  "operator": "phrase_match"
2462
2488
  }
@@ -2547,8 +2573,14 @@
2547
2573
  },
2548
2574
  {
2549
2575
  "address": "graphql.server.all_resolvers"
2576
+ },
2577
+ {
2578
+ "address": "graphql.server.resolver"
2550
2579
  }
2551
2580
  ],
2581
+ "options": {
2582
+ "enforce_word_boundary": true
2583
+ },
2552
2584
  "list": [
2553
2585
  "$globals",
2554
2586
  "$_cookie",
@@ -2608,6 +2640,9 @@
2608
2640
  },
2609
2641
  {
2610
2642
  "address": "graphql.server.all_resolvers"
2643
+ },
2644
+ {
2645
+ "address": "graphql.server.resolver"
2611
2646
  }
2612
2647
  ],
2613
2648
  "regex": "(?:HTTP_(?:ACCEPT(?:_(?:ENCODING|LANGUAGE|CHARSET))?|(?:X_FORWARDED_FO|REFERE)R|(?:USER_AGEN|HOS)T|CONNECTION|KEEP_ALIVE)|PATH_(?:TRANSLATED|INFO)|ORIG_PATH_INFO|QUERY_STRING|REQUEST_URI|AUTH_TYPE)",
@@ -2650,6 +2685,9 @@
2650
2685
  },
2651
2686
  {
2652
2687
  "address": "graphql.server.all_resolvers"
2688
+ },
2689
+ {
2690
+ "address": "graphql.server.resolver"
2653
2691
  }
2654
2692
  ],
2655
2693
  "regex": "php://(?:std(?:in|out|err)|(?:in|out)put|fd|memory|temp|filter)",
@@ -2691,6 +2729,9 @@
2691
2729
  },
2692
2730
  {
2693
2731
  "address": "graphql.server.all_resolvers"
2732
+ },
2733
+ {
2734
+ "address": "graphql.server.resolver"
2694
2735
  }
2695
2736
  ],
2696
2737
  "list": [
@@ -2738,7 +2779,10 @@
2738
2779
  "wp_safe_remote_post",
2739
2780
  "wp_safe_remote_request",
2740
2781
  "zlib_decode"
2741
- ]
2782
+ ],
2783
+ "options": {
2784
+ "enforce_word_boundary": true
2785
+ }
2742
2786
  },
2743
2787
  "operator": "phrase_match"
2744
2788
  }
@@ -2775,6 +2819,9 @@
2775
2819
  },
2776
2820
  {
2777
2821
  "address": "graphql.server.all_resolvers"
2822
+ },
2823
+ {
2824
+ "address": "graphql.server.resolver"
2778
2825
  }
2779
2826
  ],
2780
2827
  "regex": "\\b(?:s(?:e(?:t(?:_(?:e(?:xception|rror)_handler|magic_quotes_runtime|include_path)|defaultstub)|ssion_s(?:et_save_handler|tart))|qlite_(?:(?:(?:unbuffered|single|array)_)?query|create_(?:aggregate|function)|p?open|exec)|tr(?:eam_(?:context_create|socket_client)|ipc?slashes|rev)|implexml_load_(?:string|file)|ocket_c(?:onnect|reate)|h(?:ow_sourc|a1_fil)e|pl_autoload_register|ystem)|p(?:r(?:eg_(?:replace(?:_callback(?:_array)?)?|match(?:_all)?|split)|oc_(?:(?:terminat|clos|nic)e|get_status|open)|int_r)|o(?:six_(?:get(?:(?:e[gu]|g)id|login|pwnam)|mk(?:fifo|nod)|ttyname|kill)|pen)|hp(?:_(?:strip_whitespac|unam)e|version|info)|g_(?:(?:execut|prepar)e|connect|query)|a(?:rse_(?:ini_file|str)|ssthru)|utenv)|r(?:unkit_(?:function_(?:re(?:defin|nam)e|copy|add)|method_(?:re(?:defin|nam)e|copy|add)|constant_(?:redefine|add))|e(?:(?:gister_(?:shutdown|tick)|name)_function|ad(?:(?:gz)?file|_exif_data|dir))|awurl(?:de|en)code)|i(?:mage(?:createfrom(?:(?:jpe|pn)g|x[bp]m|wbmp|gif)|(?:jpe|pn)g|g(?:d2?|if)|2?wbmp|xbm)|s_(?:(?:(?:execut|write?|read)ab|fi)le|dir)|ni_(?:get(?:_all)?|set)|terator_apply|ptcembed)|g(?:et(?:_(?:c(?:urrent_use|fg_va)r|meta_tags)|my(?:[gpu]id|inode)|(?:lastmo|cw)d|imagesize|env)|z(?:(?:(?:defla|wri)t|encod|fil)e|compress|open|read)|lob)|a(?:rray_(?:u(?:intersect(?:_u?assoc)?|diff(?:_u?assoc)?)|intersect_u(?:assoc|key)|diff_u(?:assoc|key)|filter|reduce|map)|ssert(?:_options)?|tob)|h(?:tml(?:specialchars(?:_decode)?|_entity_decode|entities)|(?:ash(?:_(?:update|hmac))?|ighlight)_file|e(?:ader_register_callback|x2bin))|f(?:i(?:le(?:(?:[acm]tim|inod)e|(?:_exist|perm)s|group)?|nfo_open)|tp_(?:nb_(?:ge|pu)|connec|ge|pu)t|(?:unction_exis|pu)ts|write|open)|o(?:b_(?:get_(?:c(?:ontents|lean)|flush)|end_(?:clean|flush)|clean|flush|start)|dbc_(?:result(?:_all)?|exec(?:ute)?|connect)|pendir)|m(?:b_(?:ereg(?:_(?:replace(?:_callback)?|match)|i(?:_replace)?)?|parse_str)|(?:ove_uploaded|d5)_file|ethod_exists|ysql_query|kdir)|e(?:x(?:if_(?:t(?:humbnail|agname)|imagetype|read_data)|ec)|scapeshell(?:arg|cmd)|rror_reporting|val)|c(?:url_(?:file_create|exec|init)|onvert_uuencode|reate_function|hr)|u(?:n(?:serialize|pack)|rl(?:de|en)code|[ak]?sort)|b(?:(?:son_(?:de|en)|ase64_en)code|zopen|toa)|(?:json_(?:de|en)cod|debug_backtrac|tmpfil)e|var_dump)(?:\\s|/\\*.*\\*/|//.*|#.*|\\\"|')*\\((?:(?:\\s|/\\*.*\\*/|//.*|#.*)*(?:\\$\\w+|[A-Z\\d]\\w*|\\w+\\(.*\\)|\\\\?\"(?:[^\"]|\\\\\"|\"\"|\"\\+\")*\\\\?\"|\\\\?'(?:[^']|''|'\\+')*\\\\?')(?:\\s|/\\*.*\\*/|//.*|#.*)*(?:(?:::|\\.|->)(?:\\s|/\\*.*\\*/|//.*|#.*)*\\w+(?:\\(.*\\))?)?,)*(?:(?:\\s|/\\*.*\\*/|//.*|#.*)*(?:\\$\\w+|[A-Z\\d]\\w*|\\w+\\(.*\\)|\\\\?\"(?:[^\"]|\\\\\"|\"\"|\"\\+\")*\\\\?\"|\\\\?'(?:[^']|''|'\\+')*\\\\?')(?:\\s|/\\*.*\\*/|//.*|#.*)*(?:(?:::|\\.|->)(?:\\s|/\\*.*\\*/|//.*|#.*)*\\w+(?:\\(.*\\))?)?)?\\)",
@@ -2820,6 +2867,9 @@
2820
2867
  },
2821
2868
  {
2822
2869
  "address": "graphql.server.all_resolvers"
2870
+ },
2871
+ {
2872
+ "address": "graphql.server.resolver"
2823
2873
  }
2824
2874
  ],
2825
2875
  "regex": "[oOcC]:\\d+:\\\".+?\\\":\\d+:{[\\W\\w]*}",
@@ -2861,6 +2911,9 @@
2861
2911
  },
2862
2912
  {
2863
2913
  "address": "graphql.server.all_resolvers"
2914
+ },
2915
+ {
2916
+ "address": "graphql.server.resolver"
2864
2917
  }
2865
2918
  ],
2866
2919
  "regex": "(?:(?:bzip|ssh)2|z(?:lib|ip)|(?:ph|r)ar|expect|glob|ogg)://",
@@ -2904,6 +2957,9 @@
2904
2957
  },
2905
2958
  {
2906
2959
  "address": "graphql.server.all_resolvers"
2960
+ },
2961
+ {
2962
+ "address": "graphql.server.resolver"
2907
2963
  }
2908
2964
  ],
2909
2965
  "regex": "\\b(?:(?:l(?:(?:utimes|chmod)(?:Sync)?|(?:stat|ink)Sync)|w(?:rite(?:(?:File|v)(?:Sync)?|Sync)|atchFile)|u(?:n(?:watchFile|linkSync)|times(?:Sync)?)|s(?:(?:ymlink|tat)Sync|pawn(?:File|Sync))|ex(?:ec(?:File(?:Sync)?|Sync)|istsSync)|a(?:ppendFile|ccess)(?:Sync)?|(?:Caveat|Inode)s|open(?:dir)?Sync|new\\s+Function|Availability|\\beval)\\s*\\(|m(?:ain(?:Module\\s*(?:\\W*\\s*(?:constructor|require)|\\[)|\\s*(?:\\W*\\s*(?:constructor|require)|\\[))|kd(?:temp(?:Sync)?|irSync)\\s*\\(|odule\\.exports\\s*=)|c(?:(?:(?:h(?:mod|own)|lose)Sync|reate(?:Write|Read)Stream|p(?:Sync)?)\\s*\\(|o(?:nstructor\\s*(?:\\W*\\s*_load|\\[)|pyFile(?:Sync)?\\s*\\())|f(?:(?:(?:s(?:(?:yncS)?|tatS)|datas(?:yncS)?)ync|ch(?:mod|own)(?:Sync)?)\\s*\\(|u(?:nction\\s*\\(\\s*\\)\\s*{|times(?:Sync)?\\s*\\())|r(?:e(?:(?:ad(?:(?:File|link|dir)?Sync|v(?:Sync)?)|nameSync)\\s*\\(|quire\\s*(?:\\W*\\s*main|\\[))|m(?:Sync)?\\s*\\()|process\\s*(?:\\W*\\s*(?:mainModule|binding)|\\[)|t(?:his\\.constructor|runcateSync\\s*\\()|_(?:\\$\\$ND_FUNC\\$\\$_|_js_function)|global\\s*(?:\\W*\\s*process|\\[)|String\\s*\\.\\s*fromCharCode|binding\\s*\\[)",
@@ -2942,10 +2998,10 @@
2942
2998
  "address": "server.request.path_params"
2943
2999
  },
2944
3000
  {
2945
- "address": "grpc.server.request.message"
3001
+ "address": "graphql.server.all_resolvers"
2946
3002
  },
2947
3003
  {
2948
- "address": "graphql.server.all_resolvers"
3004
+ "address": "graphql.server.resolver"
2949
3005
  }
2950
3006
  ],
2951
3007
  "regex": "\\b(?:w(?:atch|rite)|(?:spaw|ope)n|exists|close|fork|read)\\s*\\(",
@@ -2996,14 +3052,15 @@
2996
3052
  "address": "server.request.path_params"
2997
3053
  },
2998
3054
  {
2999
- "address": "grpc.server.request.message"
3055
+ "address": "graphql.server.all_resolvers"
3000
3056
  },
3001
3057
  {
3002
- "address": "graphql.server.all_resolvers"
3058
+ "address": "graphql.server.resolver"
3003
3059
  }
3004
3060
  ],
3005
3061
  "regex": "<script[^>]*>[\\s\\S]*?",
3006
3062
  "options": {
3063
+ "case_sensitive": false,
3007
3064
  "min_length": 8
3008
3065
  }
3009
3066
  },
@@ -3056,6 +3113,9 @@
3056
3113
  },
3057
3114
  {
3058
3115
  "address": "graphql.server.all_resolvers"
3116
+ },
3117
+ {
3118
+ "address": "graphql.server.resolver"
3059
3119
  }
3060
3120
  ],
3061
3121
  "regex": "\\bon(?:d(?:r(?:ag(?:en(?:ter|d)|leave|start|over)?|op)|urationchange|blclick)|s(?:e(?:ek(?:ing|ed)|arch|lect)|u(?:spend|bmit)|talled|croll|how)|m(?:ouse(?:(?:lea|mo)ve|o(?:ver|ut)|enter|down|up)|essage)|p(?:a(?:ge(?:hide|show)|(?:st|us)e)|lay(?:ing)?|rogress|aste|ointer(?:cancel|down|enter|leave|move|out|over|rawupdate|up))|c(?:anplay(?:through)?|o(?:ntextmenu|py)|hange|lick|ut)|a(?:nimation(?:iteration|start|end)|(?:fterprin|bor)t|uxclick|fterscriptexecute)|t(?:o(?:uch(?:cancel|start|move|end)|ggle)|imeupdate)|f(?:ullscreen(?:change|error)|ocus(?:out|in)?|inish)|(?:(?:volume|hash)chang|o(?:ff|n)lin)e|b(?:efore(?:unload|print)|lur)|load(?:ed(?:meta)?data|start|end)?|r(?:es(?:ize|et)|atechange)|key(?:press|down|up)|w(?:aiting|heel)|in(?:valid|put)|e(?:nded|rror)|unload)[\\s\\x0B\\x09\\x0C\\x3B\\x2C\\x28\\x3B]*?=[^=]",
@@ -3112,6 +3172,9 @@
3112
3172
  },
3113
3173
  {
3114
3174
  "address": "graphql.server.all_resolvers"
3175
+ },
3176
+ {
3177
+ "address": "graphql.server.resolver"
3115
3178
  }
3116
3179
  ],
3117
3180
  "regex": "[a-z]+=(?:[^:=]+:.+;)*?[^:=]+:url\\(javascript",
@@ -3168,6 +3231,9 @@
3168
3231
  },
3169
3232
  {
3170
3233
  "address": "graphql.server.all_resolvers"
3234
+ },
3235
+ {
3236
+ "address": "graphql.server.resolver"
3171
3237
  }
3172
3238
  ],
3173
3239
  "regex": "(?:\\W|^)(?:javascript:(?:[\\s\\S]+[=\\x5c\\(\\[\\.<]|[\\s\\S]*?(?:\\bname\\b|\\x5c[ux]\\d)))|@\\W*?i\\W*?m\\W*?p\\W*?o\\W*?r\\W*?t\\W*?(?:/\\*[\\s\\S]*?)?(?:[\\\"']|\\W*?u\\W*?r\\W*?l[\\s\\S]*?\\()|[^-]*?-\\W*?m\\W*?o\\W*?z\\W*?-\\W*?b\\W*?i\\W*?n\\W*?d\\W*?i\\W*?n\\W*?g[^:]*?:\\W*?u\\W*?r\\W*?l[\\s\\S]*?\\(",
@@ -3211,8 +3277,14 @@
3211
3277
  },
3212
3278
  {
3213
3279
  "address": "graphql.server.all_resolvers"
3280
+ },
3281
+ {
3282
+ "address": "graphql.server.resolver"
3214
3283
  }
3215
3284
  ],
3285
+ "options": {
3286
+ "enforce_word_boundary": true
3287
+ },
3216
3288
  "list": [
3217
3289
  "document.cookie",
3218
3290
  "document.write",
@@ -3259,6 +3331,9 @@
3259
3331
  },
3260
3332
  {
3261
3333
  "address": "graphql.server.all_resolvers"
3334
+ },
3335
+ {
3336
+ "address": "graphql.server.resolver"
3262
3337
  }
3263
3338
  ],
3264
3339
  "regex": "(?i:<.*[:]?vmlframe.*?[\\s/+]*?src[\\s/+]*=)",
@@ -3303,6 +3378,9 @@
3303
3378
  },
3304
3379
  {
3305
3380
  "address": "graphql.server.all_resolvers"
3381
+ },
3382
+ {
3383
+ "address": "graphql.server.resolver"
3306
3384
  }
3307
3385
  ],
3308
3386
  "regex": "(?i:(?:j|&#x?0*(?:74|4A|106|6A);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:a|&#x?0*(?:65|41|97|61);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:v|&#x?0*(?:86|56|118|76);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:a|&#x?0*(?:65|41|97|61);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:s|&#x?0*(?:83|53|115|73);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:c|&#x?0*(?:67|43|99|63);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:r|&#x?0*(?:82|52|114|72);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:i|&#x?0*(?:73|49|105|69);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:p|&#x?0*(?:80|50|112|70);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:t|&#x?0*(?:84|54|116|74);?)(?:\\t|\\n|\\r|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?::|&(?:#x?0*(?:58|3A);?|colon;)).)",
@@ -3347,6 +3425,9 @@
3347
3425
  },
3348
3426
  {
3349
3427
  "address": "graphql.server.all_resolvers"
3428
+ },
3429
+ {
3430
+ "address": "graphql.server.resolver"
3350
3431
  }
3351
3432
  ],
3352
3433
  "regex": "(?i:(?:v|&#x?0*(?:86|56|118|76);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:b|&#x?0*(?:66|42|98|62);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:s|&#x?0*(?:83|53|115|73);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:c|&#x?0*(?:67|43|99|63);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:r|&#x?0*(?:82|52|114|72);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:i|&#x?0*(?:73|49|105|69);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:p|&#x?0*(?:80|50|112|70);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?:t|&#x?0*(?:84|54|116|74);?)(?:\\t|&(?:#x?0*(?:9|13|10|A|D);?|tab;|newline;))*(?::|&(?:#x?0*(?:58|3A);?|colon;)).)",
@@ -3391,6 +3472,9 @@
3391
3472
  },
3392
3473
  {
3393
3474
  "address": "graphql.server.all_resolvers"
3475
+ },
3476
+ {
3477
+ "address": "graphql.server.resolver"
3394
3478
  }
3395
3479
  ],
3396
3480
  "regex": "<EMBED[\\s/+].*?(?:src|type).*?=",
@@ -3434,6 +3518,9 @@
3434
3518
  },
3435
3519
  {
3436
3520
  "address": "graphql.server.all_resolvers"
3521
+ },
3522
+ {
3523
+ "address": "graphql.server.resolver"
3437
3524
  }
3438
3525
  ],
3439
3526
  "regex": "<[?]?import[\\s/+\\S]*?implementation[\\s/+]*?=",
@@ -3474,10 +3561,10 @@
3474
3561
  "address": "server.request.path_params"
3475
3562
  },
3476
3563
  {
3477
- "address": "grpc.server.request.message"
3564
+ "address": "graphql.server.all_resolvers"
3478
3565
  },
3479
3566
  {
3480
- "address": "graphql.server.all_resolvers"
3567
+ "address": "graphql.server.resolver"
3481
3568
  }
3482
3569
  ],
3483
3570
  "regex": "<LINK[\\s/+].*?href[\\s/+]*=",
@@ -3521,6 +3608,9 @@
3521
3608
  },
3522
3609
  {
3523
3610
  "address": "graphql.server.all_resolvers"
3611
+ },
3612
+ {
3613
+ "address": "graphql.server.resolver"
3524
3614
  }
3525
3615
  ],
3526
3616
  "regex": "<BASE[\\s/+].*?href[\\s/+]*=",
@@ -3564,6 +3654,9 @@
3564
3654
  },
3565
3655
  {
3566
3656
  "address": "graphql.server.all_resolvers"
3657
+ },
3658
+ {
3659
+ "address": "graphql.server.resolver"
3567
3660
  }
3568
3661
  ],
3569
3662
  "regex": "<APPLET[\\s/+>]",
@@ -3607,6 +3700,9 @@
3607
3700
  },
3608
3701
  {
3609
3702
  "address": "graphql.server.all_resolvers"
3703
+ },
3704
+ {
3705
+ "address": "graphql.server.resolver"
3610
3706
  }
3611
3707
  ],
3612
3708
  "regex": "<OBJECT[\\s/+].*?(?:type|codetype|classid|code|data)[\\s/+]*=",
@@ -3650,6 +3746,9 @@
3650
3746
  },
3651
3747
  {
3652
3748
  "address": "graphql.server.all_resolvers"
3749
+ },
3750
+ {
3751
+ "address": "graphql.server.resolver"
3653
3752
  }
3654
3753
  ],
3655
3754
  "regex": "\\+ADw-.*(?:\\+AD4-|>)|<.*\\+AD4-",
@@ -3691,6 +3790,9 @@
3691
3790
  },
3692
3791
  {
3693
3792
  "address": "graphql.server.all_resolvers"
3793
+ },
3794
+ {
3795
+ "address": "graphql.server.resolver"
3694
3796
  }
3695
3797
  ],
3696
3798
  "regex": "![!+ ]\\[\\]",
@@ -3733,6 +3835,9 @@
3733
3835
  },
3734
3836
  {
3735
3837
  "address": "graphql.server.all_resolvers"
3838
+ },
3839
+ {
3840
+ "address": "graphql.server.resolver"
3736
3841
  }
3737
3842
  ],
3738
3843
  "regex": "\\b(?i:eval|settimeout|setinterval|new\\s+Function|alert|prompt)[\\s+]*\\([^\\)]",
@@ -3770,10 +3875,10 @@
3770
3875
  "address": "server.request.path_params"
3771
3876
  },
3772
3877
  {
3773
- "address": "grpc.server.request.message"
3878
+ "address": "graphql.server.all_resolvers"
3774
3879
  },
3775
3880
  {
3776
- "address": "graphql.server.all_resolvers"
3881
+ "address": "graphql.server.resolver"
3777
3882
  }
3778
3883
  ]
3779
3884
  },
@@ -3813,6 +3918,9 @@
3813
3918
  },
3814
3919
  {
3815
3920
  "address": "graphql.server.all_resolvers"
3921
+ },
3922
+ {
3923
+ "address": "graphql.server.resolver"
3816
3924
  }
3817
3925
  ],
3818
3926
  "regex": "(?i:sleep\\(\\s*?\\d*?\\s*?\\)|benchmark\\(.*?\\,.*?\\))",
@@ -3855,6 +3963,9 @@
3855
3963
  },
3856
3964
  {
3857
3965
  "address": "graphql.server.all_resolvers"
3966
+ },
3967
+ {
3968
+ "address": "graphql.server.resolver"
3858
3969
  }
3859
3970
  ],
3860
3971
  "regex": "(?:[\\\"'`](?:;*?\\s*?waitfor\\s+(?:delay|time)\\s+[\\\"'`]|;.*?:\\s*?goto)|alter\\s*?\\w+.*?cha(?:racte)?r\\s+set\\s+\\w+)",
@@ -3895,6 +4006,9 @@
3895
4006
  },
3896
4007
  {
3897
4008
  "address": "graphql.server.all_resolvers"
4009
+ },
4010
+ {
4011
+ "address": "graphql.server.resolver"
3898
4012
  }
3899
4013
  ],
3900
4014
  "regex": "(?i:merge.*?using\\s*?\\(|execute\\s*?immediate\\s*?[\\\"'`]|match\\s*?[\\w(?:),+-]+\\s*?against\\s*?\\()",
@@ -3936,6 +4050,9 @@
3936
4050
  },
3937
4051
  {
3938
4052
  "address": "graphql.server.all_resolvers"
4053
+ },
4054
+ {
4055
+ "address": "graphql.server.resolver"
3939
4056
  }
3940
4057
  ],
3941
4058
  "regex": "union.*?select.*?from",
@@ -3977,6 +4094,9 @@
3977
4094
  },
3978
4095
  {
3979
4096
  "address": "graphql.server.all_resolvers"
4097
+ },
4098
+ {
4099
+ "address": "graphql.server.resolver"
3980
4100
  }
3981
4101
  ],
3982
4102
  "regex": "(?:;\\s*?shutdown\\s*?(?:[#;{]|\\/\\*|--)|waitfor\\s*?delay\\s?[\\\"'`]+\\s?\\d|select\\s*?pg_sleep)",
@@ -4017,6 +4137,9 @@
4017
4137
  },
4018
4138
  {
4019
4139
  "address": "graphql.server.all_resolvers"
4140
+ },
4141
+ {
4142
+ "address": "graphql.server.resolver"
4020
4143
  }
4021
4144
  ],
4022
4145
  "regex": "(?i:(?:\\[?\\$(?:(?:s(?:lic|iz)|wher)e|e(?:lemMatch|xists|q)|n(?:o[rt]|in?|e)|l(?:ike|te?)|t(?:ext|ype)|a(?:ll|nd)|jsonSchema|between|regex|x?or|div|mod)\\]?)\\b)",
@@ -4060,6 +4183,9 @@
4060
4183
  },
4061
4184
  {
4062
4185
  "address": "graphql.server.all_resolvers"
4186
+ },
4187
+ {
4188
+ "address": "graphql.server.resolver"
4063
4189
  }
4064
4190
  ],
4065
4191
  "regex": "(?:^[\\W\\d]+\\s*?(?:alter\\s*(?:a(?:(?:pplication\\s*rol|ggregat)e|s(?:ymmetric\\s*ke|sembl)y|u(?:thorization|dit)|vailability\\s*group)|c(?:r(?:yptographic\\s*provider|edential)|o(?:l(?:latio|um)|nversio)n|ertificate|luster)|s(?:e(?:rv(?:ice|er)|curity|quence|ssion|arch)|y(?:mmetric\\s*key|nonym)|togroup|chema)|m(?:a(?:s(?:ter\\s*key|k)|terialized)|e(?:ssage\\s*type|thod)|odule)|l(?:o(?:g(?:file\\s*group|in)|ckdown)|a(?:ngua|r)ge|ibrary)|t(?:(?:abl(?:espac)?|yp)e|r(?:igger|usted)|hreshold|ext)|p(?:a(?:rtition|ckage)|ro(?:cedur|fil)e|ermission)|d(?:i(?:mension|skgroup)|atabase|efault|omain)|r(?:o(?:l(?:lback|e)|ute)|e(?:sourc|mot)e)|f(?:u(?:lltext|nction)|lashback|oreign)|e(?:xte(?:nsion|rnal)|(?:ndpoi|ve)nt)|in(?:dex(?:type)?|memory|stance)|b(?:roker\\s*priority|ufferpool)|x(?:ml\\s*schema|srobject)|w(?:ork(?:load)?|rapper)|hi(?:erarchy|stogram)|o(?:perator|utline)|(?:nicknam|queu)e|us(?:age|er)|group|java|view)|union\\s*(?:(?:distin|sele)ct|all))\\b|\\b(?:(?:(?:trunc|cre|upd)at|renam)e|(?:inser|selec)t|de(?:lete|sc)|alter|load)\\s+(?:group_concat|load_file|char)\\b\\s*\\(?|[\\s(]load_file\\s*?\\(|[\\\"'`]\\s+regexp\\W)",
@@ -4100,6 +4226,9 @@
4100
4226
  },
4101
4227
  {
4102
4228
  "address": "graphql.server.all_resolvers"
4229
+ },
4230
+ {
4231
+ "address": "graphql.server.resolver"
4103
4232
  }
4104
4233
  ],
4105
4234
  "regex": "(?i:/\\*[!+](?:[\\w\\s=_\\-(?:)]+)?\\*/)",
@@ -4142,6 +4271,9 @@
4142
4271
  },
4143
4272
  {
4144
4273
  "address": "graphql.server.all_resolvers"
4274
+ },
4275
+ {
4276
+ "address": "graphql.server.resolver"
4145
4277
  }
4146
4278
  ],
4147
4279
  "regex": "(?i:\\.cookie\\b.*?;\\W*?(?:expires|domain)\\W*?=|\\bhttp-equiv\\W+set-cookie\\b)",
@@ -4187,6 +4319,9 @@
4187
4319
  },
4188
4320
  {
4189
4321
  "address": "graphql.server.all_resolvers"
4322
+ },
4323
+ {
4324
+ "address": "graphql.server.resolver"
4190
4325
  }
4191
4326
  ],
4192
4327
  "regex": "java\\.lang\\.(?:runtime|processbuilder)",
@@ -4207,7 +4342,6 @@
4207
4342
  "name": "Remote Command Execution: Java process spawn (CVE-2017-9805)",
4208
4343
  "tags": {
4209
4344
  "type": "java_code_injection",
4210
- "crs_id": "944110",
4211
4345
  "category": "attack_attempt",
4212
4346
  "cwe": "94",
4213
4347
  "capec": "1000/152/242"
@@ -4233,50 +4367,21 @@
4233
4367
  },
4234
4368
  {
4235
4369
  "address": "graphql.server.all_resolvers"
4236
- }
4237
- ],
4238
- "regex": "(?:runtime|processbuilder)",
4239
- "options": {
4240
- "case_sensitive": true,
4241
- "min_length": 7
4242
- }
4243
- },
4244
- "operator": "match_regex"
4245
- },
4246
- {
4247
- "parameters": {
4248
- "inputs": [
4249
- {
4250
- "address": "server.request.query"
4251
- },
4252
- {
4253
- "address": "server.request.body"
4254
- },
4255
- {
4256
- "address": "server.request.path_params"
4257
4370
  },
4258
4371
  {
4259
- "address": "server.request.headers.no_cookies"
4260
- },
4261
- {
4262
- "address": "grpc.server.request.message"
4263
- },
4264
- {
4265
- "address": "graphql.server.all_resolvers"
4372
+ "address": "graphql.server.resolver"
4266
4373
  }
4267
4374
  ],
4268
- "regex": "(?:unmarshaller|base64data|java\\.)",
4375
+ "regex": "(?:unmarshaller|base64data|java\\.).*(?:runtime|processbuilder)",
4269
4376
  "options": {
4270
- "case_sensitive": true,
4271
- "min_length": 5
4377
+ "case_sensitive": false,
4378
+ "min_length": 13
4272
4379
  }
4273
4380
  },
4274
4381
  "operator": "match_regex"
4275
4382
  }
4276
4383
  ],
4277
- "transformers": [
4278
- "lowercase"
4279
- ]
4384
+ "transformers": []
4280
4385
  },
4281
4386
  {
4282
4387
  "id": "crs-944-130",
@@ -4309,6 +4414,9 @@
4309
4414
  },
4310
4415
  {
4311
4416
  "address": "graphql.server.all_resolvers"
4417
+ },
4418
+ {
4419
+ "address": "graphql.server.resolver"
4312
4420
  }
4313
4421
  ],
4314
4422
  "list": [
@@ -4344,6 +4452,7 @@
4344
4452
  "java.lang.object",
4345
4453
  "java.lang.process",
4346
4454
  "java.lang.reflect",
4455
+ "java.lang.runtime",
4347
4456
  "java.lang.string",
4348
4457
  "java.lang.stringbuilder",
4349
4458
  "java.lang.system",
@@ -4353,7 +4462,10 @@
4353
4462
  "org.apache.struts2",
4354
4463
  "org.omg.corba",
4355
4464
  "java.beans.xmldecode"
4356
- ]
4465
+ ],
4466
+ "options": {
4467
+ "enforce_word_boundary": true
4468
+ }
4357
4469
  },
4358
4470
  "operator": "phrase_match"
4359
4471
  }
@@ -4394,6 +4506,9 @@
4394
4506
  },
4395
4507
  {
4396
4508
  "address": "graphql.server.all_resolvers"
4509
+ },
4510
+ {
4511
+ "address": "graphql.server.resolver"
4397
4512
  }
4398
4513
  ],
4399
4514
  "regex": "(?:class\\.module\\.classLoader\\.resources\\.context\\.parent\\.pipeline|springframework\\.context\\.support\\.FileSystemXmlApplicationContext)",
@@ -4435,6 +4550,9 @@
4435
4550
  {
4436
4551
  "address": "graphql.server.all_resolvers"
4437
4552
  },
4553
+ {
4554
+ "address": "graphql.server.resolver"
4555
+ },
4438
4556
  {
4439
4557
  "address": "server.request.headers.no_cookies"
4440
4558
  }
@@ -4475,10 +4593,13 @@
4475
4593
  "address": "server.request.path_params"
4476
4594
  },
4477
4595
  {
4478
- "address": "grpc.server.request.message"
4596
+ "address": "graphql.server.all_resolvers"
4479
4597
  },
4480
4598
  {
4481
- "address": "graphql.server.all_resolvers"
4599
+ "address": "graphql.server.resolver"
4600
+ },
4601
+ {
4602
+ "address": "server.request.headers.no_cookies"
4482
4603
  }
4483
4604
  ],
4484
4605
  "regex": "[#%$]{(?:[^}]+[^\\w\\s}\\-_][^}]+|\\d+-\\d+)}",
@@ -4522,6 +4643,9 @@
4522
4643
  },
4523
4644
  {
4524
4645
  "address": "graphql.server.all_resolvers"
4646
+ },
4647
+ {
4648
+ "address": "graphql.server.resolver"
4525
4649
  }
4526
4650
  ],
4527
4651
  "regex": "[@#]ognl",
@@ -4668,6 +4792,9 @@
4668
4792
  },
4669
4793
  {
4670
4794
  "address": "graphql.server.all_resolvers"
4795
+ },
4796
+ {
4797
+ "address": "graphql.server.resolver"
4671
4798
  }
4672
4799
  ],
4673
4800
  "regex": "#(?:set|foreach|macro|parse|if)\\(.*\\)|<#assign.*>"
@@ -4709,6 +4836,9 @@
4709
4836
  },
4710
4837
  {
4711
4838
  "address": "graphql.server.all_resolvers"
4839
+ },
4840
+ {
4841
+ "address": "graphql.server.resolver"
4712
4842
  }
4713
4843
  ],
4714
4844
  "regex": "\\b(?:burpcollaborator\\.net|oastify\\.com)\\b"
@@ -4750,9 +4880,12 @@
4750
4880
  },
4751
4881
  {
4752
4882
  "address": "graphql.server.all_resolvers"
4883
+ },
4884
+ {
4885
+ "address": "graphql.server.resolver"
4753
4886
  }
4754
4887
  ],
4755
- "regex": "\\bqualysperiscope\\.com\\b"
4888
+ "regex": "\\bqualysperiscope\\.com\\b|\\.oscomm\\."
4756
4889
  },
4757
4890
  "operator": "match_regex"
4758
4891
  }
@@ -4791,6 +4924,9 @@
4791
4924
  },
4792
4925
  {
4793
4926
  "address": "graphql.server.all_resolvers"
4927
+ },
4928
+ {
4929
+ "address": "graphql.server.resolver"
4794
4930
  }
4795
4931
  ],
4796
4932
  "regex": "\\bprbly\\.win\\b"
@@ -4831,9 +4967,12 @@
4831
4967
  },
4832
4968
  {
4833
4969
  "address": "graphql.server.all_resolvers"
4970
+ },
4971
+ {
4972
+ "address": "graphql.server.resolver"
4834
4973
  }
4835
4974
  ],
4836
- "regex": "\\b(?:webhook\\.site|\\.canarytokens\\.com|vii\\.one|act1on3\\.ru|gdsburp\\.com)\\b"
4975
+ "regex": "\\b(?:webhook\\.site|\\.canarytokens\\.com|vii\\.one|act1on3\\.ru|gdsburp\\.com|arcticwolf\\.net|oob\\.li|htbiw\\.com|h4\\.vc|mochan\\.cloud|imshopping\\.com|bootstrapnodejs\\.com|mooo-ng\\.com|securitytrails\\.com|canyouhackit\\.io|7bae\\.xyz)\\b"
4837
4976
  },
4838
4977
  "operator": "match_regex"
4839
4978
  }
@@ -4871,6 +5010,9 @@
4871
5010
  },
4872
5011
  {
4873
5012
  "address": "graphql.server.all_resolvers"
5013
+ },
5014
+ {
5015
+ "address": "graphql.server.resolver"
4874
5016
  }
4875
5017
  ],
4876
5018
  "regex": "\\b(?:\\.ngrok\\.io|requestbin\\.com|requestbin\\.net)\\b"
@@ -4912,6 +5054,9 @@
4912
5054
  },
4913
5055
  {
4914
5056
  "address": "graphql.server.all_resolvers"
5057
+ },
5058
+ {
5059
+ "address": "graphql.server.resolver"
4915
5060
  }
4916
5061
  ],
4917
5062
  "regex": "\\bappspidered\\.rapid7\\."
@@ -4953,9 +5098,12 @@
4953
5098
  },
4954
5099
  {
4955
5100
  "address": "graphql.server.all_resolvers"
5101
+ },
5102
+ {
5103
+ "address": "graphql.server.resolver"
4956
5104
  }
4957
5105
  ],
4958
- "regex": "\\b(?:interact\\.sh|oast\\.(?:pro|live|site|online|fun|me))\\b"
5106
+ "regex": "\\b(?:interact\\.sh|oast\\.(?:pro|live|site|online|fun|me)|indusfacefinder\\.in|where\\.land|syhunt\\.net|tssrt\\.de|boardofcyber\\.io|assetnote-callback\\.com|praetorianlabs\\.dev|netspi\\.sh)\\b"
4959
5107
  },
4960
5108
  "operator": "match_regex"
4961
5109
  }
@@ -4994,9 +5142,12 @@
4994
5142
  },
4995
5143
  {
4996
5144
  "address": "graphql.server.all_resolvers"
5145
+ },
5146
+ {
5147
+ "address": "graphql.server.resolver"
4997
5148
  }
4998
5149
  ],
4999
- "regex": "\\b(?:\\.|(?:\\\\|&#)(?:0*46|x0*2e);)r87(?:\\.|(?:\\\\|&#)(?:0*46|x0*2e);)(?:me|com)\\b",
5150
+ "regex": "\\b(?:\\.|(?:\\\\|&#)(?:0*46|x0*2e);)?r87(?:\\.|(?:\\\\|&#)(?:0*46|x0*2e);)(?:me|com)\\b",
5000
5151
  "options": {
5001
5152
  "case_sensitive": false,
5002
5153
  "min_length": 7
@@ -5008,14 +5159,15 @@
5008
5159
  "transformers": []
5009
5160
  },
5010
5161
  {
5011
- "id": "dog-931-001",
5012
- "name": "RFI: URL Payload to well known RFI target",
5162
+ "id": "dog-913-009",
5163
+ "name": "WhiteHat Security OOB domain",
5013
5164
  "tags": {
5014
- "type": "rfi",
5165
+ "type": "commercial_scanner",
5015
5166
  "category": "attack_attempt",
5016
- "cwe": "98",
5017
- "capec": "1000/152/175/253/193",
5018
- "confidence": "1"
5167
+ "tool_name": "WhiteHatSecurity",
5168
+ "cwe": "200",
5169
+ "capec": "1000/118/169",
5170
+ "confidence": "0"
5019
5171
  },
5020
5172
  "conditions": [
5021
5173
  {
@@ -5030,17 +5182,23 @@
5030
5182
  {
5031
5183
  "address": "server.request.path_params"
5032
5184
  },
5185
+ {
5186
+ "address": "server.request.headers.no_cookies"
5187
+ },
5033
5188
  {
5034
5189
  "address": "grpc.server.request.message"
5035
5190
  },
5036
5191
  {
5037
5192
  "address": "graphql.server.all_resolvers"
5193
+ },
5194
+ {
5195
+ "address": "graphql.server.resolver"
5038
5196
  }
5039
5197
  ],
5040
- "regex": "^(?i:file|ftps?|https?).*/rfiinc\\.txt\\?+$",
5198
+ "regex": "\\bwhsec(?:\\.|(?:\\\\|&#)(?:0*46|x0*2e);)us\\b",
5041
5199
  "options": {
5042
- "case_sensitive": true,
5043
- "min_length": 17
5200
+ "case_sensitive": false,
5201
+ "min_length": 8
5044
5202
  }
5045
5203
  },
5046
5204
  "operator": "match_regex"
@@ -5049,33 +5207,46 @@
5049
5207
  "transformers": []
5050
5208
  },
5051
5209
  {
5052
- "id": "dog-934-001",
5053
- "name": "XXE - XML file loads external entity",
5210
+ "id": "dog-913-010",
5211
+ "name": "Nessus OOB domain",
5054
5212
  "tags": {
5055
- "type": "xxe",
5213
+ "type": "commercial_scanner",
5056
5214
  "category": "attack_attempt",
5057
- "cwe": "91",
5058
- "capec": "1000/152/248/250",
5215
+ "tool_name": "Nessus",
5216
+ "cwe": "200",
5217
+ "capec": "1000/118/169",
5059
5218
  "confidence": "0"
5060
5219
  },
5061
5220
  "conditions": [
5062
5221
  {
5063
5222
  "parameters": {
5064
5223
  "inputs": [
5224
+ {
5225
+ "address": "server.request.query"
5226
+ },
5065
5227
  {
5066
5228
  "address": "server.request.body"
5067
5229
  },
5230
+ {
5231
+ "address": "server.request.path_params"
5232
+ },
5233
+ {
5234
+ "address": "server.request.headers.no_cookies"
5235
+ },
5068
5236
  {
5069
5237
  "address": "grpc.server.request.message"
5070
5238
  },
5071
5239
  {
5072
5240
  "address": "graphql.server.all_resolvers"
5241
+ },
5242
+ {
5243
+ "address": "graphql.server.resolver"
5073
5244
  }
5074
5245
  ],
5075
- "regex": "(?:<\\?xml[^>]*>.*)<!ENTITY[^>]+SYSTEM\\s+[^>]+>",
5246
+ "regex": "\\b\\.nessus\\.org\\b",
5076
5247
  "options": {
5077
5248
  "case_sensitive": false,
5078
- "min_length": 24
5249
+ "min_length": 8
5079
5250
  }
5080
5251
  },
5081
5252
  "operator": "match_regex"
@@ -5084,31 +5255,20 @@
5084
5255
  "transformers": []
5085
5256
  },
5086
5257
  {
5087
- "id": "dog-941-001",
5088
- "name": "XSS in source property",
5258
+ "id": "dog-913-011",
5259
+ "name": "Watchtowr OOB domain",
5089
5260
  "tags": {
5090
- "type": "xss",
5261
+ "type": "commercial_scanner",
5091
5262
  "category": "attack_attempt",
5092
- "cwe": "83",
5093
- "capec": "1000/152/242/63/591/243",
5263
+ "tool_name": "Watchtowr",
5264
+ "cwe": "200",
5265
+ "capec": "1000/118/169",
5094
5266
  "confidence": "0"
5095
5267
  },
5096
5268
  "conditions": [
5097
5269
  {
5098
5270
  "parameters": {
5099
5271
  "inputs": [
5100
- {
5101
- "address": "server.request.headers.no_cookies",
5102
- "key_path": [
5103
- "user-agent"
5104
- ]
5105
- },
5106
- {
5107
- "address": "server.request.headers.no_cookies",
5108
- "key_path": [
5109
- "referer"
5110
- ]
5111
- },
5112
5272
  {
5113
5273
  "address": "server.request.query"
5114
5274
  },
@@ -5118,28 +5278,301 @@
5118
5278
  {
5119
5279
  "address": "server.request.path_params"
5120
5280
  },
5281
+ {
5282
+ "address": "server.request.headers.no_cookies"
5283
+ },
5121
5284
  {
5122
5285
  "address": "grpc.server.request.message"
5123
5286
  },
5124
5287
  {
5125
5288
  "address": "graphql.server.all_resolvers"
5289
+ },
5290
+ {
5291
+ "address": "graphql.server.resolver"
5126
5292
  }
5127
5293
  ],
5128
- "regex": "<(?:iframe|esi:include)(?:(?:\\s|/)*\\w+=[\"'\\w]+)*(?:\\s|/)*src(?:doc)?=[\"']?(?:data:|javascript:|http:|//)[^\\s'\"]+['\"]?",
5294
+ "regex": "\\bwatchtowr\\.com\\b",
5129
5295
  "options": {
5130
- "min_length": 14
5296
+ "case_sensitive": false,
5297
+ "min_length": 8
5131
5298
  }
5132
5299
  },
5133
5300
  "operator": "match_regex"
5134
5301
  }
5135
5302
  ],
5136
- "transformers": [
5137
- "removeNulls",
5138
- "urlDecodeUni"
5139
- ]
5303
+ "transformers": []
5140
5304
  },
5141
5305
  {
5142
- "id": "dog-942-001",
5306
+ "id": "dog-913-012",
5307
+ "name": "AppCheck NG OOB domain",
5308
+ "tags": {
5309
+ "type": "commercial_scanner",
5310
+ "category": "attack_attempt",
5311
+ "tool_name": "AppCheckNG",
5312
+ "cwe": "200",
5313
+ "capec": "1000/118/169",
5314
+ "confidence": "0"
5315
+ },
5316
+ "conditions": [
5317
+ {
5318
+ "parameters": {
5319
+ "inputs": [
5320
+ {
5321
+ "address": "server.request.query"
5322
+ },
5323
+ {
5324
+ "address": "server.request.body"
5325
+ },
5326
+ {
5327
+ "address": "server.request.path_params"
5328
+ },
5329
+ {
5330
+ "address": "server.request.headers.no_cookies"
5331
+ },
5332
+ {
5333
+ "address": "grpc.server.request.message"
5334
+ },
5335
+ {
5336
+ "address": "graphql.server.all_resolvers"
5337
+ },
5338
+ {
5339
+ "address": "graphql.server.resolver"
5340
+ }
5341
+ ],
5342
+ "regex": "\\bptst\\.io\\b",
5343
+ "options": {
5344
+ "case_sensitive": false,
5345
+ "min_length": 7
5346
+ }
5347
+ },
5348
+ "operator": "match_regex"
5349
+ }
5350
+ ],
5351
+ "transformers": []
5352
+ },
5353
+ {
5354
+ "id": "dog-920-001",
5355
+ "name": "JWT authentication bypass",
5356
+ "tags": {
5357
+ "type": "http_protocol_violation",
5358
+ "category": "attack_attempt",
5359
+ "cwe": "287",
5360
+ "capec": "1000/225/115",
5361
+ "confidence": "0"
5362
+ },
5363
+ "conditions": [
5364
+ {
5365
+ "parameters": {
5366
+ "inputs": [
5367
+ {
5368
+ "address": "server.request.cookies"
5369
+ },
5370
+ {
5371
+ "address": "server.request.headers.no_cookies",
5372
+ "key_path": [
5373
+ "authorization"
5374
+ ]
5375
+ }
5376
+ ],
5377
+ "regex": "^(?:Bearer )?ey[A-Za-z0-9+_\\-/]*([QY][UW]x[Hn]Ij([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gOiAi[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]Ij([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]IDogI[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]IiA6ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]IDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]Ij([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gOiAi[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciOiAi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*IDogI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]IDogI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yIgO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciIDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*IDogI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yIgOiJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]IDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]IDogI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yI6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yI6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]IiA6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*IDogI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yIgO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]Ij([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciOiJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*IDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gOiJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yIgOiAi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]IDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]IjogI[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]IiA6I[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6I[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yI6I[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yI6ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciIDogI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]IiA6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]IiA6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*IDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ciO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6I[km]5[Pv][Tb][km][U-X]|[QY][UW]x[Hn]IiA6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yI6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yIgO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gOiJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ID([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gI[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yIgO([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[\\x2b\\x2f-9A-Za-z]ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*ICJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]I([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*IDoi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]A6I[km]5[Pv][Tb][km][U-X]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]y([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gOiJ[Ou][Tb][02]5[Fl]|[QY][UW]x[Hn]Ijoi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z]{2}[159BFJNRVZdhlptx][Bh][Tb][EG]ci([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[048AEIMQUYcgkosw]gOiAi[Tb][km]9[Ou][RZ][Q-Za-f]|[\\x2b\\x2f-9A-Za-z][02EGUWkm]F[Ms][RZ]yI6([048ACEIMQSUYcgikoswy]|[\\x2b\\x2f-9A-Za-z]I)*[CSiy]Ai[Tb][km]9[Ou][RZ][Q-Za-f])[A-Za-z0-9+-/]*\\.[A-Za-z0-9+_\\-/]+\\.(?:[A-Za-z0-9+_\\-/]+)?$",
5378
+ "options": {
5379
+ "case_sensitive": true
5380
+ }
5381
+ },
5382
+ "operator": "match_regex"
5383
+ }
5384
+ ],
5385
+ "transformers": []
5386
+ },
5387
+ {
5388
+ "id": "dog-931-001",
5389
+ "name": "RFI: URL Payload to well known RFI target",
5390
+ "tags": {
5391
+ "type": "rfi",
5392
+ "category": "attack_attempt",
5393
+ "cwe": "98",
5394
+ "capec": "1000/152/175/253/193",
5395
+ "confidence": "1"
5396
+ },
5397
+ "conditions": [
5398
+ {
5399
+ "parameters": {
5400
+ "inputs": [
5401
+ {
5402
+ "address": "server.request.query"
5403
+ },
5404
+ {
5405
+ "address": "server.request.body"
5406
+ },
5407
+ {
5408
+ "address": "server.request.path_params"
5409
+ },
5410
+ {
5411
+ "address": "grpc.server.request.message"
5412
+ },
5413
+ {
5414
+ "address": "graphql.server.all_resolvers"
5415
+ },
5416
+ {
5417
+ "address": "graphql.server.resolver"
5418
+ }
5419
+ ],
5420
+ "regex": "^(?i:file|ftps?|https?).*/rfiinc\\.txt\\?+$",
5421
+ "options": {
5422
+ "case_sensitive": true,
5423
+ "min_length": 17
5424
+ }
5425
+ },
5426
+ "operator": "match_regex"
5427
+ }
5428
+ ],
5429
+ "transformers": []
5430
+ },
5431
+ {
5432
+ "id": "dog-932-100",
5433
+ "name": "Shell spawn executing network command",
5434
+ "tags": {
5435
+ "type": "command_injection",
5436
+ "category": "attack_attempt",
5437
+ "cwe": "77",
5438
+ "capec": "1000/152/248/88",
5439
+ "confidence": "0"
5440
+ },
5441
+ "conditions": [
5442
+ {
5443
+ "parameters": {
5444
+ "inputs": [
5445
+ {
5446
+ "address": "server.request.query"
5447
+ },
5448
+ {
5449
+ "address": "server.request.body"
5450
+ },
5451
+ {
5452
+ "address": "server.request.path_params"
5453
+ },
5454
+ {
5455
+ "address": "server.request.headers.no_cookies"
5456
+ },
5457
+ {
5458
+ "address": "grpc.server.request.message"
5459
+ },
5460
+ {
5461
+ "address": "graphql.server.all_resolvers"
5462
+ },
5463
+ {
5464
+ "address": "graphql.server.resolver"
5465
+ }
5466
+ ],
5467
+ "regex": "(?:(?:['\"\\x60({|;&]|(?:^|['\"\\x60({|;&])(?:cmd(?:\\.exe)?\\s+(?:/\\w(?::\\w+)?\\s+)*))(?:ping|curl|wget|telnet)|\\bnslookup)[\\s,]",
5468
+ "options": {
5469
+ "case_sensitive": true,
5470
+ "min_length": 5
5471
+ }
5472
+ },
5473
+ "operator": "match_regex"
5474
+ }
5475
+ ],
5476
+ "transformers": []
5477
+ },
5478
+ {
5479
+ "id": "dog-934-001",
5480
+ "name": "XXE - XML file loads external entity",
5481
+ "tags": {
5482
+ "type": "xxe",
5483
+ "category": "attack_attempt",
5484
+ "cwe": "91",
5485
+ "capec": "1000/152/248/250",
5486
+ "confidence": "1"
5487
+ },
5488
+ "conditions": [
5489
+ {
5490
+ "parameters": {
5491
+ "inputs": [
5492
+ {
5493
+ "address": "server.request.body"
5494
+ },
5495
+ {
5496
+ "address": "grpc.server.request.message"
5497
+ },
5498
+ {
5499
+ "address": "graphql.server.all_resolvers"
5500
+ },
5501
+ {
5502
+ "address": "graphql.server.resolver"
5503
+ }
5504
+ ],
5505
+ "regex": "(?:<\\?xml[^>]*>.*)<!ENTITY[^>]+SYSTEM\\s+[^>]+>",
5506
+ "options": {
5507
+ "case_sensitive": false,
5508
+ "min_length": 24
5509
+ }
5510
+ },
5511
+ "operator": "match_regex"
5512
+ }
5513
+ ],
5514
+ "transformers": []
5515
+ },
5516
+ {
5517
+ "id": "dog-941-001",
5518
+ "name": "XSS in source property",
5519
+ "tags": {
5520
+ "type": "xss",
5521
+ "category": "attack_attempt",
5522
+ "cwe": "83",
5523
+ "capec": "1000/152/242/63/591/243",
5524
+ "confidence": "1"
5525
+ },
5526
+ "conditions": [
5527
+ {
5528
+ "parameters": {
5529
+ "inputs": [
5530
+ {
5531
+ "address": "server.request.headers.no_cookies",
5532
+ "key_path": [
5533
+ "user-agent"
5534
+ ]
5535
+ },
5536
+ {
5537
+ "address": "server.request.headers.no_cookies",
5538
+ "key_path": [
5539
+ "referer"
5540
+ ]
5541
+ },
5542
+ {
5543
+ "address": "server.request.query"
5544
+ },
5545
+ {
5546
+ "address": "server.request.body"
5547
+ },
5548
+ {
5549
+ "address": "server.request.path_params"
5550
+ },
5551
+ {
5552
+ "address": "grpc.server.request.message"
5553
+ },
5554
+ {
5555
+ "address": "graphql.server.all_resolvers"
5556
+ },
5557
+ {
5558
+ "address": "graphql.server.resolver"
5559
+ }
5560
+ ],
5561
+ "regex": "<(?:iframe|esi:include)(?:(?:\\s|/)*\\w+=[\"'\\w]+)*(?:\\s|/)*src(?:doc)?=[\"']?(?:data:|javascript:|http:|dns:|//)[^\\s'\"]+['\"]?",
5562
+ "options": {
5563
+ "min_length": 14
5564
+ }
5565
+ },
5566
+ "operator": "match_regex"
5567
+ }
5568
+ ],
5569
+ "transformers": [
5570
+ "removeNulls",
5571
+ "urlDecodeUni"
5572
+ ]
5573
+ },
5574
+ {
5575
+ "id": "dog-942-001",
5143
5576
  "name": "Blind XSS callback domains",
5144
5577
  "tags": {
5145
5578
  "type": "xss",
@@ -5169,9 +5602,12 @@
5169
5602
  },
5170
5603
  {
5171
5604
  "address": "graphql.server.all_resolvers"
5605
+ },
5606
+ {
5607
+ "address": "graphql.server.resolver"
5172
5608
  }
5173
5609
  ],
5174
- "regex": "https?:\\/\\/(?:.*\\.)?(?:bxss\\.in|xss\\.ht|js\\.rip)",
5610
+ "regex": "https?:\\/\\/(?:.*\\.)?(?:bxss\\.(?:in|me)|xss\\.ht|js\\.rip)",
5175
5611
  "options": {
5176
5612
  "case_sensitive": false
5177
5613
  }
@@ -5209,6 +5645,9 @@
5209
5645
  {
5210
5646
  "operator": "phrase_match",
5211
5647
  "parameters": {
5648
+ "options": {
5649
+ "enforce_word_boundary": true
5650
+ },
5212
5651
  "inputs": [
5213
5652
  {
5214
5653
  "address": "server.request.uri.raw"
@@ -5409,7 +5848,8 @@
5409
5848
  "/website.php",
5410
5849
  "/stats.php",
5411
5850
  "/assets/plugins/mp3_id/mp3_id.php",
5412
- "/siteminderagent/forms/smpwservices.fcc"
5851
+ "/siteminderagent/forms/smpwservices.fcc",
5852
+ "/eval-stdin.php"
5413
5853
  ]
5414
5854
  }
5415
5855
  }
@@ -5755,10 +6195,246 @@
5755
6195
  "transformers": []
5756
6196
  },
5757
6197
  {
5758
- "id": "sqr-000-001",
5759
- "name": "SSRF: Try to access the credential manager of the main cloud services",
6198
+ "id": "nfd-000-010",
6199
+ "name": "Detect failed attempts to find API documentation",
5760
6200
  "tags": {
5761
- "type": "ssrf",
6201
+ "type": "security_scanner",
6202
+ "category": "attack_attempt",
6203
+ "cwe": "200",
6204
+ "capec": "1000/118/169",
6205
+ "confidence": "0"
6206
+ },
6207
+ "conditions": [
6208
+ {
6209
+ "operator": "match_regex",
6210
+ "parameters": {
6211
+ "inputs": [
6212
+ {
6213
+ "address": "server.response.status"
6214
+ }
6215
+ ],
6216
+ "regex": "^404$",
6217
+ "options": {
6218
+ "case_sensitive": true
6219
+ }
6220
+ }
6221
+ },
6222
+ {
6223
+ "operator": "match_regex",
6224
+ "parameters": {
6225
+ "inputs": [
6226
+ {
6227
+ "address": "server.request.uri.raw"
6228
+ }
6229
+ ],
6230
+ "regex": "(?:/swagger\\b|/api[-/]docs?\\b)",
6231
+ "options": {
6232
+ "case_sensitive": false
6233
+ }
6234
+ }
6235
+ }
6236
+ ],
6237
+ "transformers": []
6238
+ },
6239
+ {
6240
+ "id": "rasp-930-100",
6241
+ "name": "Local file inclusion exploit",
6242
+ "tags": {
6243
+ "type": "lfi",
6244
+ "category": "vulnerability_trigger",
6245
+ "cwe": "22",
6246
+ "capec": "1000/255/153/126",
6247
+ "confidence": "0",
6248
+ "module": "rasp"
6249
+ },
6250
+ "conditions": [
6251
+ {
6252
+ "parameters": {
6253
+ "resource": [
6254
+ {
6255
+ "address": "server.io.fs.file"
6256
+ }
6257
+ ],
6258
+ "params": [
6259
+ {
6260
+ "address": "server.request.query"
6261
+ },
6262
+ {
6263
+ "address": "server.request.body"
6264
+ },
6265
+ {
6266
+ "address": "server.request.path_params"
6267
+ },
6268
+ {
6269
+ "address": "grpc.server.request.message"
6270
+ },
6271
+ {
6272
+ "address": "graphql.server.all_resolvers"
6273
+ },
6274
+ {
6275
+ "address": "graphql.server.resolver"
6276
+ }
6277
+ ]
6278
+ },
6279
+ "operator": "lfi_detector"
6280
+ }
6281
+ ],
6282
+ "transformers": [],
6283
+ "on_match": [
6284
+ "stack_trace"
6285
+ ]
6286
+ },
6287
+ {
6288
+ "id": "rasp-932-100",
6289
+ "name": "Shell injection exploit",
6290
+ "tags": {
6291
+ "type": "command_injection",
6292
+ "category": "vulnerability_trigger",
6293
+ "cwe": "77",
6294
+ "capec": "1000/152/248/88",
6295
+ "confidence": "0",
6296
+ "module": "rasp"
6297
+ },
6298
+ "conditions": [
6299
+ {
6300
+ "parameters": {
6301
+ "resource": [
6302
+ {
6303
+ "address": "server.sys.shell.cmd"
6304
+ }
6305
+ ],
6306
+ "params": [
6307
+ {
6308
+ "address": "server.request.query"
6309
+ },
6310
+ {
6311
+ "address": "server.request.body"
6312
+ },
6313
+ {
6314
+ "address": "server.request.path_params"
6315
+ },
6316
+ {
6317
+ "address": "grpc.server.request.message"
6318
+ },
6319
+ {
6320
+ "address": "graphql.server.all_resolvers"
6321
+ },
6322
+ {
6323
+ "address": "graphql.server.resolver"
6324
+ }
6325
+ ]
6326
+ },
6327
+ "operator": "shi_detector"
6328
+ }
6329
+ ],
6330
+ "transformers": [],
6331
+ "on_match": [
6332
+ "stack_trace"
6333
+ ]
6334
+ },
6335
+ {
6336
+ "id": "rasp-934-100",
6337
+ "name": "Server-side request forgery exploit",
6338
+ "tags": {
6339
+ "type": "ssrf",
6340
+ "category": "vulnerability_trigger",
6341
+ "cwe": "918",
6342
+ "capec": "1000/225/115/664",
6343
+ "confidence": "0",
6344
+ "module": "rasp"
6345
+ },
6346
+ "conditions": [
6347
+ {
6348
+ "parameters": {
6349
+ "resource": [
6350
+ {
6351
+ "address": "server.io.net.url"
6352
+ }
6353
+ ],
6354
+ "params": [
6355
+ {
6356
+ "address": "server.request.query"
6357
+ },
6358
+ {
6359
+ "address": "server.request.body"
6360
+ },
6361
+ {
6362
+ "address": "server.request.path_params"
6363
+ },
6364
+ {
6365
+ "address": "grpc.server.request.message"
6366
+ },
6367
+ {
6368
+ "address": "graphql.server.all_resolvers"
6369
+ },
6370
+ {
6371
+ "address": "graphql.server.resolver"
6372
+ }
6373
+ ]
6374
+ },
6375
+ "operator": "ssrf_detector"
6376
+ }
6377
+ ],
6378
+ "transformers": [],
6379
+ "on_match": [
6380
+ "stack_trace"
6381
+ ]
6382
+ },
6383
+ {
6384
+ "id": "rasp-942-100",
6385
+ "name": "SQL injection exploit",
6386
+ "tags": {
6387
+ "type": "sql_injection",
6388
+ "category": "vulnerability_trigger",
6389
+ "cwe": "89",
6390
+ "capec": "1000/152/248/66",
6391
+ "confidence": "0",
6392
+ "module": "rasp"
6393
+ },
6394
+ "conditions": [
6395
+ {
6396
+ "parameters": {
6397
+ "resource": [
6398
+ {
6399
+ "address": "server.db.statement"
6400
+ }
6401
+ ],
6402
+ "params": [
6403
+ {
6404
+ "address": "server.request.query"
6405
+ },
6406
+ {
6407
+ "address": "server.request.body"
6408
+ },
6409
+ {
6410
+ "address": "server.request.path_params"
6411
+ },
6412
+ {
6413
+ "address": "graphql.server.all_resolvers"
6414
+ },
6415
+ {
6416
+ "address": "graphql.server.resolver"
6417
+ }
6418
+ ],
6419
+ "db_type": [
6420
+ {
6421
+ "address": "server.db.system"
6422
+ }
6423
+ ]
6424
+ },
6425
+ "operator": "sqli_detector"
6426
+ }
6427
+ ],
6428
+ "transformers": [],
6429
+ "on_match": [
6430
+ "stack_trace"
6431
+ ]
6432
+ },
6433
+ {
6434
+ "id": "sqr-000-001",
6435
+ "name": "SSRF: Try to access the credential manager of the main cloud services",
6436
+ "tags": {
6437
+ "type": "ssrf",
5762
6438
  "category": "attack_attempt",
5763
6439
  "cwe": "918",
5764
6440
  "capec": "1000/225/115/664",
@@ -5782,6 +6458,9 @@
5782
6458
  },
5783
6459
  {
5784
6460
  "address": "graphql.server.all_resolvers"
6461
+ },
6462
+ {
6463
+ "address": "graphql.server.resolver"
5785
6464
  }
5786
6465
  ],
5787
6466
  "regex": "(?i)^\\W*((http|ftp)s?://)?\\W*((::f{4}:)?(169|(0x)?0*a9|0+251)\\.?(254|(0x)?0*fe|0+376)[0-9a-fx\\.:]+|metadata\\.google\\.internal|metadata\\.goog)\\W*/",
@@ -5823,6 +6502,9 @@
5823
6502
  },
5824
6503
  {
5825
6504
  "address": "graphql.server.all_resolvers"
6505
+ },
6506
+ {
6507
+ "address": "graphql.server.resolver"
5826
6508
  }
5827
6509
  ],
5828
6510
  "regex": "require\\(['\"][\\w\\.]+['\"]\\)|process\\.\\w+\\([\\w\\.]*\\)|\\.toString\\(\\)",
@@ -5868,6 +6550,9 @@
5868
6550
  },
5869
6551
  {
5870
6552
  "address": "graphql.server.all_resolvers"
6553
+ },
6554
+ {
6555
+ "address": "graphql.server.resolver"
5871
6556
  }
5872
6557
  ],
5873
6558
  "regex": "(?i)[&|]\\s*type\\s+%\\w+%\\\\+\\w+\\.ini\\s*[&|]"
@@ -5908,6 +6593,9 @@
5908
6593
  },
5909
6594
  {
5910
6595
  "address": "graphql.server.all_resolvers"
6596
+ },
6597
+ {
6598
+ "address": "graphql.server.resolver"
5911
6599
  }
5912
6600
  ],
5913
6601
  "regex": "(?i)[&|]\\s*cat\\s*\\/etc\\/[\\w\\.\\/]*passwd\\s*[&|]"
@@ -5950,6 +6638,9 @@
5950
6638
  },
5951
6639
  {
5952
6640
  "address": "graphql.server.all_resolvers"
6641
+ },
6642
+ {
6643
+ "address": "graphql.server.resolver"
5953
6644
  }
5954
6645
  ],
5955
6646
  "regex": "(?i)[&|]\\s*timeout\\s+/t\\s+\\d+\\s*[&|]"
@@ -5987,6 +6678,9 @@
5987
6678
  },
5988
6679
  {
5989
6680
  "address": "graphql.server.all_resolvers"
6681
+ },
6682
+ {
6683
+ "address": "graphql.server.resolver"
5990
6684
  }
5991
6685
  ],
5992
6686
  "regex": "http(s?):\\/\\/([A-Za-z0-9\\.\\-\\_]+|\\[[A-Fa-f0-9\\:]+\\]|):5986\\/wsman",
@@ -6027,6 +6721,9 @@
6027
6721
  },
6028
6722
  {
6029
6723
  "address": "graphql.server.all_resolvers"
6724
+ },
6725
+ {
6726
+ "address": "graphql.server.resolver"
6030
6727
  }
6031
6728
  ],
6032
6729
  "regex": "^(jar:)?(http|https):\\/\\/([0-9oq]{1,5}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}|[0-9]{1,10})(:[0-9]{1,5})?(\\/[^:@]*)?$"
@@ -6066,6 +6763,9 @@
6066
6763
  },
6067
6764
  {
6068
6765
  "address": "graphql.server.all_resolvers"
6766
+ },
6767
+ {
6768
+ "address": "graphql.server.resolver"
6069
6769
  }
6070
6770
  ],
6071
6771
  "regex": "^(jar:)?(http|https):\\/\\/((\\[)?[:0-9a-f\\.x]{2,}(\\])?)(:[0-9]{1,5})?(\\/[^:@]*)?$"
@@ -6108,9 +6808,12 @@
6108
6808
  },
6109
6809
  {
6110
6810
  "address": "graphql.server.all_resolvers"
6811
+ },
6812
+ {
6813
+ "address": "graphql.server.resolver"
6111
6814
  }
6112
6815
  ],
6113
- "regex": "(http|https):\\/\\/(?:.*\\.)?(?:burpcollaborator\\.net|localtest\\.me|mail\\.ebc\\.apple\\.com|bugbounty\\.dod\\.network|.*\\.[nx]ip\\.io|oastify\\.com|oast\\.(?:pro|live|site|online|fun|me)|sslip\\.io|requestbin\\.com|requestbin\\.net|hookbin\\.com|webhook\\.site|canarytokens\\.com|interact\\.sh|ngrok\\.io|bugbounty\\.click|prbly\\.win|qualysperiscope\\.com|vii.one|act1on3.ru)"
6816
+ "regex": "(http|https):\\/\\/(?:.*\\.)?(?:burpcollaborator\\.net|localtest\\.me|mail\\.ebc\\.apple\\.com|bugbounty\\.dod\\.network|.*\\.[nx]ip\\.io|oastify\\.com|oast\\.(?:pro|live|site|online|fun|me)|sslip\\.io|requestbin\\.com|requestbin\\.net|hookbin\\.com|webhook\\.site|canarytokens\\.com|interact\\.sh|ngrok\\.io|bugbounty\\.click|prbly\\.win|qualysperiscope\\.com|vii\\.one|act1on3\\.ru)"
6114
6817
  },
6115
6818
  "operator": "match_regex"
6116
6819
  }
@@ -6144,10 +6847,10 @@
6144
6847
  "address": "server.request.headers.no_cookies"
6145
6848
  },
6146
6849
  {
6147
- "address": "grpc.server.request.message"
6850
+ "address": "graphql.server.all_resolvers"
6148
6851
  },
6149
6852
  {
6150
- "address": "graphql.server.all_resolvers"
6853
+ "address": "graphql.server.resolver"
6151
6854
  }
6152
6855
  ],
6153
6856
  "regex": "^(jar:)?((file|netdoc):\\/\\/[\\\\\\/]+|(dict|gopher|ldap|sftp|tftp):\\/\\/.*:[0-9]{1,5})"
@@ -6189,10 +6892,10 @@
6189
6892
  "address": "server.request.headers.no_cookies"
6190
6893
  },
6191
6894
  {
6192
- "address": "grpc.server.request.message"
6895
+ "address": "graphql.server.all_resolvers"
6193
6896
  },
6194
6897
  {
6195
- "address": "graphql.server.all_resolvers"
6898
+ "address": "graphql.server.resolver"
6196
6899
  }
6197
6900
  ],
6198
6901
  "regex": "\\${[^j]*j[^n]*n[^d]*d[^i]*i[^:]*:[^}]*}"
@@ -7610,6 +8313,35 @@
7610
8313
  ],
7611
8314
  "transformers": []
7612
8315
  },
8316
+ {
8317
+ "id": "ua0-600-63x",
8318
+ "name": "FeroxBuster",
8319
+ "tags": {
8320
+ "type": "attack_tool",
8321
+ "category": "attack_attempt",
8322
+ "cwe": "200",
8323
+ "capec": "1000/118/169",
8324
+ "tool_name": "feroxbuster",
8325
+ "confidence": "1"
8326
+ },
8327
+ "conditions": [
8328
+ {
8329
+ "parameters": {
8330
+ "inputs": [
8331
+ {
8332
+ "address": "server.request.headers.no_cookies",
8333
+ "key_path": [
8334
+ "user-agent"
8335
+ ]
8336
+ }
8337
+ ],
8338
+ "regex": "^feroxbuster/"
8339
+ },
8340
+ "operator": "match_regex"
8341
+ }
8342
+ ],
8343
+ "transformers": []
8344
+ },
7613
8345
  {
7614
8346
  "id": "ua0-600-6xx",
7615
8347
  "name": "Stealthy scanner",
@@ -7631,7 +8363,7 @@
7631
8363
  ]
7632
8364
  }
7633
8365
  ],
7634
- "regex": "mozilla/4\\.0 \\(compatible(; msie (?:6\\.0; win32|4\\.0; Windows NT))?\\)",
8366
+ "regex": "mozilla/4\\.0 \\(compatible(; msie (?:6\\.0; (?:win32|Windows NT 5\\.0)|4\\.0; Windows NT))?\\)",
7635
8367
  "options": {
7636
8368
  "case_sensitive": false
7637
8369
  }
@@ -7699,5 +8431,1349 @@
7699
8431
  ],
7700
8432
  "transformers": []
7701
8433
  }
8434
+ ],
8435
+ "processors": [
8436
+ {
8437
+ "id": "http-endpoint-fingerprint",
8438
+ "generator": "http_endpoint_fingerprint",
8439
+ "conditions": [
8440
+ {
8441
+ "operator": "exists",
8442
+ "parameters": {
8443
+ "inputs": [
8444
+ {
8445
+ "address": "waf.context.event"
8446
+ },
8447
+ {
8448
+ "address": "server.business_logic.users.login.failure"
8449
+ },
8450
+ {
8451
+ "address": "server.business_logic.users.login.success"
8452
+ }
8453
+ ]
8454
+ }
8455
+ }
8456
+ ],
8457
+ "parameters": {
8458
+ "mappings": [
8459
+ {
8460
+ "method": [
8461
+ {
8462
+ "address": "server.request.method"
8463
+ }
8464
+ ],
8465
+ "uri_raw": [
8466
+ {
8467
+ "address": "server.request.uri.raw"
8468
+ }
8469
+ ],
8470
+ "body": [
8471
+ {
8472
+ "address": "server.request.body"
8473
+ }
8474
+ ],
8475
+ "query": [
8476
+ {
8477
+ "address": "server.request.query"
8478
+ }
8479
+ ],
8480
+ "output": "_dd.appsec.fp.http.endpoint"
8481
+ }
8482
+ ]
8483
+ },
8484
+ "evaluate": false,
8485
+ "output": true
8486
+ },
8487
+ {
8488
+ "id": "extract-content",
8489
+ "generator": "extract_schema",
8490
+ "conditions": [
8491
+ {
8492
+ "operator": "equals",
8493
+ "parameters": {
8494
+ "inputs": [
8495
+ {
8496
+ "address": "waf.context.processor",
8497
+ "key_path": [
8498
+ "extract-schema"
8499
+ ]
8500
+ }
8501
+ ],
8502
+ "type": "boolean",
8503
+ "value": true
8504
+ }
8505
+ }
8506
+ ],
8507
+ "parameters": {
8508
+ "mappings": [
8509
+ {
8510
+ "inputs": [
8511
+ {
8512
+ "address": "server.request.body"
8513
+ }
8514
+ ],
8515
+ "output": "_dd.appsec.s.req.body"
8516
+ },
8517
+ {
8518
+ "inputs": [
8519
+ {
8520
+ "address": "server.request.cookies"
8521
+ }
8522
+ ],
8523
+ "output": "_dd.appsec.s.req.cookies"
8524
+ },
8525
+ {
8526
+ "inputs": [
8527
+ {
8528
+ "address": "server.request.query"
8529
+ }
8530
+ ],
8531
+ "output": "_dd.appsec.s.req.query"
8532
+ },
8533
+ {
8534
+ "inputs": [
8535
+ {
8536
+ "address": "server.request.path_params"
8537
+ }
8538
+ ],
8539
+ "output": "_dd.appsec.s.req.params"
8540
+ },
8541
+ {
8542
+ "inputs": [
8543
+ {
8544
+ "address": "server.response.body"
8545
+ }
8546
+ ],
8547
+ "output": "_dd.appsec.s.res.body"
8548
+ },
8549
+ {
8550
+ "inputs": [
8551
+ {
8552
+ "address": "graphql.server.all_resolvers"
8553
+ }
8554
+ ],
8555
+ "output": "_dd.appsec.s.graphql.all_resolvers"
8556
+ },
8557
+ {
8558
+ "inputs": [
8559
+ {
8560
+ "address": "graphql.server.resolver"
8561
+ }
8562
+ ],
8563
+ "output": "_dd.appsec.s.graphql.resolver"
8564
+ }
8565
+ ],
8566
+ "scanners": [
8567
+ {
8568
+ "tags": {
8569
+ "category": "payment"
8570
+ }
8571
+ },
8572
+ {
8573
+ "tags": {
8574
+ "category": "pii"
8575
+ }
8576
+ }
8577
+ ]
8578
+ },
8579
+ "evaluate": false,
8580
+ "output": true
8581
+ },
8582
+ {
8583
+ "id": "extract-headers",
8584
+ "generator": "extract_schema",
8585
+ "conditions": [
8586
+ {
8587
+ "operator": "equals",
8588
+ "parameters": {
8589
+ "inputs": [
8590
+ {
8591
+ "address": "waf.context.processor",
8592
+ "key_path": [
8593
+ "extract-schema"
8594
+ ]
8595
+ }
8596
+ ],
8597
+ "type": "boolean",
8598
+ "value": true
8599
+ }
8600
+ }
8601
+ ],
8602
+ "parameters": {
8603
+ "mappings": [
8604
+ {
8605
+ "inputs": [
8606
+ {
8607
+ "address": "server.request.headers.no_cookies"
8608
+ }
8609
+ ],
8610
+ "output": "_dd.appsec.s.req.headers"
8611
+ },
8612
+ {
8613
+ "inputs": [
8614
+ {
8615
+ "address": "server.response.headers.no_cookies"
8616
+ }
8617
+ ],
8618
+ "output": "_dd.appsec.s.res.headers"
8619
+ }
8620
+ ],
8621
+ "scanners": [
8622
+ {
8623
+ "tags": {
8624
+ "category": "credentials"
8625
+ }
8626
+ },
8627
+ {
8628
+ "tags": {
8629
+ "category": "pii"
8630
+ }
8631
+ }
8632
+ ]
8633
+ },
8634
+ "evaluate": false,
8635
+ "output": true
8636
+ },
8637
+ {
8638
+ "id": "http-header-fingerprint",
8639
+ "generator": "http_header_fingerprint",
8640
+ "conditions": [
8641
+ {
8642
+ "operator": "exists",
8643
+ "parameters": {
8644
+ "inputs": [
8645
+ {
8646
+ "address": "waf.context.event"
8647
+ },
8648
+ {
8649
+ "address": "server.business_logic.users.login.failure"
8650
+ },
8651
+ {
8652
+ "address": "server.business_logic.users.login.success"
8653
+ }
8654
+ ]
8655
+ }
8656
+ }
8657
+ ],
8658
+ "parameters": {
8659
+ "mappings": [
8660
+ {
8661
+ "headers": [
8662
+ {
8663
+ "address": "server.request.headers.no_cookies"
8664
+ }
8665
+ ],
8666
+ "output": "_dd.appsec.fp.http.header"
8667
+ }
8668
+ ]
8669
+ },
8670
+ "evaluate": false,
8671
+ "output": true
8672
+ },
8673
+ {
8674
+ "id": "http-network-fingerprint",
8675
+ "generator": "http_network_fingerprint",
8676
+ "conditions": [
8677
+ {
8678
+ "operator": "exists",
8679
+ "parameters": {
8680
+ "inputs": [
8681
+ {
8682
+ "address": "waf.context.event"
8683
+ },
8684
+ {
8685
+ "address": "server.business_logic.users.login.failure"
8686
+ },
8687
+ {
8688
+ "address": "server.business_logic.users.login.success"
8689
+ }
8690
+ ]
8691
+ }
8692
+ }
8693
+ ],
8694
+ "parameters": {
8695
+ "mappings": [
8696
+ {
8697
+ "headers": [
8698
+ {
8699
+ "address": "server.request.headers.no_cookies"
8700
+ }
8701
+ ],
8702
+ "output": "_dd.appsec.fp.http.network"
8703
+ }
8704
+ ]
8705
+ },
8706
+ "evaluate": false,
8707
+ "output": true
8708
+ },
8709
+ {
8710
+ "id": "session-fingerprint",
8711
+ "generator": "session_fingerprint",
8712
+ "conditions": [
8713
+ {
8714
+ "operator": "exists",
8715
+ "parameters": {
8716
+ "inputs": [
8717
+ {
8718
+ "address": "waf.context.event"
8719
+ },
8720
+ {
8721
+ "address": "server.business_logic.users.login.failure"
8722
+ },
8723
+ {
8724
+ "address": "server.business_logic.users.login.success"
8725
+ }
8726
+ ]
8727
+ }
8728
+ }
8729
+ ],
8730
+ "parameters": {
8731
+ "mappings": [
8732
+ {
8733
+ "cookies": [
8734
+ {
8735
+ "address": "server.request.cookies"
8736
+ }
8737
+ ],
8738
+ "session_id": [
8739
+ {
8740
+ "address": "usr.session_id"
8741
+ }
8742
+ ],
8743
+ "user_id": [
8744
+ {
8745
+ "address": "usr.id"
8746
+ }
8747
+ ],
8748
+ "output": "_dd.appsec.fp.session"
8749
+ }
8750
+ ]
8751
+ },
8752
+ "evaluate": false,
8753
+ "output": true
8754
+ }
8755
+ ],
8756
+ "scanners": [
8757
+ {
8758
+ "id": "406f8606-52c4-4663-8db9-df70f9e8766c",
8759
+ "name": "ZIP Code",
8760
+ "key": {
8761
+ "operator": "match_regex",
8762
+ "parameters": {
8763
+ "regex": "\\b(?:zip|postal)\\b",
8764
+ "options": {
8765
+ "case_sensitive": false,
8766
+ "min_length": 3
8767
+ }
8768
+ }
8769
+ },
8770
+ "value": {
8771
+ "operator": "match_regex",
8772
+ "parameters": {
8773
+ "regex": "^[0-9]{5}(?:-[0-9]{4})?$",
8774
+ "options": {
8775
+ "case_sensitive": true,
8776
+ "min_length": 5
8777
+ }
8778
+ }
8779
+ },
8780
+ "tags": {
8781
+ "type": "zipcode",
8782
+ "category": "address"
8783
+ }
8784
+ },
8785
+ {
8786
+ "id": "JU1sRk3mSzqSUJn6GrVn7g",
8787
+ "name": "American Express Card Scanner (4+4+4+3 digits)",
8788
+ "key": {
8789
+ "operator": "match_regex",
8790
+ "parameters": {
8791
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
8792
+ "options": {
8793
+ "case_sensitive": false,
8794
+ "min_length": 3
8795
+ }
8796
+ }
8797
+ },
8798
+ "value": {
8799
+ "operator": "match_regex",
8800
+ "parameters": {
8801
+ "regex": "\\b3[47]\\d{2}(?:(?:\\s\\d{4}\\s\\d{4}\\s\\d{3})|(?:\\,\\d{4}\\,\\d{4}\\,\\d{3})|(?:-\\d{4}-\\d{4}-\\d{3})|(?:\\.\\d{4}\\.\\d{4}\\.\\d{3}))\\b",
8802
+ "options": {
8803
+ "case_sensitive": false,
8804
+ "min_length": 16
8805
+ }
8806
+ }
8807
+ },
8808
+ "tags": {
8809
+ "type": "card",
8810
+ "card_type": "amex",
8811
+ "category": "payment"
8812
+ }
8813
+ },
8814
+ {
8815
+ "id": "edmH513UTQWcRiQ9UnzHlw-mod",
8816
+ "name": "American Express Card Scanner (4+6|5+5|6 digits)",
8817
+ "key": {
8818
+ "operator": "match_regex",
8819
+ "parameters": {
8820
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
8821
+ "options": {
8822
+ "case_sensitive": false,
8823
+ "min_length": 3
8824
+ }
8825
+ }
8826
+ },
8827
+ "value": {
8828
+ "operator": "match_regex",
8829
+ "parameters": {
8830
+ "regex": "\\b3[47]\\d{2}(?:(?:\\s\\d{5,6}\\s\\d{5,6})|(?:\\.\\d{5,6}\\.\\d{5,6})|(?:-\\d{5,6}-\\d{5,6})|(?:,\\d{5,6},\\d{5,6}))\\b",
8831
+ "options": {
8832
+ "case_sensitive": false,
8833
+ "min_length": 17
8834
+ }
8835
+ }
8836
+ },
8837
+ "tags": {
8838
+ "type": "card",
8839
+ "card_type": "amex",
8840
+ "category": "payment"
8841
+ }
8842
+ },
8843
+ {
8844
+ "id": "e6K4h_7qTLaMiAbaNXoSZA",
8845
+ "name": "American Express Card Scanner (8+7 digits)",
8846
+ "key": {
8847
+ "operator": "match_regex",
8848
+ "parameters": {
8849
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
8850
+ "options": {
8851
+ "case_sensitive": false,
8852
+ "min_length": 3
8853
+ }
8854
+ }
8855
+ },
8856
+ "value": {
8857
+ "operator": "match_regex",
8858
+ "parameters": {
8859
+ "regex": "\\b3[47]\\d{6}(?:(?:\\s\\d{7})|(?:\\,\\d{7})|(?:-\\d{7})|(?:\\.\\d{7}))\\b",
8860
+ "options": {
8861
+ "case_sensitive": false,
8862
+ "min_length": 16
8863
+ }
8864
+ }
8865
+ },
8866
+ "tags": {
8867
+ "type": "card",
8868
+ "card_type": "amex",
8869
+ "category": "payment"
8870
+ }
8871
+ },
8872
+ {
8873
+ "id": "K2rZflWzRhGM9HiTc6whyQ",
8874
+ "name": "American Express Card Scanner (1x15 digits)",
8875
+ "key": {
8876
+ "operator": "match_regex",
8877
+ "parameters": {
8878
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
8879
+ "options": {
8880
+ "case_sensitive": false,
8881
+ "min_length": 3
8882
+ }
8883
+ }
8884
+ },
8885
+ "value": {
8886
+ "operator": "match_regex",
8887
+ "parameters": {
8888
+ "regex": "\\b3[47]\\d{13}\\b",
8889
+ "options": {
8890
+ "case_sensitive": false,
8891
+ "min_length": 15
8892
+ }
8893
+ }
8894
+ },
8895
+ "tags": {
8896
+ "type": "card",
8897
+ "card_type": "amex",
8898
+ "category": "payment"
8899
+ }
8900
+ },
8901
+ {
8902
+ "id": "9d7756e343cefa22a5c098e1092590f806eb5446",
8903
+ "name": "Basic Authentication Scanner",
8904
+ "key": {
8905
+ "operator": "match_regex",
8906
+ "parameters": {
8907
+ "regex": "\\bauthorization\\b",
8908
+ "options": {
8909
+ "case_sensitive": false,
8910
+ "min_length": 13
8911
+ }
8912
+ }
8913
+ },
8914
+ "value": {
8915
+ "operator": "match_regex",
8916
+ "parameters": {
8917
+ "regex": "^basic\\s+[A-Za-z0-9+/=]+",
8918
+ "options": {
8919
+ "case_sensitive": false,
8920
+ "min_length": 7
8921
+ }
8922
+ }
8923
+ },
8924
+ "tags": {
8925
+ "type": "basic_auth",
8926
+ "category": "credentials"
8927
+ }
8928
+ },
8929
+ {
8930
+ "id": "mZy8XjZLReC9smpERXWnnw",
8931
+ "name": "Bearer Authentication Scanner",
8932
+ "key": {
8933
+ "operator": "match_regex",
8934
+ "parameters": {
8935
+ "regex": "\\bauthorization\\b",
8936
+ "options": {
8937
+ "case_sensitive": false,
8938
+ "min_length": 13
8939
+ }
8940
+ }
8941
+ },
8942
+ "value": {
8943
+ "operator": "match_regex",
8944
+ "parameters": {
8945
+ "regex": "^bearer\\s+[-a-z0-9._~+/]{4,}",
8946
+ "options": {
8947
+ "case_sensitive": false,
8948
+ "min_length": 11
8949
+ }
8950
+ }
8951
+ },
8952
+ "tags": {
8953
+ "type": "bearer_token",
8954
+ "category": "credentials"
8955
+ }
8956
+ },
8957
+ {
8958
+ "id": "450239afc250a19799b6c03dc0e16fd6a4b2a1af",
8959
+ "name": "Canadian Social Insurance Number Scanner",
8960
+ "key": {
8961
+ "operator": "match_regex",
8962
+ "parameters": {
8963
+ "regex": "\\b(?:social[\\s_]?(?:insurance(?:\\s+number)?)?|SIN|Canadian[\\s_]?(?:social[\\s_]?(?:insurance)?|insurance[\\s_]?number)?)\\b",
8964
+ "options": {
8965
+ "case_sensitive": false,
8966
+ "min_length": 3
8967
+ }
8968
+ }
8969
+ },
8970
+ "value": {
8971
+ "operator": "match_regex",
8972
+ "parameters": {
8973
+ "regex": "\\b\\d{3}-\\d{3}-\\d{3}\\b",
8974
+ "options": {
8975
+ "case_sensitive": false,
8976
+ "min_length": 11
8977
+ }
8978
+ }
8979
+ },
8980
+ "tags": {
8981
+ "type": "canadian_sin",
8982
+ "category": "pii"
8983
+ }
8984
+ },
8985
+ {
8986
+ "id": "87a879ff33693b46c8a614d8211f5a2c289beca0",
8987
+ "name": "Digest Authentication Scanner",
8988
+ "key": {
8989
+ "operator": "match_regex",
8990
+ "parameters": {
8991
+ "regex": "\\bauthorization\\b",
8992
+ "options": {
8993
+ "case_sensitive": false,
8994
+ "min_length": 13
8995
+ }
8996
+ }
8997
+ },
8998
+ "value": {
8999
+ "operator": "match_regex",
9000
+ "parameters": {
9001
+ "regex": "^digest\\s+",
9002
+ "options": {
9003
+ "case_sensitive": false,
9004
+ "min_length": 7
9005
+ }
9006
+ }
9007
+ },
9008
+ "tags": {
9009
+ "type": "digest_auth",
9010
+ "category": "credentials"
9011
+ }
9012
+ },
9013
+ {
9014
+ "id": "qWumeP1GQUa_E4ffAnT-Yg",
9015
+ "name": "American Express Card Scanner (1x14 digits)",
9016
+ "key": {
9017
+ "operator": "match_regex",
9018
+ "parameters": {
9019
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9020
+ "options": {
9021
+ "case_sensitive": false,
9022
+ "min_length": 3
9023
+ }
9024
+ }
9025
+ },
9026
+ "value": {
9027
+ "operator": "match_regex",
9028
+ "parameters": {
9029
+ "regex": "(?:30[0-59]\\d|3[689]\\d{2})(?:\\d{10})",
9030
+ "options": {
9031
+ "case_sensitive": false,
9032
+ "min_length": 14
9033
+ }
9034
+ }
9035
+ },
9036
+ "tags": {
9037
+ "type": "card",
9038
+ "card_type": "diners",
9039
+ "category": "payment"
9040
+ }
9041
+ },
9042
+ {
9043
+ "id": "NlTWWM5LS6W0GSqBLuvtRw",
9044
+ "name": "Diners Card Scanner (4+4+4+2 digits)",
9045
+ "key": {
9046
+ "operator": "match_regex",
9047
+ "parameters": {
9048
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9049
+ "options": {
9050
+ "case_sensitive": false,
9051
+ "min_length": 3
9052
+ }
9053
+ }
9054
+ },
9055
+ "value": {
9056
+ "operator": "match_regex",
9057
+ "parameters": {
9058
+ "regex": "\\b(?:30[0-59]\\d|3[689]\\d{2})(?:(?:\\s\\d{4}\\s\\d{4}\\s\\d{2})|(?:\\,\\d{4}\\,\\d{4}\\,\\d{2})|(?:-\\d{4}-\\d{4}-\\d{2})|(?:\\.\\d{4}\\.\\d{4}\\.\\d{2}))\\b",
9059
+ "options": {
9060
+ "case_sensitive": false,
9061
+ "min_length": 17
9062
+ }
9063
+ }
9064
+ },
9065
+ "tags": {
9066
+ "type": "card",
9067
+ "card_type": "diners",
9068
+ "category": "payment"
9069
+ }
9070
+ },
9071
+ {
9072
+ "id": "Xr5VdbQSTXitYGGiTfxBpw",
9073
+ "name": "Diners Card Scanner (4+6+4 digits)",
9074
+ "key": {
9075
+ "operator": "match_regex",
9076
+ "parameters": {
9077
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9078
+ "options": {
9079
+ "case_sensitive": false,
9080
+ "min_length": 3
9081
+ }
9082
+ }
9083
+ },
9084
+ "value": {
9085
+ "operator": "match_regex",
9086
+ "parameters": {
9087
+ "regex": "\\b(?:30[0-59]\\d|3[689]\\d{2})(?:(?:\\s\\d{6}\\s\\d{4})|(?:\\.\\d{6}\\.\\d{4})|(?:-\\d{6}-\\d{4})|(?:,\\d{6},\\d{4}))\\b",
9088
+ "options": {
9089
+ "case_sensitive": false,
9090
+ "min_length": 16
9091
+ }
9092
+ }
9093
+ },
9094
+ "tags": {
9095
+ "type": "card",
9096
+ "card_type": "diners",
9097
+ "category": "payment"
9098
+ }
9099
+ },
9100
+ {
9101
+ "id": "gAbunN_WQNytxu54DjcbAA-mod",
9102
+ "name": "Diners Card Scanner (8+6 digits)",
9103
+ "key": {
9104
+ "operator": "match_regex",
9105
+ "parameters": {
9106
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9107
+ "options": {
9108
+ "case_sensitive": false,
9109
+ "min_length": 3
9110
+ }
9111
+ }
9112
+ },
9113
+ "value": {
9114
+ "operator": "match_regex",
9115
+ "parameters": {
9116
+ "regex": "\\b(?:30[0-59]\\d{5}|3[689]\\d{6})\\s?(?:(?:\\s\\d{6})|(?:\\,\\d{6})|(?:-\\d{6})|(?:\\.\\d{6}))\\b",
9117
+ "options": {
9118
+ "case_sensitive": false,
9119
+ "min_length": 14
9120
+ }
9121
+ }
9122
+ },
9123
+ "tags": {
9124
+ "type": "card",
9125
+ "card_type": "diners",
9126
+ "category": "payment"
9127
+ }
9128
+ },
9129
+ {
9130
+ "id": "9cs4qCfEQBeX17U7AepOvQ",
9131
+ "name": "MasterCard Scanner (2x8 digits)",
9132
+ "key": {
9133
+ "operator": "match_regex",
9134
+ "parameters": {
9135
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9136
+ "options": {
9137
+ "case_sensitive": false,
9138
+ "min_length": 3
9139
+ }
9140
+ }
9141
+ },
9142
+ "value": {
9143
+ "operator": "match_regex",
9144
+ "parameters": {
9145
+ "regex": "\\b(?:6221(?:2[6-9]|[3-9][0-9])\\d{2}(?:,\\d{8}|\\s\\d{8}|-\\d{8}|\\.\\d{8})|6229(?:[01][0-9]|2[0-5])\\d{2}(?:,\\d{8}|\\s\\d{8}|-\\d{8}|\\.\\d{8})|(?:6011|65\\d{2}|64[4-9]\\d|622[2-8])\\d{4}(?:,\\d{8}|\\s\\d{8}|-\\d{8}|\\.\\d{8}))\\b",
9146
+ "options": {
9147
+ "case_sensitive": false,
9148
+ "min_length": 16
9149
+ }
9150
+ }
9151
+ },
9152
+ "tags": {
9153
+ "type": "card",
9154
+ "card_type": "discover",
9155
+ "category": "payment"
9156
+ }
9157
+ },
9158
+ {
9159
+ "id": "YBIDWJIvQWW_TFOyU0CGJg",
9160
+ "name": "Discover Card Scanner (4x4 digits)",
9161
+ "key": {
9162
+ "operator": "match_regex",
9163
+ "parameters": {
9164
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9165
+ "options": {
9166
+ "case_sensitive": false,
9167
+ "min_length": 3
9168
+ }
9169
+ }
9170
+ },
9171
+ "value": {
9172
+ "operator": "match_regex",
9173
+ "parameters": {
9174
+ "regex": "\\b(?:(?:(?:6221(?:2[6-9]|[3-9][0-9])\\d{2}(?:,\\d{4}){2})|(?:6221\\s(?:2[6-9]|[3-9][0-9])\\d{2}(?:\\s\\d{4}){2})|(?:6221\\.(?:2[6-9]|[3-9][0-9])\\d{2}(?:\\.\\d{4}){2})|(?:6221-(?:2[6-9]|[3-9][0-9])\\d{2}(?:-\\d{4}){2}))|(?:(?:6229(?:[01][0-9]|2[0-5])\\d{2}(?:,\\d{4}){2})|(?:6229\\s(?:[01][0-9]|2[0-5])\\d{2}(?:\\s\\d{4}){2})|(?:6229\\.(?:[01][0-9]|2[0-5])\\d{2}(?:\\.\\d{4}){2})|(?:6229-(?:[01][0-9]|2[0-5])\\d{2}(?:-\\d{4}){2}))|(?:(?:6011|65\\d{2}|64[4-9]\\d|622[2-8])(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})))\\b",
9175
+ "options": {
9176
+ "case_sensitive": false,
9177
+ "min_length": 16
9178
+ }
9179
+ }
9180
+ },
9181
+ "tags": {
9182
+ "type": "card",
9183
+ "card_type": "discover",
9184
+ "category": "payment"
9185
+ }
9186
+ },
9187
+ {
9188
+ "id": "12cpbjtVTMaMutFhh9sojQ",
9189
+ "name": "Discover Card Scanner (1x16 digits)",
9190
+ "key": {
9191
+ "operator": "match_regex",
9192
+ "parameters": {
9193
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9194
+ "options": {
9195
+ "case_sensitive": false,
9196
+ "min_length": 3
9197
+ }
9198
+ }
9199
+ },
9200
+ "value": {
9201
+ "operator": "match_regex",
9202
+ "parameters": {
9203
+ "regex": "\\b(?:6221(?:2[6-9]|[3-9][0-9])\\d{10}|6229(?:[01][0-9]|2[0-5])\\d{10}|(?:6011|65\\d{2}|64[4-9]\\d|622[2-8])\\d{12})\\b",
9204
+ "options": {
9205
+ "case_sensitive": false,
9206
+ "min_length": 16
9207
+ }
9208
+ }
9209
+ },
9210
+ "tags": {
9211
+ "type": "card",
9212
+ "card_type": "discover",
9213
+ "category": "payment"
9214
+ }
9215
+ },
9216
+ {
9217
+ "id": "PuXiVTCkTHOtj0Yad1ppsw",
9218
+ "name": "Standard E-mail Address",
9219
+ "key": {
9220
+ "operator": "match_regex",
9221
+ "parameters": {
9222
+ "regex": "\\b(?:(?:e[-\\s]?)?mail|address|sender|\\bto\\b|from|recipient)\\b",
9223
+ "options": {
9224
+ "case_sensitive": false,
9225
+ "min_length": 2
9226
+ }
9227
+ }
9228
+ },
9229
+ "value": {
9230
+ "operator": "match_regex",
9231
+ "parameters": {
9232
+ "regex": "\\b[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*(%40|@)(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}\\b",
9233
+ "options": {
9234
+ "case_sensitive": false,
9235
+ "min_length": 5
9236
+ }
9237
+ }
9238
+ },
9239
+ "tags": {
9240
+ "type": "email",
9241
+ "category": "pii"
9242
+ }
9243
+ },
9244
+ {
9245
+ "id": "8VS2RKxzR8a_95L5fuwaXQ",
9246
+ "name": "IBAN",
9247
+ "key": {
9248
+ "operator": "match_regex",
9249
+ "parameters": {
9250
+ "regex": "\\b(?:iban|account|sender|receiver)\\b",
9251
+ "options": {
9252
+ "case_sensitive": false,
9253
+ "min_length": 3
9254
+ }
9255
+ }
9256
+ },
9257
+ "value": {
9258
+ "operator": "match_regex",
9259
+ "parameters": {
9260
+ "regex": "\\b(?:NO\\d{2}(?:[ \\-]?\\d{4}){2}[ \\-]?\\d{3}|BE\\d{2}(?:[ \\-]?\\d{4}){3}|(?:DK|FO|FI|GL|SD)\\d{2}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{2}|NL\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){2}[ \\-]?\\d{2}|MK\\d{2}[ \\-]?\\d{3}[A-Z0-9](?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]\\d{2}|SI\\d{17}|(?:AT|BA|EE|LT|XK)\\d{18}|(?:LU|KZ|EE|LT)\\d{5}[A-Z0-9]{13}|LV\\d{2}[A-Z]{4}[A-Z0-9]{13}|(?:LI|CH)\\d{2}[ \\-]?\\d{4}[ \\-]?\\d[A-Z0-9]{3}(?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]|HR\\d{2}(?:[ \\-]?\\d{4}){4}[ \\-]?\\d|GE\\d{2}[ \\-]?[A-Z0-9]{2}\\d{2}\\d{14}|VA\\d{20}|BG\\d{2}[A-Z]{4}\\d{6}[A-Z0-9]{8}|BH\\d{2}[A-Z]{4}[A-Z0-9]{14}|GB\\d{2}[A-Z]{4}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{2}|IE\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{2}|(?:CR|DE|ME|RS)\\d{2}(?:[ \\-]?\\d{4}){4}[ \\-]?\\d{2}|(?:AE|TL|IL)\\d{2}(?:[ \\-]?\\d{4}){4}[ \\-]?\\d{3}|GI\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){3}[ \\-]?[A-Z0-9]{3}|IQ\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{3}|MD\\d{2}(?:[ \\-]?[A-Z0-9]{4}){5}|SA\\d{2}[ \\-]?\\d{2}[A-Z0-9]{2}(?:[ \\-]?[A-Z0-9]{4}){4}|RO\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){4}|(?:PK|VG)\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{4}){4}|AD\\d{2}(?:[ \\-]?\\d{4}){2}(?:[ \\-]?[A-Z0-9]{4}){3}|(?:CZ|SK|ES|SE|TN)\\d{2}(?:[ \\-]?\\d{4}){5}|(?:LY|PT|ST)\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d|TR\\d{2}[ \\-]?\\d{4}[ \\-]?\\d[A-Z0-9]{3}(?:[ \\-]?[A-Z0-9]{4}){3}[ \\-]?[A-Z0-9]{2}|IS\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d{2}|(?:IT|SM)\\d{2}[ \\-]?[A-Z]\\d{3}[ \\-]?\\d{4}[ \\-]?\\d{3}[A-Z0-9](?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]{3}|GR\\d{2}[ \\-]?\\d{4}[ \\-]?\\d{3}[A-Z0-9](?:[ \\-]?[A-Z0-9]{4}){3}[A-Z0-9]{3}|(?:FR|MC)\\d{2}(?:[ \\-]?\\d{4}){2}[ \\-]?\\d{2}[A-Z0-9]{2}(?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]\\d{2}|MR\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d{3}|(?:SV|DO)\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){5}|BY\\d{2}[ \\-]?[A-Z]{4}[ \\-]?\\d{4}(?:[ \\-]?[A-Z0-9]{4}){4}|GT\\d{2}(?:[ \\-]?[A-Z0-9]{4}){6}|AZ\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{5}){4}|LB\\d{2}[ \\-]?\\d{4}(?:[ \\-]?[A-Z0-9]{5}){4}|(?:AL|CY)\\d{2}(?:[ \\-]?\\d{4}){2}(?:[ \\-]?[A-Z0-9]{4}){4}|(?:HU|PL)\\d{2}(?:[ \\-]?\\d{4}){6}|QA\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){5}[ \\-]?[A-Z0-9]|PS\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d|UA\\d{2}[ \\-]?\\d{4}[ \\-]?\\d{2}[A-Z0-9]{2}(?:[ \\-]?[A-Z0-9]{4}){4}[ \\-]?[A-Z0-9]|BR\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d{3}[A-Z0-9][ \\-]?[A-Z0-9]|EG\\d{2}(?:[ \\-]?\\d{4}){6}\\d|MU\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){4}\\d{3}[A-Z][ \\-]?[A-Z]{2}|(?:KW|JO)\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){5}[ \\-]?[A-Z0-9]{2}|MT\\d{2}[ \\-]?[A-Z]{4}[ \\-]?\\d{4}[ \\-]?\\d[A-Z0-9]{3}(?:[ \\-]?[A-Z0-9]{3}){4}[ \\-]?[A-Z0-9]{3}|SC\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){5}[ \\-]?[A-Z]{3}|LC\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){6})\\b",
9261
+ "options": {
9262
+ "case_sensitive": false,
9263
+ "min_length": 15
9264
+ }
9265
+ }
9266
+ },
9267
+ "tags": {
9268
+ "type": "iban",
9269
+ "category": "payment"
9270
+ }
9271
+ },
9272
+ {
9273
+ "id": "h6WJcecQTwqvN9KeEtwDvg",
9274
+ "name": "JCB Card Scanner (1x16 digits)",
9275
+ "key": {
9276
+ "operator": "match_regex",
9277
+ "parameters": {
9278
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9279
+ "options": {
9280
+ "case_sensitive": false,
9281
+ "min_length": 3
9282
+ }
9283
+ }
9284
+ },
9285
+ "value": {
9286
+ "operator": "match_regex",
9287
+ "parameters": {
9288
+ "regex": "\\b35(?:2[89]|[3-9][0-9])(?:\\d{12})\\b",
9289
+ "options": {
9290
+ "case_sensitive": false,
9291
+ "min_length": 16
9292
+ }
9293
+ }
9294
+ },
9295
+ "tags": {
9296
+ "type": "card",
9297
+ "card_type": "jcb",
9298
+ "category": "payment"
9299
+ }
9300
+ },
9301
+ {
9302
+ "id": "gcEaMu_VSJ2-bGCEkgyC0w",
9303
+ "name": "JCB Card Scanner (2x8 digits)",
9304
+ "key": {
9305
+ "operator": "match_regex",
9306
+ "parameters": {
9307
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9308
+ "options": {
9309
+ "case_sensitive": false,
9310
+ "min_length": 3
9311
+ }
9312
+ }
9313
+ },
9314
+ "value": {
9315
+ "operator": "match_regex",
9316
+ "parameters": {
9317
+ "regex": "\\b35(?:2[89]|[3-9][0-9])\\d{4}(?:(?:,\\d{8})|(?:-\\d{8})|(?:\\s\\d{8})|(?:\\.\\d{8}))\\b",
9318
+ "options": {
9319
+ "case_sensitive": false,
9320
+ "min_length": 17
9321
+ }
9322
+ }
9323
+ },
9324
+ "tags": {
9325
+ "type": "card",
9326
+ "card_type": "jcb",
9327
+ "category": "payment"
9328
+ }
9329
+ },
9330
+ {
9331
+ "id": "imTliuhXT5GAeRNhqChXQQ",
9332
+ "name": "JCB Card Scanner (4x4 digits)",
9333
+ "key": {
9334
+ "operator": "match_regex",
9335
+ "parameters": {
9336
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9337
+ "options": {
9338
+ "case_sensitive": false,
9339
+ "min_length": 3
9340
+ }
9341
+ }
9342
+ },
9343
+ "value": {
9344
+ "operator": "match_regex",
9345
+ "parameters": {
9346
+ "regex": "\\b35(?:2[89]|[3-9][0-9])(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})\\b",
9347
+ "options": {
9348
+ "case_sensitive": false,
9349
+ "min_length": 16
9350
+ }
9351
+ }
9352
+ },
9353
+ "tags": {
9354
+ "type": "card",
9355
+ "card_type": "jcb",
9356
+ "category": "payment"
9357
+ }
9358
+ },
9359
+ {
9360
+ "id": "9osY3xc9Q7ONAV0zw9Uz4A",
9361
+ "name": "JSON Web Token",
9362
+ "value": {
9363
+ "operator": "match_regex",
9364
+ "parameters": {
9365
+ "regex": "\\bey[I-L][\\w=-]+\\.ey[I-L][\\w=-]+(\\.[\\w.+\\/=-]+)?\\b",
9366
+ "options": {
9367
+ "case_sensitive": false,
9368
+ "min_length": 20
9369
+ }
9370
+ }
9371
+ },
9372
+ "tags": {
9373
+ "type": "json_web_token",
9374
+ "category": "credentials"
9375
+ }
9376
+ },
9377
+ {
9378
+ "id": "d1Q9D3YMRxuVKf6CZInJPw",
9379
+ "name": "Maestro Card Scanner (1x16 digits)",
9380
+ "key": {
9381
+ "operator": "match_regex",
9382
+ "parameters": {
9383
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9384
+ "options": {
9385
+ "case_sensitive": false,
9386
+ "min_length": 3
9387
+ }
9388
+ }
9389
+ },
9390
+ "value": {
9391
+ "operator": "match_regex",
9392
+ "parameters": {
9393
+ "regex": "\\b(?:5[06-9]\\d{2}|6\\d{3})(?:\\d{12})\\b",
9394
+ "options": {
9395
+ "case_sensitive": false,
9396
+ "min_length": 16
9397
+ }
9398
+ }
9399
+ },
9400
+ "tags": {
9401
+ "type": "card",
9402
+ "card_type": "maestro",
9403
+ "category": "payment"
9404
+ }
9405
+ },
9406
+ {
9407
+ "id": "M3YIQKKjRVmoeQuM3pjzrw",
9408
+ "name": "Maestro Card Scanner (2x8 digits)",
9409
+ "key": {
9410
+ "operator": "match_regex",
9411
+ "parameters": {
9412
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9413
+ "options": {
9414
+ "case_sensitive": false,
9415
+ "min_length": 3
9416
+ }
9417
+ }
9418
+ },
9419
+ "value": {
9420
+ "operator": "match_regex",
9421
+ "parameters": {
9422
+ "regex": "\\b(?:5[06-9]\\d{6}|6\\d{7})(?:\\s\\d{8}|\\.\\d{8}|-\\d{8}|,\\d{8})\\b",
9423
+ "options": {
9424
+ "case_sensitive": false,
9425
+ "min_length": 17
9426
+ }
9427
+ }
9428
+ },
9429
+ "tags": {
9430
+ "type": "card",
9431
+ "card_type": "maestro",
9432
+ "category": "payment"
9433
+ }
9434
+ },
9435
+ {
9436
+ "id": "hRxiQBlSSVKcjh5U7LZYLA",
9437
+ "name": "Maestro Card Scanner (4x4 digits)",
9438
+ "key": {
9439
+ "operator": "match_regex",
9440
+ "parameters": {
9441
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9442
+ "options": {
9443
+ "case_sensitive": false,
9444
+ "min_length": 3
9445
+ }
9446
+ }
9447
+ },
9448
+ "value": {
9449
+ "operator": "match_regex",
9450
+ "parameters": {
9451
+ "regex": "\\b(?:5[06-9]\\d{2}|6\\d{3})(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})\\b",
9452
+ "options": {
9453
+ "case_sensitive": false,
9454
+ "min_length": 16
9455
+ }
9456
+ }
9457
+ },
9458
+ "tags": {
9459
+ "type": "card",
9460
+ "card_type": "maestro",
9461
+ "category": "payment"
9462
+ }
9463
+ },
9464
+ {
9465
+ "id": "NwhIYNS4STqZys37WlaIKA",
9466
+ "name": "MasterCard Scanner (2x8 digits)",
9467
+ "key": {
9468
+ "operator": "match_regex",
9469
+ "parameters": {
9470
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9471
+ "options": {
9472
+ "case_sensitive": false,
9473
+ "min_length": 3
9474
+ }
9475
+ }
9476
+ },
9477
+ "value": {
9478
+ "operator": "match_regex",
9479
+ "parameters": {
9480
+ "regex": "\\b(?:(?:5[1-5]\\d{2})|(?:222[1-9])|(?:22[3-9]\\d)|(?:2[3-6]\\d{2})|(?:27[0-1]\\d)|(?:2720))(?:(?:\\d{4}(?:(?:,\\d{8})|(?:-\\d{8})|(?:\\s\\d{8})|(?:\\.\\d{8}))))\\b",
9481
+ "options": {
9482
+ "case_sensitive": false,
9483
+ "min_length": 16
9484
+ }
9485
+ }
9486
+ },
9487
+ "tags": {
9488
+ "type": "card",
9489
+ "card_type": "mastercard",
9490
+ "category": "payment"
9491
+ }
9492
+ },
9493
+ {
9494
+ "id": "axxJkyjhRTOuhjwlsA35Vw",
9495
+ "name": "MasterCard Scanner (4x4 digits)",
9496
+ "key": {
9497
+ "operator": "match_regex",
9498
+ "parameters": {
9499
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9500
+ "options": {
9501
+ "case_sensitive": false,
9502
+ "min_length": 3
9503
+ }
9504
+ }
9505
+ },
9506
+ "value": {
9507
+ "operator": "match_regex",
9508
+ "parameters": {
9509
+ "regex": "\\b(?:(?:5[1-5]\\d{2})|(?:222[1-9])|(?:22[3-9]\\d)|(?:2[3-6]\\d{2})|(?:27[0-1]\\d)|(?:2720))(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})\\b",
9510
+ "options": {
9511
+ "case_sensitive": false,
9512
+ "min_length": 16
9513
+ }
9514
+ }
9515
+ },
9516
+ "tags": {
9517
+ "type": "card",
9518
+ "card_type": "mastercard",
9519
+ "category": "payment"
9520
+ }
9521
+ },
9522
+ {
9523
+ "id": "76EhmoK3TPqJcpM-fK0pLw",
9524
+ "name": "MasterCard Scanner (1x16 digits)",
9525
+ "key": {
9526
+ "operator": "match_regex",
9527
+ "parameters": {
9528
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9529
+ "options": {
9530
+ "case_sensitive": false,
9531
+ "min_length": 3
9532
+ }
9533
+ }
9534
+ },
9535
+ "value": {
9536
+ "operator": "match_regex",
9537
+ "parameters": {
9538
+ "regex": "\\b(?:(?:5[1-5]\\d{2})|(?:222[1-9])|(?:22[3-9]\\d)|(?:2[3-6]\\d{2})|(?:27[0-1]\\d)|(?:2720))(?:\\d{12})\\b",
9539
+ "options": {
9540
+ "case_sensitive": false,
9541
+ "min_length": 16
9542
+ }
9543
+ }
9544
+ },
9545
+ "tags": {
9546
+ "type": "card",
9547
+ "card_type": "mastercard",
9548
+ "category": "payment"
9549
+ }
9550
+ },
9551
+ {
9552
+ "id": "18b608bd7a764bff5b2344c0",
9553
+ "name": "Phone number",
9554
+ "key": {
9555
+ "operator": "match_regex",
9556
+ "parameters": {
9557
+ "regex": "\\bphone|number|mobile\\b",
9558
+ "options": {
9559
+ "case_sensitive": false,
9560
+ "min_length": 3
9561
+ }
9562
+ }
9563
+ },
9564
+ "value": {
9565
+ "operator": "match_regex",
9566
+ "parameters": {
9567
+ "regex": "^(?:\\(\\+\\d{1,3}\\)|\\+\\d{1,3}|00\\d{1,3})?[-\\s\\.]?(?:\\(\\d{3}\\)[-\\s\\.]?)?(?:\\d[-\\s\\.]?){6,10}$",
9568
+ "options": {
9569
+ "case_sensitive": false,
9570
+ "min_length": 6
9571
+ }
9572
+ }
9573
+ },
9574
+ "tags": {
9575
+ "type": "phone",
9576
+ "category": "pii"
9577
+ }
9578
+ },
9579
+ {
9580
+ "id": "de0899e0cbaaa812bb624cf04c912071012f616d-mod",
9581
+ "name": "UK National Insurance Number Scanner",
9582
+ "key": {
9583
+ "operator": "match_regex",
9584
+ "parameters": {
9585
+ "regex": "^nin$|\\binsurance\\b",
9586
+ "options": {
9587
+ "case_sensitive": false,
9588
+ "min_length": 3
9589
+ }
9590
+ }
9591
+ },
9592
+ "value": {
9593
+ "operator": "match_regex",
9594
+ "parameters": {
9595
+ "regex": "\\b[A-Z]{2}[\\s-]?\\d{6}[\\s-]?[A-Z]?\\b",
9596
+ "options": {
9597
+ "case_sensitive": false,
9598
+ "min_length": 8
9599
+ }
9600
+ }
9601
+ },
9602
+ "tags": {
9603
+ "type": "uk_nin",
9604
+ "category": "pii"
9605
+ }
9606
+ },
9607
+ {
9608
+ "id": "d962f7ddb3f55041e39195a60ff79d4814a7c331",
9609
+ "name": "US Passport Scanner",
9610
+ "key": {
9611
+ "operator": "match_regex",
9612
+ "parameters": {
9613
+ "regex": "\\bpassport\\b",
9614
+ "options": {
9615
+ "case_sensitive": false,
9616
+ "min_length": 8
9617
+ }
9618
+ }
9619
+ },
9620
+ "value": {
9621
+ "operator": "match_regex",
9622
+ "parameters": {
9623
+ "regex": "\\b[0-9A-Z]{9}\\b|\\b[0-9]{6}[A-Z][0-9]{2}\\b",
9624
+ "options": {
9625
+ "case_sensitive": false,
9626
+ "min_length": 8
9627
+ }
9628
+ }
9629
+ },
9630
+ "tags": {
9631
+ "type": "passport_number",
9632
+ "category": "pii"
9633
+ }
9634
+ },
9635
+ {
9636
+ "id": "7771fc3b-b205-4b93-bcef-28608c5c1b54",
9637
+ "name": "United States Social Security Number Scanner",
9638
+ "key": {
9639
+ "operator": "match_regex",
9640
+ "parameters": {
9641
+ "regex": "\\b(?:SSN|(?:(?:social)?[\\s_]?(?:security)?[\\s_]?(?:number)?)?)\\b",
9642
+ "options": {
9643
+ "case_sensitive": false,
9644
+ "min_length": 3
9645
+ }
9646
+ }
9647
+ },
9648
+ "value": {
9649
+ "operator": "match_regex",
9650
+ "parameters": {
9651
+ "regex": "\\b\\d{3}[-\\s\\.]{1}\\d{2}[-\\s\\.]{1}\\d{4}\\b",
9652
+ "options": {
9653
+ "case_sensitive": false,
9654
+ "min_length": 11
9655
+ }
9656
+ }
9657
+ },
9658
+ "tags": {
9659
+ "type": "us_ssn",
9660
+ "category": "pii"
9661
+ }
9662
+ },
9663
+ {
9664
+ "id": "ac6d683cbac77f6e399a14990793dd8fd0fca333",
9665
+ "name": "US Vehicle Identification Number Scanner",
9666
+ "key": {
9667
+ "operator": "match_regex",
9668
+ "parameters": {
9669
+ "regex": "\\b(?:vehicle[_\\s-]*identification[_\\s-]*number|vin)\\b",
9670
+ "options": {
9671
+ "case_sensitive": false,
9672
+ "min_length": 3
9673
+ }
9674
+ }
9675
+ },
9676
+ "value": {
9677
+ "operator": "match_regex",
9678
+ "parameters": {
9679
+ "regex": "\\b[A-HJ-NPR-Z0-9]{17}\\b",
9680
+ "options": {
9681
+ "case_sensitive": false,
9682
+ "min_length": 17
9683
+ }
9684
+ }
9685
+ },
9686
+ "tags": {
9687
+ "type": "vin",
9688
+ "category": "pii"
9689
+ }
9690
+ },
9691
+ {
9692
+ "id": "wJIgOygRQhKkR69b_9XbRQ",
9693
+ "name": "Visa Card Scanner (2x8 digits)",
9694
+ "key": {
9695
+ "operator": "match_regex",
9696
+ "parameters": {
9697
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9698
+ "options": {
9699
+ "case_sensitive": false,
9700
+ "min_length": 3
9701
+ }
9702
+ }
9703
+ },
9704
+ "value": {
9705
+ "operator": "match_regex",
9706
+ "parameters": {
9707
+ "regex": "\\b4\\d{3}(?:(?:\\d{4}(?:(?:,\\d{8})|(?:-\\d{8})|(?:\\s\\d{8})|(?:\\.\\d{8}))))\\b",
9708
+ "options": {
9709
+ "case_sensitive": false,
9710
+ "min_length": 16
9711
+ }
9712
+ }
9713
+ },
9714
+ "tags": {
9715
+ "type": "card",
9716
+ "card_type": "visa",
9717
+ "category": "payment"
9718
+ }
9719
+ },
9720
+ {
9721
+ "id": "0o71SJxXQNK7Q6gMbBesFQ",
9722
+ "name": "Visa Card Scanner (4x4 digits)",
9723
+ "key": {
9724
+ "operator": "match_regex",
9725
+ "parameters": {
9726
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9727
+ "options": {
9728
+ "case_sensitive": false,
9729
+ "min_length": 3
9730
+ }
9731
+ }
9732
+ },
9733
+ "value": {
9734
+ "operator": "match_regex",
9735
+ "parameters": {
9736
+ "regex": "\\b4\\d{3}(?:(?:,\\d{4}){3}|(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3})\\b",
9737
+ "options": {
9738
+ "case_sensitive": false,
9739
+ "min_length": 16
9740
+ }
9741
+ }
9742
+ },
9743
+ "tags": {
9744
+ "type": "card",
9745
+ "card_type": "visa",
9746
+ "category": "payment"
9747
+ }
9748
+ },
9749
+ {
9750
+ "id": "QrHD6AfgQm6z-j0wStxTvA",
9751
+ "name": "Visa Card Scanner (1x15 & 1x16 & 1x19 digits)",
9752
+ "key": {
9753
+ "operator": "match_regex",
9754
+ "parameters": {
9755
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
9756
+ "options": {
9757
+ "case_sensitive": false,
9758
+ "min_length": 3
9759
+ }
9760
+ }
9761
+ },
9762
+ "value": {
9763
+ "operator": "match_regex",
9764
+ "parameters": {
9765
+ "regex": "4[0-9]{12}(?:[0-9]{3})?",
9766
+ "options": {
9767
+ "case_sensitive": false,
9768
+ "min_length": 13
9769
+ }
9770
+ }
9771
+ },
9772
+ "tags": {
9773
+ "type": "card",
9774
+ "card_type": "visa",
9775
+ "category": "payment"
9776
+ }
9777
+ }
7702
9778
  ]
7703
- }
9779
+ }