Module: Datadog::AppSec

Defined in:
lib/datadog/appsec.rb,
lib/datadog/appsec/ext.rb,
lib/datadog/appsec/event.rb,
lib/datadog/appsec/utils.rb,
lib/datadog/appsec/assets.rb,
lib/datadog/appsec/remote.rb,
lib/datadog/appsec/context.rb,
lib/datadog/appsec/metrics.rb,
lib/datadog/appsec/monitor.rb,
lib/datadog/appsec/response.rb,
lib/datadog/appsec/component.rb,
lib/datadog/appsec/processor.rb,
lib/datadog/appsec/anonymizer.rb,
lib/datadog/appsec/extensions.rb,
lib/datadog/appsec/utils/http.rb,
lib/datadog/appsec/sample_rate.rb,
lib/datadog/appsec/rate_limiter.rb,
lib/datadog/appsec/configuration.rb,
lib/datadog/appsec/security_event.rb,
lib/datadog/appsec/actions_handler.rb,
lib/datadog/appsec/compressed_json.rb,
lib/datadog/appsec/instrumentation.rb,
lib/datadog/appsec/security_engine.rb,
lib/datadog/appsec/contrib/rack/ext.rb,
lib/datadog/appsec/metrics/exporter.rb,
lib/datadog/appsec/contrib/rails/ext.rb,
lib/datadog/appsec/metrics/collector.rb,
lib/datadog/appsec/metrics/telemetry.rb,
lib/datadog/appsec/contrib/devise/ext.rb,
lib/datadog/appsec/contrib/integration.rb,
lib/datadog/appsec/contrib/rack/patcher.rb,
lib/datadog/appsec/contrib/excon/patcher.rb,
lib/datadog/appsec/contrib/rails/patcher.rb,
lib/datadog/appsec/contrib/rails/request.rb,
lib/datadog/appsec/processor/rule_loader.rb,
lib/datadog/appsec/processor/rule_merger.rb,
lib/datadog/appsec/utils/http/media_type.rb,
lib/datadog/appsec/configuration/settings.rb,
lib/datadog/appsec/contrib/devise/patcher.rb,
lib/datadog/appsec/security_engine/result.rb,
lib/datadog/appsec/security_engine/runner.rb,
lib/datadog/appsec/utils/http/media_range.rb,
lib/datadog/appsec/contrib/auto_instrument.rb,
lib/datadog/appsec/contrib/faraday/patcher.rb,
lib/datadog/appsec/contrib/graphql/patcher.rb,
lib/datadog/appsec/contrib/rails/framework.rb,
lib/datadog/appsec/contrib/sinatra/patcher.rb,
lib/datadog/appsec/instrumentation/gateway.rb,
lib/datadog/appsec/monitor/gateway/watcher.rb,
lib/datadog/appsec/contrib/rack/integration.rb,
lib/datadog/appsec/contrib/excon/integration.rb,
lib/datadog/appsec/contrib/rails/integration.rb,
lib/datadog/appsec/contrib/sinatra/framework.rb,
lib/datadog/appsec/contrib/devise/integration.rb,
lib/datadog/appsec/contrib/faraday/integration.rb,
lib/datadog/appsec/contrib/graphql/integration.rb,
lib/datadog/appsec/contrib/rest_client/patcher.rb,
lib/datadog/appsec/contrib/sinatra/integration.rb,
lib/datadog/appsec/contrib/devise/configuration.rb,
lib/datadog/appsec/contrib/graphql/appsec_trace.rb,
lib/datadog/appsec/contrib/rack/gateway/request.rb,
lib/datadog/appsec/contrib/rack/gateway/watcher.rb,
lib/datadog/appsec/contrib/active_record/patcher.rb,
lib/datadog/appsec/contrib/devise/data_extractor.rb,
lib/datadog/appsec/contrib/rack/gateway/response.rb,
lib/datadog/appsec/contrib/rails/gateway/request.rb,
lib/datadog/appsec/contrib/rails/gateway/watcher.rb,
lib/datadog/appsec/contrib/graphql/gateway/watcher.rb,
lib/datadog/appsec/contrib/rack/request_middleware.rb,
lib/datadog/appsec/contrib/rest_client/integration.rb,
lib/datadog/appsec/contrib/sinatra/gateway/request.rb,
lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb,
lib/datadog/appsec/contrib/faraday/connection_patch.rb,
lib/datadog/appsec/contrib/rails/request_middleware.rb,
lib/datadog/appsec/instrumentation/gateway/argument.rb,
lib/datadog/appsec/contrib/active_record/integration.rb,
lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb,
lib/datadog/appsec/contrib/devise/tracking_middleware.rb,
lib/datadog/appsec/contrib/faraday/rack_builder_patch.rb,
lib/datadog/appsec/contrib/sinatra/request_middleware.rb,
lib/datadog/appsec/instrumentation/gateway/middleware.rb,
lib/datadog/appsec/contrib/rack/request_body_middleware.rb,
lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb,
lib/datadog/appsec/contrib/active_record/instrumentation.rb,
lib/datadog/appsec/actions_handler/serializable_backtrace.rb,
lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb,
lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb,
lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb,
lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb,
lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb,
lib/datadog/appsec/contrib/devise/patches/skip_signin_tracking_patch.rb

Overview

Namespace for Datadog AppSec instrumentation

Defined Under Namespace

Modules: ActionsHandler, Anonymizer, Assets, CompressedJson, Configuration, Contrib, Event, Ext, Extensions, Instrumentation, Metrics, Monitor, Remote, SecurityEngine, Utils Classes: Component, Context, Processor, RateLimiter, Response, SampleRate, SecurityEvent

Class Method Summary collapse

Class Method Details

.active_contextObject



21
22
23
# File 'lib/datadog/appsec.rb', line 21

def active_context
  Datadog::AppSec::Context.active
end

.enabled?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/datadog/appsec.rb', line 13

def enabled?
  Datadog.configuration.appsec.enabled
end

.perform_api_security_check?Boolean

Returns:

  • (Boolean)


47
48
49
50
# File 'lib/datadog/appsec.rb', line 47

def perform_api_security_check?
  Datadog.configuration.appsec.api_security.enabled &&
    Datadog.configuration.appsec.api_security.sample_rate.sample?
end

.processorObject



29
30
31
# File 'lib/datadog/appsec.rb', line 29

def processor
  components.appsec&.processor
end

.rasp_enabled?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/datadog/appsec.rb', line 17

def rasp_enabled?
  Datadog.configuration.appsec.rasp_enabled
end

.reconfigure(ruleset:, telemetry:) ⇒ Object



33
34
35
36
37
38
# File 'lib/datadog/appsec.rb', line 33

def reconfigure(ruleset:, telemetry:)
  appsec_component = components.appsec
  return unless appsec_component

  appsec_component.reconfigure(ruleset: ruleset, telemetry: telemetry)
end

.reconfigure_lock(&block) ⇒ Object



40
41
42
43
44
45
# File 'lib/datadog/appsec.rb', line 40

def reconfigure_lock(&block)
  appsec_component = components.appsec
  return unless appsec_component

  appsec_component.reconfigure_lock(&block)
end

.telemetryObject



25
26
27
# File 'lib/datadog/appsec.rb', line 25

def telemetry
  components.appsec&.telemetry
end