datadog 2.12.1 → 2.19.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +243 -2
- data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +63 -56
- data/ext/datadog_profiling_native_extension/collectors_stack.c +263 -76
- data/ext/datadog_profiling_native_extension/collectors_stack.h +20 -3
- data/ext/datadog_profiling_native_extension/collectors_thread_context.c +78 -26
- data/ext/datadog_profiling_native_extension/collectors_thread_context.h +1 -0
- data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +1 -4
- data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +10 -0
- data/ext/datadog_profiling_native_extension/encoded_profile.c +79 -0
- data/ext/datadog_profiling_native_extension/encoded_profile.h +8 -0
- data/ext/datadog_profiling_native_extension/extconf.rb +10 -0
- data/ext/datadog_profiling_native_extension/heap_recorder.c +247 -364
- data/ext/datadog_profiling_native_extension/heap_recorder.h +4 -6
- data/ext/datadog_profiling_native_extension/http_transport.c +60 -94
- data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +22 -0
- data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +8 -5
- data/ext/datadog_profiling_native_extension/private_vm_api_access.c +41 -21
- data/ext/datadog_profiling_native_extension/private_vm_api_access.h +6 -4
- data/ext/datadog_profiling_native_extension/profiling.c +2 -0
- data/ext/datadog_profiling_native_extension/ruby_helpers.c +1 -13
- data/ext/datadog_profiling_native_extension/ruby_helpers.h +3 -11
- data/ext/datadog_profiling_native_extension/stack_recorder.c +173 -76
- data/ext/libdatadog_api/crashtracker.c +11 -12
- data/ext/libdatadog_api/crashtracker.h +5 -0
- data/ext/libdatadog_api/datadog_ruby_common.c +1 -4
- data/ext/libdatadog_api/datadog_ruby_common.h +10 -0
- data/ext/libdatadog_api/extconf.rb +2 -2
- data/ext/libdatadog_api/init.c +15 -0
- data/ext/libdatadog_api/library_config.c +164 -0
- data/ext/libdatadog_api/library_config.h +25 -0
- data/ext/libdatadog_api/macos_development.md +3 -3
- data/ext/libdatadog_api/process_discovery.c +112 -0
- data/ext/libdatadog_api/process_discovery.h +5 -0
- data/ext/libdatadog_extconf_helpers.rb +2 -2
- data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
- data/lib/datadog/appsec/actions_handler.rb +24 -2
- data/lib/datadog/appsec/anonymizer.rb +16 -0
- data/lib/datadog/appsec/api_security/lru_cache.rb +56 -0
- data/lib/datadog/appsec/api_security/route_extractor.rb +71 -0
- data/lib/datadog/appsec/api_security/sampler.rb +59 -0
- data/lib/datadog/appsec/api_security.rb +23 -0
- data/lib/datadog/appsec/assets/waf_rules/README.md +50 -5
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +257 -85
- data/lib/datadog/appsec/assets/waf_rules/strict.json +10 -78
- data/lib/datadog/appsec/autoload.rb +1 -1
- data/lib/datadog/appsec/component.rb +46 -61
- data/lib/datadog/appsec/compressed_json.rb +40 -0
- data/lib/datadog/appsec/configuration/settings.rb +153 -30
- data/lib/datadog/appsec/context.rb +7 -7
- data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +10 -12
- data/lib/datadog/appsec/contrib/active_record/integration.rb +2 -2
- data/lib/datadog/appsec/contrib/active_record/patcher.rb +22 -22
- data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
- data/lib/datadog/appsec/contrib/devise/configuration.rb +7 -31
- data/lib/datadog/appsec/contrib/devise/data_extractor.rb +78 -0
- data/lib/datadog/appsec/contrib/devise/ext.rb +22 -0
- data/lib/datadog/appsec/contrib/devise/integration.rb +1 -2
- data/lib/datadog/appsec/contrib/devise/patcher.rb +34 -23
- data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +102 -0
- data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +69 -0
- data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +2 -2
- data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +106 -0
- data/lib/datadog/appsec/contrib/excon/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +9 -10
- data/lib/datadog/appsec/contrib/faraday/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +8 -9
- data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +8 -9
- data/lib/datadog/appsec/contrib/graphql/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +49 -32
- data/lib/datadog/appsec/contrib/rack/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +42 -30
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +11 -13
- data/lib/datadog/appsec/contrib/rails/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/patcher.rb +21 -21
- data/lib/datadog/appsec/contrib/rest_client/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +10 -11
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +17 -23
- data/lib/datadog/appsec/contrib/sinatra/integration.rb +1 -1
- data/lib/datadog/appsec/event.rb +96 -135
- data/lib/datadog/appsec/ext.rb +4 -2
- data/lib/datadog/appsec/instrumentation/gateway/argument.rb +7 -2
- data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +24 -0
- data/lib/datadog/appsec/instrumentation/gateway.rb +17 -22
- data/lib/datadog/appsec/metrics/telemetry.rb +1 -1
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +49 -14
- data/lib/datadog/appsec/processor/rule_loader.rb +30 -33
- data/lib/datadog/appsec/remote.rb +31 -59
- data/lib/datadog/appsec/response.rb +6 -6
- data/lib/datadog/appsec/security_engine/engine.rb +194 -0
- data/lib/datadog/appsec/security_engine/runner.rb +13 -14
- data/lib/datadog/appsec/security_event.rb +39 -0
- data/lib/datadog/appsec/utils.rb +0 -2
- data/lib/datadog/appsec.rb +5 -8
- data/lib/datadog/core/buffer/random.rb +18 -2
- data/lib/datadog/core/configuration/agent_settings.rb +52 -0
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -46
- data/lib/datadog/core/configuration/agentless_settings_resolver.rb +176 -0
- data/lib/datadog/core/configuration/components.rb +48 -31
- data/lib/datadog/core/configuration/components_state.rb +23 -0
- data/lib/datadog/core/configuration/ext.rb +4 -0
- data/lib/datadog/core/configuration/option.rb +81 -45
- data/lib/datadog/core/configuration/option_definition.rb +4 -4
- data/lib/datadog/core/configuration/options.rb +3 -3
- data/lib/datadog/core/configuration/settings.rb +109 -44
- data/lib/datadog/core/configuration/stable_config.rb +22 -0
- data/lib/datadog/core/configuration.rb +40 -16
- data/lib/datadog/core/crashtracking/component.rb +3 -10
- data/lib/datadog/core/crashtracking/tag_builder.rb +4 -22
- data/lib/datadog/core/diagnostics/environment_logger.rb +1 -1
- data/lib/datadog/core/encoding.rb +1 -1
- data/lib/datadog/core/environment/agent_info.rb +4 -3
- data/lib/datadog/core/environment/cgroup.rb +10 -12
- data/lib/datadog/core/environment/container.rb +38 -40
- data/lib/datadog/core/environment/ext.rb +6 -6
- data/lib/datadog/core/environment/git.rb +1 -0
- data/lib/datadog/core/environment/identity.rb +3 -3
- data/lib/datadog/core/environment/platform.rb +3 -3
- data/lib/datadog/core/environment/variable_helpers.rb +1 -1
- data/lib/datadog/core/error.rb +11 -9
- data/lib/datadog/core/logger.rb +2 -2
- data/lib/datadog/core/metrics/client.rb +20 -21
- data/lib/datadog/core/metrics/logging.rb +5 -5
- data/lib/datadog/core/process_discovery/tracer_memfd.rb +15 -0
- data/lib/datadog/core/process_discovery.rb +36 -0
- data/lib/datadog/core/rate_limiter.rb +4 -2
- data/lib/datadog/core/remote/client.rb +40 -32
- data/lib/datadog/core/remote/component.rb +6 -9
- data/lib/datadog/core/remote/configuration/digest.rb +7 -7
- data/lib/datadog/core/remote/configuration/path.rb +1 -1
- data/lib/datadog/core/remote/configuration/repository.rb +14 -1
- data/lib/datadog/core/remote/negotiation.rb +9 -9
- data/lib/datadog/core/remote/transport/config.rb +4 -3
- data/lib/datadog/core/remote/transport/http/client.rb +5 -4
- data/lib/datadog/core/remote/transport/http/config.rb +27 -37
- data/lib/datadog/core/remote/transport/http/negotiation.rb +7 -33
- data/lib/datadog/core/remote/transport/http.rb +22 -57
- data/lib/datadog/core/remote/transport/negotiation.rb +4 -3
- data/lib/datadog/core/runtime/metrics.rb +12 -5
- data/lib/datadog/core/tag_builder.rb +56 -0
- data/lib/datadog/core/telemetry/component.rb +81 -52
- data/lib/datadog/core/telemetry/emitter.rb +23 -11
- data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +66 -0
- data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
- data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
- data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
- data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
- data/lib/datadog/core/telemetry/event/app_started.rb +287 -0
- data/lib/datadog/core/telemetry/event/base.rb +40 -0
- data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
- data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
- data/lib/datadog/core/telemetry/event/log.rb +76 -0
- data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
- data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +43 -0
- data/lib/datadog/core/telemetry/event.rb +17 -472
- data/lib/datadog/core/telemetry/http/adapters/net.rb +12 -97
- data/lib/datadog/core/telemetry/logger.rb +5 -4
- data/lib/datadog/core/telemetry/logging.rb +11 -5
- data/lib/datadog/core/telemetry/metric.rb +8 -8
- data/lib/datadog/core/telemetry/request.rb +4 -4
- data/lib/datadog/core/telemetry/transport/http/api.rb +43 -0
- data/lib/datadog/core/telemetry/transport/http/client.rb +49 -0
- data/lib/datadog/core/telemetry/transport/http/telemetry.rb +92 -0
- data/lib/datadog/core/telemetry/transport/http.rb +63 -0
- data/lib/datadog/core/telemetry/transport/telemetry.rb +51 -0
- data/lib/datadog/core/telemetry/worker.rb +90 -24
- data/lib/datadog/core/transport/http/adapters/net.rb +17 -2
- data/lib/datadog/core/transport/http/adapters/test.rb +2 -1
- data/lib/datadog/core/transport/http/api/instance.rb +17 -0
- data/lib/datadog/core/transport/http/api/spec.rb +17 -0
- data/lib/datadog/core/transport/http/builder.rb +19 -17
- data/lib/datadog/core/transport/http/env.rb +8 -0
- data/lib/datadog/core/transport/http.rb +39 -2
- data/lib/datadog/core/utils/at_fork_monkey_patch.rb +6 -6
- data/lib/datadog/core/utils/duration.rb +32 -32
- data/lib/datadog/core/utils/forking.rb +2 -2
- data/lib/datadog/core/utils/network.rb +6 -6
- data/lib/datadog/core/utils/only_once_successful.rb +16 -5
- data/lib/datadog/core/utils/time.rb +20 -0
- data/lib/datadog/core/utils/truncation.rb +21 -0
- data/lib/datadog/core/utils.rb +7 -0
- data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
- data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
- data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
- data/lib/datadog/core/worker.rb +1 -1
- data/lib/datadog/core/workers/async.rb +29 -12
- data/lib/datadog/core/workers/interval_loop.rb +12 -1
- data/lib/datadog/core/workers/runtime_metrics.rb +2 -2
- data/lib/datadog/core.rb +8 -0
- data/lib/datadog/di/boot.rb +34 -0
- data/lib/datadog/di/component.rb +0 -2
- data/lib/datadog/di/instrumenter.rb +48 -5
- data/lib/datadog/di/probe_notification_builder.rb +38 -43
- data/lib/datadog/di/probe_notifier_worker.rb +25 -17
- data/lib/datadog/di/remote.rb +2 -0
- data/lib/datadog/di/serializer.rb +10 -2
- data/lib/datadog/di/transport/diagnostics.rb +4 -3
- data/lib/datadog/di/transport/http/api.rb +2 -12
- data/lib/datadog/di/transport/http/client.rb +4 -3
- data/lib/datadog/di/transport/http/diagnostics.rb +7 -34
- data/lib/datadog/di/transport/http/input.rb +18 -35
- data/lib/datadog/di/transport/http.rb +14 -62
- data/lib/datadog/di/transport/input.rb +14 -5
- data/lib/datadog/di/utils.rb +5 -0
- data/lib/datadog/di.rb +0 -33
- data/lib/datadog/error_tracking/collector.rb +87 -0
- data/lib/datadog/error_tracking/component.rb +167 -0
- data/lib/datadog/error_tracking/configuration/settings.rb +63 -0
- data/lib/datadog/error_tracking/configuration.rb +11 -0
- data/lib/datadog/error_tracking/ext.rb +18 -0
- data/lib/datadog/error_tracking/extensions.rb +16 -0
- data/lib/datadog/error_tracking/filters.rb +77 -0
- data/lib/datadog/error_tracking.rb +18 -0
- data/lib/datadog/kit/appsec/events/v2.rb +195 -0
- data/lib/datadog/kit/appsec/events.rb +12 -0
- data/lib/datadog/kit/identity.rb +5 -1
- data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
- data/lib/datadog/opentelemetry/api/baggage.rbs +26 -0
- data/lib/datadog/opentelemetry/api/context.rb +16 -2
- data/lib/datadog/opentelemetry/sdk/trace/span.rb +1 -1
- data/lib/datadog/opentelemetry.rb +2 -1
- data/lib/datadog/profiling/collectors/code_provenance.rb +18 -9
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +6 -0
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -0
- data/lib/datadog/profiling/collectors/info.rb +44 -0
- data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
- data/lib/datadog/profiling/component.rb +8 -9
- data/lib/datadog/profiling/encoded_profile.rb +11 -0
- data/lib/datadog/profiling/exporter.rb +12 -7
- data/lib/datadog/profiling/ext.rb +0 -14
- data/lib/datadog/profiling/flush.rb +5 -8
- data/lib/datadog/profiling/http_transport.rb +7 -61
- data/lib/datadog/profiling/profiler.rb +2 -0
- data/lib/datadog/profiling/scheduler.rb +10 -2
- data/lib/datadog/profiling/sequence_tracker.rb +44 -0
- data/lib/datadog/profiling/stack_recorder.rb +9 -9
- data/lib/datadog/profiling/tag_builder.rb +7 -41
- data/lib/datadog/profiling/tasks/setup.rb +2 -0
- data/lib/datadog/profiling.rb +7 -2
- data/lib/datadog/single_step_instrument.rb +9 -0
- data/lib/datadog/tracing/analytics.rb +1 -1
- data/lib/datadog/tracing/component.rb +15 -12
- data/lib/datadog/tracing/configuration/ext.rb +7 -1
- data/lib/datadog/tracing/configuration/settings.rb +18 -2
- data/lib/datadog/tracing/context_provider.rb +1 -1
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +15 -0
- data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +19 -12
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -2
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +33 -0
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +4 -0
- data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +2 -4
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +13 -0
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +10 -0
- data/lib/datadog/tracing/contrib/aws/parsed_context.rb +5 -1
- data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -5
- data/lib/datadog/tracing/contrib/excon/middleware.rb +5 -3
- data/lib/datadog/tracing/contrib/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +5 -3
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -1
- data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +3 -0
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -15
- data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +4 -1
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -10
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +6 -16
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +7 -15
- data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +27 -0
- data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +48 -0
- data/lib/datadog/tracing/contrib/karafka/ext.rb +27 -0
- data/lib/datadog/tracing/contrib/karafka/integration.rb +45 -0
- data/lib/datadog/tracing/contrib/karafka/monitor.rb +66 -0
- data/lib/datadog/tracing/contrib/karafka/patcher.rb +71 -0
- data/lib/datadog/tracing/contrib/karafka.rb +37 -0
- data/lib/datadog/tracing/contrib/lograge/patcher.rb +4 -2
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +8 -0
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +18 -1
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +16 -6
- data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +17 -0
- data/lib/datadog/tracing/contrib/opensearch/ext.rb +9 -0
- data/lib/datadog/tracing/contrib/opensearch/patcher.rb +5 -1
- data/lib/datadog/tracing/contrib/patcher.rb +5 -2
- data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
- data/lib/datadog/tracing/contrib/rails/patcher.rb +4 -1
- data/lib/datadog/tracing/contrib/rails/runner.rb +61 -40
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -3
- data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +6 -1
- data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +3 -0
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +5 -2
- data/lib/datadog/tracing/contrib/support.rb +28 -0
- data/lib/datadog/tracing/contrib.rb +1 -0
- data/lib/datadog/tracing/correlation.rb +9 -2
- data/lib/datadog/tracing/diagnostics/environment_logger.rb +3 -1
- data/lib/datadog/tracing/distributed/b3_multi.rb +1 -1
- data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
- data/lib/datadog/tracing/distributed/baggage.rb +131 -0
- data/lib/datadog/tracing/distributed/datadog.rb +4 -2
- data/lib/datadog/tracing/distributed/propagation.rb +25 -4
- data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
- data/lib/datadog/tracing/metadata/errors.rb +4 -4
- data/lib/datadog/tracing/metadata/ext.rb +5 -0
- data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
- data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
- data/lib/datadog/tracing/metadata.rb +2 -0
- data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -1
- data/lib/datadog/tracing/sampling/span/rule.rb +0 -1
- data/lib/datadog/tracing/span.rb +10 -1
- data/lib/datadog/tracing/span_event.rb +2 -2
- data/lib/datadog/tracing/span_operation.rb +68 -16
- data/lib/datadog/tracing/sync_writer.rb +2 -3
- data/lib/datadog/tracing/trace_digest.rb +9 -2
- data/lib/datadog/tracing/trace_operation.rb +55 -27
- data/lib/datadog/tracing/trace_segment.rb +6 -4
- data/lib/datadog/tracing/tracer.rb +51 -7
- data/lib/datadog/tracing/transport/http/api.rb +2 -10
- data/lib/datadog/tracing/transport/http/client.rb +5 -4
- data/lib/datadog/tracing/transport/http/traces.rb +13 -41
- data/lib/datadog/tracing/transport/http.rb +11 -44
- data/lib/datadog/tracing/transport/serializable_trace.rb +3 -1
- data/lib/datadog/tracing/transport/trace_formatter.rb +7 -0
- data/lib/datadog/tracing/transport/traces.rb +26 -9
- data/lib/datadog/tracing/utils.rb +1 -1
- data/lib/datadog/tracing/workers/trace_writer.rb +2 -6
- data/lib/datadog/tracing/writer.rb +2 -6
- data/lib/datadog/tracing.rb +16 -3
- data/lib/datadog/version.rb +2 -2
- data/lib/datadog.rb +8 -2
- metadata +88 -23
- data/lib/datadog/appsec/assets/waf_rules/processors.json +0 -92
- data/lib/datadog/appsec/assets/waf_rules/scanners.json +0 -114
- data/lib/datadog/appsec/contrib/devise/event.rb +0 -54
- data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -72
- data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -47
- data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
- data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
- data/lib/datadog/appsec/processor/rule_merger.rb +0 -170
- data/lib/datadog/appsec/processor.rb +0 -107
- data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
- data/lib/datadog/core/telemetry/http/env.rb +0 -20
- data/lib/datadog/core/telemetry/http/ext.rb +0 -28
- data/lib/datadog/core/telemetry/http/response.rb +0 -70
- data/lib/datadog/core/telemetry/http/transport.rb +0 -90
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'api_security/sampler'
|
4
|
+
|
5
|
+
module Datadog
|
6
|
+
module AppSec
|
7
|
+
# A namespace for API Security features.
|
8
|
+
module APISecurity
|
9
|
+
def self.enabled?
|
10
|
+
Datadog.configuration.appsec.api_security.enabled?
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.sample?(request, response)
|
14
|
+
Sampler.thread_local.sample?(request, response)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.sample_trace?(trace)
|
18
|
+
# NOTE: Reads as "if trace is priority sampled or if in standalone mode"
|
19
|
+
trace&.priority_sampled? || !Datadog.configuration.apm.tracing.enabled
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,7 +1,52 @@
|
|
1
|
-
|
1
|
+
AppSec WAF rules based on [appsec-event-rules](https://github.com/datadog/appsec-event-rules) builds
|
2
2
|
|
3
|
-
|
4
|
-
these rules.
|
3
|
+
## How to update
|
5
4
|
|
6
|
-
|
7
|
-
|
5
|
+
> [!WARNING]
|
6
|
+
> This process is a temporary workaround to maintain compatibility with the existing code structure and will be changed.
|
7
|
+
|
8
|
+
1. Download `recommended.json` and `strict.json` of the desired version from [appsec-event-rules](https://github.com/datadog/appsec-event-rules) (example: [v1.13.3](https://github.com/DataDog/appsec-event-rules/tree/1.13.3/build))
|
9
|
+
2. Run the script below inside `waf_rules` folder to extract scanners and processors into separate files
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
require 'json'
|
13
|
+
|
14
|
+
recommended_rules = JSON.parse(File.read(File.expand_path('recommended.json', __dir__)))
|
15
|
+
strict_rules = JSON.parse(File.read(File.expand_path('strict.json', __dir__)))
|
16
|
+
|
17
|
+
recommended_processors = recommended_rules.delete('processors')
|
18
|
+
strict_processors = strict_rules.delete('processors')
|
19
|
+
|
20
|
+
if recommended_processors.sort_by { |processor| processor['id'] } !=
|
21
|
+
strict_processors.sort_by { |processor| processor['id'] }
|
22
|
+
raise 'Processors are not the same, unable to extract them'
|
23
|
+
end
|
24
|
+
|
25
|
+
puts 'Extracting processors...'
|
26
|
+
File.open(File.expand_path('processors.json', __dir__), 'wb') do |file|
|
27
|
+
file.write(JSON.pretty_generate(recommended_processors))
|
28
|
+
end
|
29
|
+
|
30
|
+
recommended_scanners = recommended_rules.delete('scanners')
|
31
|
+
strict_scanners = strict_rules.delete('scanners')
|
32
|
+
|
33
|
+
if recommended_scanners.sort_by { |processor| processor['id'] } !=
|
34
|
+
strict_scanners.sort_by { |processor| processor['id'] }
|
35
|
+
raise 'Scanners are not the same, unable to extract them'
|
36
|
+
end
|
37
|
+
|
38
|
+
puts 'Extracting scanners...'
|
39
|
+
File.open(File.expand_path('scanners.json', __dir__), 'wb') do |file|
|
40
|
+
file.write(JSON.pretty_generate(recommended_scanners))
|
41
|
+
end
|
42
|
+
|
43
|
+
puts 'Updating rules...'
|
44
|
+
|
45
|
+
File.open(File.expand_path('recommended.json', __dir__), 'wb') do |file|
|
46
|
+
file.write(JSON.pretty_generate(recommended_rules))
|
47
|
+
end
|
48
|
+
|
49
|
+
File.open(File.expand_path('strict.json', __dir__), 'wb') do |file|
|
50
|
+
file.write(JSON.pretty_generate(strict_rules))
|
51
|
+
end
|
52
|
+
```
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": "2.2",
|
3
3
|
"metadata": {
|
4
|
-
"rules_version": "1.
|
4
|
+
"rules_version": "1.14.2"
|
5
5
|
},
|
6
6
|
"rules": [
|
7
7
|
{
|
@@ -4864,6 +4864,36 @@
|
|
4864
4864
|
],
|
4865
4865
|
"transformers": []
|
4866
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
|
+
},
|
4867
4897
|
{
|
4868
4898
|
"id": "dog-913-001",
|
4869
4899
|
"name": "BurpCollaborator OOB domain",
|
@@ -5422,6 +5452,82 @@
|
|
5422
5452
|
],
|
5423
5453
|
"transformers": []
|
5424
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
|
+
},
|
5425
5531
|
{
|
5426
5532
|
"id": "dog-920-001",
|
5427
5533
|
"name": "JWT authentication bypass",
|
@@ -6314,7 +6420,7 @@
|
|
6314
6420
|
"address": "server.request.uri.raw"
|
6315
6421
|
}
|
6316
6422
|
],
|
6317
|
-
"regex": "(
|
6423
|
+
"regex": "(?:^|/)(?:swagger|api[-/]?docs?|openapi)\\b",
|
6318
6424
|
"options": {
|
6319
6425
|
"case_sensitive": false
|
6320
6426
|
}
|
@@ -6331,7 +6437,7 @@
|
|
6331
6437
|
"category": "vulnerability_trigger",
|
6332
6438
|
"cwe": "22",
|
6333
6439
|
"capec": "1000/255/153/126",
|
6334
|
-
"confidence": "
|
6440
|
+
"confidence": "1",
|
6335
6441
|
"module": "rasp"
|
6336
6442
|
},
|
6337
6443
|
"conditions": [
|
@@ -6379,7 +6485,7 @@
|
|
6379
6485
|
"category": "vulnerability_trigger",
|
6380
6486
|
"cwe": "77",
|
6381
6487
|
"capec": "1000/152/248/88",
|
6382
|
-
"confidence": "
|
6488
|
+
"confidence": "1",
|
6383
6489
|
"module": "rasp"
|
6384
6490
|
},
|
6385
6491
|
"conditions": [
|
@@ -6427,7 +6533,7 @@
|
|
6427
6533
|
"category": "vulnerability_trigger",
|
6428
6534
|
"cwe": "77",
|
6429
6535
|
"capec": "1000/152/248/88",
|
6430
|
-
"confidence": "
|
6536
|
+
"confidence": "1",
|
6431
6537
|
"module": "rasp"
|
6432
6538
|
},
|
6433
6539
|
"conditions": [
|
@@ -6479,6 +6585,20 @@
|
|
6479
6585
|
"module": "rasp"
|
6480
6586
|
},
|
6481
6587
|
"conditions": [
|
6588
|
+
{
|
6589
|
+
"parameters": {
|
6590
|
+
"inputs": [
|
6591
|
+
{
|
6592
|
+
"address": "server.io.net.url"
|
6593
|
+
}
|
6594
|
+
],
|
6595
|
+
"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})?(\\/[^:@]*)?$",
|
6596
|
+
"options": {
|
6597
|
+
"case_sensitive": false
|
6598
|
+
}
|
6599
|
+
},
|
6600
|
+
"operator": "match_regex"
|
6601
|
+
},
|
6482
6602
|
{
|
6483
6603
|
"parameters": {
|
6484
6604
|
"resource": [
|
@@ -6523,7 +6643,7 @@
|
|
6523
6643
|
"category": "vulnerability_trigger",
|
6524
6644
|
"cwe": "89",
|
6525
6645
|
"capec": "1000/152/248/66",
|
6526
|
-
"confidence": "
|
6646
|
+
"confidence": "1",
|
6527
6647
|
"module": "rasp"
|
6528
6648
|
},
|
6529
6649
|
"conditions": [
|
@@ -6957,7 +7077,7 @@
|
|
6957
7077
|
"address": "graphql.server.resolver"
|
6958
7078
|
}
|
6959
7079
|
],
|
6960
|
-
"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)"
|
7080
|
+
"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+)"
|
6961
7081
|
},
|
6962
7082
|
"operator": "match_regex"
|
6963
7083
|
}
|
@@ -7765,7 +7885,7 @@
|
|
7765
7885
|
]
|
7766
7886
|
}
|
7767
7887
|
],
|
7768
|
-
"regex": "nmap (nse|scripting engine)"
|
7888
|
+
"regex": "nmap (nse|scripting engine|icap-client/)"
|
7769
7889
|
},
|
7770
7890
|
"operator": "match_regex"
|
7771
7891
|
}
|
@@ -8537,6 +8657,126 @@
|
|
8537
8657
|
],
|
8538
8658
|
"transformers": []
|
8539
8659
|
},
|
8660
|
+
{
|
8661
|
+
"id": "ua0-600-64x",
|
8662
|
+
"name": "ddg_win",
|
8663
|
+
"tags": {
|
8664
|
+
"type": "attack_tool",
|
8665
|
+
"category": "attack_attempt",
|
8666
|
+
"cwe": "200",
|
8667
|
+
"capec": "1000/118/169",
|
8668
|
+
"tool_name": "ddg_win",
|
8669
|
+
"confidence": "1",
|
8670
|
+
"module": "waf"
|
8671
|
+
},
|
8672
|
+
"conditions": [
|
8673
|
+
{
|
8674
|
+
"parameters": {
|
8675
|
+
"inputs": [
|
8676
|
+
{
|
8677
|
+
"address": "server.request.headers.no_cookies",
|
8678
|
+
"key_path": [
|
8679
|
+
"user-agent"
|
8680
|
+
]
|
8681
|
+
}
|
8682
|
+
],
|
8683
|
+
"regex": "\\bddg_win\\b"
|
8684
|
+
},
|
8685
|
+
"operator": "match_regex"
|
8686
|
+
}
|
8687
|
+
],
|
8688
|
+
"transformers": []
|
8689
|
+
},
|
8690
|
+
{
|
8691
|
+
"id": "ua0-600-65x",
|
8692
|
+
"name": "ISS",
|
8693
|
+
"tags": {
|
8694
|
+
"type": "commercial_scanner",
|
8695
|
+
"category": "attack_attempt",
|
8696
|
+
"cwe": "200",
|
8697
|
+
"capec": "1000/118/169",
|
8698
|
+
"tool_name": "iss",
|
8699
|
+
"confidence": "0",
|
8700
|
+
"module": "waf"
|
8701
|
+
},
|
8702
|
+
"conditions": [
|
8703
|
+
{
|
8704
|
+
"parameters": {
|
8705
|
+
"inputs": [
|
8706
|
+
{
|
8707
|
+
"address": "server.request.headers.no_cookies",
|
8708
|
+
"key_path": [
|
8709
|
+
"user-agent"
|
8710
|
+
]
|
8711
|
+
}
|
8712
|
+
],
|
8713
|
+
"regex": "\\bisscyberriskcrawler/\\d\\.\\d"
|
8714
|
+
},
|
8715
|
+
"operator": "match_regex"
|
8716
|
+
}
|
8717
|
+
],
|
8718
|
+
"transformers": []
|
8719
|
+
},
|
8720
|
+
{
|
8721
|
+
"id": "ua0-600-66x",
|
8722
|
+
"name": "BountyBot",
|
8723
|
+
"tags": {
|
8724
|
+
"type": "attack_tool",
|
8725
|
+
"category": "attack_attempt",
|
8726
|
+
"cwe": "200",
|
8727
|
+
"capec": "1000/118/169",
|
8728
|
+
"tool_name": "bountybot",
|
8729
|
+
"confidence": "1",
|
8730
|
+
"module": "waf"
|
8731
|
+
},
|
8732
|
+
"conditions": [
|
8733
|
+
{
|
8734
|
+
"parameters": {
|
8735
|
+
"inputs": [
|
8736
|
+
{
|
8737
|
+
"address": "server.request.headers.no_cookies",
|
8738
|
+
"key_path": [
|
8739
|
+
"user-agent"
|
8740
|
+
]
|
8741
|
+
}
|
8742
|
+
],
|
8743
|
+
"regex": "\\bbountybot\\b"
|
8744
|
+
},
|
8745
|
+
"operator": "match_regex"
|
8746
|
+
}
|
8747
|
+
],
|
8748
|
+
"transformers": []
|
8749
|
+
},
|
8750
|
+
{
|
8751
|
+
"id": "ua0-600-67x",
|
8752
|
+
"name": "ZumBot",
|
8753
|
+
"tags": {
|
8754
|
+
"type": "attack_tool",
|
8755
|
+
"category": "attack_attempt",
|
8756
|
+
"cwe": "200",
|
8757
|
+
"capec": "1000/118/169",
|
8758
|
+
"tool_name": "zumbot",
|
8759
|
+
"confidence": "1",
|
8760
|
+
"module": "waf"
|
8761
|
+
},
|
8762
|
+
"conditions": [
|
8763
|
+
{
|
8764
|
+
"parameters": {
|
8765
|
+
"inputs": [
|
8766
|
+
{
|
8767
|
+
"address": "server.request.headers.no_cookies",
|
8768
|
+
"key_path": [
|
8769
|
+
"user-agent"
|
8770
|
+
]
|
8771
|
+
}
|
8772
|
+
],
|
8773
|
+
"regex": "\\bzumbot\\b"
|
8774
|
+
},
|
8775
|
+
"operator": "match_regex"
|
8776
|
+
}
|
8777
|
+
],
|
8778
|
+
"transformers": []
|
8779
|
+
},
|
8540
8780
|
{
|
8541
8781
|
"id": "ua0-600-6xx",
|
8542
8782
|
"name": "Stealthy scanner",
|
@@ -8634,24 +8874,7 @@
|
|
8634
8874
|
{
|
8635
8875
|
"id": "http-endpoint-fingerprint",
|
8636
8876
|
"generator": "http_endpoint_fingerprint",
|
8637
|
-
"conditions": [
|
8638
|
-
{
|
8639
|
-
"operator": "exists",
|
8640
|
-
"parameters": {
|
8641
|
-
"inputs": [
|
8642
|
-
{
|
8643
|
-
"address": "waf.context.event"
|
8644
|
-
},
|
8645
|
-
{
|
8646
|
-
"address": "server.business_logic.users.login.failure"
|
8647
|
-
},
|
8648
|
-
{
|
8649
|
-
"address": "server.business_logic.users.login.success"
|
8650
|
-
}
|
8651
|
-
]
|
8652
|
-
}
|
8653
|
-
}
|
8654
|
-
],
|
8877
|
+
"conditions": [],
|
8655
8878
|
"parameters": {
|
8656
8879
|
"mappings": [
|
8657
8880
|
{
|
@@ -8679,7 +8902,7 @@
|
|
8679
8902
|
}
|
8680
8903
|
]
|
8681
8904
|
},
|
8682
|
-
"evaluate":
|
8905
|
+
"evaluate": true,
|
8683
8906
|
"output": true
|
8684
8907
|
},
|
8685
8908
|
{
|
@@ -8835,24 +9058,7 @@
|
|
8835
9058
|
{
|
8836
9059
|
"id": "http-header-fingerprint",
|
8837
9060
|
"generator": "http_header_fingerprint",
|
8838
|
-
"conditions": [
|
8839
|
-
{
|
8840
|
-
"operator": "exists",
|
8841
|
-
"parameters": {
|
8842
|
-
"inputs": [
|
8843
|
-
{
|
8844
|
-
"address": "waf.context.event"
|
8845
|
-
},
|
8846
|
-
{
|
8847
|
-
"address": "server.business_logic.users.login.failure"
|
8848
|
-
},
|
8849
|
-
{
|
8850
|
-
"address": "server.business_logic.users.login.success"
|
8851
|
-
}
|
8852
|
-
]
|
8853
|
-
}
|
8854
|
-
}
|
8855
|
-
],
|
9061
|
+
"conditions": [],
|
8856
9062
|
"parameters": {
|
8857
9063
|
"mappings": [
|
8858
9064
|
{
|
@@ -8865,30 +9071,13 @@
|
|
8865
9071
|
}
|
8866
9072
|
]
|
8867
9073
|
},
|
8868
|
-
"evaluate":
|
9074
|
+
"evaluate": true,
|
8869
9075
|
"output": true
|
8870
9076
|
},
|
8871
9077
|
{
|
8872
9078
|
"id": "http-network-fingerprint",
|
8873
9079
|
"generator": "http_network_fingerprint",
|
8874
|
-
"conditions": [
|
8875
|
-
{
|
8876
|
-
"operator": "exists",
|
8877
|
-
"parameters": {
|
8878
|
-
"inputs": [
|
8879
|
-
{
|
8880
|
-
"address": "waf.context.event"
|
8881
|
-
},
|
8882
|
-
{
|
8883
|
-
"address": "server.business_logic.users.login.failure"
|
8884
|
-
},
|
8885
|
-
{
|
8886
|
-
"address": "server.business_logic.users.login.success"
|
8887
|
-
}
|
8888
|
-
]
|
8889
|
-
}
|
8890
|
-
}
|
8891
|
-
],
|
9080
|
+
"conditions": [],
|
8892
9081
|
"parameters": {
|
8893
9082
|
"mappings": [
|
8894
9083
|
{
|
@@ -8901,30 +9090,13 @@
|
|
8901
9090
|
}
|
8902
9091
|
]
|
8903
9092
|
},
|
8904
|
-
"evaluate":
|
9093
|
+
"evaluate": true,
|
8905
9094
|
"output": true
|
8906
9095
|
},
|
8907
9096
|
{
|
8908
9097
|
"id": "session-fingerprint",
|
8909
9098
|
"generator": "session_fingerprint",
|
8910
|
-
"conditions": [
|
8911
|
-
{
|
8912
|
-
"operator": "exists",
|
8913
|
-
"parameters": {
|
8914
|
-
"inputs": [
|
8915
|
-
{
|
8916
|
-
"address": "waf.context.event"
|
8917
|
-
},
|
8918
|
-
{
|
8919
|
-
"address": "server.business_logic.users.login.failure"
|
8920
|
-
},
|
8921
|
-
{
|
8922
|
-
"address": "server.business_logic.users.login.success"
|
8923
|
-
}
|
8924
|
-
]
|
8925
|
-
}
|
8926
|
-
}
|
8927
|
-
],
|
9099
|
+
"conditions": [],
|
8928
9100
|
"parameters": {
|
8929
9101
|
"mappings": [
|
8930
9102
|
{
|
@@ -8947,7 +9119,7 @@
|
|
8947
9119
|
}
|
8948
9120
|
]
|
8949
9121
|
},
|
8950
|
-
"evaluate":
|
9122
|
+
"evaluate": true,
|
8951
9123
|
"output": true
|
8952
9124
|
}
|
8953
9125
|
],
|
@@ -9974,4 +10146,4 @@
|
|
9974
10146
|
}
|
9975
10147
|
}
|
9976
10148
|
]
|
9977
|
-
}
|
10149
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": "2.2",
|
3
3
|
"metadata": {
|
4
|
-
"rules_version": "1.
|
4
|
+
"rules_version": "1.14.2"
|
5
5
|
},
|
6
6
|
"rules": [
|
7
7
|
{
|
@@ -1750,24 +1750,7 @@
|
|
1750
1750
|
{
|
1751
1751
|
"id": "http-endpoint-fingerprint",
|
1752
1752
|
"generator": "http_endpoint_fingerprint",
|
1753
|
-
"conditions": [
|
1754
|
-
{
|
1755
|
-
"operator": "exists",
|
1756
|
-
"parameters": {
|
1757
|
-
"inputs": [
|
1758
|
-
{
|
1759
|
-
"address": "waf.context.event"
|
1760
|
-
},
|
1761
|
-
{
|
1762
|
-
"address": "server.business_logic.users.login.failure"
|
1763
|
-
},
|
1764
|
-
{
|
1765
|
-
"address": "server.business_logic.users.login.success"
|
1766
|
-
}
|
1767
|
-
]
|
1768
|
-
}
|
1769
|
-
}
|
1770
|
-
],
|
1753
|
+
"conditions": [],
|
1771
1754
|
"parameters": {
|
1772
1755
|
"mappings": [
|
1773
1756
|
{
|
@@ -1795,7 +1778,7 @@
|
|
1795
1778
|
}
|
1796
1779
|
]
|
1797
1780
|
},
|
1798
|
-
"evaluate":
|
1781
|
+
"evaluate": true,
|
1799
1782
|
"output": true
|
1800
1783
|
},
|
1801
1784
|
{
|
@@ -1951,24 +1934,7 @@
|
|
1951
1934
|
{
|
1952
1935
|
"id": "http-header-fingerprint",
|
1953
1936
|
"generator": "http_header_fingerprint",
|
1954
|
-
"conditions": [
|
1955
|
-
{
|
1956
|
-
"operator": "exists",
|
1957
|
-
"parameters": {
|
1958
|
-
"inputs": [
|
1959
|
-
{
|
1960
|
-
"address": "waf.context.event"
|
1961
|
-
},
|
1962
|
-
{
|
1963
|
-
"address": "server.business_logic.users.login.failure"
|
1964
|
-
},
|
1965
|
-
{
|
1966
|
-
"address": "server.business_logic.users.login.success"
|
1967
|
-
}
|
1968
|
-
]
|
1969
|
-
}
|
1970
|
-
}
|
1971
|
-
],
|
1937
|
+
"conditions": [],
|
1972
1938
|
"parameters": {
|
1973
1939
|
"mappings": [
|
1974
1940
|
{
|
@@ -1981,30 +1947,13 @@
|
|
1981
1947
|
}
|
1982
1948
|
]
|
1983
1949
|
},
|
1984
|
-
"evaluate":
|
1950
|
+
"evaluate": true,
|
1985
1951
|
"output": true
|
1986
1952
|
},
|
1987
1953
|
{
|
1988
1954
|
"id": "http-network-fingerprint",
|
1989
1955
|
"generator": "http_network_fingerprint",
|
1990
|
-
"conditions": [
|
1991
|
-
{
|
1992
|
-
"operator": "exists",
|
1993
|
-
"parameters": {
|
1994
|
-
"inputs": [
|
1995
|
-
{
|
1996
|
-
"address": "waf.context.event"
|
1997
|
-
},
|
1998
|
-
{
|
1999
|
-
"address": "server.business_logic.users.login.failure"
|
2000
|
-
},
|
2001
|
-
{
|
2002
|
-
"address": "server.business_logic.users.login.success"
|
2003
|
-
}
|
2004
|
-
]
|
2005
|
-
}
|
2006
|
-
}
|
2007
|
-
],
|
1956
|
+
"conditions": [],
|
2008
1957
|
"parameters": {
|
2009
1958
|
"mappings": [
|
2010
1959
|
{
|
@@ -2017,30 +1966,13 @@
|
|
2017
1966
|
}
|
2018
1967
|
]
|
2019
1968
|
},
|
2020
|
-
"evaluate":
|
1969
|
+
"evaluate": true,
|
2021
1970
|
"output": true
|
2022
1971
|
},
|
2023
1972
|
{
|
2024
1973
|
"id": "session-fingerprint",
|
2025
1974
|
"generator": "session_fingerprint",
|
2026
|
-
"conditions": [
|
2027
|
-
{
|
2028
|
-
"operator": "exists",
|
2029
|
-
"parameters": {
|
2030
|
-
"inputs": [
|
2031
|
-
{
|
2032
|
-
"address": "waf.context.event"
|
2033
|
-
},
|
2034
|
-
{
|
2035
|
-
"address": "server.business_logic.users.login.failure"
|
2036
|
-
},
|
2037
|
-
{
|
2038
|
-
"address": "server.business_logic.users.login.success"
|
2039
|
-
}
|
2040
|
-
]
|
2041
|
-
}
|
2042
|
-
}
|
2043
|
-
],
|
1975
|
+
"conditions": [],
|
2044
1976
|
"parameters": {
|
2045
1977
|
"mappings": [
|
2046
1978
|
{
|
@@ -2063,7 +1995,7 @@
|
|
2063
1995
|
}
|
2064
1996
|
]
|
2065
1997
|
},
|
2066
|
-
"evaluate":
|
1998
|
+
"evaluate": true,
|
2067
1999
|
"output": true
|
2068
2000
|
}
|
2069
2001
|
],
|
@@ -3090,4 +3022,4 @@
|
|
3090
3022
|
}
|
3091
3023
|
}
|
3092
3024
|
]
|
3093
|
-
}
|
3025
|
+
}
|