Only this pageAll pages
Powered by GitBook
1 of 63

v2.12

Loading...

Loading...

Loading...

Loading...

Console UI Walkthrough

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Using the product

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Reference Information

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Link11 WAAP v2.12 Portal

Product Manual and documentation

Link11 offers a network security software suite, including robust WAAP (Web Application and API Protection). In this documentation, the platform will be referred to as Reblaze.

IntroductionGetting StartedConsole UI WalkthroughBest PracticesHow Do I...

Introduction

Product overview, architecture, and how it works

Welcome!

Link11 offers an all-in-one web security platform, referred to in this documentation as Reblaze. It includes a next-gen Web Application Firewall (WAF), full-scope autoscaling Denial of Service (DoS)/Distributed Denial of Service (DDoS) protection, advanced bot management, real-time traffic monitoring & control, full historical logs & analytics, and more.

Reblaze is fully integrated with the top-tier public cloud providers (AWS, Azure, and GCP), and runs on the customer’s clouds of choice. The platform protects web applications, services and microservices, and API endpoints.

The platform is designed around a no-compromise approach to web security. All customers enjoy comprehensive protection, without having to purchase premium tiers or subscribe to additional services. Each customer receives a dedicated Virtual Private Cloud (VPC), eliminating multi-tenancy vulnerabilities. For maximum privacy, all traffic data is processed exclusively inside the customers’ clouds. Fine-grained ACLs enable precise traffic regulation. An intuitive web-based management console provides real-time traffic control. Multivariate threat detection, behavioral analysis, and machine learning ensure accurate, adaptive protection.

Traffic

Viewing current and historical traffic data

The Traffic section allows you to monitor your network activity on a monthly, weekly, daily, hourly, or even minute-by-minute basis. It contains two primary sections: the Dashboard and View Log.

: Provides an overview and a breakdown of your traffic to the VPC, during specified time frames. In addition, the Dashboard also provides information about Top Activities (a sorted summary of your top events).

: Provides the ability to view and query network traffic data. You can analyze and monitor traffic data in real time, or over custom time frames.

Before diving into the interface, it's helpful to first read

Dashboard
View Log
Traffic Concepts: How Reblaze reports on the requests it receives.

Product overview

Reblaze deploys as a reverse proxy, geolocated immediately in front of the protected network for minimal latency. As incoming traffic passes through Reblaze, attack traffic is blocked and denied access. The platform's overall architecture is as follows:

Reblaze Deployment

Cloud-based web security

  • Reblaze deploys a dedicated VPC for each customer: an entire full-stack environment for each protected web platform, deployed immediately and automatically, and running across one or more cloud vendors (usually AWS, GCP and Microsoft Azure, although private clouds are supported as well).

  • All incoming traffic is routed through the VPC and scrubbed as it passes through. Latency is negligible (generally 1.5 milliseconds or less).

  • Hostile traffic is blocked before it reaches the protected network. Legitimate traffic has normal access to the requested resources.

  • Attackers cannot reach, or even find, the targeted web platform.

  • Bandwidth, compute, and other resources scale automatically as needed, limited only by the capacity of the global cloud.

  • Remote management ensures minimal obligations (of time or expertise) from onsite staff.

Architecture

Authentication

Reblaze supports various methods of authentication such as Basic, Digest, and Kerberos. (Note that NTLM cannot work with reverse proxies, and thus Reblaze does not support NTLM sites/applications.)

Processing Within Your Perimeter

With Reblaze, you can process and scrub your traffic exclusively within your clouds—the clouds you already trust for your other business processes.

Top-tier Cloud Platforms

Reblaze is integrated with, and runs natively on, multiple cloud platforms, including the top-tiers (AWS, GCP, and Azure). It can run on any combination of clouds, on your choice of accounts (Reblaze’s, yours, or a combination of the two), and it deploys in minutes.

Reblaze deploys slightly differently on each platform, to take full advantage of its inherent capabilities.

GCP

Here is an example deployment of Reblaze on Google Cloud Platform.

Reblaze running on GCP

Static content is served by the CDN. Incoming dynamic requests are directed through Cloud Load Balancing (capable of handling millions of requests per second) to ensure that the request processing time is minimal and availability will be fully utilized.

Requests are routed through the Auto Scaled instance group of "Reblazers" (security logic units) that will inspect the traffic, and according to their security policies, will bypass, deny, or allow the requests. Rule updates are sent to Cloud Armor, which blocks hostile traffic at the edges.

All incoming requests and their disposition are displayed in the console admin, and also streamed into Cloud Security Command Center (not shown above for lack of space).

All events and requests are recorded in BigQuery, accessible to users at all times via full historical logs. Cloud Machine Learning is used to analyze the data. Reblaze identifies new traffic and behavioral patterns (both legitimate and hostile), and updates all deployments appropriately. Thus, even as new web threats arise, Reblaze hardens itself against them.

All Security policies are stored in secure Cloud Storage and constantly synchronized.

AWS

Here is an example deployment on AWS. The overall traffic flow and processing is similar to that described above for GCP, although it leverages AWS's native capabilities.

Reblaze running on AWS

Microsoft Azure

Here is an example deployment on Azure.

Reblaze running on Azure

Security

Defining how Reblaze processes your traffic

This section defines the parameters with which Reblaze scrubs traffic.

The user interface is divided into five sections:

  1. Static Rules: Security settings that apply to your entire planet.

  2. Dynamic Rules: Thresholds for banning sources of hostile traffic.

  3. : The "warehouse" of traffic sources that are currently banned. This contains blacklists and whitelists, allowing you to manually control quarantines when necessary.

  4. : Creation of security rule sets for assignment to specific resources, locations, and applications.

  5. : Settings for allowing requests based on their arguments, in a procedure that occurs before normal WAF inspection and filtering.

The Security section is where you define the "under the hood" settings for Reblaze. When defining or editing the information in this section, careful consideration is necessary.

Before investigating each section of the interface, it's recommended to read the "" discussion on the next page of this Manual.

Quarantined
Profiles
Args Analysis
Security Concepts

Account

Changing user settings

The Account Settings allows you to review and modify your Reblaze user account.

From this page, you can reset your password. Before this can be accomplished, you will need to enter an OTP (One Time Password) code that will be sent to you via SMS text message.

Alternatively, you can scan the QR code shown on this page, using an app like Google Authenticator (available for both Android and iPhone).

This will generate an OTP without requiring you to wait for an SMS message.

Best Practices

This section describes best practices for some common tasks.

Saving and Publishing Your ChangesEnabling Passive ChallengesUnderstanding and Diagnosing Traffic IssuesUsing the Reblaze Query Box

Settings

Planet configuration and other parameters

The Settings section has an extensive number of configuration values for Reblaze. These tend to be parameters that once set up, usually will not change during your use of Reblaze.

There are five sections in this part of the interface.

Web Proxy contains parameters for the overall architecture of Reblaze and its interaction with the downstream clients and the upstream network. It includes settings for proxy behavior, load balancing, failover, and more. It is also where you assign Security Profiles to specific areas of your website.

SSL Management is where SSL Certificates are uploaded and managed.

DNS is where DNS records are configured.

Planet Overview shows you information relevant to your entire planet: the active domains and applications, what notifications are issued in response to events, and the ability to Publish changes that were made elsewhere in the interface.

Account is where your user account settings are managed.

How Do I...

A task-based FAQ

This section answers questions that often arise about using Reblaze.

Ban, Unban, and Whitelist Traffic SourcesBypass Rate Limits for LoadtestingControl Caching BehaviorFilter by ContentQuickly Block an AttackerSecure Traffic from a Third-Party PageSet Rate LimitsVideo Tutorials

Video Tutorials

DNS TrainingSSL Training

Secure Traffic from a Third-Party Page

Often, a web application will use external pages. For example, within digital marketing campaigns, it’s common to use landing pages that are provided by a third-party service.

Since these pages are generally hosted by the service provider, they are not directly protected by Reblaze. However, a customer can still use Reblaze to scrub traffic coming from them, and block hostile visitors from affecting the parent site (i.e., the site/application that is using the third-party service).

For example, bots can stuff false information into landing-page forms and submit it to the parent site. Reblaze cannot prevent the bots from accessing the third-party landing page. However, it can interdict the form submissions, and prevent them from passing through to the parent site.

Most third-party services allow code to be embedded into their pages. The following process takes advantage of this.

Add the following code to the page (ideally and if possible, in the page header):

<iframe src="https://www.example.com/pixel-path" width="0" height="0" style="display:none"></iframe> 

Explanation:

  • “www.example.com” is your site.

  • “pixel-path” is a non-existent path. In other words, the overall address won’t actually resolve to a page or resource within your site.

The purpose of this request is not to return a resource or page; it is merely to trigger a call into the parent site. The call will trigger an active challenge.

  • If the visitor is a bot, the challenge will fail. Subsequent access attempts to the parent site (e.g., form submission attempts by a bot) will be blocked.

  • If the visitor is a human, the web browser will receive Reblaze’s authenticating cookies. Subsequent actions by the visitor will include the cookies, and will be accepted by Reblaze.

Note that Reblaze needs to be configured so that active challenges occur on the pixel-path URL given above.

Profiles

Profile: A re-usable collection of security policies

In a typical deployment, Reblaze performs much of its traffic evaluation according to security Profiles.

Within the Reblaze user interface, there are four sections for defining Profiles:

  1. Profiles

  2. ACL Policies

Before discussing each tab, it will be useful to discuss .

SSL Training

This video will explain how to manage your SSL Certificates in Reblaze. For more information, see SSL Management in the Settings section of this manual.

Profiles

A page for administration of security Profiles

Within the Security section, this tab provides an interface for administering Profiles.

Existing Profiles are shown on the left.

To create a profile, click the Create New button toward the top of the screen, and then choose Profile. Or select an existing one and choose Duplicate, then edit the newly-created copy.

To edit a profile, select it from the list on the left. Its contents will appear in the middle part of the screen.

To add a new Policy, select the desired Policy from the Link More Policies list on the right, and click the Add button. To remove an existing Policy from the Profile, click on the X to the right of its name.

Hostile Bot Detection / RCSI

Most hostile bot activity involves headless browsers and mobile phone emulators. To detect these bots, most web security solutions rely on Javascript injection to detect the browser environment.

Unfortunately, these detection methods have become increasingly ineffective. The latest generations of bots use sophisticated software stacks, and they are able to masquerade as humans using normal browser environments.

To identify hostile bots, the Reblaze platform uses a variety of methods, collectively known as Reblaze Client Side Inspection (RCSI). Although Javascript plays a role within it, RCSI as a whole is unlike any other Javascript challenge in use today. RCSI is effective for protecting web applications, services/APIs, and mobile/native applications. (Some of the implementation details differ, depending on the context.)

RCSI detects bots via a multi-layered approach, described on the following pages:

API

There are two APIs within Reblaze: the REST API to control the platform programmatically, and the one used internally by the Mobile SDK.

DNS Training

This video will explain the basics of DNS management in Reblaze. For more information, see in the section of this manual.

Set up SIEM/SOC integration

Reblaze integrates with a wide range of SIEM [Security Information and Events Management] and SOC [Security Operation Center] solutions. Nearly 80% of our enterprise clients stream Reblaze events to their SoC, such as ArcSight, RSA, IBM, and Splunk.

Secure data streaming

Reblaze sends logs over TLS using the Syslog protocol.

Set Rate Limits

Restricting consumption of resources and rate of requests

Different types of rate limits are defined in different parts of the Reblaze interface.

Global: The settings apply to your entire planet.

By location: Rate limits for specific locations/URLs can be created by defining the locations within , and selecting "More" at the end of each location's entry in the list. See full explanation here: .

By traffic source: Requestors who are submitting excessive requests can be banned for configured lengths of time. This can be done via .

Client authentication

For mobile/native applications, Reblaze authenticates the client itself and all communication with it.

At Reblaze, we provide an SDK (for both Android and iOS) to our customers, who rebuild and publish their applications with the SDK embedded. In use, it signs the application, authenticates the device, and verifies user identity.

All communications occur over TLS and include an HMAC signature (a cryptographic identity mechanism on the client side) to harden communications between the mobile/native application and the microservice/API endpoint. The signatures are non-reproducible, non-guessable, non-repeating (they are unique per session and per request), and are based on dozens of parameters (time-based, location-based, environment-based, and more). They provide a reliable, secure mechanism to verify that the packets are originating from a legitimate user, and not from an emulator or other bot.

Instructions and code samples for the Reblaze Mobile SDK are available here:

The integration process

The variety of available integrations makes it impossible to describe the process for each of them here. Our team will assist you with the integration, to ensure your platforms get the relevant information as soon as it becomes available.

To make the connection, Reblaze requires the following:

  • Destination IP/FQDN

  • Destination port

  • Destination's public SSL certificate in PEM format. (To prevent a MITM vulnerability, Reblaze performs SSL pinning.)

Please have this information available when you contact us to begin the integration.

Data format

Raw logs are sent in the format described here.

Environmental detection and browser verification
Client authentication
Biometric behavioral verification
Reblaze REST API
Mobile SDK v2.2.x

Note that every Profile must include one, and only one, WAF/IPS Policy.

Within a Profile, the order of Policies does not matter. When evaluating an incoming request, Reblaze combines the Bypass, Allow, and Deny Rules from all the ACL Policies in the Profile. It evaluates all the Bypass Rules first, then all the Allow Rules, then the Deny Rules.

Most Profile administration will not be possible until the appropriate Policies have been created. Similarly, complete Policy administration will not be possible until there are Rules to add to them.

Duplicating a Profile
Creating Rate Limiting Exemptions

Creating exemptions from rate limits is done differently, depending on the scope of the rate limits being addressed.

Global: Create an ACL Policy with an OC suffix.

By location: Create an ACL Policy with the name "Rate Limit Whitelist". This can exempt any combination of IP, Country, and ASN. The Policy should then be included in a Profile, and the Profile should be assigned to the appropriate location(s) or portions of your site/application. Example:

An ACL with this name will exempt the traffic sources from rate limiting for the specific location

By traffic source: A traffic source can be exempted from Dynamic Rule filtering either by adding an Ignore parameter to the Rule itself, or by adding the traffic source to the Whitelist within the Quarantine section.

Static Rules -> Speed & Rate
Web Proxy -> Security Profiles
Setting Rate Limits for a Location
Dynamic Rules
WAF/IPS Policies
Custom Signature
Profile Concepts
Security Profiles Screen
DNS
Settings

Traffic Concepts

How Reblaze reports on the requests it receives

The Reblaze Dashboard and View Log provide intuitive yet very powerful ways of viewing your traffic.

Within those sections, your traffic data is reported in terms of several statistics:

Statistic

Comment

Hits

Total incoming requests

Humans

Requests originating from humans.

Bots

The Dashboard provides a variety of ways to view your traffic. Most of them do not include all of the above metrics in the same view (as in the first screenshot below), but some do (as in the second screenshot below).

Reblaze processes "web" requests (http/s traffic for a web site or application) differently than API requests from a mobile/native application. Mobile applications have different methods of client authentication, as discussed here: .

The discussion below is for sites and web applications.

The Challenge Process

Most of the Reblaze interface focuses on configuration for:

  • The detection and mitigation of hostile requests.

  • The detection and mitigation of hostile behavior of requestors.

The challenge process is different. It is built into Reblaze, and provides a third approach to security. It mitigates threats based on the requestor's identity and environment.

When Reblaze receives the first request from a previously unknown traffic source (below described as the "user"), this is the typical process that is followed.

  1. Reblaze challenges the user's browsing environment. Reblaze uses a variety of proprietary, multi-faceted techniques to verify that this requestor is a human using a browser, instead of a bot using a headless browser or emulator. (For more detailed information, see .)

  2. If the challenge is not passed, the request is suspected to be a bot, and another challenge is issued. This process continues until a challenge is passed, or a threshold is reached (e.g., via a Dynamic Rule) to ban the requestor.

  3. If the challenge is passed, the browser's session is authenticated, and the browser receives cookies from Reblaze.

This process happens quickly (in a few milliseconds), and is invisible to the user.

As noted above, this is the "typical" process that occurs in normal use. There are a variety of situations in which it might not be followed. For example, sometimes Reblaze is configured to whitelist certain IP addresses, and not to challenge them.

The discussion below will be based on the typical process described above.

How Requests Are Reflected in Reblaze's Statistics

The process described above will result in the following statistics being incremented.

For each challenge that was not passed:

  • Hits

  • Challenge

  • Bots

If the challenge was passed:

  • Hits

  • Challenge

  • Bots (see explanation below)

  • Hits (incremented a second time for the post-challenge resubmission of the request)

Counting Bots

Within Reblaze, a request that does not have authenticating cookies is counted as a bot.

As a result, the Bot count can sometimes be incremented even when the visitors are humans. Examples:

  • When a human user visits a Reblaze-protected site for the first time, the first request does not yet have the authenticating cookies.

  • Static files (images, etc.) are often exempted from challenges for performance reasons. Direct requests for those URLs from a new visitor will not have cookies.

  • Sometimes, trusted IPs are whitelisted and exempted from challenges. They never receive authenticating cookies.

Therefore, although most of the Bot count represents non-human requests to your web application, the Bot metric is not an exact count of this.

Relationships of Traffic Metrics

When working with Reblaze's traffic statistics, the following relationships can be helpful.

Hits = Passed + Blocked + Challenges

Hits = Humans + Bots

Active Challenges versus Passive Challenges

The process described on this page is the active challenge process. Out of the box, this is the challenge process that Reblaze uses.

We recommend that whenever possible, customers also enable passive challenges.

Passive challenges still include, while adding three additional benefits:

  • They enable : a much more powerful means of identifying automated traffic, and an important part of Reblaze's behavioral analysis.

  • In some situations, active challenges can interfere with certain metrics such as those provided by Google Analytics. (The initial referrer information is lost.) If this is a problem, active challenges can be disabled. In this situation, passive challenges can provide effective bot protection instead.

  • When caching is being done by a CDN, active challenges will not occur for pages being served from the cache. Passive challenges are necessary for Reblaze to perform bot detection in this situation.

If possible, we recommend that customers use both active and passive challenges.

To learn more about passive challenges, go here:

Getting Started

A quick-start guide

Welcome to Reblaze!

In this section you'll find a quick setup guide to get your planet (i.e., your entire Reblaze deployment, containing all its domains and web applications) up and running. After completing this section, it's advised to read through the rest of this Manual in order to understand the full capabilities of Reblaze.

Reblaze's support team is always available to assist you. At any step of this process, please feel free to .

The flowchart below describes the process we are about to begin:

Login

The initial login process is as follows:

  1. Go to the link provided by Reblaze.

    https://example-console.reblaze.com/

  2. Enter the initial login credentials (in lowercase), which are: Username = email

  3. Password: Click on "Reset password" in order to set one.

After you login into the system, the first screen you will see is the Dashboard. This is the main screen for the Reblaze UI; once traffic statistics are available, they will be displayed here. (The Dashboard screen is described in-depth .)

Before the Dashboard can show anything, your Reblaze planet must be set up. This is done in the Settings -> Planet Overview section.

Planet Overview

To add a new web application to Reblaze, you will duplicate the pre-defined default application.

The Reblaze interface does not offer the ability to create a new site or application from scratch, because this process is complicated and error-prone. Instead, you will duplicate the default application and then edit it as needed.

Once you choose the right domain for your new application, you'll be redirected automatically to the Web Proxy screen, where configurations are made on the selected application.

There are two settings to configure, and a third that's optional:

  1. Set the IP address of your servers under "Host".

2. Set the Domain Names of your aliases.

3. (Optional) Add a command line to redirect all HTTP requests to HTTPS.

Before proceeding, click on "Security Profiles" to check for the default settings. These are recommended by Reblaze for initial operation. Further changes are recommended only after taking a careful look at the section discussing "Security Profiles", which you can find .

Click on "Save Changes" and "Publish Changes" to complete the process.

The deployment will not occur until you click "Publish Changes." In general, whenever you work within the Reblaze interface, saving and publishing is always necessary. More information is here: .

Don't refresh the page until you get a confirmation that the changes were uploaded to the cloud.

