Skip to content

CDN WAF features

Last updated on

This document details the core features and configurations available within the STACKIT CDN Web Application Firewall feature (CDN WAF).

The following table outlines which CDN WAF features are currently available and which are still being developed:

To use a CDN WAF it is necessary to have a STACKIT Content Delivery Network (CDN) in place as a base. It is tightly bundled with a CDN as it also works on the edge. Therefore, it is highly recommended to make use of STACKIT CDN features.

Before you can configure CDN WAF properties, you must enable the CDN WAF by setting the mode to ENABLED or LOG_ONLY. If the CDN WAF is not enabled, most properties are not populated.

The operating mode determines how the CDN WAF handles incoming traffic.

You can enable CDN WAF as an additional service within your CDN distribution. For detailed pricing information, see Billing and costs.

  • BASIC: Provides standard CDN WAF features and basic rule sets.
  • PREMIUM: Unlocks additional premium-only rules and the ability to create custom rules (custom rules are planned for future release).

The paranoia level defines how aggressively the CDN WAF filters requests. Higher levels are more effective at catching attacks but increase the chance of blocking legitimate traffic (false positives).

Available levels range from least strict to most strict:

  • L1 (Lowest chance of false positives)
  • L2
  • L3
  • L4 (Highest chance of false positives)

Whitelists restrict which requests the distribution accepts. The CDN WAF blocks non-whitelisted requests before they reach the origin.

  • Allowed HTTP methods: Restricts accepted HTTP methods (e.g., GET, POST, PUT).
  • Allowed HTTP versions: Restricts the accepted HTTP protocol versions.
  • Allowed request content types: Restricts the accepted Content-Type headers in request bodies (e.g., application/json, multipart/form-data). Formats must be type/subtype without spaces.

You control rule behavior using nine properties divided into three specificity groups: collections, rule groups, and rules.

The rule levels, from broadest to most specific, are:

  1. Collections: Broad categories of rules. Currently, the available collections are @builtin/crs/response (response rules) and @builtin/crs/request (request rules).
  2. Rule groups: Sub-categories within collections. Call the ListWafCollections operation to view available rule groups.
  3. Rules: Individual, specific rules.

The precedence of these levels dictates how overlapping configurations are resolved. The order of precedence is (from highest to lowest):

  1. Rule
  2. Rule group
  3. Collection

This means that a more specific setting always overrides a broader one. For example, disabling a collection but activating a specific rule within it will deactivate every rule in that collection except for the explicitly activated one.

Use the following properties to enable, disable, or log rules at each hierarchy level:

The following log fields are added to the CDN Logs only when an enabled or logged rule is triggered: