datadog 2.8.0 → 2.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1035) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1009 -1
  3. data/README.md +0 -1
  4. data/bin/ddprofrb +4 -4
  5. data/ext/LIBDATADOG_DEVELOPMENT.md +3 -0
  6. data/ext/datadog_profiling_native_extension/clock_id.h +11 -3
  7. data/ext/datadog_profiling_native_extension/clock_id_from_mach.c +66 -0
  8. data/ext/datadog_profiling_native_extension/clock_id_from_pthread.c +3 -2
  9. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +500 -188
  10. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +5 -5
  11. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +1 -1
  12. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +3 -2
  13. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +34 -20
  14. data/ext/datadog_profiling_native_extension/collectors_stack.c +319 -101
  15. data/ext/datadog_profiling_native_extension/collectors_stack.h +27 -5
  16. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +985 -504
  17. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +19 -5
  18. data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
  19. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +66 -5
  20. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +50 -1
  21. data/ext/datadog_profiling_native_extension/encoded_profile.c +80 -0
  22. data/ext/datadog_profiling_native_extension/encoded_profile.h +8 -0
  23. data/ext/datadog_profiling_native_extension/extconf.rb +53 -35
  24. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +6 -43
  25. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +15 -55
  26. data/ext/datadog_profiling_native_extension/heap_recorder.c +487 -497
  27. data/ext/datadog_profiling_native_extension/heap_recorder.h +17 -8
  28. data/ext/datadog_profiling_native_extension/http_transport.c +108 -144
  29. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +18 -15
  30. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +8 -10
  31. data/ext/datadog_profiling_native_extension/macos_sampler_thread.h +55 -0
  32. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +0 -13
  33. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +136 -60
  34. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +22 -5
  35. data/ext/datadog_profiling_native_extension/profiling.c +84 -27
  36. data/ext/datadog_profiling_native_extension/ruby_helpers.c +67 -62
  37. data/ext/datadog_profiling_native_extension/ruby_helpers.h +20 -16
  38. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +34 -10
  39. data/ext/datadog_profiling_native_extension/setup_signal_handler.h +2 -1
  40. data/ext/datadog_profiling_native_extension/stack_recorder.c +326 -217
  41. data/ext/datadog_profiling_native_extension/stack_recorder.h +4 -2
  42. data/ext/datadog_profiling_native_extension/time_helpers.h +14 -8
  43. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +48 -0
  44. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +36 -0
  45. data/ext/libdatadog_api/crashtracker.c +27 -24
  46. data/ext/libdatadog_api/crashtracker.h +5 -0
  47. data/ext/libdatadog_api/crashtracker_report_exception.c +126 -0
  48. data/ext/libdatadog_api/datadog_ruby_common.c +66 -5
  49. data/ext/libdatadog_api/datadog_ruby_common.h +50 -1
  50. data/ext/libdatadog_api/ddsketch.c +102 -0
  51. data/ext/libdatadog_api/di.c +203 -0
  52. data/ext/libdatadog_api/extconf.rb +41 -45
  53. data/ext/libdatadog_api/feature_flags.c +580 -0
  54. data/ext/libdatadog_api/feature_flags.h +5 -0
  55. data/ext/libdatadog_api/helpers.h +27 -0
  56. data/ext/libdatadog_api/init.c +27 -0
  57. data/ext/libdatadog_api/library_config.c +173 -0
  58. data/ext/libdatadog_api/library_config.h +25 -0
  59. data/ext/libdatadog_api/process_discovery.c +118 -0
  60. data/ext/libdatadog_api/process_discovery.h +5 -0
  61. data/ext/libdatadog_extconf_helpers.rb +111 -18
  62. data/lib/datadog/ai_guard/api_client.rb +84 -0
  63. data/lib/datadog/ai_guard/autoload.rb +10 -0
  64. data/lib/datadog/ai_guard/component.rb +44 -0
  65. data/lib/datadog/ai_guard/configuration/ext.rb +17 -0
  66. data/lib/datadog/ai_guard/configuration.rb +115 -0
  67. data/lib/datadog/ai_guard/contrib/auto_instrument.rb +24 -0
  68. data/lib/datadog/ai_guard/contrib/integration.rb +37 -0
  69. data/lib/datadog/ai_guard/contrib/rack/integration.rb +42 -0
  70. data/lib/datadog/ai_guard/contrib/rack/patcher.rb +26 -0
  71. data/lib/datadog/ai_guard/contrib/rack/request_middleware.rb +97 -0
  72. data/lib/datadog/ai_guard/contrib/rails/integration.rb +41 -0
  73. data/lib/datadog/ai_guard/contrib/rails/patcher.rb +97 -0
  74. data/lib/datadog/ai_guard/contrib/ruby_llm/chat_instrumentation.rb +80 -0
  75. data/lib/datadog/ai_guard/contrib/ruby_llm/integration.rb +41 -0
  76. data/lib/datadog/ai_guard/contrib/ruby_llm/patcher.rb +30 -0
  77. data/lib/datadog/ai_guard/evaluation/content_builder.rb +31 -0
  78. data/lib/datadog/ai_guard/evaluation/content_part.rb +36 -0
  79. data/lib/datadog/ai_guard/evaluation/message.rb +25 -0
  80. data/lib/datadog/ai_guard/evaluation/no_op_result.rb +36 -0
  81. data/lib/datadog/ai_guard/evaluation/request.rb +86 -0
  82. data/lib/datadog/ai_guard/evaluation/result.rb +45 -0
  83. data/lib/datadog/ai_guard/evaluation/tool_call.rb +18 -0
  84. data/lib/datadog/ai_guard/evaluation.rb +108 -0
  85. data/lib/datadog/ai_guard/ext.rb +29 -0
  86. data/lib/datadog/ai_guard.rb +181 -0
  87. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
  88. data/lib/datadog/appsec/actions_handler.rb +49 -0
  89. data/lib/datadog/appsec/anonymizer.rb +16 -0
  90. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  91. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +66 -0
  92. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +36 -0
  93. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  94. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  95. data/lib/datadog/appsec/api_security/route_extractor.rb +104 -0
  96. data/lib/datadog/appsec/api_security/sampler.rb +62 -0
  97. data/lib/datadog/appsec/api_security.rb +23 -0
  98. data/lib/datadog/appsec/assets/blocked.html +10 -1
  99. data/lib/datadog/appsec/assets/blocked.json +1 -1
  100. data/lib/datadog/appsec/assets/blocked.text +3 -1
  101. data/lib/datadog/appsec/assets/waf_rules/README.md +44 -5
  102. data/lib/datadog/appsec/assets/waf_rules/recommended.json +954 -229
  103. data/lib/datadog/appsec/assets/waf_rules/strict.json +109 -106
  104. data/lib/datadog/appsec/assets.rb +8 -8
  105. data/lib/datadog/appsec/autoload.rb +5 -5
  106. data/lib/datadog/appsec/component.rb +56 -68
  107. data/lib/datadog/appsec/compressed_json.rb +40 -0
  108. data/lib/datadog/appsec/configuration.rb +427 -1
  109. data/lib/datadog/appsec/context.rb +135 -0
  110. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +45 -24
  111. data/lib/datadog/appsec/contrib/active_record/integration.rb +6 -6
  112. data/lib/datadog/appsec/contrib/active_record/patcher.rb +67 -16
  113. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
  114. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +75 -0
  115. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +39 -0
  116. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +30 -0
  117. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +146 -0
  118. data/lib/datadog/appsec/contrib/devise/configuration.rb +52 -0
  119. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +78 -0
  120. data/lib/datadog/appsec/contrib/devise/ext.rb +22 -0
  121. data/lib/datadog/appsec/contrib/devise/integration.rb +5 -6
  122. data/lib/datadog/appsec/contrib/devise/patcher.rb +33 -25
  123. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +104 -0
  124. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +70 -0
  125. data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +3 -3
  126. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +121 -0
  127. data/lib/datadog/appsec/contrib/excon/integration.rb +41 -0
  128. data/lib/datadog/appsec/contrib/excon/patcher.rb +30 -0
  129. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +181 -0
  130. data/lib/datadog/appsec/contrib/faraday/connection_patch.rb +22 -0
  131. data/lib/datadog/appsec/contrib/faraday/integration.rb +42 -0
  132. data/lib/datadog/appsec/contrib/faraday/patcher.rb +53 -0
  133. data/lib/datadog/appsec/contrib/faraday/rack_builder_patch.rb +22 -0
  134. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +166 -0
  135. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -10
  136. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +76 -26
  137. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +22 -33
  138. data/lib/datadog/appsec/contrib/graphql/integration.rb +10 -9
  139. data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -6
  140. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +83 -0
  141. data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
  142. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +56 -21
  143. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +4 -4
  144. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +101 -100
  145. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +79 -0
  146. data/lib/datadog/appsec/contrib/rack/integration.rb +7 -7
  147. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -5
  148. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +13 -14
  149. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +117 -115
  150. data/lib/datadog/appsec/contrib/rack/response_body.rb +36 -0
  151. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +43 -4
  152. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +58 -33
  153. data/lib/datadog/appsec/contrib/rails/integration.rb +6 -6
  154. data/lib/datadog/appsec/contrib/rails/patcher.rb +82 -69
  155. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +29 -0
  156. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +33 -0
  157. data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
  158. data/lib/datadog/appsec/contrib/rest_client/integration.rb +45 -0
  159. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +30 -0
  160. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +193 -0
  161. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
  162. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
  163. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +83 -67
  164. data/lib/datadog/appsec/contrib/sinatra/integration.rb +6 -6
  165. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +25 -61
  166. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +31 -0
  167. data/lib/datadog/appsec/counter_sampler.rb +25 -0
  168. data/lib/datadog/appsec/default_header_tags.rb +52 -0
  169. data/lib/datadog/appsec/event.rb +80 -152
  170. data/lib/datadog/appsec/ext.rb +16 -4
  171. data/lib/datadog/appsec/extensions.rb +2 -2
  172. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +23 -2
  173. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +23 -0
  174. data/lib/datadog/appsec/instrumentation/gateway.rb +6 -24
  175. data/lib/datadog/appsec/metrics/collector.rb +80 -0
  176. data/lib/datadog/appsec/metrics/exporter.rb +48 -0
  177. data/lib/datadog/appsec/metrics/telemetry.rb +40 -0
  178. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +47 -0
  179. data/lib/datadog/appsec/metrics.rb +14 -0
  180. data/lib/datadog/appsec/monitor/gateway/watcher.rb +60 -34
  181. data/lib/datadog/appsec/monitor.rb +1 -1
  182. data/lib/datadog/appsec/processor/rule_loader.rb +48 -54
  183. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  184. data/lib/datadog/appsec/remote.rb +59 -68
  185. data/lib/datadog/appsec/response.rb +42 -90
  186. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +176 -0
  187. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +378 -0
  188. data/lib/datadog/appsec/route_normalizer/route_text.rb +57 -0
  189. data/lib/datadog/appsec/route_normalizer.rb +80 -0
  190. data/lib/datadog/appsec/security_engine/engine.rb +197 -0
  191. data/lib/datadog/appsec/security_engine/result.rb +103 -0
  192. data/lib/datadog/appsec/security_engine/runner.rb +111 -0
  193. data/lib/datadog/appsec/security_engine.rb +9 -0
  194. data/lib/datadog/appsec/security_event.rb +37 -0
  195. data/lib/datadog/appsec/thread_safe_ref.rb +61 -0
  196. data/lib/datadog/appsec/trace_keeper.rb +36 -0
  197. data/lib/datadog/appsec/utils/hash_coercion.rb +23 -0
  198. data/lib/datadog/appsec/utils/http/body.rb +41 -0
  199. data/lib/datadog/appsec/utils/http/body_reader.rb +61 -0
  200. data/lib/datadog/appsec/utils/http/media_range.rb +17 -16
  201. data/lib/datadog/appsec/utils/http/media_type.rb +33 -27
  202. data/lib/datadog/appsec/utils/http/url_encoded.rb +107 -0
  203. data/lib/datadog/appsec/utils.rb +0 -2
  204. data/lib/datadog/appsec.rb +35 -30
  205. data/lib/datadog/auto_instrument.rb +5 -2
  206. data/lib/datadog/auto_instrument_base.rb +2 -1
  207. data/lib/datadog/core/buffer/cruby.rb +1 -1
  208. data/lib/datadog/core/buffer/random.rb +18 -2
  209. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  210. data/lib/datadog/core/configuration/agent_settings.rb +52 -0
  211. data/lib/datadog/core/configuration/agent_settings_resolver.rb +22 -36
  212. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +176 -0
  213. data/lib/datadog/core/configuration/base.rb +19 -7
  214. data/lib/datadog/core/configuration/components.rb +261 -57
  215. data/lib/datadog/core/configuration/components_state.rb +28 -0
  216. data/lib/datadog/core/configuration/config_helper.rb +109 -0
  217. data/lib/datadog/core/configuration/deprecations.rb +36 -0
  218. data/lib/datadog/core/configuration/ext.rb +15 -12
  219. data/lib/datadog/core/configuration/option.rb +150 -84
  220. data/lib/datadog/core/configuration/option_definition.rb +50 -29
  221. data/lib/datadog/core/configuration/options.rb +58 -19
  222. data/lib/datadog/core/configuration/settings.rb +287 -103
  223. data/lib/datadog/core/configuration/stable_config.rb +32 -0
  224. data/lib/datadog/core/configuration/supported_configurations.rb +415 -0
  225. data/lib/datadog/core/configuration.rb +47 -23
  226. data/lib/datadog/core/contrib/rails/railtie.rb +32 -0
  227. data/lib/datadog/core/contrib/rails/utils.rb +28 -0
  228. data/lib/datadog/core/crashtracking/component.rb +81 -38
  229. data/lib/datadog/core/crashtracking/tag_builder.rb +11 -23
  230. data/lib/datadog/core/ddsketch.rb +19 -0
  231. data/lib/datadog/core/deprecations.rb +3 -3
  232. data/lib/datadog/core/diagnostics/environment_logger.rb +10 -8
  233. data/lib/datadog/core/diagnostics/health.rb +2 -2
  234. data/lib/datadog/core/encoding.rb +21 -5
  235. data/lib/datadog/core/environment/agent_info.rb +142 -0
  236. data/lib/datadog/core/environment/cgroup.rb +53 -28
  237. data/lib/datadog/core/environment/container.rb +143 -51
  238. data/lib/datadog/core/environment/execution.rb +3 -3
  239. data/lib/datadog/core/environment/ext.rb +32 -21
  240. data/lib/datadog/core/environment/git.rb +5 -4
  241. data/lib/datadog/core/environment/identity.rb +50 -14
  242. data/lib/datadog/core/environment/platform.rb +8 -8
  243. data/lib/datadog/core/environment/process.rb +122 -0
  244. data/lib/datadog/core/environment/socket.rb +15 -2
  245. data/lib/datadog/core/environment/variable_helpers.rb +4 -4
  246. data/lib/datadog/core/environment/yjit.rb +2 -1
  247. data/lib/datadog/core/error.rb +15 -13
  248. data/lib/datadog/core/evp.rb +11 -0
  249. data/lib/datadog/core/extensions.rb +1 -1
  250. data/lib/datadog/core/feature_flags.rb +61 -0
  251. data/lib/datadog/core/git/ext.rb +4 -4
  252. data/lib/datadog/core/knuth_sampler.rb +59 -0
  253. data/lib/datadog/core/logger.rb +5 -5
  254. data/lib/datadog/core/logging/ext.rb +1 -1
  255. data/lib/datadog/core/metrics/client.rb +49 -49
  256. data/lib/datadog/core/metrics/ext.rb +5 -5
  257. data/lib/datadog/core/metrics/logging.rb +8 -8
  258. data/lib/datadog/core/metrics/options.rb +3 -3
  259. data/lib/datadog/core/pin.rb +9 -9
  260. data/lib/datadog/core/process_discovery/tracer_memfd.rb +13 -0
  261. data/lib/datadog/core/process_discovery.rb +62 -0
  262. data/lib/datadog/core/rate_limiter.rb +16 -4
  263. data/lib/datadog/core/remote/client/capabilities.rb +72 -13
  264. data/lib/datadog/core/remote/client.rb +68 -51
  265. data/lib/datadog/core/remote/component.rb +90 -55
  266. data/lib/datadog/core/remote/configuration/content.rb +17 -4
  267. data/lib/datadog/core/remote/configuration/digest.rb +22 -15
  268. data/lib/datadog/core/remote/configuration/path.rb +9 -9
  269. data/lib/datadog/core/remote/configuration/repository.rb +17 -4
  270. data/lib/datadog/core/remote/configuration/target.rb +15 -8
  271. data/lib/datadog/core/remote/configuration.rb +4 -4
  272. data/lib/datadog/core/remote/ext.rb +3 -3
  273. data/lib/datadog/core/remote/negotiation.rb +10 -10
  274. data/lib/datadog/core/remote/tie/tracing.rb +7 -7
  275. data/lib/datadog/core/remote/transport/config.rb +11 -37
  276. data/lib/datadog/core/remote/transport/http/config.rb +39 -107
  277. data/lib/datadog/core/remote/transport/http/negotiation.rb +19 -92
  278. data/lib/datadog/core/remote/transport/http.rb +33 -111
  279. data/lib/datadog/core/remote/transport/negotiation.rb +9 -21
  280. data/lib/datadog/core/remote/worker.rb +33 -42
  281. data/lib/datadog/core/runtime/ext.rb +22 -23
  282. data/lib/datadog/core/runtime/metrics.rb +30 -14
  283. data/lib/datadog/core/semaphore.rb +1 -4
  284. data/lib/datadog/core/tag_builder.rb +52 -0
  285. data/lib/datadog/core/tag_normalizer.rb +84 -0
  286. data/lib/datadog/core/telemetry/component.rb +142 -65
  287. data/lib/datadog/core/telemetry/emitter.rb +26 -14
  288. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +65 -0
  289. data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
  290. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
  291. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  292. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +32 -0
  293. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
  294. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
  295. data/lib/datadog/core/telemetry/event/app_started.rb +293 -0
  296. data/lib/datadog/core/telemetry/event/base.rb +40 -0
  297. data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
  298. data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
  299. data/lib/datadog/core/telemetry/event/log.rb +76 -0
  300. data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
  301. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +66 -0
  302. data/lib/datadog/core/telemetry/event.rb +21 -392
  303. data/lib/datadog/core/telemetry/ext.rb +11 -10
  304. data/lib/datadog/core/telemetry/http/adapters/net.rb +12 -97
  305. data/lib/datadog/core/telemetry/logger.rb +6 -3
  306. data/lib/datadog/core/telemetry/logging.rb +27 -9
  307. data/lib/datadog/core/telemetry/metric.rb +35 -13
  308. data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
  309. data/lib/datadog/core/telemetry/metrics_manager.rb +10 -1
  310. data/lib/datadog/core/telemetry/request.rb +21 -9
  311. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +66 -0
  312. data/lib/datadog/core/telemetry/transport/http.rb +68 -0
  313. data/lib/datadog/core/telemetry/transport/telemetry.rb +42 -0
  314. data/lib/datadog/core/telemetry/worker.rb +214 -35
  315. data/lib/datadog/core/transport/ext.rb +14 -11
  316. data/lib/datadog/core/transport/http/adapters/net.rb +19 -4
  317. data/lib/datadog/core/transport/http/adapters/test.rb +3 -2
  318. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +5 -5
  319. data/lib/datadog/core/transport/http/api/endpoint.rb +10 -5
  320. data/lib/datadog/{tracing → core}/transport/http/api/instance.rb +5 -5
  321. data/lib/datadog/core/transport/http/api/map.rb +1 -1
  322. data/lib/datadog/{tracing → core}/transport/http/builder.rb +62 -36
  323. data/lib/datadog/core/transport/http/client.rb +80 -0
  324. data/lib/datadog/core/transport/http/env.rb +8 -0
  325. data/lib/datadog/core/transport/http/response.rb +5 -1
  326. data/lib/datadog/core/transport/http.rb +80 -0
  327. data/lib/datadog/core/transport/parcel.rb +61 -9
  328. data/lib/datadog/core/transport/response.rb +19 -1
  329. data/lib/datadog/core/transport/transport.rb +90 -0
  330. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +9 -9
  331. data/lib/datadog/core/utils/base64_codec.rb +23 -0
  332. data/lib/datadog/core/utils/duration.rb +33 -33
  333. data/lib/datadog/core/utils/enumerable_compat.rb +29 -0
  334. data/lib/datadog/core/utils/fnv.rb +26 -0
  335. data/lib/datadog/core/utils/forking.rb +5 -3
  336. data/lib/datadog/core/utils/hash.rb +0 -23
  337. data/lib/datadog/core/utils/lru_cache.rb +45 -0
  338. data/lib/datadog/core/utils/network.rb +34 -13
  339. data/lib/datadog/core/utils/only_once.rb +1 -1
  340. data/lib/datadog/core/utils/only_once_successful.rb +25 -8
  341. data/lib/datadog/core/utils/safe_dup.rb +4 -3
  342. data/lib/datadog/core/utils/sequence.rb +2 -0
  343. data/lib/datadog/core/utils/spawn_monkey_patch.rb +68 -0
  344. data/lib/datadog/core/utils/time.rb +26 -2
  345. data/lib/datadog/core/utils/truncation.rb +21 -0
  346. data/lib/datadog/core/utils/url.rb +1 -1
  347. data/lib/datadog/core/utils.rb +14 -5
  348. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
  349. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
  350. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
  351. data/lib/datadog/core/worker.rb +1 -1
  352. data/lib/datadog/core/workers/async.rb +40 -14
  353. data/lib/datadog/core/workers/interval_loop.rb +63 -4
  354. data/lib/datadog/core/workers/polling.rb +4 -2
  355. data/lib/datadog/core/workers/queue.rb +96 -1
  356. data/lib/datadog/core/workers/runtime_metrics.rb +14 -6
  357. data/lib/datadog/core.rb +20 -3
  358. data/lib/datadog/data_streams/configuration.rb +50 -0
  359. data/lib/datadog/data_streams/ext.rb +11 -0
  360. data/lib/datadog/data_streams/extensions.rb +16 -0
  361. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  362. data/lib/datadog/data_streams/processor.rb +511 -0
  363. data/lib/datadog/data_streams/transport/http/stats.rb +58 -0
  364. data/lib/datadog/data_streams/transport/http.rb +36 -0
  365. data/lib/datadog/data_streams/transport/stats.rb +39 -0
  366. data/lib/datadog/data_streams.rb +100 -0
  367. data/lib/datadog/di/base.rb +123 -0
  368. data/lib/datadog/di/boot.rb +47 -0
  369. data/lib/datadog/di/capture_expression.rb +21 -0
  370. data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
  371. data/lib/datadog/di/capture_limits.rb +41 -0
  372. data/lib/datadog/di/code_tracker.rb +224 -12
  373. data/lib/datadog/di/component.rb +157 -49
  374. data/lib/datadog/di/configuration.rb +241 -2
  375. data/lib/datadog/di/context.rb +82 -0
  376. data/lib/datadog/di/contrib/active_record.rb +34 -5
  377. data/lib/datadog/di/contrib/railtie.rb +15 -0
  378. data/lib/datadog/di/contrib.rb +28 -0
  379. data/lib/datadog/di/el/compiler.rb +168 -0
  380. data/lib/datadog/di/el/evaluator.rb +159 -0
  381. data/lib/datadog/di/el/expression.rb +42 -0
  382. data/lib/datadog/di/el.rb +5 -0
  383. data/lib/datadog/di/error.rb +49 -0
  384. data/lib/datadog/di/fatal_exceptions.rb +26 -0
  385. data/lib/datadog/di/instrumenter.rb +672 -122
  386. data/lib/datadog/di/logger.rb +30 -0
  387. data/lib/datadog/di/{init.rb → preload.rb} +2 -4
  388. data/lib/datadog/di/probe.rb +125 -20
  389. data/lib/datadog/di/probe_builder.rb +126 -5
  390. data/lib/datadog/di/probe_file_loader/railtie.rb +15 -0
  391. data/lib/datadog/di/probe_file_loader.rb +87 -0
  392. data/lib/datadog/di/probe_manager.rb +198 -100
  393. data/lib/datadog/di/probe_notification_builder.rb +349 -103
  394. data/lib/datadog/di/probe_notifier_worker.rb +161 -51
  395. data/lib/datadog/di/probe_repository.rb +198 -0
  396. data/lib/datadog/di/proc_responder.rb +36 -0
  397. data/lib/datadog/di/redactor.rb +24 -3
  398. data/lib/datadog/di/remote.rb +259 -73
  399. data/lib/datadog/di/serializer.rb +319 -30
  400. data/lib/datadog/di/transport/diagnostics.rb +32 -0
  401. data/lib/datadog/di/transport/http/diagnostics.rb +35 -0
  402. data/lib/datadog/di/transport/http/input.rb +45 -0
  403. data/lib/datadog/di/transport/http.rb +81 -0
  404. data/lib/datadog/di/transport/input.rb +144 -0
  405. data/lib/datadog/di/utils.rb +133 -9
  406. data/lib/datadog/di.rb +188 -121
  407. data/lib/datadog/error_tracking/collector.rb +88 -0
  408. data/lib/datadog/error_tracking/component.rb +167 -0
  409. data/lib/datadog/error_tracking/configuration.rb +64 -0
  410. data/lib/datadog/error_tracking/ext.rb +18 -0
  411. data/lib/datadog/error_tracking/extensions.rb +16 -0
  412. data/lib/datadog/error_tracking/filters.rb +77 -0
  413. data/lib/datadog/error_tracking.rb +18 -0
  414. data/lib/datadog/kit/appsec/events/v2.rb +253 -0
  415. data/lib/datadog/kit/appsec/events.rb +39 -26
  416. data/lib/datadog/kit/enable_core_dumps.rb +3 -3
  417. data/lib/datadog/kit/identity.rb +34 -24
  418. data/lib/datadog/kit/tracing/method_tracer.rb +135 -0
  419. data/lib/datadog/kit.rb +1 -1
  420. data/lib/datadog/open_feature/component.rb +109 -0
  421. data/lib/datadog/open_feature/configuration.rb +50 -0
  422. data/lib/datadog/open_feature/evaluation_engine.rb +70 -0
  423. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  424. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  425. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  426. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  427. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  428. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  429. data/lib/datadog/open_feature/ext.rb +21 -0
  430. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +286 -0
  431. data/lib/datadog/open_feature/flag_evaluation/writer.rb +433 -0
  432. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +102 -0
  433. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +51 -0
  434. data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
  435. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
  436. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
  437. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
  438. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +149 -0
  439. data/lib/datadog/open_feature/native_evaluator.rb +60 -0
  440. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  441. data/lib/datadog/open_feature/provider.rb +226 -0
  442. data/lib/datadog/open_feature/remote.rb +67 -0
  443. data/lib/datadog/open_feature/resolution_details.rb +37 -0
  444. data/lib/datadog/open_feature/transport.rb +121 -0
  445. data/lib/datadog/open_feature.rb +19 -0
  446. data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
  447. data/lib/datadog/opentelemetry/api/context.rb +25 -10
  448. data/lib/datadog/opentelemetry/configuration/settings.rb +226 -0
  449. data/lib/datadog/opentelemetry/ext.rb +9 -0
  450. data/lib/datadog/opentelemetry/logs.rb +98 -0
  451. data/lib/datadog/opentelemetry/metrics.rb +90 -0
  452. data/lib/datadog/opentelemetry/sdk/configurator.rb +69 -5
  453. data/lib/datadog/opentelemetry/sdk/id_generator.rb +16 -10
  454. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +30 -0
  455. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +28 -0
  456. data/lib/datadog/opentelemetry/sdk/propagator.rb +20 -14
  457. data/lib/datadog/opentelemetry/sdk/span_processor.rb +24 -21
  458. data/lib/datadog/opentelemetry/sdk/trace/span.rb +43 -39
  459. data/lib/datadog/opentelemetry/sdk.rb +19 -0
  460. data/lib/datadog/opentelemetry/signal_configuration.rb +53 -0
  461. data/lib/datadog/opentelemetry/trace.rb +5 -5
  462. data/lib/datadog/opentelemetry.rb +11 -6
  463. data/lib/datadog/profiling/collectors/code_provenance.rb +84 -16
  464. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +57 -3
  465. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +13 -4
  466. data/lib/datadog/profiling/collectors/info.rb +62 -4
  467. data/lib/datadog/profiling/collectors/thread_context.rb +27 -7
  468. data/lib/datadog/profiling/component.rb +125 -88
  469. data/lib/datadog/profiling/encoded_profile.rb +11 -0
  470. data/lib/datadog/profiling/exporter.rb +51 -17
  471. data/lib/datadog/profiling/ext/dir_monkey_patches.rb +24 -5
  472. data/lib/datadog/profiling/ext/exec_monkey_patch.rb +32 -0
  473. data/lib/datadog/profiling/ext.rb +2 -17
  474. data/lib/datadog/profiling/flush.rb +26 -17
  475. data/lib/datadog/profiling/http_transport.rb +30 -96
  476. data/lib/datadog/profiling/load_native_extension.rb +3 -35
  477. data/lib/datadog/profiling/profiler.rb +31 -12
  478. data/lib/datadog/profiling/scheduler.rb +19 -10
  479. data/lib/datadog/profiling/sequence_tracker.rb +44 -0
  480. data/lib/datadog/profiling/stack_recorder.rb +9 -17
  481. data/lib/datadog/profiling/tag_builder.rb +41 -41
  482. data/lib/datadog/profiling/tasks/exec.rb +10 -5
  483. data/lib/datadog/profiling/tasks/help.rb +1 -0
  484. data/lib/datadog/profiling/tasks/setup.rb +4 -2
  485. data/lib/datadog/profiling.rb +38 -37
  486. data/lib/datadog/ruby_version.rb +25 -0
  487. data/lib/datadog/single_step_instrument.rb +11 -2
  488. data/lib/datadog/symbol_database/component.rb +734 -0
  489. data/lib/datadog/symbol_database/configuration.rb +73 -0
  490. data/lib/datadog/symbol_database/extensions.rb +19 -0
  491. data/lib/datadog/symbol_database/extractor.rb +1110 -0
  492. data/lib/datadog/symbol_database/file_hash.rb +48 -0
  493. data/lib/datadog/symbol_database/logger.rb +43 -0
  494. data/lib/datadog/symbol_database/remote.rb +195 -0
  495. data/lib/datadog/symbol_database/scope.rb +102 -0
  496. data/lib/datadog/symbol_database/scope_batcher.rb +292 -0
  497. data/lib/datadog/symbol_database/service_version.rb +66 -0
  498. data/lib/datadog/symbol_database/symbol.rb +69 -0
  499. data/lib/datadog/symbol_database/transport/http/endpoint.rb +28 -0
  500. data/lib/datadog/symbol_database/transport/http.rb +45 -0
  501. data/lib/datadog/symbol_database/transport.rb +54 -0
  502. data/lib/datadog/symbol_database/uploader.rb +230 -0
  503. data/lib/datadog/symbol_database.rb +71 -0
  504. data/lib/datadog/tracing/analytics.rb +2 -2
  505. data/lib/datadog/tracing/buffer.rb +15 -15
  506. data/lib/datadog/tracing/client_ip.rb +4 -4
  507. data/lib/datadog/tracing/component.rb +39 -35
  508. data/lib/datadog/tracing/configuration/dynamic.rb +14 -16
  509. data/lib/datadog/tracing/configuration/ext.rb +60 -33
  510. data/lib/datadog/tracing/configuration/http.rb +2 -2
  511. data/lib/datadog/tracing/configuration/settings.rb +156 -26
  512. data/lib/datadog/tracing/context.rb +3 -3
  513. data/lib/datadog/tracing/context_provider.rb +3 -3
  514. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  515. data/lib/datadog/tracing/contrib/action_cable/event.rb +5 -5
  516. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +9 -6
  517. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +8 -5
  518. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +9 -6
  519. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  520. data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
  521. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +8 -5
  522. data/lib/datadog/tracing/contrib/action_cable/integration.rb +10 -7
  523. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  524. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  525. data/lib/datadog/tracing/contrib/action_mailer/event.rb +7 -4
  526. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
  527. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
  528. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  529. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
  530. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +11 -7
  531. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  532. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +37 -19
  533. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  534. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +48 -13
  535. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +5 -3
  536. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
  537. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -8
  538. data/lib/datadog/tracing/contrib/action_pack/integration.rb +10 -7
  539. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
  540. data/lib/datadog/tracing/contrib/action_pack/utils.rb +2 -3
  541. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
  542. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  543. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +10 -7
  544. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +12 -9
  545. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  546. data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
  547. data/lib/datadog/tracing/contrib/action_view/integration.rb +14 -11
  548. data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
  549. data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
  550. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
  551. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
  552. data/lib/datadog/tracing/contrib/active_job/event.rb +11 -11
  553. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +11 -8
  554. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +11 -8
  555. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +11 -8
  556. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +11 -8
  557. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +11 -8
  558. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +11 -8
  559. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  560. data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
  561. data/lib/datadog/tracing/contrib/active_job/integration.rb +10 -7
  562. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  563. data/lib/datadog/tracing/contrib/active_job/patcher.rb +21 -5
  564. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  565. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
  566. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +8 -8
  567. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +9 -10
  568. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  569. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
  570. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -6
  571. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
  572. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
  573. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +8 -8
  574. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
  575. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  576. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +10 -10
  577. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +16 -19
  578. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  579. data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
  580. data/lib/datadog/tracing/contrib/active_record/integration.rb +16 -12
  581. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  582. data/lib/datadog/tracing/contrib/active_record/utils.rb +19 -19
  583. data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
  584. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +28 -20
  585. data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
  586. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +40 -8
  587. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +8 -4
  588. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +5 -7
  589. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +26 -3
  590. data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
  591. data/lib/datadog/tracing/contrib/active_support/integration.rb +11 -8
  592. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +3 -2
  593. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  594. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +9 -11
  595. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  596. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  597. data/lib/datadog/tracing/contrib/auto_instrument.rb +5 -5
  598. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
  599. data/lib/datadog/tracing/contrib/aws/ext.rb +26 -26
  600. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +21 -13
  601. data/lib/datadog/tracing/contrib/aws/integration.rb +11 -8
  602. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +9 -3
  603. data/lib/datadog/tracing/contrib/aws/patcher.rb +10 -6
  604. data/lib/datadog/tracing/contrib/aws/service/base.rb +2 -1
  605. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
  606. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
  607. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
  608. data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
  609. data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
  610. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
  611. data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
  612. data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
  613. data/lib/datadog/tracing/contrib/component.rb +3 -3
  614. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +2 -2
  615. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  616. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +2 -2
  617. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
  618. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +2 -2
  619. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +8 -5
  620. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
  621. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +2 -2
  622. data/lib/datadog/tracing/contrib/configurable.rb +24 -9
  623. data/lib/datadog/tracing/contrib/configuration/resolver.rb +14 -4
  624. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +5 -5
  625. data/lib/datadog/tracing/contrib/configuration/settings.rb +3 -3
  626. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
  627. data/lib/datadog/tracing/contrib/dalli/ext.rb +16 -15
  628. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +6 -10
  629. data/lib/datadog/tracing/contrib/dalli/integration.rb +10 -7
  630. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  631. data/lib/datadog/tracing/contrib/dalli/quantize.rb +3 -3
  632. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
  633. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
  634. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
  635. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
  636. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +7 -5
  637. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +1 -0
  638. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
  639. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +18 -17
  640. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +8 -8
  641. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +57 -63
  642. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +8 -8
  643. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +7 -3
  644. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +19 -21
  645. data/lib/datadog/tracing/contrib/ethon/ext.rb +16 -14
  646. data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
  647. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +4 -11
  648. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  649. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +21 -10
  650. data/lib/datadog/tracing/contrib/excon/ext.rb +14 -12
  651. data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
  652. data/lib/datadog/tracing/contrib/excon/middleware.rb +17 -19
  653. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  654. data/lib/datadog/tracing/contrib/ext.rb +20 -17
  655. data/lib/datadog/tracing/contrib/extensions.rb +57 -14
  656. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +20 -13
  657. data/lib/datadog/tracing/contrib/faraday/ext.rb +14 -12
  658. data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
  659. data/lib/datadog/tracing/contrib/faraday/middleware.rb +19 -19
  660. data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
  661. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +11 -7
  662. data/lib/datadog/tracing/contrib/grape/endpoint.rb +37 -34
  663. data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
  664. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +15 -10
  665. data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
  666. data/lib/datadog/tracing/contrib/grape/patcher.rb +10 -5
  667. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +21 -0
  668. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +20 -2
  669. data/lib/datadog/tracing/contrib/graphql/ext.rb +11 -5
  670. data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
  671. data/lib/datadog/tracing/contrib/graphql/patcher.rb +8 -8
  672. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +174 -41
  673. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
  674. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +7 -4
  675. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +25 -23
  676. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +13 -17
  677. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
  678. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +2 -2
  679. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +12 -7
  680. data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -13
  681. data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
  682. data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
  683. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  684. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
  685. data/lib/datadog/tracing/contrib/grpc.rb +7 -6
  686. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +4 -3
  687. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
  688. data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
  689. data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
  690. data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
  691. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +5 -4
  692. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +12 -13
  693. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -16
  694. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +20 -9
  695. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +6 -6
  696. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +13 -8
  697. data/lib/datadog/tracing/contrib/http/ext.rb +14 -12
  698. data/lib/datadog/tracing/contrib/http/instrumentation.rb +20 -28
  699. data/lib/datadog/tracing/contrib/http/integration.rb +9 -8
  700. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  701. data/lib/datadog/tracing/contrib/http.rb +7 -6
  702. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +20 -9
  703. data/lib/datadog/tracing/contrib/httpclient/ext.rb +14 -12
  704. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +21 -31
  705. data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
  706. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  707. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +20 -9
  708. data/lib/datadog/tracing/contrib/httprb/ext.rb +14 -12
  709. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +20 -32
  710. data/lib/datadog/tracing/contrib/httprb/integration.rb +9 -6
  711. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  712. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  713. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  714. data/lib/datadog/tracing/contrib/kafka/event.rb +5 -4
  715. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +4 -4
  716. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +5 -5
  717. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +5 -5
  718. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +6 -6
  719. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +6 -6
  720. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +6 -6
  721. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +6 -6
  722. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +4 -4
  723. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +4 -4
  724. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  725. data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
  726. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  727. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  728. data/lib/datadog/tracing/contrib/kafka/integration.rb +8 -5
  729. data/lib/datadog/tracing/contrib/kafka/patcher.rb +17 -3
  730. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +31 -0
  731. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +50 -0
  732. data/lib/datadog/tracing/contrib/karafka/ext.rb +28 -0
  733. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  734. data/lib/datadog/tracing/contrib/karafka/integration.rb +45 -0
  735. data/lib/datadog/tracing/contrib/karafka/monitor.rb +77 -0
  736. data/lib/datadog/tracing/contrib/karafka/patcher.rb +102 -0
  737. data/lib/datadog/tracing/contrib/karafka.rb +38 -0
  738. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  739. data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
  740. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -1
  741. data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
  742. data/lib/datadog/tracing/contrib/lograge/patcher.rb +13 -11
  743. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +11 -3
  744. data/lib/datadog/tracing/contrib/mongodb/ext.rb +19 -18
  745. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  746. data/lib/datadog/tracing/contrib/mongodb/integration.rb +9 -6
  747. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +10 -10
  748. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  749. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +38 -24
  750. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +9 -3
  751. data/lib/datadog/tracing/contrib/mysql2/ext.rb +12 -12
  752. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +25 -18
  753. data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
  754. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  755. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +19 -2
  756. data/lib/datadog/tracing/contrib/opensearch/ext.rb +31 -21
  757. data/lib/datadog/tracing/contrib/opensearch/integration.rb +8 -6
  758. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +75 -77
  759. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +9 -9
  760. data/lib/datadog/tracing/contrib/patcher.rb +14 -13
  761. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +9 -3
  762. data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
  763. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +21 -24
  764. data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
  765. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
  766. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
  767. data/lib/datadog/tracing/contrib/presto/ext.rb +22 -22
  768. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +11 -13
  769. data/lib/datadog/tracing/contrib/presto/integration.rb +8 -5
  770. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  771. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
  772. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +26 -13
  773. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +7 -3
  774. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +29 -5
  775. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +7 -4
  776. data/lib/datadog/tracing/contrib/que/ext.rb +19 -18
  777. data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
  778. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  779. data/lib/datadog/tracing/contrib/que/tracer.rb +2 -1
  780. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
  781. data/lib/datadog/tracing/contrib/racecar/event.rb +6 -10
  782. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +5 -5
  783. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +4 -4
  784. data/lib/datadog/tracing/contrib/racecar/events/message.rb +5 -5
  785. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  786. data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
  787. data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
  788. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  789. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +13 -3
  790. data/lib/datadog/tracing/contrib/rack/ext.rb +43 -15
  791. data/lib/datadog/tracing/contrib/rack/header_collection.rb +13 -3
  792. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +55 -32
  793. data/lib/datadog/tracing/contrib/rack/integration.rb +7 -7
  794. data/lib/datadog/tracing/contrib/rack/middlewares.rb +102 -63
  795. data/lib/datadog/tracing/contrib/rack/patcher.rb +5 -5
  796. data/lib/datadog/tracing/contrib/rack/request_queue.rb +8 -7
  797. data/lib/datadog/tracing/contrib/rack/route_inference.rb +67 -0
  798. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +130 -6
  799. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  800. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +9 -6
  801. data/lib/datadog/tracing/contrib/rails/ext.rb +16 -14
  802. data/lib/datadog/tracing/contrib/rails/framework.rb +12 -12
  803. data/lib/datadog/tracing/contrib/rails/integration.rb +6 -6
  804. data/lib/datadog/tracing/contrib/rails/log_injection.rb +2 -2
  805. data/lib/datadog/tracing/contrib/rails/middlewares.rb +4 -4
  806. data/lib/datadog/tracing/contrib/rails/patcher.rb +11 -9
  807. data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
  808. data/lib/datadog/tracing/contrib/rails/runner.rb +64 -40
  809. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
  810. data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
  811. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +13 -11
  812. data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
  813. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
  814. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +4 -4
  815. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
  816. data/lib/datadog/tracing/contrib/redis/ext.rb +19 -18
  817. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
  818. data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
  819. data/lib/datadog/tracing/contrib/redis/patcher.rb +12 -12
  820. data/lib/datadog/tracing/contrib/redis/quantize.rb +6 -6
  821. data/lib/datadog/tracing/contrib/redis/tags.rb +7 -12
  822. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +11 -9
  823. data/lib/datadog/tracing/contrib/registerable.rb +11 -0
  824. data/lib/datadog/tracing/contrib/registry.rb +1 -1
  825. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
  826. data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
  827. data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
  828. data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
  829. data/lib/datadog/tracing/contrib/resque/resque_job.rb +7 -6
  830. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +7 -4
  831. data/lib/datadog/tracing/contrib/rest_client/ext.rb +13 -11
  832. data/lib/datadog/tracing/contrib/rest_client/integration.rb +8 -5
  833. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  834. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +18 -17
  835. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
  836. data/lib/datadog/tracing/contrib/roda/ext.rb +6 -5
  837. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +12 -7
  838. data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
  839. data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
  840. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  841. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
  842. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -1
  843. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
  844. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  845. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  846. data/lib/datadog/tracing/contrib/sequel/database.rb +12 -11
  847. data/lib/datadog/tracing/contrib/sequel/dataset.rb +7 -6
  848. data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
  849. data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
  850. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  851. data/lib/datadog/tracing/contrib/sequel/utils.rb +115 -15
  852. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
  853. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
  854. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
  855. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  856. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +3 -2
  857. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +15 -9
  858. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +7 -3
  859. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +13 -8
  860. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +31 -29
  861. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
  862. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
  863. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +2 -0
  864. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +1 -0
  865. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +1 -0
  866. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +2 -0
  867. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +1 -0
  868. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +19 -15
  869. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +10 -10
  870. data/lib/datadog/tracing/contrib/sidekiq.rb +7 -6
  871. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +7 -3
  872. data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
  873. data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -16
  874. data/lib/datadog/tracing/contrib/sinatra/framework.rb +2 -2
  875. data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
  876. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
  877. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +11 -10
  878. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +46 -45
  879. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
  880. data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
  881. data/lib/datadog/tracing/contrib/sneakers/integration.rb +19 -8
  882. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  883. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +4 -3
  884. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +9 -4
  885. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
  886. data/lib/datadog/tracing/contrib/status_range_matcher.rb +13 -1
  887. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
  888. data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
  889. data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
  890. data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
  891. data/lib/datadog/tracing/contrib/stripe/request.rb +5 -5
  892. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  893. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  894. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
  895. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +5 -4
  896. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
  897. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
  898. data/lib/datadog/tracing/contrib/support.rb +28 -0
  899. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +9 -3
  900. data/lib/datadog/tracing/contrib/trilogy/ext.rb +12 -12
  901. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +10 -12
  902. data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
  903. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
  904. data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
  905. data/lib/datadog/tracing/contrib/utils/quantization/{hash.rb → hash_formatter.rb} +16 -14
  906. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +16 -16
  907. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +31 -0
  908. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +50 -0
  909. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +18 -0
  910. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  911. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  912. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +49 -0
  913. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  914. data/lib/datadog/tracing/contrib/waterdrop.rb +42 -0
  915. data/lib/datadog/tracing/contrib.rb +62 -52
  916. data/lib/datadog/tracing/correlation.rb +19 -12
  917. data/lib/datadog/tracing/diagnostics/environment_logger.rb +21 -13
  918. data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
  919. data/lib/datadog/tracing/diagnostics/health.rb +1 -1
  920. data/lib/datadog/tracing/distributed/b3_multi.rb +9 -9
  921. data/lib/datadog/tracing/distributed/b3_single.rb +6 -6
  922. data/lib/datadog/tracing/distributed/baggage.rb +252 -0
  923. data/lib/datadog/tracing/distributed/datadog.rb +39 -36
  924. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +12 -27
  925. data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
  926. data/lib/datadog/tracing/distributed/helpers.rb +4 -4
  927. data/lib/datadog/tracing/distributed/none.rb +4 -2
  928. data/lib/datadog/tracing/distributed/propagation.rb +70 -14
  929. data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
  930. data/lib/datadog/tracing/distributed/trace_context.rb +126 -97
  931. data/lib/datadog/tracing/event.rb +6 -8
  932. data/lib/datadog/tracing/ext.rb +9 -0
  933. data/lib/datadog/tracing/flush.rb +1 -1
  934. data/lib/datadog/tracing/metadata/analytics.rb +3 -3
  935. data/lib/datadog/tracing/metadata/errors.rb +8 -8
  936. data/lib/datadog/tracing/metadata/ext.rb +86 -59
  937. data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
  938. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
  939. data/lib/datadog/tracing/metadata/tagging.rb +8 -8
  940. data/lib/datadog/tracing/metadata.rb +5 -3
  941. data/lib/datadog/tracing/pipeline/span_filter.rb +5 -3
  942. data/lib/datadog/tracing/pipeline/span_processor.rb +3 -1
  943. data/lib/datadog/tracing/pipeline.rb +4 -4
  944. data/lib/datadog/tracing/remote.rb +47 -17
  945. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  946. data/lib/datadog/tracing/sampling/ext.rb +9 -9
  947. data/lib/datadog/tracing/sampling/matcher.rb +4 -4
  948. data/lib/datadog/tracing/sampling/priority_sampler.rb +20 -5
  949. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
  950. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
  951. data/lib/datadog/tracing/sampling/rate_sampler.rb +9 -19
  952. data/lib/datadog/tracing/sampling/rule.rb +5 -5
  953. data/lib/datadog/tracing/sampling/rule_sampler.rb +88 -59
  954. data/lib/datadog/tracing/sampling/sampler.rb +2 -2
  955. data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
  956. data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
  957. data/lib/datadog/tracing/sampling/span/rule.rb +1 -2
  958. data/lib/datadog/tracing/sampling/span/rule_parser.rb +11 -11
  959. data/lib/datadog/tracing/sampling/span/sampler.rb +0 -7
  960. data/lib/datadog/tracing/span.rb +28 -11
  961. data/lib/datadog/tracing/span_event.rb +125 -5
  962. data/lib/datadog/tracing/span_link.rb +12 -12
  963. data/lib/datadog/tracing/span_operation.rb +119 -39
  964. data/lib/datadog/tracing/sync_writer.rb +14 -11
  965. data/lib/datadog/tracing/trace_digest.rb +36 -24
  966. data/lib/datadog/tracing/trace_operation.rb +243 -112
  967. data/lib/datadog/tracing/trace_segment.rb +18 -16
  968. data/lib/datadog/tracing/tracer.rb +181 -72
  969. data/lib/datadog/tracing/transport/http/client.rb +17 -30
  970. data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
  971. data/lib/datadog/tracing/transport/http/traces.rb +11 -90
  972. data/lib/datadog/tracing/transport/http.rb +26 -77
  973. data/lib/datadog/tracing/transport/io/client.rb +13 -16
  974. data/lib/datadog/tracing/transport/io/response.rb +1 -1
  975. data/lib/datadog/tracing/transport/io/traces.rb +32 -38
  976. data/lib/datadog/tracing/transport/io.rb +3 -3
  977. data/lib/datadog/tracing/transport/serializable_trace.rb +47 -23
  978. data/lib/datadog/tracing/transport/statistics.rb +3 -3
  979. data/lib/datadog/tracing/transport/trace_formatter.rb +36 -7
  980. data/lib/datadog/tracing/transport/traces.rb +56 -90
  981. data/lib/datadog/tracing/utils.rb +3 -3
  982. data/lib/datadog/tracing/workers.rb +11 -9
  983. data/lib/datadog/tracing/writer.rb +15 -11
  984. data/lib/datadog/tracing.rb +19 -6
  985. data/lib/datadog/version.rb +4 -4
  986. data/lib/datadog.rb +20 -7
  987. metadata +327 -69
  988. data/ext/datadog_profiling_loader/datadog_profiling_loader.c +0 -142
  989. data/ext/datadog_profiling_loader/extconf.rb +0 -60
  990. data/ext/datadog_profiling_native_extension/clock_id_noop.c +0 -21
  991. data/ext/libdatadog_api/macos_development.md +0 -26
  992. data/lib/datadog/appsec/assets/waf_rules/processors.json +0 -92
  993. data/lib/datadog/appsec/assets/waf_rules/scanners.json +0 -114
  994. data/lib/datadog/appsec/configuration/settings.rb +0 -215
  995. data/lib/datadog/appsec/contrib/devise/event.rb +0 -57
  996. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -77
  997. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -54
  998. data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
  999. data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
  1000. data/lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb +0 -46
  1001. data/lib/datadog/appsec/contrib/patcher.rb +0 -12
  1002. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +0 -69
  1003. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +0 -47
  1004. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +0 -53
  1005. data/lib/datadog/appsec/contrib/rails/ext.rb +0 -13
  1006. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +0 -53
  1007. data/lib/datadog/appsec/contrib/sinatra/ext.rb +0 -14
  1008. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +0 -48
  1009. data/lib/datadog/appsec/monitor/reactive/set_user.rb +0 -45
  1010. data/lib/datadog/appsec/processor/context.rb +0 -107
  1011. data/lib/datadog/appsec/processor/rule_merger.rb +0 -170
  1012. data/lib/datadog/appsec/processor.rb +0 -106
  1013. data/lib/datadog/appsec/reactive/address_hash.rb +0 -22
  1014. data/lib/datadog/appsec/reactive/engine.rb +0 -47
  1015. data/lib/datadog/appsec/reactive/operation.rb +0 -68
  1016. data/lib/datadog/appsec/reactive/subscriber.rb +0 -19
  1017. data/lib/datadog/appsec/scope.rb +0 -58
  1018. data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
  1019. data/lib/datadog/core/crashtracking/agent_base_url.rb +0 -21
  1020. data/lib/datadog/core/remote/transport/http/api/instance.rb +0 -39
  1021. data/lib/datadog/core/remote/transport/http/api/spec.rb +0 -21
  1022. data/lib/datadog/core/remote/transport/http/api.rb +0 -58
  1023. data/lib/datadog/core/remote/transport/http/builder.rb +0 -219
  1024. data/lib/datadog/core/remote/transport/http/client.rb +0 -48
  1025. data/lib/datadog/core/telemetry/http/env.rb +0 -20
  1026. data/lib/datadog/core/telemetry/http/ext.rb +0 -28
  1027. data/lib/datadog/core/telemetry/http/response.rb +0 -70
  1028. data/lib/datadog/core/telemetry/http/transport.rb +0 -90
  1029. data/lib/datadog/core/utils/base64.rb +0 -22
  1030. data/lib/datadog/di/configuration/settings.rb +0 -188
  1031. data/lib/datadog/di/transport.rb +0 -81
  1032. data/lib/datadog/tracing/contrib/rails/utils.rb +0 -26
  1033. data/lib/datadog/tracing/transport/http/api/spec.rb +0 -19
  1034. data/lib/datadog/tracing/transport/http/api.rb +0 -43
  1035. data/lib/datadog/tracing/workers/trace_writer.rb +0 -196
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "2.2",
3
3
  "metadata": {
4
- "rules_version": "1.13.1"
4
+ "rules_version": "1.15.1"
5
5
  },