The discussion above was a short introduction to the initial setup of your planet. For a more in-depth discussion of the Planet Overview page and its options, .

Setting up SSL Certificates

All connections between your server and clients must be encrypted. This requires an SSL Certificate to be installed on the web server. Once a certificate is installed, client browsers can connect via HTTPS instead of HTTP.

With Reblaze, you can either upload an existing certificate into Reblaze, or you can generate a new one for free through the Let's Encrypt service.

Adding an existing SSL Certificate to Reblaze

  1. Add your certificate as explained under .

  2. Copy the relevant details from the section, and redirect your traffic through Reblaze. (DNS setup varies widely depending on your current configuration, and this Manual cannot discuss every permutation. if you need assistance with this.)

  3. Go back to "Planet Overview" and publish your changes as explained previously.

Generating a new SSL Certificate

  1. Copy the relevant details from the section, and redirect your traffic through Reblaze. (DNS setup varies widely depending on your current configuration, and this Manual cannot discuss every permutation. if you need assistance with this.)

  2. Create a certificate using the "Gen Cert" button in the section (see image below).

  3. In the Planet Overview section, publish your changes as explained previously.

The DNS section doesn't exist for marketplace deployments.

View Log

Revealing the composition and details of your traffic

This page provides the ability to review and analyze the most recent traffic, up to and including real time. At first glance, you'll see the origin country, IP address, HTTP message type, the targeted location, time stamp, and status code.

If a security event occurs, this page will allow you to quickly find its root cause.

On the top right of the page, you can select the range of requests displayed: from the most recent 200 events up to the most recent 2500. Choose the desired range (200, 500, 1000, 1500, 2000, or 2500) and then click on the checkmark to set the display.

In the screenshots below, IP addresses are censored for privacy reasons.

View Log Screen

Analyze Traffic Log

The main tool in this section is the Query box for filtering the display; this is quite similar to the one on the Dashboard. It allows you to filter the display and see only the data you wish to analyze. For a full explanation of how to use it, .

The Query box allows you to filter and display specific requests and their details. To show the results graphically instead, you can copy the filter string and paste it into the Query box on the .

At the top right of the screen, you can choose the application you want to analyze. The drop-down menu allows you to search for and choose your desired application.

Next to the Query box, you'll see several buttons.

  • The search icon is for applying the requested filters on the log. (Or, just hit "Enter" on the keyboard after typing your query.)

  • The calendar button allows you to specify a certain date or period of time.

  • The Search History button displays your recent searches, so you can re-run them without having to enter them completely from scratch.

Log Structure

Log entries are color-coded depending on their type.

  • Passed requests: Black text on a white background.

  • Blocked by Reblaze: Red text on a red background.

  • Blocked by origin (i.e., the upstream server): Red text on a white background.

Clicking on any log entry will display its details:

This will reveal:

  • The URL that was requested

  • The user agent

  • Optional additional information (not shown in the example above), depending on the request. Example: the referrer.

  • A row of colored labels:

  1. HTTP Request Method (GET / POST / PUT...)

  2. HTTP Version

  3. HTTP Response code, and which server sent the code: either the upstream server (noted as "Origin," as in the example above), or the Reblaze proxy.

To see full log details for an entry, click on the small magnifier on the right side of the log. This will show all the headers, cookies, and session details.

The example above shows a request that was answered with a challenge. It came from a known cloud provider, by curl, to www.example.com.

The above screenshot shows a log entry for a request that was blocked. Note that the Block reason is "Generic Attack [ref 22400000]". The "ref" number is a .

Examples for Log Filters

Example 1

How to search for one IP (censored in the screenshot below), only showing requests with a GET method during a specific time frame.

Example 2

Using this regex syntax:

status:[4]\d\d

Provides all status codes for 4xx.

Example 3

How to display all requests from a certain country, for "EXE" files, which produced error code 403.

A full explanation of filter syntax, a listing of operators, and tips for quickly building queries is found here: .

Using the Log

The View Log page has many uses, and it will allow you to learn a lot about your traffic.

This page is a powerful tool for traffic control, and is especially useful when you are first starting to use Reblaze. By revealing the composition of your traffic, it can help you decide which requests you should begin blocking.

Security Section Concepts

How Reblaze scrubs incoming traffic

When Reblaze receives an incoming request, it decides whether to pass the request through to the upstream server, or block it.

This decision-making is done in several stages.

Stage

Comments

Quarantines and Dynamic Rules

Traffic from requestors that are currently on the or is blocked. Other requestors are evaluated for potential addition to the Banlist using .

Static Rules and Rate Limits

Requests that do not conform to specified size, time, and rate limits are blocked. More information:

ACLs

Some of the criteria for the decisions are global. In other words, they apply throughout your entire planet. For example, the settings in the section are globally applicable, and do not change depending on the context of the request. They will be applied to all traffic for all resources within your planet.

Conversely, some criteria are non-global, and they do depend on the context. For example, you can assign different security rulesets for different resources or locations within your planet. In other words, you can assign different rules to specific domains, subdomains, folders, filetypes, etc.

These non-global criteria are primarily defined within the section. They have their own structure, explained in more detail in that section of this Manual (see especially the page).

Once Profiles are defined, they are available to be assigned to specific resources/locations within your planet. Those assignments are done in the section.

Application Profiles

Settings for security behaviors

Overview

The Application Profiles tab allows you to set appropriate security behaviors for your web applications.

Application Profiles View

Before configuring, ensure that the correct site is selected via the dropdown list at the upper right.

To add an entry to the list, click on the "+" button. To delete an entry, click on the "Remove" link next to its name.

As shown in the above screenshot, the default (“/”) profile will always be present. It applies to the entire site, except for those parts of the site that have specific profiles assigned to them.

Here are the fields for each Application Profile.

Purge Cache

If you'd like to clear cache on one of your websites on the platform, you can click the "Purge" button. Usually, the action takes around 5 minutes.

Filter by Content

Blocking requests that do not conform to content policies

There are several ways to filter requests based on their content.

Custom Signatures are a powerful method for specifying content restrictions for traffic. They are included within ACL Policies, which are used within Profiles, which are assigned to various locations of your site/application at Settings->Web Proxy->Security Profiles.

A more direct method is to create content filters directly for a location. This too provides powerful filtering capabilities. Here's a comparison between this and Custom Signatures.

  • Both can deny requests based on their content.

  • Location-based filtering makes it easier to require certain content in incoming requests.

  • Location-based filtering is simpler when setting up different filters for different locations.

  • Custom Signatures are modular, and once defined, they can be re-used in multiple places throughout the interface. A location-based filter definition cannot do this. Instead, you have to manually define the filtering conditions for each location.

can be used to rate-limit a requestor, based on the content that is requested.

examines the characters found in arguments. Depending on its mode, it can block requests if unexpected characters are found, or pass them on to the WAF for further inspection. It can also act as an inverse content filter; those requests with arguments which contain only whitelisted characters can bypass WAF filtering.

Biometric behavioral verification

Reblaze does not limit its traffic analysis to the user environment and client session. It also performs extensive, continual analysis of the user’s behavior.

Every HTTP request that Reblaze receives is anonymized and then analyzed according to numerous factors, including (partial list):

  • Device and software data (the user’s hardware, its screen resolution and orientation, the software used, battery level, stack trace, fronts and extensions, emulator detection, window size, hidden iframes, etc.)

  • User interface and events (mouse/pointer movements, clicks, taps, zooms, scrolls, keystrokes, speed of entry, etc.)

  • Session data (requests sent, IPs used, timing, frequency, etc.)

  • Consumption analytics (pages viewed, time spent, resources requested, etc.)

  • Application-specific events (and other results of user actions.)

Reblaze understands the patterns, typical values, and common relationships of these metrics for legitimate users of each protected application and API. The amount of data that Reblaze processes (over four billion requests per day) is far beyond the capability of human analysts. Therefore, cloud-based compute resources are used, applying Machine Learning in order to recognize patterns that analysts could not have identified on their own, or for which they might not have thought to look.

Reblaze performs this analysis to an extremely granular level: not only per app, but even down to individual pages, screens, and so on. This reveals patterns of behavior unique to that particular context.

Reblaze continually analyzes the activities and behaviors of every requestor in every session. By definition, every hostile user (whether human or bot), must, at some point, deviate from the behavior of a legitimate user. As soon as this occurs, Reblaze blocks that requestor.

Using this approach, Reblaze’s bot detection accuracy is not only high, it is also robust and resistant to reverse-engineering by threat actors. Behavioral profiles are constructed based on private analytics data, and threat actors have no realistic way of obtaining this information.

Biometric behavioral verification is part of the passive challenge process. To enable behavioral analysis, .

Saving and Publishing Your Changes

Whenever you change the configuration of the Reblaze platform, you must save your changes, and in almost all cases, you must publish them to the cloud as well.

If you do not save your changes, they will be lost when you go to a different page within the user interface. You will not be prompted or asked to confirm the abandonment of your changes.

Saving Changes

The Reblaze interface has several ways in which to save changes.

In many places, this button appears on the upper right part of the screen:

In other places, the Save functionality is part of a pull-down menu, which is designated by three vertical dots:

Remember that you must select Save Changes, in whatever format the button is offered, whenever you make any edits within the Reblaze interface.

Also remember that in almost all cases, Save Changes only saves your changes within your local session. To push them to your planet in the cloud, you must Publish Changes as well.

Publishing Your Changes

When editing , saving your changes will apply them to your planet.

In all other cases, after Saving your changes, you will also need to Publish them, which will push everything to the cloud.

Rather than trying to remember which activities require publishing and which do not, it is best to get into the habit of always Publishing after Saving.

In some cases, choosing the Save button will be followed by an immediate prompt to Publish. In other cases, it will not, but Publishing is still required. Again, it is recommended that you adopt the habit of always Publishing after Saving.

Publishing is done on the Planet Overview page, via the button on the upper right. The status of the Publishing process will appear on the bottom right part of the screen.

Profile Concepts

A fundamental part of traffic evaluation

As mentioned earlier in , Reblaze's decision-making can vary depending on the context. In a typical Reblaze deployment, much of the traffic evaluation is done using Profiles. When Reblaze receives a request for web resources, it first determines the Profile that is in effect for the resource that was requested.

Reblaze's Profiles are hierarchical structures, so that you can set up your security framework in a modular fashion. Rules and collections of rules can be set up once, and re-used throughout your planet as needed.

The hierarchy has several levels:

  • Profile

Enabling Passive Challenges

As described in , out of the box Reblaze includes an Active Challenge process. This is very useful in distinguishing humans from bots.

Active Challenges work well, but an even better option is Passive Challenges.

  • Active Challenges temporarily redirect the user's browser. This can affect site metrics gathered by products such as Google Analytics. (Specifically, the initial referrer information is lost.) Passive Challenges are simple pieces of Javascript. They do not redirect the user's browser; they merely ask it to solve a challenge, and then insert the Reblaze cookies.

  • Active Challenges will not occur when site content is served from a CDN. Passive Challenges can still detect bots in this situation.

Quickly Block an Attacker

Sometimes can make it difficult to find and block a specific attacker.

For example, let's say an ACL Policy (named "Allow US Traffic") for an ecommerce store allows all traffic originating from the United States. But then an attacker, using an IP within the US, begins to scrape prices and other data from the store.

If an ACL Policy were added to Deny that IP address, it wouldn't work. The hierarchy of ACL Policy enforcement means that the "Allow US Traffic" Policy will take precedence, and the 'Deny' Policy for that IP will never be invoked.

One way to quickly solve this problem is to add an ACL Policy with a name ending in a suffix of "XDeny" (for example, "Block US Scraper XDeny"). As was discussed in the "" section, that suffix moves the ACL Policy to the top of the hierarchy.

Therefore, that ACL Policy will be invoked and enforced for that IP address, and the attacking IP will be blocked, before the "Allow US Traffic" Policy has a chance to grant it access.

Environmental detection and browser verification

When a new user session is initiated, RCSI detects and verifies the authenticity of the environment.

  1. The user’s browser is subjected to several dozen tests, verifying the features known to be supported by that browser. This includes hidden canvases, video and audio in various formats, WebRTC and other advanced networking protocols, screen resolution, and more.

  2. The browser is subjected to an invisible “attack”: subtle errors are injected into the environment, and the browser engine’s reactions are captured and analyzed. Reblaze verifies that the exceptions and error messages are those which should be generated, if the browser is what it claims to be. (It is very difficult for threat actors to spoof this behavior using headless browsers and emulators, since there is an infinite number of possible errors to which any browser can be subjected, and threat actors need to replicate the actual reactions for each possible input.)

Ban, Unban, and Whitelist Traffic Sources

The section shows a list of traffic sources (i.e., sources of incoming requests) that are currently banned, blacklisted, and whitelisted.

How to ban a requestor

A traffic source is banned automatically when it violates a . You cannot manually ban a requestor.

However, you can accomplish the same effect by blacklisting the requestor. .

