INTEGRITY Dokumentace

Cloudflare Managed Ruleset

Tato sada pravidel, vytvořená bezpečnostním týmem Cloudflare, poskytuje rychlou a účinnou ochranu pro všechny vaše aplikace. Sada je často aktualizována, aby pokrývala nové zranitelnosti a omezovala falešně pozitivní výsledky.

Cloudflare doporučuje povolit pravidla, jejichž tagy odpovídají vašemu technologickému stacku. Pokud například používáte WordPress, povolte pravidla s tagem wordpress.

Cloudflare Changelog WAF vám umožňuje sledovat průběžné změny ve spravovaných sadách pravidel WAF.

Nasazení Cloudflare Managed Ruleset

  1. V Cloudflare dashboardu přejděte na Security Settings stránku.

    Přejděte na Settings ↗
  2. (Volitelné) Filtrujte podle Exploity webových aplikací.

  3. Zapněte Spravovaná sada pravidel Cloudflare.

  4. Zkontrolujte nastavení nasazení. V případě potřeby upravte rozsah, aby se sada pravidel aplikovala na podmnožinu příchozích požadavků, nebo nakonfigurujte vlastní nastavení (známá také jako overrides).

  5. Vyberte Save.

Tato operace nasadí spravovanou sadu pravidel pro aktuální zónu a vytvoří nové pravidlo s Execute akci.

Konfigurace v dashboardu

Cloudflare Managed Ruleset můžete konfigurovat (nebo přepsat jeho výchozí konfiguraci) na několika úrovních:

Když vytvoříte několik přepsání na různých úrovních, konkrétnější konfigurace (úroveň tagu a pravidla) mají přednost před méně konkrétními (úroveň sady pravidel). Viz Přepis spravované sady pravidel v dokumentaci Ruleset Engine pro více informací.

Konfigurace na úrovni sady pravidel

V dashboardu Cloudflare můžete nakonfigurovat (nebo přepsat) následující nastavení Cloudflare Managed Ruleset:

Jakmile jste nasadili Cloudflare Managed Ruleset, proveďte následující kroky pro jeho konfiguraci v dashboardu:

  1. V Cloudflare dashboardu přejděte na Bezpečnostní pravidla stránku.

    Přejděte na Bezpečnostní pravidla ↗
  2. (Volitelné) Filtrujte podle Spravovaná pravidla.

  3. Vyhledejte Cloudflare Managed Ruleset. Hledejte pravidlo s Execute akci.

  4. Vyberte název pravidla (obsahující název spravované sady pravidel) pro otevření stránky konfigurace nasazení.

  5. (Volitelné) Chcete-li Cloudflare Managed Ruleset spouštět jen pro podmnožinu příchozích požadavků, vyberte Edit scope a nakonfigurujte výraz který určí rozsah aktuálního pravidla nasazujícího spravovanou sadu pravidel.

  6. V sekci konfigurace sady pravidel definujte nastavení pro všechna pravidla v Cloudflare Managed Ruleset nastavením jednoho nebo více polí pomocí rozbalovacích seznamů.

    Například vyberte akci, která se má provést pro všechna pravidla v sadě.

    Stránka Configure deployment zobrazující dostupné možnosti přepsání všech pravidel v Cloudflare Managed Ruleset: akce sady pravidel a stav sady pravidel.
  7. Vyberte Save.

Konfigurace na úrovni tagů

V dashboardu můžete nakonfigurovat (nebo přepsat) následující nastavení Cloudflare Managed Ruleset pro pravidla označená alespoň jedním z vybraných tagů:

Jakmile jste nasadili Cloudflare Managed Ruleset, proveďte následující kroky pro konfiguraci pravidel s konkrétními tagy v dashboardu:

  1. V Cloudflare dashboardu přejděte na Bezpečnostní pravidla stránku.

    Přejděte na Bezpečnostní pravidla ↗
  2. (Volitelné) Filtrujte podle Spravovaná pravidla.

  3. Vyhledejte Cloudflare Managed Ruleset. Hledejte pravidlo s Execute akci.

  4. Vyberte název pravidla (obsahující název spravované sady pravidel) a poté vyberte Browse rules.

    Cloudflare dashboard zobrazující seznam pravidel v Cloudflare Managed Ruleset.
  1. Vyberte jeden nebo více tagů pod vyhledávacím polem pro filtrování pravidel s těmito tagy a poté zaškrtněte políčko v levém horním rohu tabulky pro výběr všech pravidel zobrazených na aktuální stránce.
    Pokud se na aktuální stránce nezobrazují všechna pravidla, rozšiřte výběr na všechna pravidla s vybranými tagy napříč všemi stránkami výběrem Select all <NUMBER> rules.

    Stránka Configure deployment zobrazující vybraná pravidla s tagem 'sqli' v Cloudflare Managed Ruleset.
  2. Aktualizujte jedno nebo více nastavení vybraných pravidel pomocí tlačítek zobrazených v pravém horním rohu tabulky (například Nastavení stavu).

  3. Vyberte Next.

  4. Zobrazí se dialog s dotazem, zda mají být nová pravidla s vybranými tagy nakonfigurována s hodnotami polí, které jste vybrali.

    • Vyberte Include new rules pokud chcete své konfigurace aplikovat i na nová pravidla s vybranými tagy.
    • Vyberte Pouze vybraná pravidla pro aplikaci konfigurace pouze na vybraná pravidla.
  5. Vyberte Save.

Konfigurace na úrovni pravidla

V dashboardu můžete nakonfigurovat (nebo přepsat) následující nastavení Cloudflare Managed Ruleset pro vybraná pravidla:

Jakmile jste nasadili Cloudflare Managed Ruleset, proveďte následující kroky pro konfiguraci jednotlivých pravidel sady v dashboardu:

  1. V Cloudflare dashboardu přejděte na Bezpečnostní pravidla stránku.

    Přejděte na Bezpečnostní pravidla ↗
  2. (Volitelné) Filtrujte podle Spravovaná pravidla.

  3. Vyhledejte Cloudflare Managed Ruleset. Hledejte pravidlo s Execute akci.

  4. Vyberte název pravidla (obsahující název spravované sady pravidel) a poté vyberte Browse rules.

    Cloudflare dashboard zobrazující seznam pravidel v Cloudflare Managed Ruleset.
  1. Vyhledávejte pravidla pomocí dostupných filtrů.

  2. V seznamu výsledků změňte hodnoty jednotlivých pravidel podle potřeby pomocí zobrazených rozbalovacích seznamů a přepínačů. Například změňte stav pravidla pomocí Stav přepínač vedle pravidla.

    Pro konfiguraci více pravidel se stejnou hodnotou zaškrtněte políčka u všech pravidel, která chcete konfigurovat. Pokud se na aktuální stránce nezobrazují všechna pravidla, můžete výběr rozšířit na všechna pravidla napříč stránkami výběrem Select all <NUMBER> rules. Poté použijte tlačítka zobrazená v pravém horním rohu tabulky — například Nastavení stavu — k aktualizaci jednoho nebo více polí u vybraných pravidel.

    Stránka Configure deployment zobrazující vybraná pravidla v sadě Cloudflare Managed Ruleset.
  3. Vyberte Next a poté vyberte Save.

Konfigurace přes API

Chcete-li nasadit Cloudflare Managed Ruleset pro danou zónu přes API, vytvořte pravidlo s execute akci v vstupní sada pravidel (entry point ruleset) pro http_request_firewall_managed fáze.

Příklad