6
6
  "rules": [
7
7
  {
@@ -9,7 +9,8 @@
9
9
  "name": "Block IP Addresses",
10
10
  "tags": {
11
11
  "type": "block_ip",
12
- "category": "security_response"
12
+ "category": "security_response",
13
+ "module": "network-acl"
13
14
  },
14
15
  "conditions": [
15
16
  {
@@ -34,7 +35,8 @@
34
35
  "name": "Block User Addresses",
35
36
  "tags": {
36
37
  "type": "block_user",
37
- "category": "security_response"
38
+ "category": "security_response",
39
+ "module": "authentication-acl"
38
40
  },
39
41
  "conditions": [
40
42
  {
@@ -64,7 +66,8 @@
64
66
  "tool_name": "Acunetix",
65
67
  "cwe": "200",
66
68
  "capec": "1000/118/169",
67
- "confidence": "0"
69
+ "confidence": "0",
70
+ "module": "waf"
68
71
  },
69
72
  "conditions": [
70
73
  {
@@ -98,7 +101,8 @@
98
101
  "category": "attack_attempt",
99
102
  "cwe": "200",
100
103
  "capec": "1000/118/169",
101
- "confidence": "1"
104
+ "confidence": "1",
105
+ "module": "waf"
102
106
  },
103
107
  "conditions": [
104
108
  {
@@ -162,7 +166,8 @@
162
166
  "category": "attack_attempt",
163
167
  "cwe": "176",
164
168
  "capec": "1000/255/153/267/71",
165
- "confidence": "0"
169
+ "confidence": "0",
170
+ "module": "waf"
166
171
  },
167
172
  "conditions": [
168
173
  {
@@ -191,7 +196,8 @@
191
196
  "crs_id": "921110",
192
197
  "category": "attack_attempt",
193
198
  "cwe": "444",
194
- "capec": "1000/210/272/220/33"
199
+ "capec": "1000/210/272/220/33",
200
+ "module": "waf"
195
201
  },
196
202
  "conditions": [
197
203
  {
@@ -228,7 +234,8 @@
228
234
  "crs_id": "921160",
229
235
  "category": "attack_attempt",
230
236
  "cwe": "113",
231
- "capec": "1000/210/272/220/105"
237
+ "capec": "1000/210/272/220/105",
238
+ "module": "waf"
232
239
  },
233
240
  "conditions": [
234
241
  {
@@ -263,7 +270,8 @@
263
270
  "category": "attack_attempt",
264
271
  "cwe": "22",
265
272
  "capec": "1000/255/153/126",
266
- "confidence": "1"
273
+ "confidence": "1",
274
+ "module": "waf"
267
275
  },
268
276
  "conditions": [
269
277
  {
@@ -297,7 +305,8 @@
297
305
  "category": "attack_attempt",
298
306
  "cwe": "22",
299
307
  "capec": "1000/255/153/126",
300
- "confidence": "1"
308
+ "confidence": "1",
309
+ "module": "waf"
301
310
  },
302
311
  "conditions": [
303
312
  {
@@ -1803,7 +1812,8 @@
1803
1812
  "category": "attack_attempt",
1804
1813
  "cwe": "98",
1805
1814
  "capec": "1000/152/175/253/193",
1806
- "confidence": "1"
1815
+ "confidence": "1",
1816
+ "module": "waf"
1807
1817
  },
1808
1818
  "conditions": [
1809
1819
  {
@@ -1831,7 +1841,8 @@
1831
1841
  "crs_id": "931120",
1832
1842
  "category": "attack_attempt",
1833
1843
  "cwe": "98",
1834
- "capec": "1000/152/175/253/193"
1844
+ "capec": "1000/152/175/253/193",
1845
+ "module": "waf"
1835
1846
  },
1836
1847
  "conditions": [
1837
1848
  {
@@ -1876,7 +1887,8 @@
1876
1887
  "category": "attack_attempt",
1877
1888
  "cwe": "77",
1878
1889
  "capec": "1000/152/248/88",
1879
- "confidence": "1"
1890
+ "confidence": "1",
1891
+ "module": "waf"
1880
1892
  },
1881
1893
  "conditions": [
1882
1894
  {
@@ -2388,7 +2400,8 @@
2388
2400
  "category": "attack_attempt",
2389
2401
  "cwe": "77",
2390
2402
  "capec": "1000/152/248/88",
2391
- "confidence": "1"
2403
+ "confidence": "1",
2404
+ "module": "waf"
2392
2405
  },
2393
2406
  "conditions": [
2394
2407
  {
@@ -2436,7 +2449,8 @@
2436
2449
  "category": "attack_attempt",
2437
2450
  "cwe": "706",
2438
2451
  "capec": "1000/225/122/17/177",
2439
- "confidence": "1"
2452
+ "confidence": "1",
2453
+ "module": "waf"
2440
2454
  },
2441
2455
  "conditions": [
2442
2456
  {
@@ -2500,7 +2514,8 @@
2500
2514
  "category": "attack_attempt",
2501
2515
  "cwe": "434",
2502
2516
  "capec": "1000/225/122/17/650",
2503
- "confidence": "1"
2517
+ "confidence": "1",
2518
+ "module": "waf"
2504
2519
  },
2505
2520
  "conditions": [
2506
2521
  {
@@ -2553,7 +2568,8 @@
2553
2568
  "category": "attack_attempt",
2554
2569
  "cwe": "94",
2555
2570
  "capec": "1000/225/122/17/650",
2556
- "confidence": "1"
2571
+ "confidence": "1",
2572
+ "module": "waf"
2557
2573
  },
2558
2574
  "conditions": [
2559
2575
  {
@@ -2620,7 +2636,8 @@
2620
2636
  "crs_id": "933131",
2621
2637
  "category": "attack_attempt",
2622
2638
  "cwe": "94",
2623
- "capec": "1000/225/122/17/650"
2639
+ "capec": "1000/225/122/17/650",
2640
+ "module": "waf"
2624
2641
  },
2625
2642
  "conditions": [
2626
2643
  {
@@ -2665,7 +2682,8 @@
2665
2682
  "category": "attack_attempt",
2666
2683
  "cwe": "94",
2667
2684
  "capec": "1000/225/122/17/650",
2668
- "confidence": "1"
2685
+ "confidence": "1",
2686
+ "module": "waf"
2669
2687
  },
2670
2688
  "conditions": [
2671
2689
  {
@@ -2709,7 +2727,8 @@
2709
2727
  "category": "attack_attempt",
2710
2728
  "cwe": "94",
2711
2729
  "capec": "1000/225/122/17/650",
2712
- "confidence": "1"
2730
+ "confidence": "1",
2731
+ "module": "waf"
2713
2732
  },
2714
2733
  "conditions": [
2715
2734
  {
@@ -2799,7 +2818,8 @@
2799
2818
  "crs_id": "933160",
2800
2819
  "category": "attack_attempt",
2801
2820
  "cwe": "94",
2802
- "capec": "1000/225/122/17/650"
2821
+ "capec": "1000/225/122/17/650",
2822
+ "module": "waf"
2803
2823
  },
2804
2824
  "conditions": [
2805
2825
  {
@@ -2824,7 +2844,7 @@
2824
2844
  "address": "graphql.server.resolver"
2825
2845
  }
2826
2846
  ],
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+(?:\\(.*\\))?)?)?\\)",
2847
+ "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+(?:\\(.*\\))?)?)?\\)\\s*(?:[;\\.)}\\]|\\\\]|\\?>|%>|$)",
2828
2848
  "options": {
2829
2849
  "case_sensitive": true,
2830
2850
  "min_length": 5
@@ -2844,7 +2864,8 @@
2844
2864
  "category": "attack_attempt",
2845
2865
  "cwe": "502",
2846
2866
  "capec": "1000/152/586",
2847
- "confidence": "1"
2867
+ "confidence": "1",
2868
+ "module": "waf"
2848
2869
  },
2849
2870
  "conditions": [
2850
2871
  {
@@ -2891,7 +2912,8 @@
2891
2912
  "crs_id": "933200",
2892
2913
  "category": "attack_attempt",
2893
2914
  "cwe": "502",
2894
- "capec": "1000/152/586"
2915
+ "capec": "1000/152/586",
2916
+ "module": "waf"
2895
2917
  },
2896
2918
  "conditions": [
2897
2919
  {
@@ -2937,7 +2959,8 @@
2937
2959
  "crs_id": "934100",
2938
2960
  "category": "attack_attempt",
2939
2961
  "cwe": "94",
2940
- "capec": "1000/152/242"
2962
+ "capec": "1000/152/242",
2963
+ "module": "waf"
2941
2964
  },
2942
2965
  "conditions": [
2943
2966
  {
@@ -2962,7 +2985,7 @@
2962
2985
  "address": "graphql.server.resolver"
2963
2986
  }
2964
2987
  ],
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*\\[)",
2988
+ "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\\b|\\[))|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*\\[)",
2966
2989
  "options": {
2967
2990
  "case_sensitive": true,
2968
2991
  "min_length": 3
@@ -2982,7 +3005,8 @@
2982
3005
  "category": "attack_attempt",
2983
3006
  "confidence": "1",
2984
3007
  "cwe": "94",
2985
- "capec": "1000/152/242"
3008
+ "capec": "1000/152/242",
3009
+ "module": "waf"
2986
3010
  },
2987
3011
  "conditions": [
2988
3012
  {
@@ -3024,7 +3048,8 @@
3024
3048
  "category": "attack_attempt",
3025
3049
  "cwe": "80",
3026
3050
  "capec": "1000/152/242/63/591",
3027
- "confidence": "1"
3051
+ "confidence": "1",
3052
+ "module": "waf"
3028
3053
  },
3029
3054
  "conditions": [
3030
3055
  {
@@ -3081,7 +3106,8 @@
3081
3106
  "category": "attack_attempt",
3082
3107
  "cwe": "83",
3083
3108
  "capec": "1000/152/242/63/591/243",
3084
- "confidence": "1"
3109
+ "confidence": "1",
3110
+ "module": "waf"
3085
3111
  },
3086
3112
  "conditions": [
3087
3113
  {
@@ -3140,7 +3166,8 @@
3140
3166
  "category": "attack_attempt",
3141
3167
  "cwe": "84",
3142
3168
  "capec": "1000/152/242/63/591/244",
3143
- "confidence": "1"
3169
+ "confidence": "1",
3170
+ "module": "waf"
3144
3171
  },
3145
3172
  "conditions": [
3146
3173
  {
@@ -3199,7 +3226,8 @@
3199
3226
  "category": "attack_attempt",
3200
3227
  "cwe": "83",
3201
3228
  "capec": "1000/152/242/63/591/243",
3202
- "confidence": "1"
3229
+ "confidence": "1",
3230
+ "module": "waf"
3203
3231
  },
3204
3232
  "conditions": [
3205
3233
  {
@@ -3257,7 +3285,8 @@
3257
3285
  "crs_id": "941180",
3258
3286
  "category": "attack_attempt",
3259
3287
  "cwe": "79",
3260
- "capec": "1000/152/242/63/591"
3288
+ "capec": "1000/152/242/63/591",
3289
+ "module": "waf"
3261
3290
  },
3262
3291
  "conditions": [
3263
3292
  {
@@ -3311,7 +3340,8 @@
3311
3340
  "category": "attack_attempt",
3312
3341
  "cwe": "80",
3313
3342
  "capec": "1000/152/242/63/591",
3314
- "confidence": "1"
3343
+ "confidence": "1",
3344
+ "module": "waf"
3315
3345
  },
3316
3346
  "conditions": [
3317
3347
  {
@@ -3358,7 +3388,8 @@
3358
3388
  "category": "attack_attempt",
3359
3389
  "cwe": "80",
3360
3390
  "capec": "1000/152/242/63/591",
3361
- "confidence": "1"
3391
+ "confidence": "1",
3392
+ "module": "waf"
3362
3393
  },
3363
3394
  "conditions": [
3364
3395
  {
@@ -3405,7 +3436,8 @@
3405
3436
  "category": "attack_attempt",
3406
3437
  "cwe": "80",
3407
3438
  "capec": "1000/152/242/63/591",
3408
- "confidence": "1"
3439
+ "confidence": "1",
3440
+ "module": "waf"
3409
3441
  },
3410
3442
  "conditions": [
3411
3443
  {
@@ -3452,7 +3484,8 @@
3452
3484
  "category": "attack_attempt",
3453
3485
  "cwe": "83",
3454
3486
  "capec": "1000/152/242/63/591/243",
3455
- "confidence": "1"
3487
+ "confidence": "1",
3488
+ "module": "waf"
3456
3489
  },
3457
3490
  "conditions": [
3458
3491
  {
@@ -3498,7 +3531,8 @@
3498
3531
  "category": "attack_attempt",
3499
3532
  "cwe": "83",
3500
3533
  "capec": "1000/152/242/63/591/243",
3501
- "confidence": "1"
3534
+ "confidence": "1",
3535
+ "module": "waf"
3502
3536
  },
3503
3537
  "conditions": [
3504
3538
  {
@@ -3545,7 +3579,8 @@
3545
3579
  "crs_id": "941270",
3546
3580
  "category": "attack_attempt",
3547
3581
  "cwe": "83",
3548
- "capec": "1000/152/242/63/591/243"
3582
+ "capec": "1000/152/242/63/591/243",
3583
+ "module": "waf"
3549
3584
  },
3550
3585
  "conditions": [
3551
3586
  {
@@ -3588,7 +3623,8 @@
3588
3623
  "category": "attack_attempt",
3589
3624
  "cwe": "83",
3590
3625
  "capec": "1000/152/242/63/591/243",
3591
- "confidence": "1"
3626
+ "confidence": "1",
3627
+ "module": "waf"
3592
3628
  },
3593
3629
  "conditions": [
3594
3630
  {
@@ -3634,7 +3670,8 @@
3634
3670
  "category": "attack_attempt",
3635
3671
  "cwe": "83",
3636
3672
  "capec": "1000/152/242/63/591/243",
3637
- "confidence": "1"
3673
+ "confidence": "1",
3674
+ "module": "waf"
3638
3675
  },
3639
3676
  "conditions": [
3640
3677
  {
@@ -3680,7 +3717,8 @@
3680
3717
  "category": "attack_attempt",
3681
3718
  "cwe": "83",
3682
3719
  "capec": "1000/152/242/63/591/243",
3683
- "confidence": "1"
3720
+ "confidence": "1",
3721
+ "module": "waf"
3684
3722
  },
3685
3723
  "conditions": [
3686
3724
  {
@@ -3726,7 +3764,8 @@
3726
3764
  "category": "attack_attempt",
3727
3765
  "cwe": "87",
3728
3766
  "capec": "1000/152/242/63/591/199",
3729
- "confidence": "1"
3767
+ "confidence": "1",
3768
+ "module": "waf"
3730
3769
  },
3731
3770
  "conditions": [
3732
3771
  {
@@ -3770,7 +3809,8 @@
3770
3809
  "crs_id": "941360",
3771
3810
  "category": "attack_attempt",
3772
3811
  "cwe": "87",
3773
- "capec": "1000/152/242/63/591/199"
3812
+ "capec": "1000/152/242/63/591/199",
3813
+ "module": "waf"
3774
3814
  },
3775
3815
  "conditions": [
3776
3816
  {
@@ -3815,7 +3855,8 @@
3815
3855
  "category": "attack_attempt",
3816
3856
  "confidence": "1",
3817
3857
  "cwe": "79",
3818
- "capec": "1000/152/242/63/591"
3858
+ "capec": "1000/152/242/63/591",
3859
+ "module": "waf"
3819
3860
  },
3820
3861
  "conditions": [
3821
3862
  {
@@ -3859,7 +3900,8 @@
3859
3900
  "crs_id": "942100",
3860
3901
  "category": "attack_attempt",
3861
3902
  "cwe": "89",
3862
- "capec": "1000/152/248/66"
3903
+ "capec": "1000/152/248/66",
3904
+ "module": "waf"
3863
3905
  },
3864
3906
  "conditions": [
3865
3907
  {
@@ -3898,7 +3940,8 @@
3898
3940
  "category": "attack_attempt",
3899
3941
  "cwe": "89",
3900
3942
  "capec": "1000/152/248/66/7",
3901
- "confidence": "1"
3943
+ "confidence": "1",
3944
+ "module": "waf"
3902
3945
  },
3903
3946
  "conditions": [
3904
3947
  {
@@ -3943,7 +3986,8 @@
3943
3986
  "category": "attack_attempt",
3944
3987
  "cwe": "89",
3945
3988
  "capec": "1000/152/248/66/7",
3946
- "confidence": "1"
3989
+ "confidence": "1",
3990
+ "module": "waf"
3947
3991
  },
3948
3992
  "conditions": [
3949
3993
  {
@@ -3986,7 +4030,8 @@
3986
4030
  "crs_id": "942250",
3987
4031
  "category": "attack_attempt",
3988
4032
  "cwe": "89",
3989
- "capec": "1000/152/248/66"
4033
+ "capec": "1000/152/248/66",
4034
+ "module": "waf"
3990
4035
  },
3991
4036
  "conditions": [
3992
4037
  {
@@ -4030,7 +4075,8 @@
4030
4075
  "crs_id": "942270",
4031
4076
  "category": "attack_attempt",
4032
4077
  "cwe": "89",
4033
- "capec": "1000/152/248/66"
4078
+ "capec": "1000/152/248/66",
4079
+ "module": "waf"
4034
4080
  },
4035
4081
  "conditions": [
4036
4082
  {
@@ -4074,7 +4120,8 @@
4074
4120
  "category": "attack_attempt",
4075
4121
  "cwe": "89",
4076
4122
  "capec": "1000/152/248/66/7",
4077
- "confidence": "1"
4123
+ "confidence": "1",
4124
+ "module": "waf"
4078
4125
  },
4079
4126
  "conditions": [
4080
4127
  {
@@ -4117,7 +4164,8 @@
4117
4164
  "crs_id": "942290",
4118
4165
  "category": "attack_attempt",
4119
4166
  "cwe": "943",
4120
- "capec": "1000/152/248/676"
4167
+ "capec": "1000/152/248/676",
4168
+ "module": "waf"
4121
4169
  },
4122
4170
  "conditions": [
4123
4171
  {
@@ -4163,7 +4211,8 @@
4163
4211
  "crs_id": "942360",
4164
4212
  "category": "attack_attempt",
4165
4213
  "cwe": "89",
4166
- "capec": "1000/152/248/66/470"
4214
+ "capec": "1000/152/248/66/470",
4215
+ "module": "waf"
4167
4216
  },
4168
4217
  "conditions": [
4169
4218
  {
@@ -4206,7 +4255,8 @@
4206
4255
  "crs_id": "942500",
4207
4256
  "category": "attack_attempt",
4208
4257
  "cwe": "89",
4209
- "capec": "1000/152/248/66"
4258
+ "capec": "1000/152/248/66",
4259
+ "module": "waf"
4210
4260
  },
4211
4261
  "conditions": [
4212
4262
  {
@@ -4251,7 +4301,8 @@
4251
4301
  "category": "attack_attempt",
4252
4302
  "cwe": "384",
4253
4303
  "capec": "1000/225/21/593/61",
4254
- "confidence": "1"
4304
+ "confidence": "1",
4305
+ "module": "waf"
4255
4306
  },
4256
4307
  "conditions": [
4257
4308
  {
@@ -4296,7 +4347,8 @@
4296
4347
  "category": "attack_attempt",
4297
4348
  "cwe": "94",
4298
4349
  "capec": "1000/152/242",
4299
- "confidence": "1"
4350
+ "confidence": "1",
4351
+ "module": "waf"
4300
4352
  },
4301
4353
  "conditions": [
4302
4354
  {
@@ -4344,7 +4396,8 @@
4344
4396
  "type": "java_code_injection",
4345
4397
  "category": "attack_attempt",
4346
4398
  "cwe": "94",
4347
- "capec": "1000/152/242"
4399
+ "capec": "1000/152/242",
4400
+ "module": "waf"
4348
4401
  },
4349
4402
  "conditions": [
4350
4403
  {
@@ -4391,7 +4444,8 @@
4391
4444
  "crs_id": "944130",
4392
4445
  "category": "attack_attempt",
4393
4446
  "cwe": "94",
4394
- "capec": "1000/152/242"
4447
+ "capec": "1000/152/242",
4448
+ "module": "waf"
4395
4449
  },
4396
4450
  "conditions": [
4397
4451
  {
@@ -4529,7 +4583,8 @@
4529
4583
  "type": "nosql_injection",
4530
4584
  "category": "attack_attempt",
4531
4585
  "cwe": "943",
4532
- "capec": "1000/152/248/676"
4586
+ "capec": "1000/152/248/676",
4587
+ "module": "waf"
4533
4588
  },
4534
4589
  "conditions": [
4535
4590
  {
@@ -4573,7 +4628,8 @@
4573
4628
  "type": "java_code_injection",
4574
4629
  "category": "attack_attempt",
4575
4630
  "cwe": "94",
4576
- "capec": "1000/152/242"
4631
+ "capec": "1000/152/242",
4632
+ "module": "waf"
4577
4633
  },
4578
4634
  "conditions": [
4579
4635
  {
@@ -4619,7 +4675,8 @@
4619
4675
  "category": "attack_attempt",
4620
4676
  "cwe": "94",
4621
4677
  "capec": "1000/152/242",
4622
- "confidence": "1"
4678
+ "confidence": "1",
4679
+ "module": "waf"
4623
4680
  },
4624
4681
  "conditions": [
4625
4682
  {
@@ -4695,7 +4752,8 @@
4695
4752
  "category": "attack_attempt",
4696
4753
  "cwe": "1321",
4697
4754
  "capec": "1000/152/242",
4698
- "confidence": "1"
4755
+ "confidence": "1",
4756
+ "module": "waf"
4699
4757
  },
4700
4758
  "conditions": [
4701
4759
  {
@@ -4725,7 +4783,8 @@
4725
4783
  "category": "attack_attempt",
4726
4784
  "cwe": "1321",
4727
4785
  "capec": "1000/152/242",
4728
- "confidence": "1"
4786
+ "confidence": "1",
4787
+ "module": "waf"
4729
4788
  },
4730
4789
  "conditions": [
4731
4790
  {
@@ -4769,7 +4828,8 @@
4769
4828
  "category": "attack_attempt",
4770
4829
  "cwe": "1336",
4771
4830
  "capec": "1000/152/242/19",
4772
- "confidence": "1"
4831
+ "confidence": "1",
4832
+ "module": "waf"
4773
4833
  },
4774
4834
  "conditions": [
4775
4835
  {
@@ -4804,6 +4864,36 @@
4804
4864
  ],
4805
4865
  "transformers": []
4806
4866
  },
4867
+ {
4868
+ "id": "ua0-600-68x",
4869
+ "name": "xorbot",
4870
+ "tags": {
4871
+ "type": "attack_tool",
4872
+ "category": "attack_attempt",
4873
+ "cwe": "200",
4874
+ "capec": "1000/118/169",
4875
+ "tool_name": "xorbot",
4876
+ "confidence": "0",
4877
+ "module": "waf"
4878
+ },
4879
+ "conditions": [
4880
+ {
4881
+ "parameters": {
4882
+ "inputs": [
4883
+ {
4884
+ "address": "server.request.headers.no_cookies",
4885
+ "key_path": [
4886
+ "user-agent"
4887
+ ]
4888
+ }
4889
+ ],
4890
+ "regex": "\\bmasjesu\\b"
4891
+ },
4892
+ "operator": "match_regex"
4893
+ }
4894
+ ],
4895
+ "transformers": []
4896
+ },
4807
4897
  {
4808
4898
  "id": "dog-913-001",
4809
4899
  "name": "BurpCollaborator OOB domain",
@@ -4813,7 +4903,8 @@
4813
4903
  "tool_name": "BurpCollaborator",
4814
4904
  "cwe": "200",
4815
4905
  "capec": "1000/118/169",
4816
- "confidence": "1"
4906
+ "confidence": "1",
4907
+ "module": "waf"
4817
4908
  },
4818
4909
  "conditions": [
4819
4910
  {
@@ -4857,7 +4948,8 @@
4857
4948
  "tool_name": "Qualys",
4858
4949
  "cwe": "200",
4859
4950
  "capec": "1000/118/169",
4860
- "confidence": "0"
4951
+ "confidence": "0",
4952
+ "module": "waf"
4861
4953
  },
4862
4954
  "conditions": [
4863
4955
  {
@@ -4901,7 +4993,8 @@
4901
4993
  "tool_name": "Probely",
4902
4994
  "cwe": "200",
4903
4995
  "capec": "1000/118/169",
4904
- "confidence": "0"
4996
+ "confidence": "0",
4997
+ "module": "waf"
4905
4998
  },
4906
4999
  "conditions": [
4907
5000
  {
@@ -4944,7 +5037,8 @@
4944
5037
  "category": "attack_attempt",
4945
5038
  "cwe": "200",
4946
5039
  "capec": "1000/118/169",
4947
- "confidence": "1"
5040
+ "confidence": "1",
5041
+ "module": "waf"
4948
5042
  },
4949
5043
  "conditions": [
4950
5044
  {
@@ -4987,7 +5081,8 @@
4987
5081
  "category": "attack_attempt",
4988
5082
  "cwe": "200",
4989
5083
  "capec": "1000/118/169",
4990
- "confidence": "0"
5084
+ "confidence": "0",
5085
+ "module": "waf"
4991
5086
  },
4992
5087
  "conditions": [
4993
5088
  {
@@ -5031,7 +5126,8 @@
5031
5126
  "tool_name": "Rapid7",
5032
5127
  "cwe": "200",
5033
5128
  "capec": "1000/118/169",
5034
- "confidence": "0"
5129
+ "confidence": "0",
5130
+ "module": "waf"
5035
5131
  },
5036
5132
  "conditions": [
5037
5133
  {
@@ -5075,7 +5171,8 @@
5075
5171
  "tool_name": "interact.sh",
5076
5172
  "cwe": "200",
5077
5173
  "capec": "1000/118/169",
5078
- "confidence": "1"
5174
+ "confidence": "1",
5175
+ "module": "waf"
5079
5176
  },
5080
5177
  "conditions": [
5081
5178
  {
@@ -5119,7 +5216,8 @@
5119
5216
  "tool_name": "Netsparker",
5120
5217
  "cwe": "200",
5121
5218
  "capec": "1000/118/169",
5122
- "confidence": "0"
5219
+ "confidence": "0",
5220
+ "module": "waf"
5123
5221
  },
5124
5222
  "conditions": [
5125
5223
  {
@@ -5167,7 +5265,8 @@
5167
5265
  "tool_name": "WhiteHatSecurity",
5168
5266
  "cwe": "200",
5169
5267
  "capec": "1000/118/169",
5170
- "confidence": "0"
5268
+ "confidence": "0",
5269
+ "module": "waf"
5171
5270
  },
5172
5271
  "conditions": [
5173
5272
  {
@@ -5215,7 +5314,8 @@
5215
5314
  "tool_name": "Nessus",
5216
5315
  "cwe": "200",
5217
5316
  "capec": "1000/118/169",
5218
- "confidence": "0"
5317
+ "confidence": "0",
5318
+ "module": "waf"
5219
5319
  },
5220
5320
  "conditions": [
5221
5321
  {
@@ -5263,7 +5363,8 @@
5263
5363
  "tool_name": "Watchtowr",
5264
5364
  "cwe": "200",
5265
5365
  "capec": "1000/118/169",
5266
- "confidence": "0"
5366
+ "confidence": "0",
5367
+ "module": "waf"
5267
5368
  },
5268
5369
  "conditions": [
5269
5370
  {
@@ -5311,7 +5412,8 @@
5311
5412
  "tool_name": "AppCheckNG",
5312
5413
  "cwe": "200",
5313
5414
  "capec": "1000/118/169",
5314
- "confidence": "0"
5415
+ "confidence": "0",
5416
+ "module": "waf"
5315
5417
  },
5316
5418
  "conditions": [
5317
5419
  {
@@ -5350,6 +5452,82 @@
5350
5452
  ],
5351
5453
  "transformers": []
5352
5454
  },
5455
+ {
5456
+ "id": "dog-913-013",
5457
+ "name": "Public PoC for CVE-2025-24813",
5458
+ "tags": {
5459
+ "type": "attack_tool",
5460
+ "category": "attack_attempt",
5461
+ "cwe": "200",
5462
+ "capec": "1000/118/169",
5463
+ "confidence": "1",
5464
+ "module": "waf"
5465
+ },
5466
+ "conditions": [
5467
+ {
5468
+ "parameters": {
5469
+ "inputs": [
5470
+ {
5471
+ "address": "server.request.uri.raw"
5472
+ }
5473
+ ],
5474
+ "regex": "/iSee857/session",
5475
+ "options": {
5476
+ "case_sensitive": false,
5477
+ "min_length": 16
5478
+ }
5479
+ },
5480
+ "operator": "match_regex"
5481
+ }
5482
+ ],
5483
+ "transformers": []
5484
+ },
5485
+ {
5486
+ "id": "dog-913-014",
5487
+ "name": "Exploit attempt for Next.js Middleware Exploit (CVE-2025-29927)",
5488
+ "tags": {
5489
+ "type": "security_scanner",
5490
+ "category": "attack_attempt",
5491
+ "cwe": "200",
5492
+ "capec": "1000/118/169",
5493
+ "confidence": "0",
5494
+ "module": "waf"
5495
+ },
5496
+ "conditions": [
5497
+ {
5498
+ "parameters": {
5499
+ "inputs": [
5500
+ {
5501
+ "address": "server.request.headers.no_cookies",
5502
+ "key_path": [
5503
+ "x-middleware-subrequest"
5504
+ ]
5505
+ }
5506
+ ],
5507
+ "regex": ".*",
5508
+ "options": {
5509
+ "min_length": 1
5510
+ }
5511
+ },
5512
+ "operator": "match_regex"
5513
+ },
5514
+ {
5515
+ "parameters": {
5516
+ "inputs": [
5517
+ {
5518
+ "address": "server.request.headers.no_cookies",
5519
+ "key_path": [
5520
+ "x-middleware-subrequest"
5521
+ ]
5522
+ }
5523
+ ],
5524
+ "regex": "[0-9a-fA-F]{40}|\\[\\w+\\]"
5525
+ },
5526
+ "operator": "!match_regex"
5527
+ }
5528
+ ],
5529
+ "transformers": []
5530
+ },
5353
5531
  {
5354
5532
  "id": "dog-920-001",
5355
5533
  "name": "JWT authentication bypass",
@@ -5358,8 +5536,10 @@
5358
5536
  "category": "attack_attempt",
5359
5537
  "cwe": "287",
5360
5538
  "capec": "1000/225/115",
5361
- "confidence": "0"
5539
+ "confidence": "0",
5540
+ "module": "waf"
5362
5541
  },
5542
+ "max_version": "1.24.9",
5363
5543
  "conditions": [
5364
5544
  {
5365
5545
  "parameters": {
@@ -5392,7 +5572,8 @@
5392
5572
  "category": "attack_attempt",
5393
5573
  "cwe": "98",
5394
5574
  "capec": "1000/152/175/253/193",
5395
- "confidence": "1"
5575
+ "confidence": "1",
5576
+ "module": "waf"
5396
5577
  },
5397
5578
  "conditions": [
5398
5579
  {
@@ -5436,7 +5617,8 @@
5436
5617
  "category": "attack_attempt",
5437
5618
  "cwe": "77",
5438
5619
  "capec": "1000/152/248/88",
5439
- "confidence": "0"
5620
+ "confidence": "0",
5621
+ "module": "waf"
5440
5622
  },
5441
5623
  "conditions": [
5442
5624
  {
@@ -5475,6 +5657,52 @@
5475
5657
  ],
5476
5658
  "transformers": []
5477
5659
  },
5660
+ {
5661
+ "id": "dog-932-110",
5662
+ "name": "Python: Subprocess-based command injection",
5663
+ "tags": {
5664
+ "type": "command_injection",
5665
+ "category": "attack_attempt",
5666
+ "confidence": "0",
5667
+ "module": "waf"
5668
+ },
5669
+ "conditions": [
5670
+ {
5671
+ "parameters": {
5672
+ "inputs": [
5673
+ {
5674
+ "address": "server.request.query"
5675
+ },
5676
+ {
5677
+ "address": "server.request.body"
5678
+ },
5679
+ {
5680
+ "address": "server.request.path_params"
5681
+ },
5682
+ {
5683
+ "address": "server.request.headers.no_cookies"
5684
+ },
5685
+ {
5686
+ "address": "grpc.server.request.message"
5687
+ },
5688
+ {
5689
+ "address": "graphql.server.all_resolvers"
5690
+ },
5691
+ {
5692
+ "address": "graphql.server.resolver"
5693
+ }
5694
+ ],
5695
+ "regex": "(?s)\\bsubprocess\\b.*\\b(?:check_output|run|Popen|call|check_call)\\b",
5696
+ "options": {
5697
+ "case_sensitive": true,
5698
+ "min_length": 14
5699
+ }
5700
+ },
5701
+ "operator": "match_regex"
5702
+ }
5703
+ ],
5704
+ "transformers": []
5705
+ },
5478
5706
  {
5479
5707
  "id": "dog-934-001",
5480
5708
  "name": "XXE - XML file loads external entity",
@@ -5483,7 +5711,8 @@
5483
5711
  "category": "attack_attempt",
5484
5712
  "cwe": "91",
5485
5713
  "capec": "1000/152/248/250",
5486
- "confidence": "1"
5714
+ "confidence": "1",
5715
+ "module": "waf"
5487
5716
  },
5488
5717
  "conditions": [
5489
5718
  {
@@ -5521,7 +5750,8 @@
5521
5750
  "category": "attack_attempt",
5522
5751
  "cwe": "83",
5523
5752
  "capec": "1000/152/242/63/591/243",
5524
- "confidence": "1"
5753
+ "confidence": "1",
5754
+ "module": "waf"
5525
5755
  },
5526
5756
  "conditions": [
5527
5757
  {
@@ -5579,7 +5809,8 @@
5579
5809
  "category": "attack_attempt",
5580
5810
  "cwe": "83",
5581
5811
  "capec": "1000/152/242/63/591/243",
5582
- "confidence": "1"
5812
+ "confidence": "1",
5813
+ "module": "waf"
5583
5814
  },
5584
5815
  "conditions": [
5585
5816
  {
@@ -5866,7 +6097,8 @@
5866
6097
  "category": "attack_attempt",
5867
6098
  "cwe": "200",
5868
6099
  "capec": "1000/118/169",
5869
- "confidence": "1"
6100
+ "confidence": "1",
6101
+ "module": "waf"
5870
6102
  },
5871
6103
  "conditions": [
5872
6104
  {
@@ -5908,7 +6140,8 @@
5908
6140
  "category": "attack_attempt",
5909
6141
  "cwe": "200",
5910
6142
  "capec": "1000/118/169",
5911
- "confidence": "1"
6143
+ "confidence": "1",
6144
+ "module": "waf"
5912
6145
  },
5913
6146
  "conditions": [
5914
6147
  {
@@ -5950,7 +6183,8 @@
5950
6183
  "category": "attack_attempt",
5951
6184
  "cwe": "200",
5952
6185
  "capec": "1000/118/169",
5953
- "confidence": "1"
6186
+ "confidence": "1",
6187
+ "module": "waf"
5954
6188
  },
5955
6189
  "conditions": [
5956
6190
  {
@@ -5992,7 +6226,8 @@
5992
6226
  "category": "attack_attempt",
5993
6227
  "cwe": "200",
5994
6228
  "capec": "1000/118/169",
5995
- "confidence": "1"
6229
+ "confidence": "1",
6230
+ "module": "waf"
5996
6231
  },
5997
6232
  "conditions": [
5998
6233
  {
@@ -6034,7 +6269,8 @@
6034
6269
  "category": "attack_attempt",
6035
6270
  "cwe": "200",
6036
6271
  "capec": "1000/118/169",
6037
- "confidence": "1"
6272
+ "confidence": "1",
6273
+ "module": "waf"
6038
6274
  },
6039
6275
  "conditions": [
6040
6276
  {
@@ -6059,7 +6295,7 @@
6059
6295
  "address": "server.request.uri.raw"
6060
6296
  }
6061
6297
  ],
6062
- "regex": "\\.(cgi|bat|dll|exe|key|cert|crt|pem|der|pkcs|pkcs|pkcs[0-9]*|nsf|jsa|war|java|class|vb|vba|so|git|svn|hg|cvs)([^a-zA-Z0-9_]|$)",
6298
+ "regex": "\\.(cgi|bat|dll|exe|key|cert|crt|pem|der|pkcs|pkcs|pkcs[0-9]*|nsf|jsa|war|java|class|vb|vba|so|git|svn|hg|cvs)([?#&/]|$)",
6063
6299
  "options": {
6064
6300
  "case_sensitive": false
6065
6301
  }
@@ -6076,7 +6312,8 @@
6076
6312
  "category": "attack_attempt",
6077
6313
  "cwe": "200",
6078
6314
  "capec": "1000/118/169",
6079
- "confidence": "1"
6315
+ "confidence": "1",
6316
+ "module": "waf"
6080
6317
  },
6081
6318
  "conditions": [
6082
6319
  {
@@ -6118,7 +6355,8 @@
6118
6355
  "category": "attack_attempt",
6119
6356
  "cwe": "200",
6120
6357
  "capec": "1000/118/169",
6121
- "confidence": "1"
6358
+ "confidence": "1",
6359
+ "module": "waf"
6122
6360
  },
6123
6361
  "conditions": [
6124
6362
  {
@@ -6160,7 +6398,8 @@
6160
6398
  "category": "attack_attempt",
6161
6399
  "cwe": "200",
6162
6400
  "capec": "1000/118/169",
6163
- "confidence": "1"
6401
+ "confidence": "1",
6402
+ "module": "waf"
6164
6403
  },
6165
6404
  "conditions": [
6166
6405
  {
@@ -6202,7 +6441,8 @@
6202
6441
  "category": "attack_attempt",
6203
6442
  "cwe": "200",
6204
6443
  "capec": "1000/118/169",
6205
- "confidence": "0"
6444
+ "confidence": "0",
6445
+ "module": "waf"
6206
6446
  },
6207
6447
  "conditions": [
6208
6448
  {
@@ -6227,7 +6467,7 @@
6227
6467
  "address": "server.request.uri.raw"
6228
6468
  }
6229
6469
  ],
6230
- "regex": "(?:/swagger\\b|/api[-/]docs?\\b)",
6470
+ "regex": "(?:^|/)(?:swagger|api[-/]?docs?|openapi)\\b",
6231
6471
  "options": {
6232
6472
  "case_sensitive": false
6233
6473
  }
@@ -6244,7 +6484,7 @@
6244
6484
  "category": "vulnerability_trigger",
6245
6485
  "cwe": "22",
6246
6486
  "capec": "1000/255/153/126",
6247
- "confidence": "0",
6487
+ "confidence": "1",
6248
6488
  "module": "rasp"
6249
6489
  },
6250
6490
  "conditions": [
@@ -6276,7 +6516,7 @@
6276
6516
  }
6277
6517
  ]
6278
6518
  },
6279
- "operator": "lfi_detector"
6519
+ "operator": "lfi_detector@v2"
6280
6520
  }
6281
6521
  ],
6282
6522
  "transformers": [],
@@ -6286,13 +6526,13 @@
6286
6526
  },
6287
6527
  {
6288
6528
  "id": "rasp-932-100",
6289
- "name": "Shell injection exploit",
6529
+ "name": "Shell command injection exploit",
6290
6530
  "tags": {
6291
6531
  "type": "command_injection",
6292
6532
  "category": "vulnerability_trigger",
6293
6533
  "cwe": "77",
6294
6534
  "capec": "1000/152/248/88",
6295
- "confidence": "0",
6535
+ "confidence": "1",
6296
6536
  "module": "rasp"
6297
6537
  },
6298
6538
  "conditions": [
@@ -6332,6 +6572,54 @@
6332
6572
  "stack_trace"
6333
6573
  ]
6334
6574
  },
6575
+ {
6576
+ "id": "rasp-932-110",
6577
+ "name": "OS command injection exploit",
6578
+ "tags": {
6579
+ "type": "command_injection",
6580
+ "category": "vulnerability_trigger",
6581
+ "cwe": "77",
6582
+ "capec": "1000/152/248/88",
6583
+ "confidence": "1",
6584
+ "module": "rasp"
6585
+ },
6586
+ "conditions": [
6587
+ {
6588
+ "parameters": {
6589
+ "resource": [
6590
+ {
6591
+ "address": "server.sys.exec.cmd"
6592
+ }
6593
+ ],
6594
+ "params": [
6595
+ {
6596
+ "address": "server.request.query"
6597
+ },
6598
+ {
6599
+ "address": "server.request.body"
6600
+ },
6601
+ {
6602
+ "address": "server.request.path_params"
6603
+ },
6604
+ {
6605
+ "address": "grpc.server.request.message"
6606
+ },
6607
+ {
6608
+ "address": "graphql.server.all_resolvers"
6609
+ },
6610
+ {
6611
+ "address": "graphql.server.resolver"
6612
+ }
6613
+ ]
6614
+ },
6615
+ "operator": "cmdi_detector"
6616
+ }
6617
+ ],
6618
+ "transformers": [],
6619
+ "on_match": [
6620
+ "stack_trace"
6621
+ ]
6622
+ },
6335
6623
  {
6336
6624
  "id": "rasp-934-100",
6337
6625
  "name": "Server-side request forgery exploit",
@@ -6344,6 +6632,20 @@
6344
6632
  "module": "rasp"
6345
6633
  },
6346
6634
  "conditions": [
6635
+ {
6636
+ "parameters": {
6637
+ "inputs": [
6638
+ {
6639
+ "address": "server.io.net.url"
6640
+ }
6641
+ ],
6642
+ "regex": "^(jar:)?https?:\\/\\/\\W*([0-9oq]{1,5}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}|[0-9]{1,10}|(\\[)?[:0-9a-f\\.x]{2,}(\\])?|metadata\\.google\\.internal|(?:[a-z0-9:@\\.\\-]*\\.)?(?: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|ifconfig\\.pro|dnslog\\.\\w+))(:[0-9]{1,5})?(\\/[^:@]*)?$",
6643
+ "options": {
6644
+ "case_sensitive": false
6645
+ }
6646
+ },
6647
+ "operator": "match_regex"
6648
+ },
6347
6649
  {
6348
6650
  "parameters": {
6349
6651
  "resource": [
@@ -6370,7 +6672,10 @@
6370
6672
  {
6371
6673
  "address": "graphql.server.resolver"
6372
6674
  }
6373
- ]
6675
+ ],
6676
+ "options": {
6677
+ "path-inspection": true
6678
+ }
6374
6679
  },
6375
6680
  "operator": "ssrf_detector"
6376
6681
  }
@@ -6388,7 +6693,7 @@
6388
6693
  "category": "vulnerability_trigger",
6389
6694
  "cwe": "89",
6390
6695
  "capec": "1000/152/248/66",
6391
- "confidence": "0",
6696
+ "confidence": "1",
6392
6697
  "module": "rasp"
6393
6698
  },
6394
6699
  "conditions": [
@@ -6422,7 +6727,7 @@
6422
6727
  }
6423
6728
  ]
6424
6729
  },
6425
- "operator": "sqli_detector"
6730
+ "operator": "sqli_detector@v2"
6426
6731
  }
6427
6732
  ],
6428
6733
  "transformers": [],
@@ -6438,7 +6743,8 @@
6438
6743
  "category": "attack_attempt",
6439
6744
  "cwe": "918",
6440
6745
  "capec": "1000/225/115/664",
6441
- "confidence": "1"
6746
+ "confidence": "1",
6747
+ "module": "waf"
6442
6748
  },
6443
6749
  "conditions": [
6444
6750
  {
@@ -6482,7 +6788,8 @@
6482
6788
  "type": "js_code_injection",
6483
6789
  "category": "attack_attempt",
6484
6790
  "cwe": "94",
6485
- "capec": "1000/152/242"
6791
+ "capec": "1000/152/242",
6792
+ "module": "waf"
6486
6793
  },
6487
6794
  "conditions": [
6488
6795
  {
@@ -6527,7 +6834,8 @@
6527
6834
  "category": "attack_attempt",
6528
6835
  "cwe": "78",
6529
6836
  "capec": "1000/152/248/88",
6530
- "confidence": "1"
6837
+ "confidence": "1",
6838
+ "module": "waf"
6531
6839
  },
6532
6840
  "conditions": [
6533
6841
  {
@@ -6570,7 +6878,8 @@
6570
6878
  "category": "attack_attempt",
6571
6879
  "cwe": "78",
6572
6880
  "capec": "1000/152/248/88",
6573
- "confidence": "1"
6881
+ "confidence": "1",
6882
+ "module": "waf"
6574
6883
  },
6575
6884
  "conditions": [
6576
6885
  {
@@ -6615,7 +6924,8 @@
6615
6924
  "category": "attack_attempt",
6616
6925
  "cwe": "78",
6617
6926
  "capec": "1000/152/248/88",
6618
- "confidence": "1"
6927
+ "confidence": "1",
6928
+ "module": "waf"
6619
6929
  },
6620
6930
  "conditions": [
6621
6931
  {
@@ -6658,7 +6968,8 @@
6658
6968
  "category": "attack_attempt",
6659
6969
  "cwe": "918",
6660
6970
  "capec": "1000/225/115/664",
6661
- "confidence": "1"
6971
+ "confidence": "1",
6972
+ "module": "waf"
6662
6973
  },
6663
6974
  "conditions": [
6664
6975
  {
@@ -6701,7 +7012,8 @@
6701
7012
  "category": "attack_attempt",
6702
7013
  "cwe": "918",
6703
7014
  "capec": "1000/225/115/664",
6704
- "confidence": "0"
7015
+ "confidence": "0",
7016
+ "module": "waf"
6705
7017
  },
6706
7018
  "conditions": [
6707
7019
  {
@@ -6743,7 +7055,8 @@
6743
7055
  "category": "attack_attempt",
6744
7056
  "cwe": "918",
6745
7057
  "capec": "1000/225/115/664",
6746
- "confidence": "0"
7058
+ "confidence": "0",
7059
+ "module": "waf"
6747
7060
  },
6748
7061
  "conditions": [
6749
7062
  {
@@ -6785,7 +7098,8 @@
6785
7098
  "category": "attack_attempt",
6786
7099
  "cwe": "918",
6787
7100
  "capec": "1000/225/115/664",
6788
- "confidence": "1"
7101
+ "confidence": "1",
7102
+ "module": "waf"
6789
7103
  },
6790
7104
  "conditions": [
6791
7105
  {
@@ -6813,7 +7127,7 @@
6813
7127
  "address": "graphql.server.resolver"
6814
7128
  }
6815
7129
  ],
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)"
7130
+ "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|dnslog\\.\\w+)"
6817
7131
  },
6818
7132
  "operator": "match_regex"
6819
7133
  }
@@ -6828,7 +7142,8 @@
6828
7142
  "category": "attack_attempt",
6829
7143
  "cwe": "918",
6830
7144
  "capec": "1000/225/115/664",
6831
- "confidence": "0"
7145
+ "confidence": "0",
7146
+ "module": "waf"
6832
7147
  },
6833
7148
  "conditions": [
6834
7149
  {
@@ -6870,7 +7185,8 @@
6870
7185
  "category": "attack_attempt",
6871
7186
  "cwe": "94",
6872
7187
  "capec": "1000/152/242",
6873
- "confidence": "1"
7188
+ "confidence": "1",
7189
+ "module": "waf"
6874
7190
  },
6875
7191
  "conditions": [
6876
7192
  {
@@ -6916,7 +7232,8 @@
6916
7232
  "cwe": "200",
6917
7233
  "capec": "1000/118/169",
6918
7234
  "tool_name": "Joomla exploitation tool",
6919
- "confidence": "1"
7235
+ "confidence": "1",
7236
+ "module": "waf"
6920
7237
  },
6921
7238
  "conditions": [
6922
7239
  {
@@ -6945,7 +7262,8 @@
6945
7262
  "cwe": "200",
6946
7263
  "capec": "1000/118/169",
6947
7264
  "tool_name": "Nessus",
6948
- "confidence": "1"
7265
+ "confidence": "1",
7266
+ "module": "waf"
6949
7267
  },
6950
7268
  "conditions": [
6951
7269
  {
@@ -6974,7 +7292,8 @@
6974
7292
  "cwe": "200",
6975
7293
  "capec": "1000/118/169",
6976
7294
  "tool_name": "Arachni",
6977
- "confidence": "1"
7295
+ "confidence": "1",
7296
+ "module": "waf"
6978
7297
  },
6979
7298
  "conditions": [
6980
7299
  {
@@ -7003,7 +7322,8 @@
7003
7322
  "cwe": "200",
7004
7323
  "capec": "1000/118/169",
7005
7324
  "tool_name": "Jorgee",
7006
- "confidence": "1"
7325
+ "confidence": "1",
7326
+ "module": "waf"
7007
7327
  },
7008
7328
  "conditions": [
7009
7329
  {
@@ -7032,7 +7352,8 @@
7032
7352
  "cwe": "200",
7033
7353
  "capec": "1000/118/169",
7034
7354
  "tool_name": "Probely",
7035
- "confidence": "0"
7355
+ "confidence": "0",
7356
+ "module": "waf"
7036
7357
  },
7037
7358
  "conditions": [
7038
7359
  {
@@ -7061,7 +7382,8 @@
7061
7382
  "cwe": "200",
7062
7383
  "capec": "1000/118/169",
7063
7384
  "tool_name": "Metis",
7064
- "confidence": "1"
7385
+ "confidence": "1",
7386
+ "module": "waf"
7065
7387
  },
7066
7388
  "conditions": [
7067
7389
  {
@@ -7090,7 +7412,8 @@
7090
7412
  "cwe": "200",
7091
7413
  "capec": "1000/118/169",
7092
7414
  "tool_name": "SQLPowerInjector",
7093
- "confidence": "1"
7415
+ "confidence": "1",
7416
+ "module": "waf"
7094
7417
  },
7095
7418
  "conditions": [
7096
7419
  {
@@ -7119,7 +7442,8 @@
7119
7442
  "cwe": "200",
7120
7443
  "capec": "1000/118/169",
7121
7444
  "tool_name": "N-Stealth",
7122
- "confidence": "1"
7445
+ "confidence": "1",
7446
+ "module": "waf"
7123
7447
  },
7124
7448
  "conditions": [
7125
7449
  {
@@ -7148,7 +7472,8 @@
7148
7472
  "cwe": "200",
7149
7473
  "capec": "1000/118/169",
7150
7474
  "tool_name": "Brutus",
7151
- "confidence": "1"
7475
+ "confidence": "1",
7476
+ "module": "waf"
7152
7477
  },
7153
7478
  "conditions": [
7154
7479
  {
@@ -7176,7 +7501,8 @@
7176
7501
  "category": "attack_attempt",
7177
7502
  "cwe": "200",
7178
7503
  "capec": "1000/118/169",
7179
- "confidence": "1"
7504
+ "confidence": "1",
7505
+ "module": "waf"
7180
7506
  },
7181
7507
  "conditions": [
7182
7508
  {
@@ -7205,7 +7531,8 @@
7205
7531
  "cwe": "200",
7206
7532
  "capec": "1000/118/169",
7207
7533
  "tool_name": "Netsparker",
7208
- "confidence": "0"
7534
+ "confidence": "0",
7535
+ "module": "waf"
7209
7536
  },
7210
7537
  "conditions": [
7211
7538
  {
@@ -7234,7 +7561,8 @@
7234
7561
  "cwe": "200",
7235
7562
  "capec": "1000/118/169",
7236
7563
  "tool_name": "JAASCois",
7237
- "confidence": "1"
7564
+ "confidence": "1",
7565
+ "module": "waf"
7238
7566
  },
7239
7567
  "conditions": [
7240
7568
  {
@@ -7263,7 +7591,8 @@
7263
7591
  "cwe": "200",
7264
7592
  "capec": "1000/118/169",
7265
7593
  "tool_name": "Nsauditor",
7266
- "confidence": "1"
7594
+ "confidence": "1",
7595
+ "module": "waf"
7267
7596
  },
7268
7597
  "conditions": [
7269
7598
  {
@@ -7292,7 +7621,8 @@
7292
7621
  "cwe": "200",
7293
7622
  "capec": "1000/118/169",
7294
7623
  "tool_name": "Paros",
7295
- "confidence": "1"
7624
+ "confidence": "1",
7625
+ "module": "waf"
7296
7626
  },
7297
7627
  "conditions": [
7298
7628
  {
@@ -7321,7 +7651,8 @@
7321
7651
  "cwe": "200",
7322
7652
  "capec": "1000/118/169",
7323
7653
  "tool_name": "DirBuster",
7324
- "confidence": "1"
7654
+ "confidence": "1",
7655
+ "module": "waf"
7325
7656
  },
7326
7657
  "conditions": [
7327
7658
  {
@@ -7350,7 +7681,8 @@
7350
7681
  "cwe": "200",
7351
7682
  "capec": "1000/118/169",
7352
7683
  "tool_name": "Pangolin",
7353
- "confidence": "1"
7684
+ "confidence": "1",
7685
+ "module": "waf"
7354
7686
  },
7355
7687
  "conditions": [
7356
7688
  {
@@ -7379,7 +7711,8 @@
7379
7711
  "cwe": "200",
7380
7712
  "capec": "1000/118/169",
7381
7713
  "tool_name": "Qualys",
7382
- "confidence": "0"
7714
+ "confidence": "0",
7715
+ "module": "waf"
7383
7716
  },
7384
7717
  "conditions": [
7385
7718
  {
@@ -7408,7 +7741,8 @@
7408
7741
  "cwe": "200",
7409
7742
  "capec": "1000/118/169",
7410
7743
  "tool_name": "SQLNinja",
7411
- "confidence": "1"
7744
+ "confidence": "1",
7745
+ "module": "waf"
7412
7746
  },
7413
7747
  "conditions": [
7414
7748
  {
@@ -7437,7 +7771,8 @@
7437
7771
  "cwe": "200",
7438
7772
  "capec": "1000/118/169",
7439
7773
  "tool_name": "Nikto",
7440
- "confidence": "1"
7774
+ "confidence": "1",
7775
+ "module": "waf"
7441
7776
  },
7442
7777
  "conditions": [
7443
7778
  {
@@ -7466,7 +7801,8 @@
7466
7801
  "cwe": "200",
7467
7802
  "capec": "1000/118/169",
7468
7803
  "tool_name": "BlackWidow",
7469
- "confidence": "1"
7804
+ "confidence": "1",
7805
+ "module": "waf"
7470
7806
  },
7471
7807
  "conditions": [
7472
7808
  {
@@ -7495,7 +7831,8 @@
7495
7831
  "cwe": "200",
7496
7832
  "capec": "1000/118/169",
7497
7833
  "tool_name": "Grendel-Scan",
7498
- "confidence": "1"
7834
+ "confidence": "1",
7835
+ "module": "waf"
7499
7836
  },
7500
7837
  "conditions": [
7501
7838
  {
@@ -7524,7 +7861,8 @@
7524
7861
  "cwe": "200",
7525
7862
  "capec": "1000/118/169",
7526
7863
  "tool_name": "Havij",
7527
- "confidence": "1"
7864
+ "confidence": "1",
7865
+ "module": "waf"
7528
7866
  },
7529
7867
  "conditions": [
7530
7868
  {
@@ -7553,7 +7891,8 @@
7553
7891
  "cwe": "200",
7554
7892
  "capec": "1000/118/169",
7555
7893
  "tool_name": "w3af",
7556
- "confidence": "1"
7894
+ "confidence": "1",
7895
+ "module": "waf"
7557
7896
  },
7558
7897
  "conditions": [
7559
7898
  {
@@ -7582,7 +7921,8 @@
7582
7921
  "cwe": "200",
7583
7922
  "capec": "1000/118/169",
7584
7923
  "tool_name": "Nmap",
7585
- "confidence": "1"
7924
+ "confidence": "1",
7925
+ "module": "waf"
7586
7926
  },
7587
7927
  "conditions": [
7588
7928
  {
@@ -7595,7 +7935,7 @@
7595
7935
  ]
7596
7936
  }
7597
7937
  ],
7598
- "regex": "nmap (nse|scripting engine)"
7938
+ "regex": "nmap (nse|scripting engine|icap-client/)"
7599
7939
  },
7600
7940
  "operator": "match_regex"
7601
7941
  }
@@ -7611,7 +7951,8 @@
7611
7951
  "cwe": "200",
7612
7952
  "capec": "1000/118/169",
7613
7953
  "tool_name": "Nessus",
7614
- "confidence": "1"
7954
+ "confidence": "1",
7955
+ "module": "waf"
7615
7956
  },
7616
7957
  "conditions": [
7617
7958
  {
@@ -7640,7 +7981,8 @@
7640
7981
  "cwe": "200",
7641
7982
  "capec": "1000/118/169",
7642
7983
  "tool_name": "EvilScanner",
7643
- "confidence": "1"
7984
+ "confidence": "1",
7985
+ "module": "waf"
7644
7986
  },
7645
7987
  "conditions": [
7646
7988
  {
@@ -7669,7 +8011,8 @@
7669
8011
  "cwe": "200",
7670
8012
  "capec": "1000/118/169",
7671
8013
  "tool_name": "WebFuck",
7672
- "confidence": "1"
8014
+ "confidence": "1",
8015
+ "module": "waf"
7673
8016
  },
7674
8017
  "conditions": [
7675
8018
  {
@@ -7698,7 +8041,8 @@
7698
8041
  "cwe": "200",
7699
8042
  "capec": "1000/118/169",
7700
8043
  "tool_name": "OpenVAS",
7701
- "confidence": "1"
8044
+ "confidence": "1",
8045
+ "module": "waf"
7702
8046
  },
7703
8047
  "conditions": [
7704
8048
  {
@@ -7727,7 +8071,8 @@
7727
8071
  "cwe": "200",
7728
8072
  "capec": "1000/118/169",
7729
8073
  "tool_name": "Spider-Pig",
7730
- "confidence": "1"
8074
+ "confidence": "1",
8075
+ "module": "waf"
7731
8076
  },
7732
8077
  "conditions": [
7733
8078
  {
@@ -7756,7 +8101,8 @@
7756
8101
  "cwe": "200",
7757
8102
  "capec": "1000/118/169",
7758
8103
  "tool_name": "Zgrab",
7759
- "confidence": "1"
8104
+ "confidence": "1",
8105
+ "module": "waf"
7760
8106
  },
7761
8107
  "conditions": [
7762
8108
  {
@@ -7785,7 +8131,8 @@
7785
8131
  "cwe": "200",
7786
8132
  "capec": "1000/118/169",
7787
8133
  "tool_name": "Zmeu",
7788
- "confidence": "1"
8134
+ "confidence": "1",
8135
+ "module": "waf"
7789
8136
  },
7790
8137
  "conditions": [
7791
8138
  {
@@ -7814,7 +8161,8 @@
7814
8161
  "cwe": "200",
7815
8162
  "capec": "1000/118/169",
7816
8163
  "tool_name": "GoogleSecurityScanner",
7817
- "confidence": "0"
8164
+ "confidence": "0",
8165
+ "module": "waf"
7818
8166
  },
7819
8167
  "conditions": [
7820
8168
  {
@@ -7843,7 +8191,8 @@
7843
8191
  "cwe": "200",
7844
8192
  "capec": "1000/118/169",
7845
8193
  "tool_name": "Commix",
7846
- "confidence": "1"
8194
+ "confidence": "1",
8195
+ "module": "waf"
7847
8196
  },
7848
8197
  "conditions": [
7849
8198
  {
@@ -7872,7 +8221,8 @@
7872
8221
  "cwe": "200",
7873
8222
  "capec": "1000/118/169",
7874
8223
  "tool_name": "Gobuster",
7875
- "confidence": "1"
8224
+ "confidence": "1",
8225
+ "module": "waf"
7876
8226
  },
7877
8227
  "conditions": [
7878
8228
  {
@@ -7901,7 +8251,8 @@
7901
8251
  "cwe": "200",
7902
8252
  "capec": "1000/118/169",
7903
8253
  "tool_name": "CGIchk",
7904
- "confidence": "1"
8254
+ "confidence": "1",
8255
+ "module": "waf"
7905
8256
  },
7906
8257
  "conditions": [
7907
8258
  {
@@ -7930,7 +8281,8 @@
7930
8281
  "cwe": "200",
7931
8282
  "capec": "1000/118/169",
7932
8283
  "tool_name": "FFUF",
7933
- "confidence": "1"
8284
+ "confidence": "1",
8285
+ "module": "waf"
7934
8286
  },
7935
8287
  "conditions": [
7936
8288
  {
@@ -7959,7 +8311,8 @@
7959
8311
  "cwe": "200",
7960
8312
  "capec": "1000/118/169",
7961
8313
  "tool_name": "Nuclei",
7962
- "confidence": "1"
8314
+ "confidence": "1",
8315
+ "module": "waf"
7963
8316
  },
7964
8317
  "conditions": [
7965
8318
  {
@@ -7988,7 +8341,8 @@
7988
8341
  "cwe": "200",
7989
8342
  "capec": "1000/118/169",
7990
8343
  "tool_name": "Tsunami",
7991
- "confidence": "1"
8344
+ "confidence": "1",
8345
+ "module": "waf"
7992
8346
  },
7993
8347
  "conditions": [
7994
8348
  {
@@ -8017,7 +8371,8 @@
8017
8371
  "cwe": "200",
8018
8372
  "capec": "1000/118/169",
8019
8373
  "tool_name": "Nimbostratus",
8020
- "confidence": "1"
8374
+ "confidence": "1",
8375
+ "module": "waf"
8021
8376
  },
8022
8377
  "conditions": [
8023
8378
  {
@@ -8046,7 +8401,8 @@
8046
8401
  "cwe": "200",
8047
8402
  "capec": "1000/118/169",
8048
8403
  "tool_name": "Datadog Canary Test",
8049
- "confidence": "1"
8404
+ "confidence": "1",
8405
+ "module": "waf"
8050
8406
  },
8051
8407
  "conditions": [
8052
8408
  {
@@ -8081,7 +8437,8 @@
8081
8437
  "cwe": "200",
8082
8438
  "capec": "1000/118/169",
8083
8439
  "tool_name": "Datadog Canary Test",
8084
- "confidence": "1"
8440
+ "confidence": "1",
8441
+ "module": "waf"
8085
8442
  },
8086
8443
  "conditions": [
8087
8444
  {
@@ -8119,7 +8476,8 @@
8119
8476
  "cwe": "200",
8120
8477
  "capec": "1000/118/169",
8121
8478
  "tool_name": "AlertLogic",
8122
- "confidence": "0"
8479
+ "confidence": "0",
8480
+ "module": "waf"
8123
8481
  },
8124
8482
  "conditions": [
8125
8483
  {
@@ -8148,7 +8506,8 @@
8148
8506
  "cwe": "200",
8149
8507
  "capec": "1000/118/169",
8150
8508
  "tool_name": "wfuzz",
8151
- "confidence": "1"
8509
+ "confidence": "1",
8510
+ "module": "waf"
8152
8511
  },
8153
8512
  "conditions": [
8154
8513
  {
@@ -8177,7 +8536,8 @@
8177
8536
  "cwe": "200",
8178
8537
  "capec": "1000/118/169",
8179
8538
  "tool_name": "Detectify",
8180
- "confidence": "0"
8539
+ "confidence": "0",
8540
+ "module": "waf"
8181
8541
  },
8182
8542
  "conditions": [
8183
8543
  {
@@ -8206,7 +8566,8 @@
8206
8566
  "cwe": "200",
8207
8567
  "capec": "1000/118/169",
8208
8568
  "tool_name": "BSQLBF",
8209
- "confidence": "1"
8569
+ "confidence": "1",
8570
+ "module": "waf"
8210
8571
  },
8211
8572
  "conditions": [
8212
8573
  {
@@ -8235,7 +8596,8 @@
8235
8596
  "cwe": "200",
8236
8597
  "capec": "1000/118/169",
8237
8598
  "tool_name": "masscan",
8238
- "confidence": "1"
8599
+ "confidence": "1",
8600
+ "module": "waf"
8239
8601
  },
8240
8602
  "conditions": [
8241
8603
  {
@@ -8264,7 +8626,8 @@
8264
8626
  "cwe": "200",
8265
8627
  "capec": "1000/118/169",
8266
8628
  "tool_name": "WPScan",
8267
- "confidence": "1"
8629
+ "confidence": "1",
8630
+ "module": "waf"
8268
8631
  },
8269
8632
  "conditions": [
8270
8633
  {
@@ -8293,7 +8656,8 @@
8293
8656
  "cwe": "200",
8294
8657
  "capec": "1000/118/169",
8295
8658
  "tool_name": "Aon",
8296
- "confidence": "0"
8659
+ "confidence": "0",
8660
+ "module": "waf"
8297
8661
  },
8298
8662
  "conditions": [
8299
8663
  {
@@ -8322,7 +8686,8 @@
8322
8686
  "cwe": "200",
8323
8687
  "capec": "1000/118/169",
8324
8688
  "tool_name": "feroxbuster",
8325
- "confidence": "1"
8689
+ "confidence": "1",
8690
+ "module": "waf"
8326
8691
  },
8327
8692
  "conditions": [
8328
8693
  {
@@ -8342,6 +8707,126 @@
8342
8707
  ],
8343
8708
  "transformers": []
8344
8709
  },
8710
+ {
8711
+ "id": "ua0-600-64x",
8712
+ "name": "ddg_win",
8713
+ "tags": {
8714
+ "type": "attack_tool",
8715
+ "category": "attack_attempt",
8716
+ "cwe": "200",
8717
+ "capec": "1000/118/169",
8718
+ "tool_name": "ddg_win",
8719
+ "confidence": "1",
8720
+ "module": "waf"
8721
+ },
8722
+ "conditions": [
8723
+ {
8724
+ "parameters": {
8725
+ "inputs": [
8726
+ {
8727
+ "address": "server.request.headers.no_cookies",
8728
+ "key_path": [
8729
+ "user-agent"
8730
+ ]
8731
+ }
8732
+ ],
8733
+ "regex": "\\bddg_win\\b"
8734
+ },
8735
+ "operator": "match_regex"
8736
+ }
8737
+ ],
8738
+ "transformers": []
8739
+ },
8740
+ {
8741
+ "id": "ua0-600-65x",
8742
+ "name": "ISS",
8743
+ "tags": {
8744
+ "type": "commercial_scanner",
8745
+ "category": "attack_attempt",
8746
+ "cwe": "200",
8747
+ "capec": "1000/118/169",
8748
+ "tool_name": "iss",
8749
+ "confidence": "0",
8750
+ "module": "waf"
8751
+ },
8752
+ "conditions": [
8753
+ {
8754
+ "parameters": {
8755
+ "inputs": [
8756
+ {
8757
+ "address": "server.request.headers.no_cookies",
8758
+ "key_path": [
8759
+ "user-agent"
8760
+ ]
8761
+ }
8762
+ ],
8763
+ "regex": "\\bisscyberriskcrawler/\\d\\.\\d"
8764
+ },
8765
+ "operator": "match_regex"
8766
+ }
8767
+ ],
8768
+ "transformers": []
8769
+ },
8770
+ {
8771
+ "id": "ua0-600-66x",
8772
+ "name": "BountyBot",
8773
+ "tags": {
8774
+ "type": "attack_tool",
8775
+ "category": "attack_attempt",
8776
+ "cwe": "200",
8777
+ "capec": "1000/118/169",
8778
+ "tool_name": "bountybot",
8779
+ "confidence": "1",
8780
+ "module": "waf"
8781
+ },
8782
+ "conditions": [
8783
+ {
8784
+ "parameters": {
8785
+ "inputs": [
8786
+ {
8787
+ "address": "server.request.headers.no_cookies",
8788
+ "key_path": [
8789
+ "user-agent"
8790
+ ]
8791
+ }
8792
+ ],
8793
+ "regex": "\\bbountybot\\b"
8794
+ },
8795
+ "operator": "match_regex"
8796
+ }
8797
+ ],
8798
+ "transformers": []
8799
+ },
8800
+ {
8801
+ "id": "ua0-600-67x",
8802
+ "name": "ZumBot",
8803
+ "tags": {
8804
+ "type": "attack_tool",
8805
+ "category": "attack_attempt",
8806
+ "cwe": "200",
8807
+ "capec": "1000/118/169",
8808
+ "tool_name": "zumbot",
8809
+ "confidence": "1",
8810
+ "module": "waf"
8811
+ },
8812
+ "conditions": [
8813
+ {
8814
+ "parameters": {
8815
+ "inputs": [
8816
+ {
8817
+ "address": "server.request.headers.no_cookies",
8818
+ "key_path": [
8819
+ "user-agent"
8820
+ ]
8821
+ }
8822
+ ],
8823
+ "regex": "\\bzumbot\\b"
8824
+ },
8825
+ "operator": "match_regex"
8826
+ }
8827
+ ],
8828
+ "transformers": []
8829
+ },
8345
8830
  {
8346
8831
  "id": "ua0-600-6xx",
8347
8832
  "name": "Stealthy scanner",
@@ -8350,7 +8835,8 @@
8350
8835
  "category": "attack_attempt",
8351
8836
  "cwe": "200",
8352
8837
  "capec": "1000/118/169",
8353
- "confidence": "1"
8838
+ "confidence": "1",
8839
+ "module": "waf"
8354
8840
  },
8355
8841
  "conditions": [
8356
8842
  {
@@ -8382,7 +8868,8 @@
8382
8868
  "cwe": "200",
8383
8869
  "capec": "1000/118/169",
8384
8870
  "tool_name": "SQLmap",
8385
- "confidence": "1"
8871
+ "confidence": "1",
8872
+ "module": "waf"
8386
8873
  },
8387
8874
  "conditions": [
8388
8875
  {
@@ -8411,7 +8898,8 @@
8411
8898
  "cwe": "200",
8412
8899
  "capec": "1000/118/169",
8413
8900
  "tool_name": "Skipfish",
8414
- "confidence": "1"
8901
+ "confidence": "1",
8902
+ "module": "waf"
8415
8903
  },
8416
8904
  "conditions": [
8417
8905
  {
@@ -8432,28 +8920,276 @@
8432
8920
  "transformers": []
8433
8921
  }
8434
8922
  ],
8435
- "processors": [
8923
+ "rules_compat": [
8436
8924
  {
8437
- "id": "http-endpoint-fingerprint",
8438
- "generator": "http_endpoint_fingerprint",
8925
+ "id": "api-001-100",
8926
+ "name": "JWT: No expiry is present",
8927
+ "tags": {
8928
+ "type": "jwt",
8929
+ "category": "api_security",
8930
+ "confidence": "0",
8931
+ "module": "business-logic"
8932
+ },
8933
+ "min_version": "1.25.0",
8934
+ "conditions": [
8935
+ {
8936
+ "parameters": {
8937
+ "inputs": [
8938
+ {
8939
+ "address": "server.request.jwt",
8940
+ "key_path": [
8941
+ "payload",
8942
+ "exp"
8943
+ ]
8944
+ }
8945
+ ]
8946
+ },
8947
+ "operator": "!exists"
8948
+ }
8949
+ ],
8950
+ "transformers": [],
8951
+ "output": {
8952
+ "event": false,
8953
+ "keep": false,
8954
+ "attributes": {
8955
+ "_dd.appsec.api.jwt.no_expiry": {
8956
+ "value": 1
8957
+ }
8958
+ }
8959
+ }
8960
+ },
8961
+ {
8962
+ "id": "api-001-110",
8963
+ "name": "JWT: Collect algorithm used",
8964
+ "tags": {
8965
+ "type": "jwt",
8966
+ "category": "api_security",
8967
+ "confidence": "0",
8968
+ "module": "business-logic"
8969
+ },
8970
+ "min_version": "1.25.0",
8971
+ "conditions": [
8972
+ {
8973
+ "parameters": {
8974
+ "inputs": [
8975
+ {
8976
+ "address": "server.request.jwt",
8977
+ "key_path": [
8978
+ "header",
8979
+ "alg"
8980
+ ]
8981
+ }
8982
+ ]
8983
+ },
8984
+ "operator": "exists"
8985
+ }
8986
+ ],
8987
+ "transformers": [],
8988
+ "output": {
8989
+ "event": false,
8990
+ "keep": false,
8991
+ "attributes": {
8992
+ "_dd.appsec.api.jwt_alg": {
8993
+ "address": "server.request.jwt",
8994
+ "key_path": [
8995
+ "header",
8996
+ "alg"
8997
+ ]
8998
+ }
8999
+ }
9000
+ }
9001
+ },
9002
+ {
9003
+ "id": "api-001-120",
9004
+ "name": "JWT: No audience is specified",
9005
+ "tags": {
9006
+ "type": "jwt",
9007
+ "category": "api_security",
9008
+ "confidence": "0",
9009
+ "module": "business-logic"
9010
+ },
9011
+ "min_version": "1.25.0",
9012
+ "conditions": [
9013
+ {
9014
+ "parameters": {
9015
+ "inputs": [
9016
+ {
9017
+ "address": "server.request.jwt",
9018
+ "key_path": [
9019
+ "payload",
9020
+ "aud"
9021
+ ]
9022
+ }
9023
+ ]
9024
+ },
9025
+ "operator": "!exists"
9026
+ }
9027
+ ],
9028
+ "transformers": [],
9029
+ "output": {
9030
+ "event": false,
9031
+ "keep": false,
9032
+ "attributes": {
9033
+ "_dd.appsec.api.jwt.no_audience": {
9034
+ "value": 1
9035
+ }
9036
+ }
9037
+ }
9038
+ },
9039
+ {
9040
+ "id": "api-001-130",
9041
+ "name": "JWT: None algorithm used",
9042
+ "tags": {
9043
+ "type": "jwt",
9044
+ "category": "api_security",
9045
+ "confidence": "0",
9046
+ "module": "business-logic"
9047
+ },
9048
+ "min_version": "1.25.0",
9049
+ "conditions": [
9050
+ {
9051
+ "parameters": {
9052
+ "inputs": [
9053
+ {
9054
+ "address": "server.request.jwt",
9055
+ "key_path": [
9056
+ "header",
9057
+ "alg"
9058
+ ]
9059
+ }
9060
+ ],
9061
+ "list": [
9062
+ "none",
9063
+ "nonE",
9064
+ "noNe",
9065
+ "noNE",
9066
+ "nOne",
9067
+ "nOnE",
9068
+ "nONe",
9069
+ "nONE",
9070
+ "None",
9071
+ "NonE",
9072
+ "NoNe",
9073
+ "NoNE",
9074
+ "NOne",
9075
+ "NOnE",
9076
+ "NONe",
9077
+ "NONE"
9078
+ ]
9079
+ },
9080
+ "operator": "exact_match"
9081
+ }
9082
+ ],
9083
+ "transformers": [],
9084
+ "output": {
9085
+ "event": false,
9086
+ "keep": true,
9087
+ "attributes": {
9088
+ "_dd.appsec.api.jwt.none_alg": {
9089
+ "value": 1
9090
+ }
9091
+ }
9092
+ }
9093
+ },
9094
+ {
9095
+ "id": "ua0-600-551",
9096
+ "name": "Datadog test scanner - scalar trace-tagging version: user-agent",
9097
+ "tags": {
9098
+ "type": "security_scanner",
9099
+ "category": "attack_attempt",
9100
+ "cwe": "200",
9101
+ "capec": "1000/118/169",
9102
+ "tool_name": "Datadog Canary Test",
9103
+ "confidence": "1",
9104
+ "module": "waf"
9105
+ },
9106
+ "min_version": "1.25.0",
8439
9107
  "conditions": [
8440
9108
  {
8441
- "operator": "exists",
8442
9109
  "parameters": {
8443
9110
  "inputs": [
8444
9111
  {
8445
- "address": "waf.context.event"
9112
+ "address": "server.request.headers.no_cookies",
9113
+ "key_path": [
9114
+ "user-agent"
9115
+ ]
8446
9116
  },
8447
9117
  {
8448
- "address": "server.business_logic.users.login.failure"
9118
+ "address": "grpc.server.request.metadata",
9119
+ "key_path": [
9120
+ "dd-canary"
9121
+ ]
9122
+ }
9123
+ ],
9124
+ "regex": "^dd-test-scanner-tag-scalar(?:$|/|\\s)"
9125
+ },
9126
+ "operator": "match_regex"
9127
+ }
9128
+ ],
9129
+ "transformers": [],
9130
+ "output": {
9131
+ "event": false,
9132
+ "attributes": {
9133
+ "_dd.appsec.test.scanner.scalar": {
9134
+ "value": 1
9135
+ }
9136
+ }
9137
+ }
9138
+ },
9139
+ {
9140
+ "id": "ua0-600-552",
9141
+ "name": "Datadog test scanner - reference trace-tagging version: user-agent",
9142
+ "tags": {
9143
+ "type": "security_scanner",
9144
+ "category": "attack_attempt",
9145
+ "cwe": "200",
9146
+ "capec": "1000/118/169",
9147
+ "tool_name": "Datadog Canary Test",
9148
+ "confidence": "1",
9149
+ "module": "waf"
9150
+ },
9151
+ "min_version": "1.25.0",
9152
+ "conditions": [
9153
+ {
9154
+ "parameters": {
9155
+ "inputs": [
9156
+ {
9157
+ "address": "server.request.headers.no_cookies",
9158
+ "key_path": [
9159
+ "user-agent"
9160
+ ]
8449
9161
  },
8450
9162
  {
8451
- "address": "server.business_logic.users.login.success"
9163
+ "address": "grpc.server.request.metadata",
9164
+ "key_path": [
9165
+ "dd-canary"
9166
+ ]
8452
9167
  }
9168
+ ],
9169
+ "regex": "^dd-test-scanner-tag-ref(?:$|/|\\s)"
9170
+ },
9171
+ "operator": "match_regex"
9172
+ }
9173
+ ],
9174
+ "transformers": [],
9175
+ "output": {
9176
+ "event": false,
9177
+ "attributes": {
9178
+ "_dd.appsec.test.scanner.reference": {
9179
+ "address": "server.request.headers.no_cookies",
9180
+ "key_path": [
9181
+ "user-agent"
8453
9182
  ]
8454
9183
  }
8455
9184
  }
8456
- ],
9185
+ }
9186
+ }
9187
+ ],
9188
+ "processors": [
9189
+ {
9190
+ "id": "http-endpoint-fingerprint",
9191
+ "generator": "http_endpoint_fingerprint",
9192
+ "conditions": [],
8457
9193
  "parameters": {
8458
9194
  "mappings": [
8459
9195
  {
@@ -8481,7 +9217,7 @@
8481
9217
  }
8482
9218
  ]
8483
9219
  },
8484
- "evaluate": false,
9220
+ "evaluate": true,
8485
9221
  "output": true
8486
9222
  },
8487
9223
  {
@@ -8637,24 +9373,7 @@
8637
9373
  {
8638
9374
  "id": "http-header-fingerprint",
8639
9375
  "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
- ],
9376
+ "conditions": [],
8658
9377
  "parameters": {
8659
9378
  "mappings": [
8660
9379
  {
@@ -8667,30 +9386,35 @@
8667
9386
  }
8668
9387
  ]
8669
9388
  },
8670
- "evaluate": false,
9389
+ "evaluate": true,
8671
9390
  "output": true
8672
9391
  },
8673
9392
  {
8674
- "id": "http-network-fingerprint",
8675
- "generator": "http_network_fingerprint",
8676
- "conditions": [
8677
- {
8678
- "operator": "exists",
8679
- "parameters": {
9393
+ "id": "decode-auth-jwt",
9394
+ "generator": "jwt_decode",
9395
+ "min_version": "1.25.0",
9396
+ "parameters": {
9397
+ "mappings": [
9398
+ {
8680
9399
  "inputs": [
8681
9400
  {
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"
9401
+ "address": "server.request.headers.no_cookies",
9402
+ "key_path": [
9403
+ "authorization"
9404
+ ]
8689
9405
  }
8690
- ]
9406
+ ],
9407
+ "output": "server.request.jwt"
8691
9408
  }
8692
- }
8693
- ],
9409
+ ]
9410
+ },
9411
+ "evaluate": true,
9412
+ "output": false
9413
+ },
9414
+ {
9415
+ "id": "http-network-fingerprint",
9416
+ "generator": "http_network_fingerprint",
9417
+ "conditions": [],
8694
9418
  "parameters": {
8695
9419
  "mappings": [
8696
9420
  {
@@ -8703,30 +9427,13 @@
8703
9427
  }
8704
9428
  ]
8705
9429
  },
8706
- "evaluate": false,
9430
+ "evaluate": true,
8707
9431
  "output": true
8708
9432
  },
8709
9433
  {
8710
9434
  "id": "session-fingerprint",
8711
9435
  "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
- ],
9436
+ "conditions": [],
8730
9437
  "parameters": {
8731
9438
  "mappings": [
8732
9439
  {
@@ -8749,7 +9456,7 @@
8749
9456
  }
8750
9457
  ]
8751
9458
  },
8752
- "evaluate": false,
9459
+ "evaluate": true,
8753
9460
  "output": true
8754
9461
  }
8755
9462
  ],
@@ -9548,6 +10255,24 @@
9548
10255
  "category": "payment"
9549
10256
  }
9550
10257
  },
10258
+ {
10259
+ "id": "c542c147-3883-43d6-a067-178e4a7bd65d",
10260
+ "name": "Password",
10261
+ "key": {
10262
+ "operator": "match_regex",
10263
+ "parameters": {
10264
+ "regex": "\\bpass(?:[_-]?word|wd)?\\b|\\bpwd\\b",
10265
+ "options": {
10266
+ "case_sensitive": false,
10267
+ "min_length": 3
10268
+ }
10269
+ }
10270
+ },
10271
+ "tags": {
10272
+ "type": "password",
10273
+ "category": "credentials"
10274
+ }
10275
+ },
9551
10276
  {
9552
10277
  "id": "18b608bd7a764bff5b2344c0",
9553
10278
  "name": "Phone number",
@@ -9776,4 +10501,4 @@
9776
10501
  }
9777
10502
  }
9778
10503
  ]
9779
- }
10504
+ }