Skip to content

Commit

Permalink
[EDU-4603] feature: add WAF rules for specific cookie guide (#1178)
Browse files Browse the repository at this point in the history
* feature: add guide - EN.

* feature: add guide PT // links in EN

* feature: add link to Guides page

* Update allowlist-waf-cookie.mdx

* refactor: only console flow

* refactor: adjusts and comments

* refactor: ending paragraph
  • Loading branch information
MarianaAguilera authored Sep 12, 2024
1 parent 1ea97e0 commit cb32122
Show file tree
Hide file tree
Showing 4 changed files with 230 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/content/docs/en/pages/guides/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ permalink: /documentation/products/guides/
- [How to access Edge Storage using the S3 protocol](/en/documentation/products/guides/s3-protocol-for-edge-storage/)
- [How to enforce HLS cache for live streaming delivery](/en/documentation/products/guides/enforce-hls-cache/)
- [How to configure a WAF Custom Allowed Rule](/en/documentation/products/guides/secure/configure-waf-allowed-rules/)
- [How to configure WAF rules to allow requests with a specific cookie](/en/documentation/products/guides/secure/waf-rules-for-specific-cookie/)

---

Expand Down
114 changes: 114 additions & 0 deletions src/content/docs/en/pages/guides/waf/allowlist-waf-cookie.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
title: How to configure WAF rules to allow requests with a specific cookie
description: With this solution, your web application firewall can accurately filter and manage incoming requests based on specified cookies.
meta_tags: edge, security, edge firewall, session cookies, WAF, WAF Rule Sets, allowlist
namespace: documentation_secure_waf_specific_cookie
permalink: /documentation/products/guides/secure/waf-rules-for-specific-cookie/
---

This guide implements a solution to configure security policies to manage requests based on specific cookie values through Edge Firewall and WAF Rules. With this solution, your firewall will manage incoming requests based on specified cookies, enabling granular control using multiple rule sets to the same endpoint, ensuring that legitimate traffic reaches your application.

Implementing security policies based on specific cookie values can be helpful in scenarios such as receiving requests from authenticated users or third-party tools integrated into your infrastructure, demanding particular policies for these scenarios.

To configure WAF rules to allow requests with a specific cookie, you must complete the following three main steps:

- [Create a primary WAF Rule Set](#creating-a-primary-waf-rule-set). This will be your standard WAF instance and will attend to all the requests that aren't static.
- [Create a secondary WAF Rule Set](#creating-a-secondary-waf-rule-set-for-a-specific-cookie). This will allow for a specific cookie and include a Custom Allowed Rule.
- [Define two rules for Rule Engine for Edge Firewall](#configuring-rules-in-the-rules-engine-for-edge-firewall). This will define the criteria and behaviors to process the requests accordingly, combining your WAF rule sets.

---

## Requirements

To implement this solution, you must have:

- An [existent edge firewall](/en/documentation/products/guides/secure/edge-firewall-configure-main-settings/) with the WAF add-on activated.

---

## Creating a primary WAF Rule Set

First, you must create your primary **WAF Rule Set** that will be used as a standard.

1. Access [Azion Console](/en/documentation/products/guides/how-to-access-azion-console/) > **WAF Rules**.
2. Click the **+ WAF Rule** button.
3. Give a unique and descriptive name to identify your new WAF rule set.
- This example will use `My Primary WAF - Standard`.
4. Define your **Threat Type Configuration**, selecting the family threats and sensitivity.
5. Make sure the **Active** switch is enabled.
6. Click the **Save** button.

---

## Creating a secondary WAF Rule Set for a specific cookie

Still on the **WAF Rules** page, you must create a secondary **WAF Rule Set** including a [Custom Allowed Rule](/en/documentation/products/secure/edge-firewall/web-application-firewall/custom-allowed-rules/). To do so:

1. Click the **+ WAF Rule** button to create the second instance.
2. Give a unique and descriptive name to identify your new WAF rule set.
- This example will use `My secondary WAF - Allow cookie`.
3. Define your **Threat Type Configuration**, selecting the family threats and sensitivity.
4. Make sure the **Active** switch is enabled.
5. Click the **Save** button.

To create a Custom Allowed Rule, still in the WAF Rule Set you created:

1. Select the **Allowed Rules** tab.
2. Click the **+ Allowed Rule** button.
3. In the **Rule ID** dropdown menu, select a rule.
- This example will use the `1005 Possible SQL Injection attack: MySQL keyword | found in Body, Path, Query String or Cookies.` rule.
- Read more about all the [available internal rules](/en/documentation/products/secure/edge-firewall/web-application-firewall/custom-allowed-rules/).
4. In **Description**, explain the reason this rule was allowed.
5. In **Path**, this example will use `/` to apply the rule to the whole site.
- Type a more specific path to attend to your needs, if required.
6. In the **Match Zone** dropdown menu, select the **Conditional Request Header** option.
- In the **Header** field, type `Cookie`
- Select the **Value** option in **Matches on**.
7. Click the **Save** button.

---

## Configuring rules in the Rules Engine for Edge Firewall

In this step, you must instantiate the rules to execute your recently created WAF Rule Sets accordingly.

:::note
Behaviors and rules will be executed in the order they're arranged.
:::

1. Open the **Product menu** and select **Edge Firewall**.
2. Select the existent edge firewall where you want to configure the new rules.
3. Go to the **Rules Engine** tab.
4. Click the **+ Rules Engine** button.
5. Give a name for the rule and, optionally, a description.
- This example will use `First rule - Standard` as a name.
6. In the **Criteria** field, define the following logic:
- If `Request URI` `does not match` `\.(png|jpg|css|js|jpeg|gif|ico|ttf|svg|woff|woff2|ashx|asmx|svc|otf|eot)(\?.*)?$`
7. Click the `+ And` button to enable a second Criteria and define the following logic:
- `Request URI` `does not match` `[my-allowed-cookie|123]`.
- Replace `my-allowed-cookie-123` with the value for the cookie you want to allow.
8. In **Behavior**, select **Set WAF Rule Set** option. It'll open two new fields:
- In **Select a WAF Rule**, select the primary rule set you created before. In this case, the one called `My Primary WAF - Standard`.
- In **Select a WAF Mode**, select **Blocking**.
9. Click the **Save** button.

Now, you must define the rule for the secondary WAF Rule Set.

Still on the **Rules Engine** tab:

1. Click the **+ Rules Engine** button.
2. Give a name for the rule and, optionally, a description.
- This example will use `Second Rule - Cookies` as a name.
3. In the **Criteria** field, define the following logic:
- If `Header Cookie` `matches` `[my-allowed-cookie|123]`.
- Replace `my-allowed-cookie-123` with the value for the cookie you want to allow.
4. In **Behavior**, select **Set WAF Rule Set** option. It'll open two new fields:
- In **Select a WAF Rule**, select the secondary rule set you created before. In this case, the one called `My secondary WAF - Allow cookie`.
- In **Select a WAF Mode**, select **Blocking**.
5. Click the **Save** button.

Done. Now, when a request reaches your application, Edge Firewall will check if it includes your specific cookie. If it doesn't include your specific cookie, it'll execute your standard rule. If it identifies the specified cookie, the request will be evaluated by the second rule; in this case, it won't weigh the specific Rule ID and cookie on its evaluation, it'll still check all other rules.

:::tip
You can use [Azion Observe products](/en/documentation/products/observe/overview/) to monitor your application delivery, incoming traffic, and how your security logics are being applied and with which requests.
:::
1 change: 1 addition & 0 deletions src/content/docs/pt-br/pages/guias/guides.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ permalink: /documentacao/produtos/guias/
- [Como acessar o Edge Storage usando o protocolo S3](/pt-br/documentacao/produtos/guias/protocolo-s3-para-edge-storage/)
- [Como implementar cache HLS para entrega de streaming ao vivo](/pt-br/documentacao/produtos/guias/implementar-cache-hls/)
- [Como configurar uma WAF Custom Allowed Rule](/pt-br/documentacao/produtos/guias/secure/configurar-waf-allowed-rules/)
- [Como configurar regras de WAF para permitir requisições com um cookie específico](/pt-br/documentation/products/guides/secure/waf-rules-para-cookie-especifico/)

---

Expand Down
114 changes: 114 additions & 0 deletions src/content/docs/pt-br/pages/guias/waf/allowlist-waf-cookie.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
title: Como configurar regras de WAF para permitir requisições com um cookie específico
description: Com esta solução, seu web application firewall pode filtrar e gerenciar com precisão as requisições entrantes com base em cookies especificados.
meta_tags: edge, segurança, WAF Rule Sets, allowlist, edge firewall, cookies de sessão, WAF, WAF Rule Sets
namespace: documentation_secure_waf_specific_cookie
permalink: /documentation/products/guides/secure/waf-rules-para-cookie-especifico/
---

Este guia implementa uma solução para configurar políticas de segurança para gerenciar requisições com base em valores de cookie específicos através do Edge Firewall e das WAF Rules. Com esta solução, seu firewall gerenciará as requisições entrantes com base em cookies especificados, permitindo controle granular usando múltiplos conjuntos de regras para o mesmo endpoint, garantindo que o tráfego legítimo chegue à sua aplicação.

Implementar políticas de segurança com base em valores de cookie específicos pode ser útil em cenários como receber requisições de usuários autenticados ou ferramentas de terceiros integradas à sua infraestrutura, exigindo políticas específicas para esses cenários.

Para configurar regras WAF para permitir requisições com um cookie específico, você deve completar os seguintes três passos principais:

- [Criar um conjunto de regras WAF primário](#crie-um-conjunto-de-regras-waf-primario). Este será seu padrão de WAF e atenderá a todas as requisições que não são estáticas.
- [Criar um conjunto de regras WAF secundário](#crie-um-conjunto-de-regras-waf-secundario-com-um-cookie-especifico). Isso permitirá definir um cookie específico e incluirá uma Custom Allowed Rule.
- [Definir duas regras para o Rule Engine do Edge Firewall](#configure-regras-no-rules-engine-para-edge-firewall). Isso definirá os critérios e comportamentos para processar as requisições, combinando seus conjuntos de regras WAF.

---

## Pré-requisitos

Para implementar esta solução, você deve ter:

- Um [edge firewall existente](/pt-br/documentacao/produtos/guias/secure/edge-firewall-definir-main-settings/) com o **WAF** ativado.

---

## Crie um conjunto de regras WAF primário

Primeiro, você deve criar seu conjunto de regras WAF primário que será usado como padrão.

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **WAF Rules**.
2. Clique no botão **+ WAF Rule**.
3. Dê um nome único e descritivo para identificar seu novo conjunto de regras WAF.
- Este exemplo usará `My Primary WAF - Standard`.
4. Defina sua **Threat Type Configuration**, selecionando as famílias de ameaças e a sensibilidade.
5. Certifique-se de que o switch **Active** esteja ativado.
6. Clique no botão **Save**.

---

## Crie um conjunto de regras WAF secundário com um cookie específico

Ainda na página **WAF Rules**, você deve criar um **conjunto de regras WAF** secundário incluindo uma [Custom Allowed Rule](/pt-br/documentacao/produtos/secure/edge-firewall/web-application-firewall/custom-allowed-rules/). Para fazer isso:

1. Clique no botão **+ WAF Rule** para criar a segunda instância.
2. Dê um nome único e descritivo para identificar seu novo conjunto de regras WAF.
- Este exemplo usará `My secondary WAF - Allow cookie`.
3. Defina sua **Threat Type Configuration**, selecionando as famílias de ameaças e a sensibilidade.
4. Certifique-se de que o switch **Active** esteja ativado.
5. Clique no botão **Save**.

Para criar uma **Custom Allowed Rule**, ainda na página do conjunto de regras WAF que você criou:

1. Selecione a aba **Allowed Rules**.
2. Clique no botão **+ Allowed Rule**.
3. No menu suspenso **Rule ID**, selecione uma regra.
- Este exemplo usará a regra `1005 Possible SQL Injection attack: MySQL keyword | found in Body, Path, Query String or Cookies.`
- Saiba mais sobre todas as [regras internas disponíveis](/pt-br/documentacao/produtos/secure/edge-firewall/web-application-firewall/custom-allowed-rules/).
4. Em **Description**, explique o motivo pelo qual esta regra foi permitida.
5. Em **Path**, este exemplo usará `/` para aplicar a regra a todo o site.
- Digite um caminho mais específico para atender às suas necessidades, se necessário.
6. No menu suspenso **Match Zone**, selecione a opção **Conditional Request Header**.
- No campo **Header**, digite `Cookie`
- Selecione a opção **Value** em **Matches on**.
7. Clique no botão **Save**.

---

## Configure regras no Rules Engine para Edge Firewall

Nesta etapa, você deve instanciar as regras no Rules Engine para executar seus conjuntos de regras WAF recém-criados.

:::note
Os comportamentos (*behaviors*) e regras serão executados na ordem em que estão dispostos.
:::

1. Abra o **Product menu** e selecione **Edge Firewall**.
2. Selecione o edge firewall existente onde você deseja configurar as novas regras.
3. Vá para a aba **Rules Engine**.
4. Clique no botão **+ Rules Engine**.
5. Dê um nome para a regra e, opcionalmente, uma descrição.
- Este exemplo usará `First rule - Standard` como nome.
6. No campo **Criteria**, defina a seguinte lógica:
- If `Request URI` `does not match` `\.(png|jpg|css|js|jpeg|gif|ico|ttf|svg|woff|woff2|ashx|asmx|svc|otf|eot)(\?.*)?$`
7. Clique no botão `+ And` para habilitar um segundo critério e defina a seguinte lógica:
- `Request URI` `does not match` `[my-allowed-cookie|123]`.
- Substitua `my-allowed-cookie-123` pelo valor do cookie que você deseja permitir.
8. Em **Behavior**, selecione a opção **Set WAF Rule Set**. Isso abrirá dois novos campos:
- Em **Select a WAF Rule**, selecione o conjunto de regras primário que você criou anteriormente. Neste caso, o chamado `My Primary WAF - Standard`.
- Em **Select a WAF Mode**, selecione **Blocking**.
9. Clique no botão **Save**.

Agora, você deve definir a regra do Rules Engine para o conjunto de regras WAF secundário.

Ainda na aba **Rules Engine**:

1. Clique no botão **+ Rules Engine**.
2. Dê um nome para a regra e, opcionalmente, uma descrição.
- Este exemplo usará `Second Rule - Cookies` como nome.
3. No campo **Criteria**, defina a seguinte lógica:
- If `Header Cookie` `matches` `[my-allowed-cookie|123]`.
- Substitua `my-allowed-cookie-123` pelo valor do cookie que você deseja permitir.
4. Em **Behavior**, selecione a opção **Set WAF Rule Set**. Isso abrirá dois novos campos:
- Em **Select a WAF Rule**, selecione o conjunto de regras secundário que você criou anteriormente. Neste caso, o chamado `My secondary WAF - Allow cookie`.
- Em **Select a WAF Mode**, selecione **Blocking**.
5. Clique no botão **Save**.

Pronto. Agora, quando uma requisição chega à sua aplicação, o Edge Firewall verificará se ela inclui seu cookie específico. Se não incluir seu cookie específico, ele executará sua regra padrão. Se identificar o cookie especificado, a requisição será avaliada pela segunda regra; neste caso, não levará em conta o ID da regra e o cookie específico em sua avaliação, mas ainda verificará todas as outras regras.

:::tip
Você pode usar os [produtos Observe da Azion](/pt-br/documentacao/produtos/observe/visao-geral/) para monitorar a entrega da sua aplicação, o tráfego de entrada e como suas lógicas de segurança estão sendo aplicadas e com quais requisições.
:::

0 comments on commit cb32122

Please sign in to comment.