The above process only takes milliseconds, and it is completely transparent to the end user.

  • Once a browser has passed these tests, Reblaze signs it cryptographically. This signature accompanies all subsequent activity.

  • This process applies to browser-based applications.

    It does not apply to mobile/native applications, because there is no browser to detect. For these applications, the environment is verified via the Client authentication process instead.

    Dynamic Rules
    Args Analysis
    passive challenges must be enabled
    Policy
  • Rule

  • Condition and Operation

  • A Profile contains one or more Policies. A Policy contains one or more Rules. A Rule is a combination of a condition and an operation. Let's illustrate these with examples, from the bottom of the hierarchy upward.

    Example conditions:

    • Is the request coming from a specific country? Or ASN?

    • Is the request coming from a specific IP address?

    • Is the request coming from a proxy? Or a VPN? Or a Tor network?

    • Is the request for a specific URI?

    • Is the request originating from an allowed (or a disallowed) HTTP referer?

    • Does the request contain (or not contain) specific arguments?

    • Is the request using (or not using) a specific method or protocol?

    • Does the request contain (or not contain) a query string in a specific format?

    • Does the requesting client have (or not have) specific cookies, or a specific cookie structure?

    Possible operations:

    • Deny

    • Allow

    • Bypass (similar to "Allow", but the request will not be subject to further evaluation or filtering by other rules)

    Example Rules:

    1. If the requestor IP is within 131.253.24.0/22 [a known range of Bing crawlers], Allow.

    2. If the requestor IP is within 157.55.39.0/24 [a known range of Bing crawlers], Allow.

    3. If the requestor IP is within 1.10.16.0/20 [a range within the Spamhaus DROP list], Deny.

    4. If the requestor IP is within 1.32.128.0/18 [a range within the Spamhaus DROP list], Deny.

    5. If the requestor is a bot, Deny.

    6. If the requestor is using a proxy anonymizer, Deny.

    7. If the requestor's Company is [our company], Bypass.

    8. If the requestor submitted an HTTP/S request, Deny.

    Example Policies:

    • Allow Bing Crawlers [contains example Rules 1-2 above]

    • Deny requestors on Spamhaus DROP list [contains example Rules 3-4]

    • Deny bots [contains example Rule 5]

    • Deny proxy users [contains example Rule 6]

    • Allow users from our company [contains example rule 7]

    • Deny all requests [contains example rule 8]

    Example Profiles:

    • Default:

      • Allow Bing Crawlers

      • Deny requestors on Spamhaus DROP list

      • Deny bots

      • Deny proxy users

    • Private area of our website, for internal use only:

      • Allow users from our company

      • Deny all requests**

    ** "Allow" Policies are evaluated before "Deny" Policies. When a match is found, no further evaluation is performed. In this example, company users will be Allowed, which exempts them from the Policy which Denies all requests.

    Note that while Profiles are defined in this section of the Reblaze UI, they are assigned to specific resources/locations in the Web Proxy -> Security Profiles section.

    Security Section Concepts
    Long-term use of this capability is not optimal; using it too frequently can tend to create a collection of ACL policies that is messy, confusing, and difficult to manage. The optimal approach is to use it as a tool for solving a specific problem temporarily, while a robust set of ACL Policies are constructed and tested that will solve the problem correctly.
    ACL Policies
    Special ACLs
    How to unban a requestor

    You can manually remove a requestor from the Banlist or Blacklist. Instructions are here.

    How to whitelist a requestor

    Whitelisting a traffic source will make it exempt from Dynamic Rules. Instructions are here.

    Quarantine
    Dynamic Rule
    Instructions are here

    Deployment Terminology

    This page provides information that will be helpful when setting up a Reblaze deployment. A basic Reblaze deployment can be created without changing these parameters.

    Upstream Servers: The list is where you define the servers that Reblaze will protect. In other words, these are the servers to which Reblaze will send the (scrubbed) web traffic it receives.

    This list provides robust capabilities for managing your traffic. You can enable and configure load balancing, which will weight and distribute traffic across your primary servers. You can define backup servers, to which Reblaze will failover your traffic when your primary servers aren’t available. You can take servers offline for maintenance by ticking a single box in the interface. You can even tell Reblaze to keep individual users connected to the same server throughout their sessions.

    Adding and deleting servers from this list is straightforward. To add a server, enter its IP in the “New Server” box and click Add, then fill out the rest of the information in the new entry. To delete an existing entry, click on the Delete link next to that entry.

    Here are explanations for each field in this list.

    Host is the IP/FQDN for each server that Reblaze protects. This can be a normal web server, or it can be a load-balancing server. Note that Reblaze also provides load-balancing capabilities in its own right, as seen in the next field.

    Weight is the relative weight of each server for load balancing purposes. Reblaze distributes traffic with a round-robin sequence, according to these weights.

    For example, let’s say there are two servers in the list, with the weight of each servers set to one. Therefore, these servers will receive equal amounts of traffic. Suppose instead that the first server was set to three, while the second was set to one. This would mean that the first server would receive three visitors for every visitor sent to the second server.

    Max Fails is the maximum number of failed communication attempts that are allowed for this server. Once this number of failures occurs, Reblaze will consider the server to be inactive. If other servers are available, Reblaze will failover the traffic to them. If this was the only server available, Reblaze will return an error to the client (either 504 Timeout, or 502 Bad Gateway).

    Fail Timeout: When a server fails, this is the length of time that Reblaze will wait before trying to send traffic to it again. In the example, the timeout is ten seconds.

    Is Down: When this box is checked, Reblaze will not attempt to communicate with this server. This allows you to easily take a server offline for temporary maintenance or some other purpose.

    Is Backup: when this box is checked, Reblaze will treat this server as a backup. In other words, Reblaze will not attempt to communicate with it unless all the primary servers (i.e., those for which this box is not checked) are unavailable.

    Most importantly, Passive Challenges allow Reblaze to use Biometric Bot Detection—an advanced and sophisticated means of distinguishing humans from automated traffic sources.

    Biometric Bot Detection

    With Biometric Bot Detection, Reblaze continually gathers and analyzes stats such as client-side I/O events, triggered by the user’s keyboard, mouse, scroll, touch, zoom, device orientation, movements, and more. Based on these metrics, the platform uses Machine Learning to construct and maintain behavioral profiles of legitimate human visitors. Reblaze learns and understands how actual humans interact with the web apps it is protecting. Continuous multivariate analysis verifies that each user is indeed conforming to expected behavioral patterns, and is thus a human user with legitimate intentions. More information about this.

    We recommend that all customers enable Passive Challenges if it is possible to do so. Biometric Bot Detection provides much more robust detection of automated traffic than is possible without it.

    Implementation

    Implementing Passive Challenges is simple. Place this Javascript code within the pages of your web applications:

    The code snippet can go into the header or at the end of the page. The best practice is to place it within the header. This ensures that subsequent calls contain authenticating cookies.

    (This matters for the first page served to a visitor. Subsequent pages will already have the authenticating cookies to include with their requests.)

    Most customers set up the code snippet as a tag within their tag manager. This makes it simple to install it instantly across their entire site/application.

    If desired, the script code can include async and/or defer attributes:

    These usually are not necessary, and their effect will depend on the placement of the script within the page. Their use is left to your discretion.

    Testing

    To test the implementation, use a browser to visit a page containing the Javascript snippet. Once it runs, the browser should have a cookie named rbzid.

    Disabling Active Challenges (Optional)

    There are two primary situations where customers sometimes want to disable Active Challenges:

    • When a customer needs site analytics to correctly reflect all referrers. (Active Challenges can interfere with this.)

    • For API endpoints. Active Challenges are designed to verify the client's browser environment; for most API calls, there is no browser environment to verify. (For users of our Mobile SDK, this is not a problem. They can still use active challenges for these endpoints.)

    Other than those situations, Active Challenges can be very beneficial.

    We recommend that you keep Active Challenges enabled if possible. They automatically eliminate almost all DDoS traffic, scanning tools, and other hostile bot traffic.

    If you wish to turn off Active Challenges, do the following.

    • For specific URLs/locations: remove the default "Deny Bot" ACL Policy from all Profiles that are assigned to those locations.

    • For an entire site/application: remove the "Deny Bot" ACL Policy from all Profiles within the site.

    • For specific traffic sources: Add an ACL Policy that will 'Allow' those specific requestors. The requestors should be defined as narrowly as possible.

    Turning off Active Challenges will disable the direct blocking of bots (where a requestor is blocked merely for being identified as a bot). However, automated traffic will still be excluded via all other relevant means.

    If you merely remove the Deny Bot ACL Policy from the relevant Profiles, then bots will still be excluded by the other active ACL Policies, Dynamic Rules, content filtering, and so on. If instead you added an "Allow" ACL Policy to specific requestors, then other ACL Policies will not block those requestors; they will be exempted from ACL Policy filtering.

    If you have not enabled Passive Challenges (and successfully tested them), disabling Active Challenges is not recommended.

    Traffic Concepts
    <script src="/c3650cdf-216a-4ba2-80b0-9d6c540b105e58d2670b-ea0f-484e-b88c-0e2c1499ec9bd71e4b42-8570-44e3-89b6-845326fa43b6" type="text/javascript"></script>
    <script async src="/c3650cdf-216a-4ba2-80b0-9d6c540b105e58d2670b-ea0f-484e-b88c-0e2c1499ec9bd71e4b42-8570-44e3-89b6-845326fa43b6" type="text/javascript"></script>
    <script defer src="/c3650cdf-216a-4ba2-80b0-9d6c540b105e58d2670b-ea0f-484e-b88c-0e2c1499ec9bd71e4b42-8570-44e3-89b6-845326fa43b6" type="text/javascript"></script>

    The browser then automatically resubmits the original request, but this time, the cookies are included. The user is granted access to the requested URL, resources, etc.

  • Subsequent requests will also include the cookies, and thus, they are not challenged.

  • Passed

  • Humans

  • Requests originating from traffic sources not (yet) verified to be human. Most of the requestors will be bots, but some will not be. More on this below.

    Passed

    Requests accepted by Reblaze and passed upstream to the origin (i.e., the web server, API endpoint, etc.).

    Blocks

    Requests deemed to be hostile, and blocked.

    Challenges

    Requests that were challenged. The challenge process is an important part of Reblaze's traffic processing, as seen below.

    Mobile SDK
    Environmental detection and browser verification
    Environmental detection and browser verification
    biometric behavioral verification
    Enabling passive challenges.
    This graph shows Hits, Challenges, and Blocked
    The Top Sessions view shows all the metrics

    A link will be sent to the provided email address. Click on that link, and on the page that follows, choose and enter a password for your user account.

  • You will be redirected to your console’s Login page. Please enter the email address specified above, and the password you just created. Then, next to the field which says “Reblaze Key OTP,” click on the envelope icon. During your initial setup request, you had provided a mobile phone number; that number will now receive an SMS message with an OTP (One Time Password), which you will enter here.

  • Click on the Login button.

  • Welcome to Reblaze!
    Welcome to Reblaze!
    contact us
    here
    here
    Saving and Publishing Changes
    click here
    SSL Management
    DNS
    Contact support
    DNS
    Contact support
    Planet Overview
    Setting up Domain Names
    Command line to redirect all HTTP requests to HTTPS
    Look for "Gen Cert" on the right hand side
    Export to CSV creates a text-based spreadsheet file.
  • The Help button opens a display with a quick-reference guide to Query box operator syntax.

  • The Clear button removes your current Query box entries.

  • Challenge: Brown text on a yellow background.
  • Green: Passed request

  • Red: Blocked request

  • Yellow: Explanatory

  • Blue: Informational

  • Resource
    that was requested (JPG / PNG / HTML / JS, etc.)
  • Origin Country and Country Initials

  • Block reason: The reason, if any, that the request was denied. Standard reasons are listed in the Reblaze WAF Signatures list, while others are constructed dynamically (e.g., from a rate limit). A hyphen ("-", as in the example above) means that the request was not denied.

  • IP Classification: Whether the requestor is using an IP from a cloud provider, VPN, TOR, etc. In the example above, the requestor is using a cloud provider. Note that this does not indicate that the request was blocked for this reason. If the current Profile had included an ACL to block cloud users, then the Block reason would say "acl:cloud", and then this "Cloud" notification would appear after it for the IP Classification.

  • Origin IP address (censored in the example above)

  • Autonomous System Number (organization/ISP/etc.)

  • click here
    Dashboard
    Reblaze Signature reference ID
    Using the Reblaze Query Box
    Example log entries
    Log Entry Example
    Challenged Request Example
    Blocked Request example
    Example 1 Screen
    Example 2 Screen
    Example 3 Screen

    Custom expiration time for the Client Side cache, in . (Entries will show as strikethroughs when the Cache Mode is set to an option where the TTL values are ignored.)

    CDN TTL

    Custom expiration time for the CDN Side cache, in . (Entries will show as strikethroughs when the Cache Mode is set to an option where the TTL values are ignored.)

    Purge Content

    Purges the cache and removes its content. See explanation below.

    Field Name

    Description

    Label

    The name you have assigned to this particular entry. In the example screenshot, the labels are “Static Content” , “Default,” and “JS CSS".

    Pattern

    The list of extensions to which this profile will be applied, expressed as PCRE (Perl Compatible Regular Expressions). An explanation and some examples are here: Pattern Matching Syntax.

    Protect

    When enabled, this tells Reblaze to inspect all requests for the specified destination. This should always be enabled, unless there is a specific reason not to do so.

    WebSocket

    Enables support for the WebSocket protocol for this resource.

    Cache Mode

    Defines Reblaze’s cache behavior for the resources specified in this profile. Modes are explained here: Controlling Caching Behavior.

    Client TTL

    Filtering based on Access Control Lists, including Custom Signatures.

    Rate Limits

    Enforces rate limits defined for specific locations/resources within the planet. More information: Setting Rate Limits for a Location.

    Challenges

    Verifies that requests are coming from humans. More information: The Challenge Process.

    Content Filtering

    Blocks requests that do not conform to specified rulesets for required or disallowed content. This is the location-based filtering described in Filtering on Content.

    Argument Analysis

    Examination of characters in arguments. Possible results are to exempt a request from WAF filtering, to send the request to the WAF for inspection, or to block the request. More info: Args Analysis.

    WAF/IPS Policies

    Blocks requests that do not conform to the WAF/IPS Policy settings.

    Static Rules
    Profiles
    Profile Concepts
    Settings->Web Proxy->Security Profiles
    Banlist
    Blacklist
    Dynamic Rules
    Static Rules
    Dynamic Rules
    Visible Save Changes button
    Save Changes functionality in the pull-down menu

    Quarantined

    Administer the lists of which requestors are banned and/or permitted access

    Overview

    The quarantined section will show requestors that have been banned for violation of the Dynamic Rules, requestors that have been blacklisted, and requestors that have been whitelisted. You can add and remove requestors, and transfer them among the various lists.

    Main Display

    There are four lists of requestors in this section:

    1. Banlist

    2. Simulation Banlist

    3. Blacklist

    4. Whitelist

    Each is described in more detail below.

    For each entry, it's possible to see the following: IP address, origin country, AS number, the violation that was triggered, "CNT/Limit" (the number of violations compared to the allowable limit), when the ban began, and when the ban will expire.

    Banlist

    All requests from these requestors are currently being rejected. These requestors violated a Dynamic Rule that was set to “Ban” mode.

    Simulation Banlist

    These requestors are NOT having all their requests rejected. These requestors violated a rule that was set to “Simulated Ban” mode. Simulated Bans are used mainly for testing new rules and seeing how they function, before converting those rules to Ban mode.

    Blacklist

    All requests from these requestors are currently being rejected. These requestors were placed here by a Reblaze admin.

    Whitelist

    These requestors are exempted from the Dynamic Rules. For example, even if they violate a rate limit, they will not be banned.

    Managing Requestors on the Lists

    On the right part of the screen is the section menu, invoked via the button with three vertical dots:. Depending on context, the section menu will offer the management abilities described below.

    Adding an Entry

    Banlist and Simulation Banlist

    Requestors are added to the Banlist and Simulation Banlist automatically when they violate a Dynamic Rule.

    Blacklist and Whitelist

    You can add a requestor manually to the Whitelist or Blacklist using the "Add New Entry" option in the section menu. This is demonstrated in the following video:

    The fields are:

    Transferring an Entry

    Requestors can be transferred among the various lists with this procedure:

    1. Select the requestor(s) by checking the box at the left of each entry.

    2. Open the section menu.

    3. Choose the desired "Move to" command (e.g., "Move to Whitelist").

    Moving an item to the Banlist can only be done from the Simulation Banlist.

    Removing an Entry

    Automatic Removal

    Requestors on the Banlist, Simulation Banlist, or Blacklist will be automatically removed when their expiration time is reached. (The Whitelist has no expiration time.)

    Manual Removal

    Requestors can be manually removed from the list they are currently on:

    1. Select the requestor(s) by checking the box at the left of each entry.

    2. Open the section menu by clicking on its button ().

    3. Choose "Delete".

    Control Caching Behavior

    as administered in Settings -> Web Proxy -> Application Profiles -> Cache Modes

    Web clients can cache resources from a server. Afterwards, a client can access its local cache, which reduces the number of requests sent to the server.

    Servers can instruct clients to implement caching in certain ways. Servers can also set separate caching policies for any intermediary proxies in-between the server and the client.

    Reblaze is a proxy between the clients and the origin (the upstream server). When the origin responds to clients, the outgoing responses pass through Reblaze. You can instruct Reblaze to preserve or alter the caching instructions in those responses.

    On the Application Profiles page, the Cache Operation Mode is where you define Reblaze's caching behavior. There are several aspects to this:

    • Whether Reblaze includes caching instructions in the response to the client.

    • If so, whether they are the instructions from the origin server, or if Reblaze should override them and send different instructions instead.

    • Whether Reblaze itself caches the response content.

    Here are the Cache Operation Modes and their effects.

    HTTP Response Codes

    HTTP defines forty standard status codes that can be used to convey the results of a client’s request. The status codes are divided into the five categories presented below.

    CATEGORY

    DESCRIPTION

    1xx: Informational

    Indicates that the client's request is being processed.

    2xx: Success

    Indicates that the client’s request was accepted successfully.

    3xx: Redirection

    Indicates that the client must take some additional action in order to complete their request.

    4xx: Client Error

    Below are examples of the most common HTTP codes you will encounter in the logs:

    Setup Checklists

    Easy-to-use checklists for starting and testing Reblaze

    Overview

    Please go through these checklists, and verify that their actions have been completed, both before and after your traffic is routed through Reblaze.

    There are three checklists below: two for setup, and one for testing.

    ACL Policies

    Access Control List Policies

    The ACL Policies section allows you to define by which Reblaze will scrub your incoming traffic. Once the Policies have been defined, they are assigned to specific resources (e.g., a section of your website) in the section.

    In the discussion below, "ACL" and "ACL Policy" refer to the same thing: the Policies that can be administered in this section.

    Existing ACLs are listed on the left. Selecting one will display it in the middle of the screen for editing.

    To create a new ACL, click the "Create New" button toward the top of the screen, then "ACL Policy." Or, duplicate an existing ACL and then edit the newly-created copy.

    WAF/IPS Policies

    Administration of built-in Security Policy modules

    Along with its , Reblaze includes WAF/IPS Policies. This section allows you to administer them.

    Just like ACL Policies, WAF/IPS Policies are included in . Unlike ACL Policies, a Profile cannot contain more than one WAF/IPS Policy.

    Existing WAF/IPS Policies are listed on the left side; selecting one will display its contents on the right for editing.

    When viewing or editing a WAF/IPS Policy, the Active Modules section allows you to enable/disable some of the modules. The four on the left are always active and cannot be turned off. (However, an ACL Policy that resolves to an action of Bypass will exempt a requestor from them.) These four modules are:

    Pattern Matching Syntax

    used for specifying matching conditions

    Within the Reblaze interface, there are several features that require matching conditions to be specified.

    The text boxes accept strings or PCRE (Perl Compatible Regular Expressions). If you are unsure of PCRE syntax, you can test your expression at sites such as , which will show you how it will be parsed.

    Below are some examples of syntax for specifying matching patterns.

    Acronyms

    Used in this Product Manual

    TTL Expression Syntax

    Specifying Time-To-Live values.

    The following table includes a list of TTL expressions:

    Support

    How to contact Reblaze

    Reblaze is not a stand-alone platform; it is integrated with a dedicated support team which is available to you 24/7/365. Please contact us at any time if you need assistance.

    Our support is not limited to daily operational use of our platform. We're happy to help with initial setup and configuration, ongoing administration, introductory or in-depth training, discussion of feature requests, and more.

    Contact Information

    You can contact support at any time via email: [email protected]

    Or by phone: our international number is

    +972 (73) 2005230
    .

    Our US toll-free number is: +1 (888) 6155996.

    Reblaze support will manage all tickets, and will be responsible for escalation as needed.

    Please feel free to contact us. We're eager to help you achieve success, and to harness the full power of the platform!

    Bypass Rate Limits for Loadtesting

    Sometimes a customer wishes to "attack" an application or server as part of a loadtest. Under normal circumstances, Reblaze would prevent this, because it would enforce rate limits and block the excessive requests from reaching the upstream network.

    The test can be accomplished by creating an ACL Policy which allows the source IP (or range of IPs), then naming that ACL Policy with a suffix of "OC." (For example, the ACL Policy might be named "Loadtest OC.")

    As discussed in the Special ACLs section, the "OC" suffix means that the IP will not be subjected to normal rate limit testing. This allows that IP to generate a large amount of traffic, which will be passed through upstream without being filtered by Reblaze.

    Destination not found

    405

    Method not allowed

    408

    Request timeout

    413

    Payload too large

    414

    Request-URI too long

    444

    No Response (nginx)

    499

    Client Closed Request (nginx)

    500

    Internal Server Error

    503

    Service Unavailable—Server is unable to handle the request

    505

    HTTP version not supported

    Indicates an error for which the client is responsible.

    5xx: Server Error

    Indicates an error for which the server is responsible.

    HTTP Code

    Description

    200

    OK: the standard response for successful HTTP requests.

    301

    Used for URL redirection

    400

    Bad Request

    401

    Unauthorized—authentication has failed

    403

    Forbidden—request refused by Reblaze or origin server

    404

    Blacklist

    BQ

    BigQuery

    BQML

    BigQuery Machine Learning

    CA

    Cloud Armor

    CDN

    Content Delivery Network

    FP

    False Positive

    GCP

    Google Cloud Platform

    IPS

    Intrusion Prevention System

    LB

    Load Balancer

    ML

    Machine Learning

    RFC

    Request for Comments

    SIEM

    Security Information and Events Management

    SOC

    Security Operation Center

    TTL

    Time to Live

    VPC

    Virtual Private Cloud

    WAF

    Web Application Firewall

    WL

    Whitelist

    Acronym

    Meaning

    ACL

    Access Control List

    API

    Application Programming Interface

    ASN

    Autonomous System Number

    AWS

    Amazon Web Services

    BL

    3M

    Expires after 3 months (3*30 days).

    1y

    Expires after 1 year (365 days).

    modified +24h

    Calculate 24 hours since modification time, and set expiration accordingly.

    Custom expiration syntax examples

    Description

    30m

    Expires after 30 minutes.

    24h

    Expires after 24 hours.

    5d

    Expires after 5 days.

    1w

    Expires after 1 week.

    ~ \.(DOC|PDF)$

    Case sensitive, regular expression matching.

    Match URLs that ends with .gif or .jpg

    ~* \.(gif|jpg)$

    Case insensitive, regular expression matching.

    Match exact URL, e.g. Root / or /admin

    = / or = /admin

    Searching stops immediately (this match is top priority).

    Match all URLs starting with /documents/

    /documents/

    System will continue search for a regular expression match. This will be matched only if none will be found.

    Prioritize URLs starting with /documents/

    ^~ /documents/

    ^~ means - match and halt searching, i.e. regular expressions will not be checked.

    Match 'entire site' (anything else)

    /

    Matches any URL since all begins with "/". However, regular expressions and longer entries will take priority.

    A common pattern is for matching all static content. This pattern in full is:

    Functionality

    Syntax

    Remarks

    Match /Images/ or /images/ or /IMAGES/

    ~* /images/

    Case insensitive, regular expression matching.

    https://regex101.com

    Match URLs that ends with .DOC or .PDF

    ~* \.(gcur|htc|aif|aiff|au|avi|bin|bmp|cab|cct|cdf|class|doc|dcr|dtd|exe|flv|gcf|gff|gif|grv|hdml|hqx|ico|ini|jpeg|jpg|js|mov|mp3|nc|pct|pdf|png|ppc|pws|swa|swf|txt|vbs|w32|wav|wbmp|wml|wmlc|wmls|xsd|zip|webp|jxr|hdp|wdp|bz2|map|ttf|ttc|otf|eot|woff|css)$

    Passive Pipe

    Yes

    No

    No

    Reblaze will generate caching instructions for the client in accordance with the Client TTL and CDN TTL settings in the section, but will not store anything itself.

    Neutral Pipe

    Yes

    Yes

    No

    Reblaze will pass the origin's caching instructions to the client, without caching anything itself.

    Reset Headers

    No

    n/a

    No

    Reblaze will remove all cache headers sent by the origin, and will send the response to the client without any cache directive.

    No Cache

    Yes

    No

    No

    Reblaze will send no-cache instructions to the client: Cache-Control "max-age=0, no-cache, no-store" andPragma no-cache.

    Private

    Yes

    No

    Complies with TTL settings

    Reblaze will generate caching instructions for the client in accordance with the Client TTL and CDN TTL settings in the section, and will also comply with them itself. In addition, the client's instructions will include Cache-Control private

    Cache Operation Mode

    Are caching instructions sent to the client?

    Are the instructions the same as the origin's?

    Does Reblaze cache response content?

    Comments

    Honor Origin

    Yes

    Yes

    Yes, if the origin says to do so.

    Reblaze will comply with the origin, and pass along its caching instructions to the client.

    Active Pipe

    Yes

    No

    Complies with TTL settings

    Reblaze will generate caching instructions for the client in accordance with the Client TTL and CDN TTL settings in the section, and will also comply with them itself.

    Prerequisite

    Before going through the checklists below, you should already have performed the actions listed in Getting Started.

    Configuring your environment

    Item

    Action

    More Information

    Web Server Firewall

    & Hosting Firewall

    Verify that Reblaze IPs are whitelisted in the firewall.

    Also, please ensure that only Reblaze IPs are able to access your web server, i.e. block access for all non-Reblaze IPs. This can be done via a set of rules for your firewall, or via .htaccess files.

    Rate Limits

    Verify that you're not using any Rate Limit/QOS rules that apply to Reblaze IPs.

    This avoids potential blacklisting of Reblaze, and other availability issues. (If Rate Limits are applied, Reblaze can be misidentified as a DDoS source.)

    Website Cache Settings

    Ensure that each site/application returns the correct caching instructions.

    You can also , as mentioned below.

    Setting up Reblaze

    Item

    Action

    More Information

    Upstream Server

    Verify that the Web Proxy settings for each domain/site are correct. (These settings define where and how Reblaze forwards incoming traffic.)

    Defined via and also .

    SSL

    Verify that your SSL setup (which should have been performed already, as described in ) is complete before routing traffic to Reblaze. (Note that if you want Reblaze to generate Let's Encrypt certificates for you, the traffic must be routed to Reblaze before the certificate can be generated.)

    You can use pre-existing certificates, or generate new ones via Reblaze. .

    Non- Browser Applications

    If your application serves bots or other non-browser clients (e.g., monitoring services, mobile/native applications using an API, etc.), you will need to exempt them from Reblaze's browser challenges.

    Mobile/native applications are exempted by using the .

    For other non-browser clients, you should . It is highly recommended that you to replace them. More info on the overall challenge process is .

    HTTPS

    Testing your setup

    When the following checklist has been completed, you'll be ready to go.

    Note: by default, Reblaze is deployed in Report mode for all applications. In this mode, it will not block traffic; it merely reports on the traffic it would have blocked, if that application had been set to Active mode.

    Item

    What to verify

    More Information

    Check DNS

    Run a DNS query for the website, and validate that the DNS records of the HTTP/S services are pointing to Reblaze CNAME /IPs only.

    You can use tools such as .

    Test Traffic

    Generate traffic to your site, and verify that it is being displayed in the . For more in-depth traffic inspection, you can use the . If SSL traffic is used, use your web browser to validate that the right certificate is being used.

    Both the Dashboard and View Log include a Query box to filter their displays. Here's .

    Test Non-Browser Clients

    If applicable, generate and test traffic from non-browser clients, and verify via the Dashboard that the requests are not blocked/reported.

    This is to validate the (optional) settings configured for non-browser clients, as described in the checklist above.

    Monitor and Optimize Settings

    As shown above, Reblaze comes with a default set of ACL Policies. (They are designated with the Reblaze logo.)

    These Policies are not editable, because they are managed and maintained by Reblaze. They are updated as necessary with no action required on your part. (Typically these include dynamic elements that need frequent updating—for example, a list of IP addresses with a recent history of malicious activity.)

    Each ACL contains one or more Rules. These are listed in the middle of the screen. To create a new Rule and add it to the current ACL, use the settings on the right part of the screen. (See below for more on this.) When you are finished with the Rule setup, click on the Add button. The Rule will be added to the Policy that you are currently defining or editing.

    To remove a Rule from a Policy, click on the "X" to the right of its name.

    Creating a New Rule

    Fields

    Description

    Operation

    The action that will result when the Rule’s Match condition occurs.

    Match

    The type of parameter that will be tested to see if a Match occurs.

    (unlabeled)

    The value for the Match condition.

    Each of these fields is explained further below.

    Operation

    The Operation field has three possible values:

    • Bypass: the requestor will be granted access to the requested resource, without further evaluation or filtering of the request. However, although a Bypassed request will not be subject to further filtering, it will still show up in the logs (as “reason:bypassed”).

    • Allow: the requestor will not be presented with a challenge, but will still be evaluated by the WAF.

    • Deny: the requestor will not be allowed to access to the requested resource

    When constructing an ACL Policy from multiple Rules, the Rules are arranged in the hierarchy shown above (Bypass, then Allow, then Deny). Rules are evaluated in order from top to bottom. When a Rule resolves to an action, that action is implemented, and further evaluation ceases.

    Match

    There are five available options for Match:

    • Class

    • Company

    • Country

    • IP Address

    • Custom Signature

    The first four of these are common matching conditions that are always available. The fifth choice allows you to select custom matching conditions that you constructed by using the Custom Signature feature.

    Match Argument

    This is the third, unlabeled field in the New Rule dialog. The correct entry will depend on the option that was selected for Match.

    Class

    If you selected Class, enter one of these strings as the Match Argument:

    • anon-proxy

    • bot

    • cloud

    • tor

    • vpn

    Company or Country

    If you selected either of these, enter the first few characters of the company name or country, and then choose the full name from the list that appears. (If the text box does not populate itself appropriately as you type the first few characters, check your spelling.)

    IP Address

    Enter the specific IP or range of IPs (e.g., 178.184.0.0/16).

    Custom Signature

    Enter the first few characters of a Signature that you created previously in the Custom Signature tab, and then choose the one you want from the list that appears. (If the text box does not populate itself with matching Signatures, check your spelling.)

    Video demo

    Special ACLs

    By adding the following characters as a suffix to the ACL's name, the ACL will behave as follows:

    Suffix

    Description

    Examples

    OC

    Over-capacity override: ignore rate limits.

    Loadtest OC

    XDeny

    "God Mode": bypass the Rule Operation hierarchy.

    Global DR XDeny

    For an example of using the OC suffix, see Bypassing Rate Limits for Loadtesting.

    For an example of using XDeny, see Quickly Blocking an Attacker.

    Policies and Rules
    Web Proxy
    Example of an ACL Policy

    Essential Headers Checkup

    A request without a header is illegitimate (and generally is an indication of a bot). This module blocks these requests.

    HTTP Methods

    This module enforces the Allowed HTTP Methods that are defined in the list farther down the page.

    Argument Limitations

    This module enforces the Request Arguments Limitations that are specified below the list of Allowed HTTP Methods.

    RFC Compliance

    This module ensures that every request is RFC compliant. Most penetration tools are non-compliant (often deliberately so)—thus, this module alone defeats and excludes a high amount of hostile traffic.

    The next three modules are optional, but are recommended in most situations:

    Parameter

    Functionality

    Bad Robots

    Identifies and blocks malevolent bots, based on their user agents. This works differently than the default Deny Bot ACL Policy, which uses active challenges to identify bots. Therefore, when active challenges are disabled, this WAF capability can still be used.

    Dual Encoding

    A common penetration technique is to encode a hostile request multiple times, in an attempt to evade detection and filtering. For example, an injection attack might be encoded in binary, and then sent as if it were plain text. Or, different types of encoding might be mixed together in the same request. This module detects and defeats these attempted attacks.

    * Injection Proof

    This module detects and defeats different kinds of injection attacks: SQL, XSS, and OSC. (The "*" is a wildcard.)

    Below the modules is the list of Allowed HTTP Methods. In general, you should enable as few of these as possible, and then disable the rest.

    Sometimes there are methods that are used only by a few specific users. A possible approach for this situation is to disable those methods here, and then define ACL Policies or Signatures by which those specific users are Bypassed from being blocked by this module. This strategy works, but it should only be done in deployments where the specific users can be reliably identified.

    At the bottom of the page are the Request Arguments Limitations, Whitelist Argument Names, and Whitelist Rule IDs. These allow you to permit or deny requests based on the arguments contained in the request. For assistance with these entries, please contact support.

    Parameter

    ACL Policies
    Profiles

    Functionality

    Field Name

    Description

    Type

    Cookie, Country, ASN, IP, Request Body, Request Header.

    Name

    Will appear for specific types: Cookie (Name), Headers, etc.

    Value

    The value which will activate the blacklisting. For example, when Type is "IP", the blacklistable IP address would be entered here.

    Reason

    User description of the reason for adding this entry.

    Expiration

    The expiration of the entry, in Hours or Minutes (only relevant for blacklists).

    Quarantined requestors
    TTL Expression Syntax
    TTL Expression Syntax

    Dashboard

    An overview of traffic activity

    After logging into Reblaze, the Dashboard screen is the first screen you'll see. It displays all incoming traffic and what happens to it. By default, this screen shows current activity; by using the archives, you can also 'go back in time' to see previous activity.

    The user interface has three main sections:

    1. Filtering and Time Interval Selection

    2. Traffic Graphs

    Filtering and Time Interval Selection

    Query Box

    Allows you to easily filter the display to show exactly what you want. The structure of a filter is operator:value.

    For example, to show all traffic from France that was blocked:

    country:France, is:blocked

    For a full explanation of Reblaze's Query box, including operators and syntax, .

    Queries run in the Dashboard will display the results graphically. To see the results as a full list of the requests and their details, you can copy the filter string and paste it into the Query box in the .

    Time Interval Selection

    Enables the user to select a pre-defined time frame, or a custom time period. See the video below:

    Traffic Graphs

    Passed vs. Blocked

    This section shows the traffic that was processed by Reblaze: requests which passed through to the upstream servers, and requests that were blocked. Hits are distributed by time and sorted into three different categories: Humans, Challenges, and Blocked. As you can see in the example below, the data is shown in different colors to easily distinguish among the categories.

    Response Status

    Counts the number of status codes in a certain time period.

    HTTP Status response codes are divided into five categories:

    • 1xx - Informational Response

    • 2xx - Request Successful

    • 3xx - Request For Redirection

    • 4xx - Client Error

    For a detailed list of response codes, .

    As in the Passed vs. Blocked display, the data is shown in different colors.

    Requests Count

    The number of network requests during a certain period of time.

    Bandwidth

    The downstream bandwidth limitation per response. Left-axis units are "k" for kilobytes, and "M" for megabytes.

    Latency

    This displays the time (in milliseconds) consumed by Reblaze's processing.

    Zooming in

    You can zoom in upon the various graphs, in order to examine a smaller window of time. The video below demonstrates this process.

    "Top" Section

    This section displays traffic statistics according to a variety of "top" metrics: the Top Applications, Top Countries, Top Signatures, etc.

    In many of these displays, entries contain links. Clicking on them will open the traffic log, filtered to show the item you selected. For example, in the "Top Countries" view, clicking on a country name will open the traffic log to display the most recent requests originating from that country.

    Section Characteristics

    Applications

    Shows all protected sites for the current Reblaze deployment. Applications marked in red have a blockage rate above 30%. The blockage rate is the ratio of requests blocked by the system to the number of total network requests.

    Note that in this section, "Passed" and "Latency" entries aren't shown, and "Cloud", "Anon." and "Blockage" are added. Their meanings are:

    Countries

    Shows your traffic sorted by country. Each country's flag is shown by its name.

    On the screenshots below, IP addresses are censored for privacy reasons.

    Sources

    Shows traffic data according to IP address. The ASN (autonomous system number) for each IP is also shown.

    Sessions

    Shows the nature of user sessions. Sessions that pass Reblaze's bot mitigation challenge are identified as originating from humans, and are listed here according to the user's RBZ (Reblaze) cookie ID. In the screenshot below, note that the first line shows "-" for the ID. These are sessions that did not pass the challenge.

    Targets

    Shows the URLs in your site(s) that were accessed the most frequently.

    Signatures

    Shows the reasons that traffic was blocked. Unlike other displays, this section does not include hits, passed, blocked, etc.—the counter only shows the number of blocks per signature. Here you can see which types of attacks are most common in your environment. In the example screenshot below, the first entry is "-": this shows requests that were blocked, but not by Reblaze (i.e., they were blocked "by origin"—by the upstream server).

    In the example screenshot below, the third and fourth entries include a "ref" value. These are Reblaze reference IDs, .

    Referers

    Shows the referers that were extracted from the request headers.

    Extensions

    Allows you to view the various file types that are being used by the application. ("None" shows the network requests that weren't counted as file extensions.)

    Browsers

    Shows all the user agents that initiated requests for the application(s).

    Companies

    Shows all of the ASNs (Autonomous System Numbers) from which requests were sent. The ASN can identify individual entities, or larger networks: for example, a telecom provider or a cloud provider.

    Latency

    Shows a list of all applications, with the corresponding latency for each.

    SSL Management

    Administration of certificates

    Introduction

    This section allows you to manage your SSL Certificates. You can create, edit, attach, and remove certificates. The certificates themselves can be uploaded and stored into Reblaze's cloud, or a cloud load balancer.

    A note on certificates and sites

    If you are reading this Manual as part of an initial evaluation of Reblaze, and if you have large numbers of certificates to manage, you should know that Reblaze treats certificates differently than most other security solutions.

    It's not unusual for some companies (especially SaaS platforms) to have dozens or even hundreds of certificates to manage. Unfortunately, most security solutions treat each SSL Certificate as a separate "site," and they charge their customers on a per-site basis. Thus, these solutions can be extremely expensive.

    Contrary to this, Reblaze does not treat certificates as sites. A certificate is merely a certificate. For customers with tens or hundreds of certificates to manage, Reblaze's monthly pricing can be one or two orders of magnitude less than its competitors'.

    Related video:

    Section Overview

    The SSL Certificate Management interface displays certificates according to the load balancer to which they are attached. Those stored in the Reblaze cloud are listed as "None."

    Displayed parameters are:

    Choosing a different load-balancer option will filter the certificates and display only the ones attached to that LB.

    Generating a new certificate

    Reblaze provides the capability to generate an SSL Certificate for free using the Let's Encrypt service. This is not done in this section of the interface; it is done using the "Gen Cert" button on the page.

    Adding an existing certificate to Reblaze

    SSL certificates can be added to Reblaze in two ways:

    • Uploading a PFX file.

    • Manually entering the certificate information.

    In both cases, begin by clicking the "New" button. This dialog will appear:

    To upload a PFX file, select "Choose File." Otherwise, enter the Cert Key and Cert Body values into their respective text boxes.

    Selecting a load balancer

    On the upper right, select the load balancer to which this certificate will be attached. If "None" is selected, the certificate will be uploaded and stored on Reblaze's cloud.

    Specifying application(s)

    In the example screenshot above, a specific load balancer IP has been selected. This enables the options shown at the bottom of the screenshot:

    • Attach to Application: Specifies the application/site to which this certificate will be attached.

    • Replace existing certificate: Replaces an existing certificate with this new one. All web applications that were attached to the specified certificate will now be attached to the new one.

    Editing and managing existing certificates

    To remove an existing certificate, click on its trash icon to the right of its entry in the list. You can delete a certificate if it's not linked to a site. However, you cannot remove the last certificate on a load balancer.

    To edit a certificate, click on its blue edit icon to the right of its entry in the list. This dialog will appear:

    Under "What would you like to do?", the following options are offered.

    • Replace existing certificates - When this is chosen, a "Select Certificate" dropdown list will appear. Selecting one and then clicking "Save" will result in all sites/applications being transferred from the selected certificate over to the certificate you're currently editing.

    • Attach to application - Select an application/site and attach it to this certificate.

    • Copy to another load balancer (available only when this certificate is attached to a LB, and more than one LB exists) - Allows you to copy the certificate and upload it directly to another load balancer.

    When managing certificates through one of these options (except for "Download PFX"), you must click the Save button to preserve your changes.

    Automated renewal using Let's Encrypt

    Let's Encrypt is a free certificate authority service. Reblaze integrates with it, and offers this service by default.

    Once a day, Reblaze will check each application it protects. If that application's certificate is going to expire in the coming week, then the following process occurs:

    • If the Auto Let's Encrypt Renewal option for that certificate is enabled, Reblaze will generate a new certificate using Let's Encrypt.

    • If the Auto Let's Encrypt Replacement option for that certificate is enabled, Reblaze will generate a new certificate using Let's Encrypt, and will attach all of its sites to the new certificate.

    Custom Signature

    For creating custom matching conditions

    Custom signatures are custom matching conditions that you can use in Rules and Policies to evaluate client requests.

    These allow the administrator to "catch" traffic based on any parameter in the request or the response. They can be used in a number of situations. Some examples:

    1. "Virtual patching": Identifying an incoming exploit attempt for a newly-discovered vulnerability in the upstream network.

    2. Identifying logged-in admin users, so that their requests can be Bypassed.

    3. Identifying specific patterns of traffic that are suspected to be malicious, so they can be blocked.

    4. Identifying specific types of requests (e.g., XMLHttpRequest), so they can be blocked from specific sections of a website.

    Signatures that have already been defined are listed in the left column, while you can edit and create new ones on the right. Once a Signature has been created, it will be available in the section within the tab.

    Custom Signatures give you tremendous power and flexibility for evaluating your traffic. They are composed of one or more matching conditions, which can be combined using Boolean AND/OR operators.

    Each matching condition combines the entries in Either one of the following fields and Is matching with.

    Possible entries for Either one of the following fields:

    Entries in Is matching with

    This text box accepts strings or PCRE (Perl Compatible Regular Expressions).

    An explanation and some examples are here: .

    Creating custom signatures

    When you first create a Signature, one condition appears for editing. If you wish to create more than one, click on the Append Condition button at the bottom. This will add another condition for editing.

    You can continue for as many conditions as you want. The conditions will be evaluated according to the Boolean operator specified by the Condition Type selector.

    Static Rules

    Constant settings that apply to the entire planet

    This section defines security ruleset parameters that apply to your entire Reblaze planet. They are "static" because they are simple settings, and do not vary according to context or circumstance.

    The settings in this section are global. They apply to all configured sites on the platform, even if the domain is set to .

    The main page for this section has three tabs:

    Signatures

    Introduction

    The Reblaze system blocks traffic if it matches configured WAF signatures, exceeds triggering thresholds, matches ACL rules, or violates RFC specifications. When a blocking event occurs, Reblaze reports it according to reference IDs.

    The reference IDs are listed below, categorized into groups according to their description. In some cases, external links are included with more details on the specific type of attack being described.

    WAF Signatures

    Operating System Command Injection (OSCI)

    OSCI attacks are aimed at the operating system. The attacker seeks to manipulate the operation of the system, or to take control completely. For example, an attacker might attempt to get the content of OS files such as /etc/shadow. An OCSI attack can be included in the request headers, arguments, or cookies. More details on this type of attack can be found on the OWASP website.

    Reblaze reference ID 400000-499999

    Remote File Inclusion (RFI)

    RFI attacks target applications that allow scripts to be included in files. These attacks are typically used for planting backdoors. Here's an example of an RFI attack using PHP.

    Reblaze reference ID 300000-399999

    Local File Inclusion (LFI)

    An LFI attack is similar to RFI, but it includes one or more local files instead of remote links. The attacker seeks to upload a file to the server. Read more about LFI.

    Reblaze reference ID 300000-399999

    SQL Injection (SQLi)

    Threat actors use SQL injection to attack databases by executing SQL commands. SQLi is a common attack, with many possible ways for attackers to exploit vulnerabilities. Read more about SQLi.

    Reblaze reference ID 1000000-1999999

    Cross-Site Scripting (XSS)

    XSS attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted sites and applications. Read more about XSS.

    Reblaze reference ID 2000000-2999999

    Generic Attacks

    Many attacks take advantage of vulnerabilities in the OS or in the targeted application, without falling into one of the more prominent categories. Reblaze classifies them into this “generic” category.

    Reblaze reference ID 3000000-3999999

    RFC2616 rule check violation

    This signature refers to a violation of HTTP protocol RFC-2616. For example, the RFC requires requests to contain a content-length header; a request that does not include one violates the RFC.

    Reblaze reference ID 3000000-3999999

    Known malicious bot

    This signature refers to the recognition of user-agent headers of known attack tools and applications: for example, the “Grabber” vulnerability scanner.

    Reblaze reference ID 3000000-3999999

    PHP Eval/Exec

    This attack is sometimes referred to as Direct Dynamic Code Evaluation. It exploits an application that does not properly validate user inputs. More information can be found at OWASP here.

    Over-capacity

    Reblaze blocks requests when a capacity threshold is exceeded: for example, the number of requests per second from a single IP. Usually, these thresholds reflect Reblaze’s DDoS protection. However, in some cases, some of this may be coming from the upstream server rather than Reblaze; in this situation, a “by origin” is added to the event description in the logs.

    Reblaze reference ID: None. This block results in HTTP error 503.

    Unrecognised Host Header

    Reblaze blocks headers for any site not found in its list of configured sites: for example, a proxy request. (This includes IP addresses as well.) Only FQDN (fully qualified domain names) are allowed.

    Reblaze reference ID: None

    Multiple encoding detected

    A common penetration technique is to encode a hostile request multiple times (for example, URL encode and base64), in an attempt to evade detection and filtering by the WAF or other security measures. Read more about multiple encoding attacks here.

    Reblaze reference ID: 8888001

    Challenge

    This refers to requests that are blocked because they fail Reblaze’s bot/human detection challenges.

    Autoban/etc

    This refers to traffic that is blocked by the application. It does not include categories such as HTTP errors 400, 408 or 500.

    ACL-IP

    A blocking event that resulted from an ACL containing an IP or subnet.

    ACL-Geo

    A blocking event that resulted from an ACL containing an IP or subnet that matched geographical criteria.

    ACL-Anonymizer

    A blocking event that resulted from an ACL containing an IP or subnet that is part of an anonymous proxy provider.

    ACL-TOR

    A blocking event that resulted from an ACL containing an IP or subnet found on a list of TOR gateways.

    ACL-VPN

    A blocking event that resulted from an ACL containing an IP or subnet known to be used by a VPN provider.

    ACL-ASNum

    A blocking event that resulted from an ACL containing an IP or subnet from a specified AS number.

    ACL-Cloud

    A blocking event that resulted from an ACL containing an IP or subnet known to be used by a cloud provider.

    Method not allowed

    A request was rejected because it contained an HTTP method that the WAF was configured to reject. For example, a common configuration is to accept HEAD, GET, and POST requests, while rejecting all others.

    x-denied@acl-custom-sig

    A violator blocked by the ban list (via a Dynamic Rule).

    bypassed@dpi-max-length

    When a request’s payload exceeds the configured threshold, the WAF signatures are bypassed. This mechanism ensures that the WAF will not loop forever and consume 100% of the CPU.

    Rate limit Signatures

    Custom naming

    This blocking event occurs when rate limits are triggered. The text is taken from the name of the rule that triggered the event.

    IP in rate limit whitelist

    This message notes that the IP is in the rate limit whitelist ACL.

    Org in rate limit whitelist

    This message notes that this organization’s AS number is in the rate limit whitelist ACL.

    Application Profiles
    Application Profiles
    Application Profiles

    Enable traffic via HTTPS.

    Make sure that the Proxy Settings are configured properly.

    Block Known Sources

    Define ACL Policies to reject traffic from sources known to be hostile (e.g., IPs, countries, etc.)

    This is done with Security Profiles that include ACL Policies with an operation of "Deny".

    Whitelist Known Sources

    Exempt specific traffic sources from inspection and filtering.

    This is done with Security Profiles that include ACL Policies with an operation of "Allow" or "Bypass".

    Web Application Firewall (WAF)

    Review the default ACL Policies and WAF/IPS Policy, to ensure they meet your needs. Define new ones if necessary.

    The Policies are included in one or more Security Profiles, which are then assigned to appropriate locations within your site as explained here.

    DDoS Settings (Rate Limits)

    Review the global rate limits to ensure they match your site's capacity. For most use cases, the default settings should work well.

    In addition to the general rate limits, it's also possible to define limits for specific site locations and/or traffic sources. More info about this.

    Cache Settings

    Review the applications' cache settings in their Application Profiles.

    Reblaze has a variety of caching options. Its settings are explained here.

    Alerts

    Review and customize alerts and notifications according to your needs.

    More info about this.

    Account

    Review your account settings to ensure they are correct.

    Sometimes new customers enter placeholder values at first. Ideally, correct values would be in place by the time Reblaze is active.

    As traffic is processed by Reblaze, review the Dashboard (and ideally, the View Log) to see the decisions that are being made. Optimize Reblaze until it is performing as expected. Once you are satisfied with Reblaze's traffic scrubbing, move your application(s) from Report mode to Active mode.

    Reblaze's logs are a rich source of insights into incoming traffic. Highly recommended reading: Understanding and Diagnosing Traffic Issues.

    control caching behavior through Reblaze
    Upstream Servers
    Proxy Settings
    Getting Started
    More info
    Mobile SDK
    disable Active Challenges
    enable Passive Challenges
    here
    https://dnschecker.org/
    Dashboard
    View Log
    how to use the Reblaze Query Box
  • 5xx - Server Error

  • Requests that were served with bot detection challenges.

    Latency

    How much time it takes for a packet of data to get from one designated point to another. Displayed in milliseconds.

    Dn

    Amount of traffic in MB that originated from the upstream server towards the clients.

    Up

    Amount of traffic in MB that originated from the client towards the upstream server.

    Name

    Description

    Hits

    Total amount of requests

    Passed

    Requests that reached the upstream server

    Blocked

    Requests that were blocked by one of Reblaze’s correlation engines.

    Humans

    Requests that passed Reblaze's human vs. bot challenge process.

    Bots

    Requests with originators that were not (yet) verified as humans. For a full explanation, see Counting Bots.

    Name

    Description

    Cloud

    Cloud Providers (GCP, AWS, etc.)

    Anon.

    Anonymous Proxy Browsers

    Blockage

    Blockage rate

    "Top" section
    go here
    View Log
    go here
    explained here
    Passed vs. Blocked Graph
    Incoming traffic sorted by 200, 403, and 503 status codes
    Requests Count Graph
    Bandwidth Graph
    Latency Graph
    Applications section
    Countries section
    Sources Section
    Sessions section
    Targets Section
    Signatures section
    Referers Section
    Extensions section
    Browsers section
    Companies Section
    Latency Section

    Challenges

    Auto Let's Encrypt Renewal/Replacement: See discussion below.

  • Download PFX: Download the certificate information as a file in PFX format.

  • Parameter

    Description

    Name

    A unique identifier for use elsewhere in the interface.

    Common name

    The domain name for which the certificate was created. It can be a single domain (“www.example.com”) or a wildcard expression. For example, “*.example.com” will match “example.com” and all its subdomains.

    Expiration

    When the certificate expires.

    Issuer

    The source of the certificate.

    Linked To

    This field is populated when this certificate is chosen for use in the Proxy Settings section.

    SSL Training
    Planet Overview
    SSL Certificate administration
    Filtering by load balancer
    Adding a new certificate

    Regex value inside the query string

    Referer

    Referer / Via values

    Remote Address

    Client Address in the request

    Request Cookies

    Cookie in the request’s header

    Request Cookies Names

    Cookie names in the request’s header

    Request Filename

    The GET request resource

    Request Headers

    Specific headers inside the requests

    Request Headers Names

    Scan the request for specific header values

    Request Method

    An HTTP method: PUT, POST, GET, etc.

    Request Protocol

    HTTP / HTTPS

    Request URI

    The URI of the resource being requested

    User Agent

    The User-Agent of the requestor

    Field Name

    Description

    Args

    Arguments in the request’s header

    Arg Names

    Argument names in the request’s header

    Autonomous System Number (ASN)

    The ASN for a specific entity

    Country Name / City

    Geolocation

    Host Name

    Destination Hostname

    New Rule
    ACL Policies
    Pattern Matching Syntax

    Query String

    Timeouts
  • Sizing

  • Speed & Rate

  • Each tab is discussed in-depth below.

    At the upper right corner of this screen, there is a choice of two different sets of settings: Default and DDoS. Please ignore the DDoS settings: this mode has been deprecated, and will be removed from a future version of the interface. You should only work with the Default settings, since only these settings will be used by Reblaze.

    After working in this section, remember to click on "Save Changes."

    Timeouts

    The Timeout settings allow the system to monitor the time required to serve resources to each client. Any connection that exceeds the specific limits will be dropped.

    Why timeouts are important

    Some DDoS tools (e.g., R-U-Dead-Yet, or RUDY) send a relatively small quantity of traffic requests, but do so as slowly as possible (often with each byte sent separately). While a legitimate request can be resolved in milliseconds, a single RUDY machine can tie up server resources for several minutes. Even a few hundred of these machines attacking your server can be very destructive.

    The Timeout settings allow Reblaze to block unresponsive requestors, whether their unresponsiveness is malicious or not. For most Reblaze deployments, the default timeout settings work very well. They are sufficient to filter out hostile traffic, while still accommodating even those users with low bandwidth.

    Parameter

    Timeout

    Header Timeout

    How long to wait for the client to send a request header.

    Body Timeout

    If the body is not obtained in one read-step, this timeout begins. If the timeout expires and the client has still sent nothing, the Reblaze Gateway returns error 'Request time out (408)'.

    Keep Alive Timeout

    The timeout for keep-alive connections with the client. The Reblaze Gateway will close connections after this time. This setting increases server efficiency; it allows the server to re-use browser connections and save resources. When changing this value, special care should be taken; in some cases, it depends on specific cloud vendor and load balancer settings.

    Send Timeout

    Specifies the response timeout to the client. This timeout does not apply to the entire transfer but, rather, only between two subsequent client-read operations. Thus, if the client has not read any data for this amount of time, the Reblaze Gateway shuts down the connection.

    All times are specified in seconds, as shown in the example below.

    Timeouts Settings Example

    Sizing

    This tab allows you to place limits on the amount of data that users can upload to the system. The defaults usually work well; however, if your application accepts user-generated content or other large files, then changes to these settings might be necessary.

    Please note that if you increase these settings within Reblaze, then the upstream server should also be configured to accept and store the quantity of data that Reblaze will (potentially) pass through.

    Default Sizing Example

    Size

    Functionality

    Client’s Body Max Size

    Specifies the maximum accepted body size of a client request, as indicated by the request header Content-Length. Size in MBs.

    Large Client Headers

    Allows additional buffers to be used for large client headers.

    Speed & Rate

    This tab allows you to limit the amount of resources consumed by an IP or individual user.

    Reblaze can limit consumption by the average number of requests per second (the "IP Requests" and "User Requests" settings), while also allowing temporary bursts at a higher rate ("IP Maximum Burst" and "User Maximum Burst").

    The average and burst limits are more nuanced than is possible to explain in the field labels in the user interface. Please see "Average and Burst Rate Limiting" at the bottom of this page for a full explanation.

    Note that this rate limiting is a global metric across all sites. For example, if one IP address is submitting requests to multiple web applications within a Reblaze planet, all the requests are combined when determining if rate limits have been violated.

    IP Parameter

    Functionality

    IP Requests

    Sets the allowable average request rate per IP, per second.

    IP Maximum Burst

    Sets the allowable additional burst rate per IP, per second. See "Average and Burst Rate Limiting" below, for a full explanation.

    IP Concurrent Sessions

    The maximum number of simultaneous sessions per IP. (An HTTP Session ends upon a completion of the response sent.)

    Downstream Bandwidth

    Downstream bandwidth limitation per response.

    Note: The limit is metered in kilobytes, ie. 1250 KB is equal to 10Mbps.

    User Requests

    Sets the allowable average request rate per user, per second.

    Here's an example screenshot:

    Speed & Rate limit example

    When a requestor exceeds any of these thresholds, subsequent requests will be answered with error code 503 (Service Unavailable).

    For most use cases, the two most important Speed & Rate parameters are IP Requests and IP Maximum Burst.

    Average and Burst Rate Limiting

    In the Speed & Rate section, the rate limiting settings can be nonintuitive. Here is an explanation of how they work.

    IP/User Requests sets the allowable per-second average of incoming requests, enforced on an incremental basis (where "increment" refers to the number of milliseconds allowed for one request). IP/User Maximum Burst sets a higher per-increment ceiling.

    Example: IP Requests is set to 100 r/s. Thus, 100 requests are allowed per second. However, the system does not enforce rate limits on a per-second basis; it used a granularity of milliseconds. Therefore, it will allow one request every 10 milliseconds. (100 r/s, divided by 1000 ms/s, equals 1r/10ms.)

    Without burst limits—i.e., if IP Maximum Burst is set to zero—the system will reject every request that was received less than 10ms after the previous one.

    Now the Reblaze admin sets IP Maximum Burst to 20. This means that Reblaze will accept 21 requests (1 original plus 20 additional) per 10 milliseconds. In other words, when a request is received, up to 20 more can be received and accepted within the following 10 ms. If instead 25 total requests are received during that time, the last four requests will be denied with a 503 error.

    "Report Mode"
    Static Rules

    Using the Reblaze Query Box

    How to filter results

    Introduction

    The Reblaze query command box allows you to query the data in order to present only the records that you want. The structure of a filter is operator:value.

    Using the query/filter box to search for blocked XSS attempts

    For example, to view only traffic from IP 10.11.12.13:

    ip:10.11.12.13

    An exclamation mark ("!") can be used with various filters as a "NOT" operator. So, to exclude requests from an IP, add "!" as a prefix:

    ip:!10.11.12.13

    Note that filters can be combined to fine-tune a search, by chaining them with a comma. For example, in order to show all traffic from France that was blocked:

    country:France, is:blocked

    Building Queries Efficiently

    The fastest way to build query strings is to double-click on labels of existing log entries. This will add the value of each label as a filter to the query box. When you have constructed the entire query string, click on the search button, or place the cursor into the text field and hit "Return" on your keyboard.

    For example, when looking at this entry for a blocked request (the IPs have been censored for privacy reasons):

    Let's say you wanted to quickly see what other requests produced a 403 error that came in from the United States on a cloud IP. Double-clicking on the "403" label, the "United States" label, and the "Cloud" label builds the query string for you automatically:

    Then select the "search" button, or place the cursor within the query box and hit "Return" on your keyboard, to process the query.

    In some situations, this technique has limited usefulness. In the example screenshot above, double-clicking on the label beginning with "XSS" would add a (very) long filter string to the query, because that label contains the full script from the injection attempt (although the label itself only displays the first few characters in the interface).

    If this is what you want (perhaps you need to search only for logged requests which contain that exact script), then this is effective. But if you wanted to build a more general query, then this is not useful.

    A better approach is to choose a representative substring.

    Queries can be based on substrings. Internally, Reblaze executes a "contains" search, so queries will return everything that contains the string that was specified.

    In some situations, you'll want to build queries that produce exact matches. But in many other situations, it's faster just to search for a relevant substring instead.

    Examples:

    • reason:XSS will show all records with "XSS" in their reason label.

    • url:login will include all URLs that include "login".

    • ip:191 will display all IP addresses containing "191".

    Filter Use Cases and Examples

    Regular expressions can be applied to the filter value to make the search more accurate. The regex matching is done by wrapping the search value with re(REGEX here). Examples:

    is:re(200|401)

    ua:re(iOS!iPhone!iPad)

    If you wish to display login requests with method “POST” which were blocked, but not by the origin (upstream server):

    url:/login,is:POST,is:blocked,is:!origin.

    This displays those requests which produced 502-504 error codes:

    is:re(502|504)

    This displays the requests that contain a specific value in an argument:

    arg_name:text, arg_value:free_text

    Available filters

    Planet Overview

    Administering your entire planet

    The Planet Overview page enables the following actions:

    1. Managing your planet's sites/applications.

    2. Configuring a site/application's health monitoring.

    3. Making a site/domain active, or inactive (in "Report Only" mode).

    4. Configuring Notifications and Alerts.

    Note that in the discussion below, "site" and "web application" are synonymous.

    This section allows you to add and modify web applications. It does not provide the ability to delete them.

    Deleting a web application is done in the General Settings on the page.

    Adding a Web Application

    Creating a new web application is done by duplicating an existing one, and then editing the one that is created.

    • Select an existing site that is the most similar to the one you want to add.

    • On the far right part of the screen, click on its "Duplicate" button.

    • This will clone the site and create a new one with identical settings, which you can then edit.

    Editing a Web Application

    Clicking on a site name will open it in the page, where those settings can be edited.

    Making a site active or inactive ("Report Only" mode)

    Each web application has two possible Security modes:

    Please note that the security mode applies only to the WAF & ACL. Regardless of its setting, Static Rules are still enforced, and challenges will also occur (except for those locations/resources which have had a "no challenge" profile assigned to them in the section).

    Generating a New SSL Certificate

    Reblaze integrates with to provide free SSL Certificates.

    By clicking on the "Gen Cert" button at the end of an entry in the site list, you can:

    • Generate a new certificate without attaching it to a site

    • Generate a new certificate and immediately attach it to a site. If the site has an existing certificate, it will be replaced by the new one.

    In either case, this is the dialog you will see:

    Just choose the button for the activity you want.

    Configuring Health Monitoring

    In a typical deployment, incoming traffic is load-balanced, processed by Reblaze, and then (if it is legitimate) passed through to the upstream origin.

    Load-balancing includes more than just equal distribution of loads; it also includes failover. To perform this correctly, the health of the upstream origin must be monitored.

    In this section of the interface, you can define a URL within your site that can be queried by the load balancer. If the URL is accessed successfully, the site is assumed to be healthy and capable of handling a continuing load. If the URL is not accessed successfully, the site is deemed to be unhealthy; depending on the configuration, a failover process might then begin.

    To set up health monitoring for a site, click on its "[Health] Monitor" button: . Doing so will open this dialog:

    Here are the available settings. Check marks at the end of certain fields indicate that the entries are valid.

    Reset States

    This button resets the health statuses that are displayed in the interface. It does not trigger a health check; it merely resets the status displayed to the user.

    For example, a user has disabled health monitoring for a particular upstream server. (Perhaps it has been intermittently failing its health check.) However, its most recent status was "failed," and so its IP address is appearing as red in the interface. To remove this distraction, the user clicks on Reset States. The IP address will now be showed normally.

    Notification and Alert Settings

    At the bottom of the Planet Overview are the Notification Settings.

    When a is violated, Reblaze can send immediate alerts to a list of one or more email addresses, SMS numbers, and hooks (e.g., Slack).

    In addition, a cumulative report of the previous week's violations can be sent to one or more email addresses.

    This section defines one or more Notification Groups for these notifications. Clicking on the "+" button on the right will display this dialog:

    The settings for a Notification Group are as follows.

    An existing Notification Group can be edited by clicking on its listing, or deleted by clicking on the trash button at the right end of its listing.

    DNS

    An optional but recommended capability

    DNS Management is an optional capability. Your DNS management does not need to be done within Reblaze, but it can be.

    Reblaze provide a full DNS service, based on AWS Route 53. Reblaze also supports DNS on other cloud platforms, but they are not yet supported natively within the Reblaze interface. If you need this capability within your deployment, contact support for assistance.

    Motivation

    Many site administrators use their domain registrars as their DNS providers, but this is often a poor choice. In general, domain registrars do not place a high priority on DNS security (since DNS management is not a primary part of their business model), and attackers frequently target their DNS servers. A successful DNS poisoning attack can result in your site getting hijacked.

    Managing your DNS through a secure platform like Reblaze is a far better choice. This ensures your full stack is protected—even the DNS layer.

    A full explanation of DNS setup is beyond the scope of this Manual. The discussion below is an overview of Reblaze's capabilities and interface. Please if you need assistance for your particular situation.

    Related video:

    Scope

    You can manage millions of DNS zones and records using the Reblaze interface.

    The DNS Management feature of Reblaze is for both external and internal DNS administration. Internally, Reblaze maintains a special name for every planet (planetname.prod2.reblaze.com), and every domain protected by Reblaze is mapped to an entry in this domain. This system can also be used for domains accessible externally.

    Administration

    As shown in the example screenshot, this page is divided into two sections. The upper section is blue, and lists two special resource recordsets: SOA (Start Of Authority) and NS (Name Server). These are at the Zone level, and once created, these cannot be modified. They also will not be filtered (hidden from view) by the "search" feature.

    The "search" feature is based upon the text box at the upper left.

    This will control the DNS entries being displayed, by filtering them according to the search value and selected record type. Note that filtering does not apply to the entries in the blue section; these will always be displayed.

    To add a new DNS entry, click on the "New" button on the right hand side. The following dialog is displayed:

    Once a record has been created, it can be deleted (via the trash icon shown to the right of its entry in the list) or edited (via the blue edit icon shown to the right of its entry in the list).

    Supported Record Types

    Reblaze supports the following types of DNS records:

    Expected formats for the respective values are given below.

    A Record Type

    The value for an A record is an IPv4 address in dotted decimal notation.

    Example:

    example: 192.150.2.1

    AAAA Record Type

    The value represents an IPv6 (128bit) address in a colon separated notation.

    Example:

    20541:0da8:85a3:0:0:8a2e:0370:7334

    CNAME Record Type

    A CNAME value is a domain name.

    Example:

    www.sample.com

    MX Record Type

    Each record includes a priority (integer) and an email server domain name. It is possible to add multiple records.

    Example:

    10 mail1.sample.com

    20 mail2.sample.com

    NS Record Type

    Delegates a DNS zone to use the given authoritative name servers. (It is possible to include multiple name servers.)

    Example:

    ns1.amazon.com

    ns2.amazon.org

    ns3.amazon.net

    ns4.amazon.co.uk

    TXT Record

    Includes a text record. (Enclose the text in quotation marks. Multiple entries are allowed.)

    Example:

    "test1"

    "test2"

    SPF Record

    SPF records were formerly used to verify the identity of the sender of email messages. It's now deprecated, and a TXT record should be used instead.

    Example:

    "v=spf1 ip4:192.168.0.1/16-all"

    SRV Record

    A generalized service location record, used for newer protocols instead of creating protocol-specific records such as MX.

    The syntax is based on the following: [Priority][Weight][Port][Domain Name]

    Example:

    2 12 5050 sip-server.example.com

    3 15 5060 network.example.com

    PTR Record

    Pointer to a canonical name. Unlike a CNAME, DNS processing stops and the name is returned.

    Example:

    www.example.com

    Example of Publishing a new configuration
    Setting up a new site

    Web Proxy

    When you deploy Reblaze to protect your web assets, it acts as a proxy, receiving requests from clients (web visitors, mobile/native app users, etc.), blocking hostile traffic, and passing legitimate requests to your servers.

    The Web Proxy section defines how Reblaze behaves in this role. It consists of three tabs:

    Abbreviation for the country. Example: "US" for the United States.

    country

    Name of the country

    cookie_rbzid

    Reblaze ID cookie value (base64)

    cookie_name

    Search by cookie name

    cookie_value

    Search by cookie value

    domain_name

    The main domain name in Reblaze (not necessarily the actual Host header).

    ext

    File extension

    header_name

    Name of header

    header_value

    Value found in header_name

    host

    HTTP Host header: usually, the domain name of the application.

    id

    Reblaze unique request ID.

    ip

    IP address of the web client.

    is

    IS is a special operator that can be used for almost all attributes of a request. It can be used to filter a certain HTTP method, "flags" and protocol version. For instance, to get blocked POST requests made by a human, type: is:blocked, is:human, is:post.

    mime

    Multipurpose Internet Mail Extensions

    origin

    The IP address of the origin server.

    path

    The path of the request (the URL without the query string part).

    proxy

    The IP address of the particular Reblazer server.

    rbzid

    Hash value of Reblaze ID cookie value (md5).

    reason

    Reason the request was blocked or passed.

    ref

    HTTP referer header.

    sslcipher

    The chosen SSL cipher.

    sslprotocol

    The chosen SSL protocol.

    status

    Response status code (regex is acceptable, e.g. [45]\d\d).

    ua

    HTTP User Agent header.

    upstream_status

    Response status code from upstream servers (regex is acceptable, e.g. [45]\d\d).

    url

    A substring to search for within the complete URL request line (including the query string).

    Name

    Explanation

    After

    Log records registered after a given date and time.

    Before

    Log records registered before a given date and time.

    arg_name

    Search for an argument by name

    arg_value

    Search for an argument value

    asn

    Autonomous System Number for the IP

    Automatically adding filter parameters to the query box

    city

    The server where the resource's URL is located.

    Security Mode

    Description

    Active

    The WAF will log all traffic, and actively block traffic deemed to be hostile.

    Report

    The WAF will log all traffic, including reasons that requests are deemed to be hostile, but will not block anything.

    Setting

    Description

    Protocol

    Options are Do Not Monitor, HTTP, and HTTPS. HTTP is offered as a faster option (compared to HTTPS) for a static resource where an insecure connection would have no potential consequences. If HTTP is selected for health monitoring, it will not be overridden by any specification elsewhere within the Reblaze interface to use HTTPS.

    Notify Only

    Enabled (displaying as blue) by default. When enabled, an unsuccessful health check only results in a notification being sent (and another notification will be sent when the first subsequent health check succeeds); traffic is not failed over to other servers. This is the default setting, because many customers do not have more than one upstream. Even when more than one upstream exists, disabling this setting can mean that upstreams get taken offline as the result of network issues.

    Host Header

    The header for the request. Default is $Host.

    URL

    The URL of the resource that should be requested to verify health.

    Expected Status

    HTTP status code to use in the response to the request.

    Setting

    Description

    Group Name

    A name you choose for display in the Group listing.

    Sites

    The site(s) for which alerts will be sent. To include multiple sites, select them one by one from the dropdown list.

    Rules

    The Dynamic Rules which, when violated, will trigger alerts. To include multiple Dynamic Rules, select them one by one from the dropdown list. When more than one rule is included, a violation of one or more will trigger the notification.

    Alerts

    Information for the recipients of alerts: their email addresses, hooks, and mobile numbers for SMS messages.

    Reports

    Email addresses for the recipients of cumulative weekly reports.

    Publishing configuration changes.
    Web Proxy
    Web Proxy
    Security Profiles
    Let's Encrypt
    Dynamic Rule
    Generate Certificate Pop-Up
    Health Monitor settings
    Notification Settings interface
    Creating a new Alert Group

    Server

    PTR resource record

    SOA

    Start of [a zone of] authority record

    SPF

    Sender policy framework (now discontinued, as of RFC 7208)

    SRV

    Service locator

    TXT

    Text record

    ALIAS CNAME

    Alternative to CNAME that can coexist with other records on that name.

    Record Type

    Description

    A

    Address record

    AAAA

    IPv6 address record

    CNAME

    Canonical name record

    MX

    Mail exchange record

    NS

    Name server record

    contact support
    DNS Training
    DNS Management section
    Search Box
    Adding a new DNS Record

    PTR

    Security Profiles

    Proxy settings are configured per site/application. To switch between them, click on the drop down menu on the right side.

    Proxy Settings

    After making edits to this section, don't forget to Save Changes and Publish them to the cloud.

    General Settings
    Application Profiles

    User Maximum Burst

    Sets the allowable additional burst rate per user, per second. See "Average and Burst Rate Limiting" below, for a full explanation.

    User Concurrent Sessions

    The maximum number of simultaneous sessions per user.

    Adding new entry - Example

    General Settings

    Web Proxy - General Settings overview.

    This part of the interface allows administration of three categories of settings, for the site that is currently selected at the top of the screen:

    1. Upstream Servers

    2. Proxy Settings

    3. Log File Parameters

    At the bottom, it also provides from the planet.

    Upstream Servers

    This section defines the servers that Reblaze will protect. In other words, these are the servers to which Reblaze will send the (legitimate) traffic it receives.

    Within these settings, you can:

    • Enable and configure load balancing, weighting and distributing traffic across your primary servers.

    • Define backup servers, to which Reblaze will failover your traffic when your primary servers aren’t available.

    • Take servers offline for maintenance by ticking a single box in the interface.

    • Instruct Reblaze to keep individual users connected to the same server throughout their sessions.

    Adding and deleting servers from this list is straightforward. To add a server, enter its IP in the “New Server” box and click Add, then fill out the rest of the information in the new entry. To delete an existing entry, click on the Delete link next to that entry.

    The settings for each server in the list are as follows.

    In addition to the features described above, Reblaze also has a stickiness capability that is not exposed in this version of the interface. Sometimes an application requires a user to be connected to the same server throughout the session. Reblaze can ensure that this occurs, and can do so using a variety of methods (tracking the user by IP address, session cookies, geographic location, and more).

    The stickiness feature will be added to the Reblaze interface in a future version. Meanwhile, if you need this capability for your deployment, contact Reblaze support to set it up for you.

    Proxy Settings

    The Proxy Settings parameters define Reblaze’s behavior as a proxy, i.e. how Reblaze passes information back and forth between client and server.

    Additional information

    The Client’s IP Header Name (Upstream Side) setting defines how Reblaze passes the client's IP address to the upstream server. In addition to the IP, Reblaze also sends the client's geographic information (if it is available). The field names are:

    Log File Parameters

    The Log Files Parameters enables you to control the contents of the Reblaze-generated traffic logs.

    Site Deletion

    When you wish to remove a site from Reblaze, select it in the pulldown list in the upper right of the page. Then, at the bottom of the page, you will find a (disabled) Delete Site button.

    To enable the button, check all three boxes next to it. (This is a safety measure to prevent accidental site deletions.) Once the button is enabled, clicking it will remove the specified site from Reblaze. Note that this action cannot be undone.

    Before deleting a site from Reblaze, you should change your DNS settings to reroute your traffic, and then wait for the changes to propagate. Otherwise, Reblaze will still be receiving traffic, but the traffic will no longer be passed along to your server.

    Reblaze REST API

    Reblaze REST API operations v2.x

    Below are listed the available operations under Reblaze's API. The listings include descriptions, and examples using curl over Bash under Ubuntu 18.

    The parameter $HOST refers to the console FQDN, while $KEY refers to the API key.

    Operations

    List Sites

    Lists all sites that are currently set up on the management console.

    Duplicate Site

    Duplicates/creates new site based on an existing site. You can choose to overwrite the upstream, or use the one that is currently set on the source site. The duplicate site will also create a referring CNAME based on the source site DNS settings.

    Remove Site

    Removes the site from the sites list. This operation also removes the referring CNAME.

    Set Names (domain aliases)

    Sets the list of domains that a site supports, and replaces any that existed previously. You can add up to 100 domains per site. A domain can also contain wildcards (e.g, *.domain.name).

    Add Names (domain aliases)

    Adds to the list of domains that a site supports, without replacing any that existed previously. You can have up to 100 domains per site. A domain can also contain wildcards (e.g, *.domain.name).

    Get Names (domain aliases)

    Returns the list of domains that a site supports.

    List Upstream

    Lists the upstream settings of a site.

    Set Upstream

    Modifies upstream settings. You can add an upstream, change its state, or modify the upstream address. The upstream is a one-line JSON encoded in base64, as shown below. Parameters are described below the code example.

    Encode the json with base64

    Set the Upstreams

    Add Certificate

    Adds a new certificate to the .

    Attach Certificate

    Attaches a domain to a SSL certificate.

    Detach Certificate

    Removes an attached domain from SSL.

    Publish Changes

    Understanding and Diagnosing Traffic Issues

    Leveraging Reblaze's traffic data

    Introduction

    A typical security solution provides information about the traffic that it has blocked. Contrary to this, Reblaze shows all of the traffic that it receives.

    This provides you with a powerful ability to dig into your traffic data and gain deep understanding about the nature and disposition of incoming requests.

    Metrics about blocked requests are very useful, but their usefulness is multiplied when you can compare them to passed requests. By showing all requests, Reblaze allows you to understand what "normal" requests look like. This gives you more insights into abnormal traffic.

    The discussion below assumes you have already read the best practices for using the Reblaze Query Box.

    That page is available here:

    Gaining General Insights

    Reblaze provides multiple ways to view your traffic. The discussion below will focus on the . Similar tactics can be applied when viewing different parts of the .

    Sometimes the View Log is used to answer a specific question about a request or a traffic source. At other times, it might be a more general exploration; for example, a beginning-of-the-day review of what happened over the last 24 hours.

    Let's discuss the latter scenario (a general exploration). Because the View Log shows all requests, it can be overwhelming. It's helpful to start by excluding requests that aren't as relevant to your current purpose. Examples:

    • Exclude passed requests, and show only the challenges or blocked requests: reason:challenge (to show only challenges), or is:blocked (to show only blocked requests).

    • Exclude health monitor checks: url:!/health.htm [the URL defined for the ]

    Eventually, you can filter the display down to a list of challenges or blocked requests that might produce some insights.

    From this point, you are looking for possible patterns, or unusual outliers, and considering possible actions to take. For example:

    • Are there a lot of requests for a Wordpress file, but your site does not use Wordpress? These are coming from malicious traffic sources. It might be useful to set up a , e.g. to Ban requestors who submit more than one request for that file in a three-minute period.

    • Is the same IP failing multiple challenges? It might be interesting to filter on that IP only, and go through all of its activity, to see what that traffic source was trying to do. (You can see that a challenge is being failed when the challenge itself appears in the logs, but it is not followed by a successful request by the IP for the same URI.)

    • Are there many blocked requests for the same URI, but from different traffic sources? This might be a False Positive alarm. See below for more on this.

    There is no set procedure for this process. Essentially, you are browsing the list of challenges or blocked requests, thinking about why you are seeing the entries there, and asking further questions.

    Translating Encoding in Requests

    Sometimes, request data will be encoded. Here's an example of a XSS attempt.

    The script in the request is HTTP encoded. To see it in plain text:

    • Double-click on the reason (the yellow label beginning with XSS).

    • The full contents of the label will appear in the query box, decoded.

    For some forms of encoding, more processing is required.

    • Reblaze does not perform all possible forms of decoding in the interface.

    • Double-encoded requests will only have their first level of encoding undone.

    In these cases, you can highlight the string in the query box, copy it, and run it through decoding tools. (For example, .)

    False Positive Alarms

    A “False Positive” (FP) alarm occurs when a security system misinterprets a non-malicious activity as an attack. These errors are a critical issue for cybersecurity.

    Although it might seem that FP errors do not necessarily have serious consequences, incorrect security alerts can lead to significant monetary losses. For example, an e-commerce site might incorrectly exclude real online shoppers. Or, it might reject "good" web crawlers, which would reduce its Internet visibility.

    FP diagnosis is often done when Reblaze is first deployed, before it has been fine-tuned for the customer's applications. It can also be done later, when you discover that certain requests are being blocked, but you do not understand why.

    Determining if a block is a FP

    When examining blocked request(s), it can be helpful to ask questions such as the following.

    Is Reblaze's configuration appropriate for the application?

    Sometimes an application will expect and accept inputs that Reblaze blocks by default. Example: the site might use a CMS which accepts HTML/Javascript POST requests. However, out of the box, Reblaze is often configured to block requests containing POST. Thus, Reblaze would need to be re-configured to match the application it is protecting. (In this example, it's a simple toggle switch in the WAF/IPS Policies interface.)

    Has the web application been updated, without Reblaze being updated as well?

    If the range of valid inputs has changed, but Reblaze was not re-configured, then FP errors can result.

    Is the block happening to multiple users?

    If a single IP is being blocked, but other requestors for the same URI are being allowed through, the block is more likely to be the correct response to this IP's request. This is especially true when the single IP has attempted other questionable activities.

    Conversely, if multiple requestors are being blocked, and they seem to be innocuous otherwise, this indicates the problem might be a FP.

    Is the block being done by Reblaze, or is it coming from elsewhere?

    There are some situations where a request is blocked even though Reblaze has no obvious reason to be blocking it. This can occur when Reblaze is not actually the entity making the decision.

    • The upstream server can reject requests. These requests can be displayed in the View Log withreason:by origin as the filter.

    • Reblaze can use ACLs with external sources of information, e.g. Spamhaus. Example: a request is blocked with a reason of acl-ip. The reason indicates a Reblaze ACL blocked the request because of its IP—but what if you didn't configure any ACLs to reject specific IPs? The answer is that there are several ACLs which rely on external lists of hostile IPs, such as Spamhaus DROP and eDrop.

    Is this a FP that resulted from incorrect user actions?

    Example: a web user visited a landing page, entered contact details into a form, and then tried to proceed to the next page. However, the request to proceed was blocked.

    This could be a FP due to "junk input." Perhaps the user entered a phone number of "1111111111" and it was rejected by the upstream application. Or perhaps the page itself autocompleted a field and inadvertently created junk input on its own.

    Is this a FP that resulted from faulty or too-restrictive parameters within Reblaze?

    If requestors are being blocked for violating rate limits, and the rate limits are very stringent, then perhaps the limits are too tight, and they need to be relaxed.

    Or, perhaps the block is the result of content filtering. This feature is powerful, and it is possible to mistakenly configure it to be too restrictive.

    Example: requests are being blocked because of a (reason:acl-custom-sig).

    Looking up the custom signature shows that its "Is matching with" condition is the following regex:

    (?i)(select|create|drop|\<|>|alert)\W

    The admin wrote this regex in order to identify SQL injection attempts (i.e, SELECT, CREATE, and DROP commands. Normally SQL and code injection attempts are blocked automatically by the WAF, but occasionally customers choose to disable this).

    Now let's examine one of the blocked requests in the View Log. Its Capture Vector is this:

    https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fexample.com%2Fpitbull-2012%3Frt%3Dstorefront%26rp%3Dpitbull%26rn%3DPitbull%26s%3Dhanes-S04V%26c%3DBlack%26p%3DFRONT&amp;media=&amp;description=

    This can be decoded with a tool such as . It now becomes this:

    https://www.pinterest.com/pin/create/button/?url=https://example.com/pitbull-2012?rt=storefront&rp=pitbull&rn=Pitbull&s=hanes-S04V&c=Black&p=FRONT&amp;media=&amp;description=

    Now let's see why the regex condition matched the request. On , it's possible to paste in regex and a string, and see if/where a match occurs.

    Notice the highlighted (in yellow) part of the string in the bottom textbox. This shows which part of the bottom string matches with the regex in the box above it.

    We see that the expression that was meant to identify an SQL command of CREATE, is also matching with the URL generated by a user who was trying to feature this site's product on Pinterest.

    This indicates that the regex should probably be modified, so that it only accomplishes its intended purpose. In this example, it could be modified as follows:

    (?i)(\sselect|\screate|\sdrop|\<|>|alert)\W

    This would require a space to be found before each potential SQL command, thus eliminating matches when those words are found in a URL.

    Summary of FP Detection

    As mentioned earlier, there is no set procedure for the process of identifying the underlying reasons why requests are blocked. It requires digging into the requests, gathering data, and asking questions.

    Hopefully the examples above are helpful in illustrating the necessary thought process, and some of the tools that are available.

    Args Analysis

    Analyzing the values of arguments within incoming requests

    The Arguments Analysis feature has two primary functions:

    1. Examining incoming requests for specific whitelisted characters in specific arguments (i.e., parameters in the URL query string or within the request body). Alphanumeric characters are allowed by default; all others must be allowed via a whitelist. When all characters in all arguments are found in the respective whitelists, the request is allowed, and no further inspection or filtering by the WAF is performed. If one or more characters are encountered that are not whitelisted, the request is either forwarded to the WAF for further inspection (when Inspect Unknown mode is enabled), or the request is denied (when Strict Whitelist mode is enabled).

    2. Automatically updating the whitelists: As non-whitelisted characters are encountered, they can be added to the argument whitelists, depending on the

    Creating an ACL Policy

    This sets the state for Health Monitoring purposes. (This does not specify if the server is up or down; it merely sets the current state as if Health Monitoring had just checked the server and returned that state.) If backup is true, then this value should be either "backup_active" or "backup_down". If backup is false, then this should be 0, or "active_down." ("active_down" means the server is supposed to be active, but is down instead.)

    down

    The state of the server.

    backup

    If true, Reblaze will treat this server as a backup. In other words, Reblaze will not attempt to communicate with it unless all the primary servers (i.e., those for which the Backup setting is not set) are unavailable.

    host

    The server host, as IP/FQDN.

    curl -s -XGET https://$HOST/api/$KEY/sites/list

    curl -s -XPOST https://$HOST/api/$KEY/sites/duplicate -d "canonicalname=src.example.com&newdomain=dst.example.com&upstreamhost=8.8.8.8"

    curl -s -XPOST https://$HOST/api/$KEY/sites/remove -d "canonical_name=src.example.com"

    curl https://$HOST/api/$KEY/sites/setnames --data "canonicalname=src.example.com&names=www.example.com,www2.example.com"

    curl https://$HOST/api/$KEY/sites/addnames --data "canonicalname=src.example.com&names=www.example.com,www2.example.com"

    curl https://$HOST/api/$KEY/sites/getnames?canonicalname=src.example.com

    curl https://$HOST/api/$KEY/sites/listupstream?canonicalname=www.example.com

    Argument

    Description

    http_port

    Upstream HTTP listening port

    https_port

    Upstream HTTPS listening port

    weight

    The relative weight of the upstream for load-balancing purposes within a farm. Reblaze distributes traffic with a round-robin sequence, according to these weights. For example, if two servers are both set to 'weight=1', they will receive equal amounts of traffic. If the first is set to 'weight=3' while the second is set to 'weight=1', the first server will receive three requests for every single request that the second server receives.

    fail_timeout

    When a server fails, this is the length of time that Reblaze will wait before trying to send traffic to it again. Example: "10s" indicates a fail timeout of 10 seconds. This field uses TTL Expression Syntax.

    max_fails

    The maximum number of failed communication attempts that are allowed for this server. Once this number of failures occurs, Reblaze will consider the server to be inactive. If other servers are available, Reblaze will failover the traffic to them. If this was the only server available, Reblaze will return an error to the client (either 504 Timeout, or 502 Bad Gateway).

    one_line_json_base64=$( echo $one_line_json | base64 )

    curl https://$HOST/api/$KEY/sites/setupstream --data "back_hosts=$one_line_json_base64&canonicalname=www.example.com"

    curl $API_URL$API_ADD --data-urlencode "cert_body=$SSL_CRT" --data-urlencode "private_key=$SSL_KEY" | awk '{print $4}' | cut -d '"' -f2

    curl $API_URL$API_ATTACH --data "canonicalname=$CANONICAL_NAME&sslid=$CERT_ID"

    curl $API_URL$API_DETACH --data "canonicalname=$CANONICAL_NAME"

    curl -XPOST $API_URL$API_PUBLISH

    SSL Management

    monitor_state

    one_line_json='[
      {
        "http_port": "80",
        "https_port": "443",
        "weight": "1",
        "fail_timeout": "10s",
        "monitor_state": "0",
        "down": false,
        "host": "1.2.3.4",
        "max_fails": "1",
        "backup": false
      },
      {
        "http_port": "80",
        "https_port": "443",
        "weight": "1",
        "fail_timeout": "10s",
        "monitor_state": "0",
        "down": false,
        "host": "4.3.2.1",
        "max_fails": "1",
        "backup": false
      }
    ]'

    When this box is checked, Reblaze will treat this server as a backup. In other words, Reblaze will not attempt to communicate with it unless all the primary servers (i.e., those for which this box is not checked) are unavailable.

    HTTP Port

    The HTTP port for the server.

    HTTPS Port

    The HTTPS port for the server.

    The time (in seconds) for Reblaze to wait, before treating a connection with the upstream server as having failed.

    Send Timeouts

    The time (in seconds) for Reblaze to wait, before treating an upstream data transfer attempt as having failed.

    Read Timeout

    The time (in seconds) for Reblaze to wait, before treating a downstream (toward Reblaze) data transfer attempt as having failed.

    Mask Headers

    Defines the response headers that Reblaze will mask (i.e., remove from the response), preventing them from being exposed to the client.

    For example: a default response header might include information about the server software (e.g. “Server: Microsoft-IIS/8.5”). This tells an attacker exactly which platform he is targeting, and so he can know which vulnerabilities to exploit. The Mask Headers entry defines all the headers to remove. It can contain multiple values, connected by pipes, with asterisks as wildcards.

    HTTP/HTTPS redirect lines

    Used to redirect all requests coming into these ports.

    Attribute

    Description

    Host

    The IP address for each server that Reblaze protects. This can be a normal web server, or it can be a load-balancer. Note that Reblaze also provides load-balancing capabilities in its own right, as seen in the next field.

    Weight

    The relative weight of each server for load-balancing purposes. Reblaze distributes traffic with a round-robin sequence, according to these weights. For example, if two servers are both set to 'weight=1', they will receive equal amounts of traffic. If the first is set to 'weight=3' while the second is set to 'weight=1', the first server will receive three visitors for every single visitor that the second server receives.

    Max Fails

    The maximum number of failed communication attempts that are allowed for this server. Once this number of failures occurs, Reblaze will consider the server to be inactive. If other servers are available, Reblaze will failover the traffic to them. If this was the only server available, Reblaze will return an error to the client (either 504 Timeout, or 502 Bad Gateway).

    Fail Timeout

    When a server fails, this is the length of time that Reblaze will wait before trying to send traffic to it again. Example: "10s" indicates a fail timeout of 10 seconds. This field uses TTL Expression Syntax.

    Is Down

    When this box is checked, Reblaze will not attempt to communicate with this server. This allows you to easily take a server offline for temporary maintenance or some other purpose.

    Setting

    Description

    Host Header

    Defines whether or not Reblaze will alter the Host field in the request header. The default value (“$host”) means that Reblaze will not change it; the server will receive the Host field that the client sent. A different string will replace the Host field in the header. For example, if you have multiple domains in your Reblaze planet, you might mandate that all incoming requests have a certain domain in the header, regardless of which domain the client is actually accessing.

    Client’s IP Header Name (Upstream Side)

    Defines the field name that contains the client's IP address. Reblaze is a proxy, and it passes incoming client requests to the upstream server. This means that the server will receive request headers which contain Reblaze's cloud IP address as the "client" IP. This is not useful; almost always, the server will need the IP of the actual client instead. To facilitate server logging, analytics, and so on, Reblaze adds the IP address of the originating client to the headers that it sends to the server. The Client’s IP Header Name (Upstream Side) entry allows you to define the name of the field within which this information is passed.

    Client's IP Header Name (Client Side)

    Defines one or more header fields within which Reblaze can find the client's IP address. When Reblaze receives an incoming request from a client, the request will have passed through a load balancer on its way to Reblaze. This means that the header will contain the client's IP and the load-balancer IP. These two IPs are usually found within the X-Forwarded-For field, which is the default entry for Client's IP Header Name (Client Side). In this situation, Reblaze knows how to extract the client IP from this field. In other situations, a different field name might be necessary. For example, if the Reblaze customer is using Akamai CDN, the incoming request will have the client IP in a field named True-Client-IP instead.

    Domain Names

    The list of domains that Reblaze will protect.

    SSL Offload

    Reblaze can send web traffic via HTTP instead of HTTPS. This improves server performance, because the server no longer needs to decrypt the traffic. Obviously, this decreases security, and so this setting should usually be disabled. However, under certain circumstances (e.g., when a VPN is established between Reblaze and the servers), it can make sense to enable this.

    Field name

    Description

    RBZ-GEO-Country

    Client's country

    RBZ-GEO-CountryCode

    Abbreviation of client's country

    RBZ-ORG

    Client's organization

    RBZ-REGION

    Client's region

    Log file Parameter

    Description

    Challenge Domain

    Defines the domain you want Reblaze to use when setting a challenge cookie. The default value (“$host”) tells Reblaze to use the domain being accessed by the user.

    Private Args

    Defines the argument names which contain sensitive data, and therefore will not be saved in log files. Common examples of this are payment details and credit card numbers.

    the ability to delete the selected site
    Proxy Settings - Setting Upstream Servers
    Log File Parameters
    The Delete Site button with its three checkboxes.

    Is Backup

    Connect Timeout

    Exclude requests being rejected by the origin
    (i.e., the upstream server):
    reason:!by origin
  • Exclude requests from a banned IP: ip:!1.2.3.4 . Another approach: reason:!autoban/etc.

  • Exclude requests that are obviously invalid, e.g. those with unrecognized host headers.

  • Using the Reblaze Query Box
    View Log
    Dashboard
    Health Monitor
    Dynamic Rule
    http://0xcc.net/jsescape/
    Custom Signature
    http://0xcc.net/jsescape/
    https://www.debuggex.com/
    IPs have been censored for privacy reasons
    The result from deguggex.com
    Adaptive Mode
    selected.

    The first function is often used in complicated sites; it offers a positive-security approach for analyzing traffic. Arg Analysis makes it easy to whitelist values that should be allowed in various request parameters. Another possible use is to bypass specific parameters that are too long for the WAF to efficiently process, or where WAF inspection is not relevant.

    The second function (i.e., automatically updating whitelists) is less applicable for most deployments, and in most situations, is not encouraged. If Args Analysis is used incorrectly, large whitelists can be inadvertently built that will match most or all incoming requests. Thus, most or all incoming requests will bypass the WAF's traffic inspection and be sent directly upstream. In effect, this will disable Reblaze's traffic scrubbing. Therefore, we discourage the use of this function unless you are sure you need it, and you fully understand how it works.

    For both functions, an argument list must be built.

    Building an Argument List

    Initially, this section will look like this:

    Note the pulldown list on the right, which specifies the domain that you are currently administering.

    Automatic Argument Learning

    Each time the system performs an analysis, arguments that were not previously known will be learned and added to the argument list, automatically (even in Supervised mode). The new character whitelists will consist of those characters that were encountered with each argument.

    This can have some important and potentially nonintuitive consequences. See the warning below in the discussion of conflicted arguments.

    Manual Argument Addition

    In the top right menu you will see this button: . Clicking on it will open the main menu:

    Upload arguments file: The system allows you to upload a HAR file (that can be recorded using the browser’s dev tool). From the HAR file, the system will learn all the arguments and their values.

    Creating an argument manually: You can also create individual arguments by selecting "New Argument," after which this dialog will appear:

    Field Name

    Description

    Argument Name

    The parameter in the query string or request body

    Argument Characters

    A regex pattern to match against the values specified for the Argument Name. This is a whitelist of allowable characters.

    Max Length

    Maximum allowed length of the argument, in characters

    When an argument is encountered in a query string or request body, its Argument Name is sought within the Args list for the relevant domain. If not found, it is added to the list, as noted previously.

    If found, its value is analyzed. If each character within it is found in its corresponding Argument Characters, then this argument is passed.

    If every argument in a query string or request body is passed, then the entire request is passed. It is sent to the origin (the upstream server), without being subjected to further inspection or filtering by Reblaze.

    if the request is not passed, further processing occurs. See Handling Requests with Unmatched Characters, below.

    Argument List Administration

    In addition to the "New Argument" and "Upload Arguments File" options, the pulldown menu also offers additional capabilities.

    Download as JSON - When this option is selected, the system will start a browser download of a JSON file that contains all the arguments and their values.

    Delete App Args - Removes all the arguments in the current domain.

    Analyze Now - Manually triggers the analysis process (described below), starting from the previous day.

    Learning Resources - Displays the list of all ACL Policies defined in your planet, except for the default ones supplied by Reblaze. Example:

    By default, Args Analysis learns from every request. The Learning Resources feature allows you to filter this, so that it only learns from specific requests.

    When you select an ACL Policy from this list, Args Analysis will be limited to the requests which match that Policy. (If the ACL Policy happens to be empty, then the most recent 100,000 requests will be analyzed, or the most recent 24 hours' worth of data, whichever limit is reached first.)

    If the selected ACL Policy has an Operation of Allow, then Args Analysis will analyze all the requests that were not blocked by the WAF or other ACL Policies. If the Policy is instead set to Bypass, then Args Analysis will also learn from blocked requests. (This can be useful when in Report-Only mode).

    Show Regex/Characters - Toggle the display of all values on this page in regex, and then back into characters. Note when showing regex, alphanumeric characters are also explicitly included in the whitelist. In character mode, the Reblaze interface does not display these; the user should understand that all alphanumerics are whitelisted by default.

    Refresh and Discard Changes - This allows you to discard all the changes you made to the arguments table.

    Save Changes - When making any changes to the arguments table, you must save them afterward. This includes any modified or accepted conflicts in the system (more on these below).

    Once Argument Lists Are Built

    In daily operation, Reblaze analyzes arguments in incoming requests. When they match the character whitelists, the requests are allowed, as described above.

    Additionally, Reblaze goes through the traffic logs, analyzing and mapping all arguments received since the last analysis. This occurs every night around 3am UTC.

    The system creates a list of argument characters that were encountered in requests, but were not in the whitelists.

    Then in this Args Analysis section of the interface, Reblaze displays the current whitelists as follows:

    • Unchanged Arguments: This is at the bottom of the screen. It shows all the arguments for which Reblaze did not encounter any new (i.e., non-whitelisted) characters.

    • Conflicted Arguments: This shows the results of the most recent analysis: all the arguments for which Reblaze encountered characters that were not in the whitelists.

    Here you have the opportunity to update the whitelists, accepting some or all of the proposed updates listed in the Conflicted Arguments section.

    The manner in which these updates are accepted or rejected will depend on the New Args Adaptive Mode.

    New Args Adaptive Mode

    There are four possible modes: Automatic, Supervised, Locked, and Preview.

    Automatic

    The system will discover and deploy new args without any human intervention. Everything occurs automatically.

    Supervised

    The system will discover new args, but it will not deploy them. Instead, it will present them as Conflicted Arguments, and await approval or rejection by a human admin.

    Locked

    The system will not discover any new args. All configuration changes must be done manually.

    Preview

    The system will discover new args, but this is for informative purposes only. Traffic processing is not affected.

    In the interface, there is a help section that lists the first mode as Automatic (Recommended). This is deprecated; we no longer recommend Automatic mode for most customers. As mentioned previously, this introduces the risk that erroneously large whitelists will be built. For most customer deployments, we now recommend Supervised or Locked mode.

    Handling Requests with Unmatched Characters

    For each of the first 3 operation modes (Automatic, Supervised, and Locked), another setting is available:

    This defines Reblaze's behavior when non-whitelisted characters are encountered for known args.

    Inspect Unknown

    A request that contains an argument that contains one or more non-whitelisted characters will be forwarded to the WAF for inspection and potential filtering.

    Strict Whitelist

    A request that contains an argument that contains one or more non-whitelisted characters will be blocked.

    After the request is processed, this argument is added to the list of Conflicted Arguments.

    Conflicted Arguments

    When new (non-whitelisted) characters are encountered, the arguments in which they were found are listed in the interface as Conflicted Arguments. Reblaze suggests updates (the New Values) for each argument's whitelist, and awaits the user's decisions.

    Every time an analysis is performed, the previous list of Conflicted Arguments is discarded, and a new one generated. Thus, the interface displays only the Conflicted Arguments that were found in the most recent analysis.

    Sometimes, argument names contain a designation for an ampersand ("amp;"), while others do not. This results from differences in decoding URLs versus arguments found in the body. It doesn't affect anything within the interface or its usage.

    Each Conflicted Argument contains a set of New Values. These are updates that Reblaze is proposing to make. There are three available actions:

    • Deleting

    • Modifying

    • Accepting

    Deleting - selecting the Trash icon will remove the Conflicted Argument from the list. This can produce unintended consequences: see warning below.

    Modifying - You can edit the New Values. For the character field, only valid regex will be accepted.

    Accepting - Clicking on the green Accept Conflicts button will accept all the Conflicted Arguments, updating the args list to the New Values.

    It might appear that the "Delete" command (the trash can button) is merely a method of resolving the Conflict by rejecting the New Values and retaining the Current Values. This is incorrect.

    When an argument is deleted from the list of Conflicted Arguments, this does not remove the conflict, it removes the argument. This has two consequences, both of which might not be intended by the user:

    1. Until the next analysis is run, this argument will be unknown to Reblaze. Therefore, every incoming request that contains it will either be sent to the WAF for further inspection (when Inspect Unknown mode is enabled), or it will be denied (when Strict Whitelist mode is enabled).

    2. When the next analysis is performed, Reblaze will learn the "new" argument, and create a new whitelist containing whatever characters were encountered within it. It's possible that this whitelist will contain some or all of the characters that previously caused that argument to appear as Conflicted.

    The second point is especially important. If the user thinks that "Delete" will reject the New Values, the opposite can actually occur. When the argument is deleted and subsequently re-added, its character whitelist might automatically contain the same characters that the user was trying to reject previously.

    The correct way of resolving a Conflict while retaining the same whitelist is to edit the New Values to match the Current Values, before selecting Accept Conflicts.

    Or, the user can do nothing, and merely leave the Conflict unresolved in the interface. This will leave the argument's whitelist unchanged.

    Unchanged Arguments

    At the bottom of the screen is a list of Unchanged Arguments.

    This shows the arguments for which Reblaze has not encountered any non-whitelisted characters.

    You can edit these arguments if desired, or even delete them (by clicking on the trash icon to the right—but see the warning above about the potential consequences of deleting arguments).

    Example of setting new Notification Group
    Planet Overview - Recap of Active Web Applications

    Security Profiles

    Location-based security settings, and Report Only mode

    In this section, you can:

    • Define different locations and/or resources within your planet. For each one, you can:

      • Assign a security Profile. Profiles are defined elsewhere in the interface: this section is where you assign them and make them active for different locations within your planet.

      • (optional).

      • (optional).

    • (usually used only for testing).

    Managing Locations

    The top right part of the screen shows the site that is currently being displayed for editing.

    On the main part of this page, the various defined sections of the selected site are listed. The Default entry is always present.

    Each entry is defined as follows:

    To add a new Location, fill out the blank entry at the bottom and click Add. To delete a Location, click the Remove link next to its name.

    Assigning a Security Profile to a Location

    Once you have defined a Location, you can assign a Security Profile to it.

    Within each Location entry, the Profile field is autocomplete. Typing the first few characters of a Profile name will populate the list appropriately, then select the desired Profile.

    Setting Rate Limits for a Location

    Once you have defined a Location and assigned a Profile to it, you can also (if desired) configure rate limits and content filtering for it.

    This is synchronized protection: you can limit the request rate, according to any desired parameter, per URL or section, across the entire cluster, while keeping all the proxy servers in sync.

    If you need to whitelist an IP, Country, or ASN from being subject to this rate limiting, see .

    At the end of the Location's entry, click on "More" to open the Location Settings dialog.

    This displays whatever limits have been defined for this location, and another line to add a new limit.

    Settings you make in this dialog will only apply to the location associated with the "More" button that opened the dialog.

    Each limit defines the number of requests allowed for a specific time period, defined in the TTL field. When a request is received that matches one or more Keys, an internal TTL timer starts, and Reblaze begins counting. If the Rate Limit is reached before the TTL period has ended, subsequent requests are blocked until the current TTL period ends.

    Here are the possible attributes:

    Key Composition Values

    When counting the number of requests, Reblaze searches for the value of a Key. Each value has its own cumulative count.

    Combining Keys into one rate limit (by entering their names together, separated by a space) allows for more granularity. Examples:

    • remote_addr : Each IP will have its incoming requests counted, and evaluated separately against the Rate Limit.

    • remote_addr uri Each combination of IP and URI will be counted, and evaluated separately against the Rate Limit. In other words, Reblaze will count the requests from each IP for each URI, maintaining separate cumulative counts for each combination. So, if a specific IP asks for multiple pages within a site, it will be allowed; but if it asks for the same page too many times, it will be blocked.

    Here are the possible values for Key Composition.

    When using an argument in a rate limit (as mentioned in the arg_ArgName description above), the argument becomes mandatory. Any request received without the argument will be blocked.

    Advanced String Manipulation in the Key Composition

    You can use Lua to manipulate strings in the Key Composition field. Use the tostring() function to return a string into the field.

    Usually there will also be a substring operation. This should come after the tostring(). Example: tostring():sub(1, 20)

    Inside the tostring(), there must be a valid NGINX variable, usually from ngx.var or ngx.ctx. The full variables list can be found .

    Examples:

    • Substring - Suffix last 5 char : tostring(ngx.ctx.args_table['foo']):sub(-,5)

    • Substring - Prefix from 1st char to 5th char: tostring(ngx.ctx.args_table['foo']):sub(1,5)

    If you need assistance with this feature, please feel free to .

    Content Filtering for a Location

    For each Location, along with defining rate limits, you can also set up content filtering.

    This is a powerful feature that allows you to require, or deny, exact values for specific headers, cookies, and arguments, based on regex matching.

    Content filter example

    The Filters do not have user-assigned descriptions or names (the Name field has a different meaning, described below) When a request is blocked based on the Content Filter, the request appears in the logs with a custom description constructed from the Filter's parameters.

    To add a new Filter, enter values into the empty row in the list and click Add. Existing Filters can be deleted by clicking Remove.

    When you are finished configuring rate limits and content filtering for a location, click Done. After you have edited all Locations, .

    Enabling Report-Only Mode

    At the bottom of the screen, the Report Only switch allows you to test your Reblaze configuration. Enabling this setting means that Reblaze will not block any traffic for this site/application; it will merely report on what it would have blocked otherwise. This is useful during a new deployment, since you can fine-tune and optimize your settings while avoiding false positives.

    This setting applies to the site/application currently being displayed. It is the same setting that is available for this site/application on the page. See the warning there about this setting.

    The full original request line (including the query string).

    Custom

    See below for explanation: .

    Item

    Description

    Name

    A descriptive label that you choose.

    Matching Path

    Defines a Location, i.e. everything within the planet that matches this Path. This entry uses Pattern Matching Syntax.

    Profile

    The Security Profile assigned to this Location.

    More

    Configures rate limiting for this location, explained below.

    Field

    Description

    Name

    A name that will describe the limit. (This will be shown in the View Logs for any requests that are blocked by this limit.)

    Rate Limit

    Sets the threshold for the requests. This is the number of requests allowed per the time period defined in the TTL field.

    Key Composition

    The value for which Reblaze searches in a request. Explained in Key Composition Values below.

    TTL

    The time period in seconds until the request count will be reset.

    Value

    Description

    remote_addr

    The request's source IP address.

    request_uri

    The request URI.

    http_HeaderName

    Arbitrary request header field; the last part of a variable name is the field name converted to lowercase with dashes replaced by underscores.

    arg_ArgName

    The name of an argument in the request. (See warning below.)

    cookie_CookieName

    The name of a cookie.

    Parameter

    Comments

    Action

    Required to block if a match from the specified Pattern is not found. Deny to block if a match is found.

    Data Item

    The source of content to examine. Options: Argument, Header, Cookie.

    Name

    The name of the Data Item from which to get the content.

    Pattern

    The matching conditions, specified as regex.

    Configure rate limiting
    Configure content filtering
    Set a site/application into Report Only mode
    Whitelisting and Creating Exemptions from Rate Limits
    here
    contact support
    Save Changes and Publish Changes
    Planet Overview
    Defined Locations within the planet
    The Locations Setting dialog
    Prefix example
    Content Filtering example

    request

    Dynamic Rules

    Security rules with time-based thresholds

    Overview

    The Dynamic Rules section defines security rulesets that evaluate various criteria over time. When requestors commit activities that exceed defined thresholds, they can be banned, or merely reported on within the interface.

    Note that Dynamic Rules do not block requests; they ban the sources of requests. Individual incoming requests are blocked for reasons defined elsewhere, e.g., in ACL Policies.

    When requests are blocked, or display other hostile characteristics, Dynamic Rules are used to monitor their sources. If the sources continue their hostile activities, they can be banned. A ban means that all subsequent requests from that source will be blocked for a configured length of time.

    The interface displays the Dynamic Rules that are currently defined. At the top are the default rules supplied by Reblaze, marked with the Reblaze icon.

    The default rules from Reblaze are useful for most customer deployments. If you wish to edit them, one approach is to preserve the originals by duplicating them, deactivating them, and then editing and using the copies.

    Dynamic Rules Administration

    To edit a rule, click on its name, and its parameters will appear below.

    To disable or enable a rule, click on the Activation trigger:

    To delete a rule, click on the small button at the end of its listing: That button will display options to Delete this rule, or to Duplicate it. (Sometimes, it is faster to Duplicate a rule and edit the copy than to create a new one from scratch.)

    Dynamic Rules section menu

    At the top right screen, this larger button is shown : . Clicking on it will cause the section menu to appear:

    It provides these abilities:

    The interface also provides a search box, which can be used to find a rule according to a string within its name.

    Creating Dynamic Rules

    To create a Dynamic Rule, click on "Add new rule" in the Dynamic Rules section menu and provide the Rule Name.

    Newly-created Rules are always disabled, and must be enabled before they will be active.

    Dynamic Rule settings

    Each Dynamic Rule contains the following parameters:

    Note that it is theoretically possible to construct a Dynamic Rule so that a specific request can match both the Monitor and Ignored conditions simultaneously. (This usually indicates a mistake in constructing the rule.) If a request ever matches both condition sets at the same time, nothing happens.

    Matching Conditions for Dynamic Rules

    The monitor list includes many useful arguments for identifying relevant traffic.

    Some of the matches rely on the results of . For example, an Anonymizer value of "true" will match a request that was denied by the "Deny Anonymous Proxies" ACL Policy.

    Scrolling down the list will reveal additional fields. These tend to be used by more advanced users.

    The video below sums it all up:

    Defining Block Reasons

    The Block Reason field allows you to construct a Dynamic Rule that will be triggered when requests are blocked for specific reasons. When this is included in a Rule, Reblaze will compare its value to the reasons that a request was blocked.

    The comparison is based on a "contains" substring search, and is case-insensitive. Therefore, when a request is blocked for Over-capacity, Block Reason values of capacity, over-capacity, and Over-capacity will all match.

    There can be multiple Block Reasons OR'd together, e.g.: autoban|over-capacity.

    There are several ways to obtain values for constructing Block Reasons. The first is the list of standard (example: Autoban/etc.). Other possible values are custom, created dynamically by Reblaze as the result of user configuration. Example: Rate limit 2/1s .

    In both cases, recent values can be obtained from individual events in the , or from the Signatures tab on the page.

    How to Test Dynamic Rules

    After creating or modifying Dynamic Rules, it is recommended that you test them to ensure that they are behaving as expected.

    You can safely test Dynamic Rules against actual traffic data, without actually banning any traffic sources. This is done by running the rules in Simulated Ban mode.

    There are two ways to do this: testing all rules globally (most useful when setting up a new planet), or testing individual rules (useful in daily operation).

    Testing all rules globally

    Select Activate global simulation mode from the section menu, which will change all Dynamic Rules that were set to Ban to Simulated Ban.

    This means that requestors who violate Dynamic Rules will not be banned; instead, they will appear within the in the section. You can observe the requestors who appear there, and evaluate if the Dynamic Rules are identifying the requestors you expected.

    Note that during this process, all Dynamic Rule traffic scrubbing will be disabled. Therefore, it is most useful during the initial setup of a new planet.

    Testing individual rules

    To test individual rules, set each one to Simulated Ban mode. Save and Publish your changes. Then from the section menu, choose Test All Rules.

    This will evaluate the current set of Dynamic Rules against the most recent traffic data. Example: a rule with a Period of five minutes will be evaluated against the requests that were received in the last five minutes.

    You can compare each rule's performance with what you expected. Once you are satisfied with a rule's performance, you can make it active by changing its mode to Ban.

    Note that you can accomplish a similar result by observing the Simulated Ban list in the Quarantined section. However, testing is faster using Test All Rules: you get the results immediately, instead of having to wait for a full Period to see how a Rule performed.

    Examples of Dynamic Rules

    Rate-limiting access to a specific URL

    In the example below, this Dynamic Rule limits the number of requests that are sent to /login from a specific IP.

    Limiting could also be done globally for all IPs by changing the Target to "Planet."

    Using cookies to ban an attacker who is switching IPs

    By using a cookie threshold, it is possible to eliminate Denial Of Service attacks originating from the same session, even if the attacker is changing IP addresses. In the screenshot below, requests are counted toward the threshold if they have the same value for the "rbzid" cookie. Requests are not counted toward the threshold if they were Bypassed by an ACL, or if the requestor has already been banned.

    Rate-limiting specific HTTP requests

    This rule blocks HTTP GET requests from a specific IP for 10 hours, under these conditions:

    • The IP has submitted more than 3600 GET requests in the previous three minutes.

    • The requests were not for a static file (.png , .jpg, .ico, .gif).

    • The requests were not already blocked

    • The requests were not from IP 1.2.3.4.

    Discards all changes that you have made, and refreshes the display to show the current settings within the system.

    Save Changes

    Saves all changes that have been made. Note that this makes your changes go live immediately. Unlike other administrative activities within Reblaze, when editing Dynamic Rules it is not necessary to Publish Changes after saving them.

    The time period within which requests will be counted, and if the Threshold is exceeded, will trigger the defined action. Note that each Period should be 3 minutes or longer. (A few example screenshots in this Manual have shorter periods. These were taken from a demo site, and are for illustration only. Periods in a production deployment should be 3 minutes or more.)

    TTL

    Time To Live: If the violator is banned, this is the length of the ban. If the violation is merely reported (as in Report Only mode), this is the amount of time before a new report can be issued on this violation.

    Monitor

    A list of matching conditions. If a request matches all the conditions in this list, it will be included in the aggregated count toward a potential violation. Multiple conditions are ANDed together. See further discussion below.

    Ignore

    A list of matching conditions. If a request matches any of the conditions on this list, it will be ignored, and will not be included in the count toward a potential violation. Multiple conditions are ORed together. See further discussion below.

    The abbreviation of the country. Example: "US" for "United States."

    Country

    Country name.

    Host Name

    Any name that was configured as Host.

    Reblazer ID

    ID of the Reblaze proxy

    Anonymizer

    Boolean value (True/False)

    Cloud

    Boolean value (True/False)

    Human

    Boolean value (True/False)

    Proxy

    Boolean value (True/False). [This is different than the Anonymizer field above. It uses an internal value of Reblaze that is not otherwise exposed in the interface.]

    TOR

    Boolean value (True/False)

    VPN

    Boolean Value (True/False)

    Method

    HTTP method type (e.g., GET, POST, etc.).

    ASN

    The ASN Value.

    Referer

    The Referer value.

    IP

    The IP Address.

    Complete URL

    URL with the query string.

    URI

    URI

    Request Body

    Text boxes will appear for "Name" and "Value" parameters. Both can be regex.

    Request Headers

    Text boxes will appear for "Name" and "Value" parameters. Both can be regex.

    Response Status

    HTTP response code (200, 404 etc.).

    User Agent

    The request's user agent name.

    Name

    Description

    Add new rule

    Creates a new Dynamic Rule.

    Activate global simulation mode

    The rules currently set to "Ban" will be changed to “Simulated Ban”. This is useful for testing. See also How to Test Dynamic Rules, below.

    Test All Rules

    Explained in How to Test Dynamic Rules, below.

    Set new TTL globally

    Sets TTL (described below in Dynamic Rules settings) for all Dynamic Rules.

    Help

    Brings up a help screen describing the settings for a rule. See also Dynamic Rules settings, below.

    Field Name

    Description

    Description

    Your description of the rule. This is useful for internal purposes, e.g., noting why a particular rule is necessary.

    Target

    Defines the source of aggregated requests which will be evaluated, and the recipient of the specified action if a violation occurs. The most commonly-used target is IP. Other options are Cookies, Country, ASN, Planet, Request Body, Request Header, or User Agent. ("Planet" means "all requests." This is used in the Global Request Count default rule.)

    Alert

    If a notification should be sent when a violation of this rule occurs.

    Mode

    Defines the action that will happen when a requestor exceeds the specified Threshold during the Period.

    Ban will block the violator (available for IP, Cookie, Request Body, Request Header, Country, and ASN), and will add the violator to the Quarantined Banlist.

    Simulated Ban does not actively ban the violator; it only adds the violator to the Quarantined Simulation Banlist.

    Report Only does not actively ban the violator. If this rule has been included within a Notification Group, then the defined notifications will be sent.

    Threshold

    The maximum allowable number of http/s requests by the Target in the specified Period.

    Field Name

    Description

    Block Reason

    The reason for the traffic being blocked. See Defining Block Reasons below for a full explanation.

    Blocked

    True if the request was blocked, otherwise False.

    Cookie

    An exact match of the cookie name and value.

    Domain Name

    Which domain names should be monitored.

    File Extension

    Which file extensions should be monitored. Example: (exe|jpg|tar)

    ACL Policies
    Reblaze WAF signatures
    View Log
    Dashboard
    Simulation Ban List
    Quarantined
    Dynamic Rules Section
    Search example for "Block"
    Newly-created Dynamic Rule, disabled by default
    The Signatures tab shows the Block Reasons for recent requests.
    Rate-limiting access to a URL
    Banning based on a cookie
    Rate limiting specific HTTP methods

    Refresh and discard changes

    Period

    City

    Advanced String Manipulation in the Key Composition

    Access log-structure

    Log line structure is as follows, note that some fields are quoted and some are not.if we will add more fields in the future, they'll be added on the right side.

    Field names:

    timestamp

    Timestamp

    status

    Response Status code sent to client

    bytes_sent

    Number of bytes sent in the response

    method

    HTTP Request method

    request

    The complete URL (including the query string)

    proto_version

    Protocol Version (1.0/1.1)

    blocked

    Was it blocked by Reblaze?

    is_human

    Was it marked as human?

    block_reason

    If blocked / Exceptionally passed - for what reason

    geoip_country_name

    Country Name

    geoip_country_code

    Country Code

    request_id

    Unique ID of this request within Reblaze

    captured_vector

    The vector attack we captured

    request_time

    The time it took our system to process the request

    upstream_addr

    The address of the upstream server(s) reblaze approached

    upstream_response_time

    The time Reblaze was waiting to the upstream server(s) to return the response

    domain_name

    The domain name of the server group in reblaze

    host

    The Host header of this request (same as domain name, or one of its aliases)

    referer

    The HTTP Referer header

    http_user_agent

    HTTP User Agent

    http_cookie

    The Cookie header string

    request_headers

    Request headers encoded in base6

    organization

    The complete organisation name owning the IP address

    upstream_status

    The status code returned by the upstream server

    uri

    The request URI without query part

    hostname

    The Proxy (Reblaze) server that process the request.

    is_cloud

    is_tor

    is_vpn

    is_anonymizer

    is_proxy

    rbzsessionid

    Reblaze Session ID

    request_length

    The upload request size in bytes

    sent_http_cache_control

    The Cache-Control header we sent as part of the response

    sent_http_expires

    The Expires header we sent as part of the response

    cookie_rbzid

    Hash of the RBZID Cookie

    sent_http_content_type

    The MIME - Type (Content-Type response header)

    browsersig

    A unique signature of the visiting browser (future use)

    ssl_protocol

    SSL Protocol Version

    ssl_cipher

    Selected SSL Cipher

    cache_status

    Upstream Cache Status

    anything_else

    Future use place holder

    Example line (sliced into smaller parts):

    Headers are base64 encoded JSON string contains headers names and values.

    if we decided to block a request, either by ACL, or WAF/IPS it will be marked as "1" in the blocked field,

    as well there will be a description at "block_reason" field.

    Decoding headers filed shall result with the following:

    Note that within the headers, we add an entry for the post_request_body.

    Python Parser Example:

    Field

    Description

    remote_addr

    Client IP

    15.14.13.12 1465461803.223 200 3158 \
    "POST /payment_service_api/get_all_payment_methods.json HTTP/1.1" "0" "0" \
    "" "Singapore" "SG" "foobar-rbzr131343635343631383032ce9df9a6a90fa3bc" "-" \
    0.729 "8.12.40.38:443" "0.418" "secure.foobar.com" "secure.foobar.com" "-" \
    "REEBONZ 5.2.2 rv:3 (iPhone; iPhone OS 9.3.2; en_SG)" "-" \
    "eyJob3N0Ijoic2VjdXJlLnJlZWJvbnouY29tIiwieC1uZXdyZWxpYy1pZCI6IlVnWURVRkJBQ1FzSlZGbGFCUT09IiwiY29udGVudC10eXBlIjoiYXBwbGljYXRpb25cL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGYtOCIsImNvbm5lY3Rpb24iOiJjbG9zZSIsImNvbnRlbnQtbGVuZ3RoIjoiMTQ0IiwiYWNjZXB0LWVuY29kaW5nIjoiZ3ppcCIsInBvc3RfcmVxdWVzdF9ib2R5Ijp7ImNvdW50cnlfY29kZSI6IlNHIiwic2lnbmF0dXJlIjoiMGE2YzQwZTI3ZGRmMGYyNjcxMzM2YjhiYTljYjVmYzIiLCJkYXRldGltZSI6IjIwMTYtMDYtMDkgMTY6NDM6MjEiLCJkcnVwYWxfdWlkIjoiNTI0NTgxNiIsInBsYXRmb3JtX25hbWUiOiJNb2JpbGUiLCJidV9jb2RlIjoiMDEifSwidXNlci1hZ2VudCI6IlJFRUJPTlogNS4yLjIgcnY6MyAoaVBob25lOyBpUGhvbmUgT1MgOS4zLjI7IGVuX1NHKSJ9" \
    "AS4773 MobileOne Ltd. Mobile/Internet Service Provider Singapore" "200" \
    "/payment_service_api/get_all_payment_methods.json" "foobar-rbzr1" "0" "0" "0" "0" \
    "0" "83d90abb12608623ea23442273249146" "466" "max-age=0, private, must-revalidate" \
    "-" "-" "text/html; charset=utf-8" "-" "TLSv1.2" "ECDHE-RSA-AES128-GCM-SHA256" "-"
    {
      "host": "secure.reebonz.com",
      "x-newrelic-id": "UgYDUFBACQsJVFlaBQ==",
      "content-type": "application/x-www-form-urlencoded; charset=utf-8",
      "connection": "close",
      "content-length": "144",
      "accept-encoding": "gzip",
      "post_request_body": {
        "country_code": "SG",
        "signature": "0a6c40e27ddf0f2671336b8ba9cb5fc2",
        "datetime": "2016-06-09 16:43:21",
        "drupal_uid": "5245816",
        "platform_name": "Mobile",
        "bu_code": "01"
      },
      "user-agent": "FOOBAR 5.2.2 rv:3 (iPhone; iPhone OS 9.3.2; en_SG)"
    }
    
    import re
    access_line_rec = re.compile(''' # -- line by line
        (\S+)\s         # remote_addr
        (\S+)\s         # timestamp
        (\S+)\s         # status
        (\S+)\s         # bytes_sent
        "(\S+)\s        # METHOD
        (.+)            # request
        \s(HTTP/\d\.\d)"\s     # PROTOCOL/Version
        "([^"]*)"\s     # blocked
        "([^"]*)"\s     # is_human
        "([^"]*)"\s     # block_reason
        "([^"]*)"\s     # geoip_city_country_name
        "([^"]*)"\s     # geoip_city
        "([^"]*)"\s     # request_id
        "([^"]*)"\s     # captured_vector
        (\S+)\s         # request_time
        "([^"]*)"\s     # upstream_addr
        "([^"]*)"\s     # upstream_response_time
        "([^"]*)"\s     # canonical_domain_name
        "([^"]*)"\s     # http_host
        "([^"]*)"\s     # referer
        "([^"]*)"\s     # user-agent
        "([^"]*)"\s     # cookie
        "([^"]*)"\s     # headers
        "([^"]*)"\s     # organization
        "([^"]*)"\s     # upstream_status
        "([^"]*)"\s     # uri
        "([^"]*)"\s     # hostname
        "([^"]*)"\s     # is_cloud
        "([^"]*)"\s     # is_tor
        "([^"]*)"\s     # is_vpn
        "([^"]*)"\s     # is_anonymizer
        "([^"]*)"\s     # is_proxy
        "([^"]*)"\s     # rbzsessionid
        "([^"]*)"\s     # request_length
        "([^"]*)"\s     # sent_http_cache_control
        "([^"]*)"\s     # sent_http_expires
        "([^"]*)"\s     # cookie_rbzid
        "([^"]*)"\s     # sent_http_content_type
        "([^"]*)"\s     # browsersig
        "([^"]*)"\s     # ssl_protocol
        "([^"]*)"\s     # ssl_cipher
        "([^"]*)"       # cache_status
        (.*)''', re.X)  # anything else
    
    names = ("remote_addr","timestamp","status",
        "bytes_sent","method","request","proto_version", 
        "blocked","is_human","block_reason",
        "geoip_city_country_name","geoip_city",
        "request_id", "captured_vector", "request_time", "upstream_addr", 
        "upstream_response_time", "domain_name", "host", "referer", 
        "user_agent", "cookie", "request_headers", "organization", "upstream_status", 
        "uri", "hostname", "is_cloud", "is_tor", "is_vpn", "is_anonymizer", 
        "is_proxy", "rbzsessionid", "request_length", "sent_http_cache_control", 
        "sent_http_expires", "cookie_rbzid", "sent_http_content_type", "browsersig", 
        "ssl_protocol", "ssl_cipher", "cache_status", "anything_else")
    
    def parse_line(line, as_dict=False):
       rmatch = access_line_rec.match(line)
       if rmatch:
           g_match = rmatch.groups()
           if not as_dict:
               return g_match
           else:
               # to do, check if using re-group names would be faster
               return dict(zip(names, g_match))
       else:
           return None