Následující příklad nasazuje Cloudflare Managed Ruleset do http_request_firewall_managed fáze dané zóny ($ZONE_ID) vytvořením pravidla, které spouští spravovanou sadu pravidel.

  1. Vyvolejte Získání vstupní sady pravidel zóny operaci k získání definice entry point rulesetu pro fázi http_request_firewall_managed fázi. Budete potřebovat ID zóny pro tuto úlohu.

    Získání vstupní sady pravidel zóny
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"description": "Zone-level phase entry point",
    		"id": "<RULESET_ID>",
    		"kind": "zone",
    		"last_updated": "2024-03-16T15:40:08.202335Z",
    		"name": "zone",
    		"phase": "http_request_firewall_managed",
    		"rules": [
    			// ...
    		],
    		"source": "firewall_managed",
    		"version": "10"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Pokud entry point ruleset již existuje (tedy pokud jste obdrželi 200 OK stavový kód a definici sady pravidel), poznamenejte si ID sady pravidel z odpovědi. Poté zavolejte Vytvoření pravidla v sadě pravidel zóny operaci k přidání execute pravidlo do existující sady pravidel nasazující Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee). Ve výchozím nastavení bude pravidlo přidáno na konec seznamu pravidel, která již v sadě jsou.

    Vytvoření pravidla v sadě pravidel zóny
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "efb7b8c949ac4650a09736fc376e9aee"
    		},
    		"expression": "true",
    		"description": "Execute the Cloudflare Managed Ruleset"
    	}'
    {
    	"result": {
    		"id": "<RULESET_ID>",
    		"name": "Zone-level phase entry point",
    		"description": "",
    		"kind": "zone",
    		"version": "11",
    		"rules": [
    			// ... any existing rules
    			{
    				"id": "<RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee",
    					"version": "latest"
    				},
    				"expression": "true",
    				"description": "Execute the Cloudflare Managed Ruleset",
    				"last_updated": "2024-03-18T18:08:14.003361Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    		],
    		"last_updated": "2024-03-18T18:08:14.003361Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  3. Pokud entry point ruleset neexistuje (tedy pokud jste obdrželi 404 Not Found stavový kód v kroku 1), vytvořte jej pomocí Vytvoření sady pravidel zóny operace. Zahrňte jediné pravidlo do pole rules pole, které vykonává Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee) pro všechny příchozí požadavky v zóně.

    Vytvoření sady pravidel zóny
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "My ruleset",
    		"description": "Entry point ruleset for WAF managed rulesets",
    		"kind": "zone",
    		"phase": "http_request_firewall_managed",
    		"rules": [
    				{
    						"action": "execute",
    						"action_parameters": {
    								"id": "efb7b8c949ac4650a09736fc376e9aee"
    						},
    						"expression": "true",
    						"description": "Execute the Cloudflare Managed Ruleset"
    				}
    		]
    	}'

Další kroky

Pro konfiguraci Cloudflare Managed Ruleset přes API vytvořte overrides pomocí Rulesets API. Můžete provést následující konfigurace:

Příklady vytváření overrides pomocí API najdete v Přepis spravované sady pravidel.

Další zdroje

Další informace o práci se spravovanými sadami pravidel přes API viz Práce se spravovanými sadami pravidel v dokumentaci Ruleset Engine.

Konfigurace pomocí Terraformu

Následující příklad nasadí Cloudflare Managed Ruleset pro zónu a přepíše akci a stav konkrétního pravidla.

Požadovaná oprávnění API tokenu

Alespoň jedno z následujících oprávnění tokenu je vyžadováno:

  • Zone WAF Write

Nakonfigurujte cloudflare_ruleset zdroj:

# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
  zone_id     = var.cloudflare_zone_id
  name        = "Managed WAF entry point ruleset"
  description = "Zone-level WAF Managed Rules config"
  kind        = "zone"
  phase       = "http_request_firewall_managed"

  # Execute Cloudflare Managed Ruleset
  rules = [{
    ref         = "execute_cloudflare_managed_ruleset"
    description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
    expression  = "true"
    action      = "execute"
    action_parameters = {
      id = "efb7b8c949ac4650a09736fc376e9aee"
      overrides = {
        rules = [{
          id      = "5de7edfa648c4d6891dc3e7f84534ffa"
          action  = "log"
          enabled = true
        }]
      }
    }
  }]
}
# Configure a ruleset at the zone level for the "http_request_firewall_managed" phase
resource "cloudflare_ruleset" "zone_level_managed_waf" {
  zone_id     = var.cloudflare_zone_id
  name        = "Managed WAF entry point ruleset"
  description = "Zone-level WAF Managed Rules config"
  kind        = "zone"
  phase       = "http_request_firewall_managed"

  # Execute Cloudflare Managed Ruleset
  rules {
    ref         = "execute_cloudflare_managed_ruleset"
    description = "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset"
    expression  = "true"
    action      = "execute"
    action_parameters {
      id = "efb7b8c949ac4650a09736fc376e9aee"
      overrides {
        rules {
          id      = "5de7edfa648c4d6891dc3e7f84534ffa"
          action  = "log"
          enabled = true
        }
      }
    }
  }
}

Další informace viz Konfigurace WAF Managed Rules pomocí Terraformu.