מדריך קלאודפלייר בעברית

תיעוד 133

הגדרה באמצעות API

כדי להפעיל את Cloudflare OWASP Core Ruleset עבור אזור נתון באמצעות ה-API, צרו כלל עם פעולת execute ב-ruleset של נקודת הכניסה עבור השלב http_request_firewall_managed. למידע נוסף על פריסה של managed ruleset, ראו פריסת managed ruleset.

כדי להגדיר את Cloudflare OWASP Core Ruleset באמצעות ה-API, צרו overrides באמצעות Rulesets API. אפשר לבצע את ההגדרות הבאות:

אפשר גם להשבית כללים מסוימים ב-managed ruleset באמצעות rule overrides.

#הגדרת רמת הפרנויה

כדי להפעיל את כל הכללים עד רמת פרנויה מסוימת, צרו tag overrides שמשביתים את כל הכללים המשויכים לרמות פרנויה גבוהות יותר.

התגיות המשויכות לרמות הפרנויה השונות הן:

  • paranoia-level-1
  • paranoia-level-2
  • paranoia-level-3
  • paranoia-level-4

לדוגמה, כדי להפעיל את כל הכללים המשויכים ל-Paranoia Level 2 (PL2), השביתו את הכללים המשויכים לתגיות paranoia-level-3 ו-paranoia-level-4. כל הכללים המשויכים לרמות פרנויה עד רמת הפרנויה הרצויה יופעלו (בדוגמה זו, כל הכללים המשויכים ל-PL1 ול-PL2).

#דוגמה

דוגמה זו מגדירה את רמת הפרנויה של Cloudflare OWASP Core Ruleset עבור אזור ל-PL2. כדי לבצע הגדרה זו, יש להשבית את התגיות המשויכות לרמות PL3 ו-PL4 (paranoia-level-3 ו-paranoia-level-4) באמצעות tag overrides.

  1. קבלו את המזהה של Cloudflare OWASP Core Ruleset באמצעות המתודה List account rulesets, מכיוון ש-managed rulesets של WAF קיימים ברמת החשבון. לחלופין, השתמשו ישירות במזהה ה-ruleset הבא: ...c25d2f1f.

    List account rulesetsbash

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
        --request GET \
        --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
        "result": [
            {
                "id": "4814384a9e5d4991b9815dcfc25d2f1f",
                "name": "Cloudflare OWASP Core Ruleset",
                "description": "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core  Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official  code repository",
                "source": "firewall_managed",
                "kind": "managed",
                "version": "35",
                "last_updated": "2022-01-24T21:08:20.293196Z",
                "phase": "http_request_firewall_managed"
            }
            // (...)
        ],
        "success": true,
        "errors": [],
        "messages": []
    }
  2. קבלו את המזהה של הכלל שפורס את ה-OWASP ruleset לאזור שלכם באמצעות Get a zone entry point ruleset. חפשו כלל עם "action": "execute" שמוגדר עם מזהה ה-OWASP ruleset באובייקט action_parameters (מזהה ...c25d2f1f). כלל זה קיים רק אם כבר פרסתם את ה-OWASP ruleset.

    Get a zone entry point rulesetbash

    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": {
            "id": "<ENTRY_POINT_RULESET_ID>",
            "name": "zone",
            "description": "",
            "source": "firewall_managed",
            "kind": "zone",
            "version": "3",
            "rules": [
                // (...)
                {
                    "id": "<EXECUTE_RULE_ID>",
                    "version": "1",
                    "action": "execute",
                    "action_parameters": {
                        "id": "4814384a9e5d4991b9815dcfc25d2f1f",
                        "version": "latest"
                    },
                    "expression": "true",
                    "last_updated": "2022-02-04T16:27:58.930927Z",
                    "ref": "<RULE_REF>",
                    "enabled": true
                }
                // (...)
            ],
            "last_updated": "2022-02-07T10:41:31.702744Z",
            "phase": "http_request_firewall_managed"
        },
        "success": true,
        "errors": [],
        "messages": []
    }
  3. עדכנו את הכלל שזיהיתם באמצעות הפעולה Update a zone ruleset rule, והוסיפו tag overrides שמשביתים את הכללים עם התגיות paranoia-level-3 ו-paranoia-level-4.

    Update a zone ruleset rulebash

    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules/$EXECUTE_RULE_ID" \
        --request PATCH \
        --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
        --json '{
            "action": "execute",
            "action_parameters": {
                    "id": "4814384a9e5d4991b9815dcfc25d2f1f",
                    "overrides": {
                            "categories": [
                                    {
                                            "category": "paranoia-level-3",
                                            "enabled": false
                                    },
                                    {
                                            "category": "paranoia-level-4",
                                            "enabled": false
                                    }
                            ]
                    }
            },
            "expression": "true",
            "enabled": true
        }'

למידע נוסף על יצירת overrides, ראו Override a managed ruleset.

#הגדרת סף הניקוד והפעולה

כדי להגדיר את סף הניקוד, או כדי לציין את הפעולה לביצוע כאשר ציון האיום גדול מהסף, צרו rule override עבור הכלל האחרון ב-managed ruleset, ש:

  • מציין את הפעולה לביצוע במאפיין action. הפעולות הזמינות הן: js_challenge (Non-Interactive Challenge), managed_challenge (Managed Challenge), block (ברירת מחדל), challenge (Interactive Challenge), ו-log.
  • מגדיר את סף ציון האנומליה הרצוי (ערך שלם) במאפיין score_threshold.

#דוגמה

דוגמה זו מגדירה את סף הניקוד של ה-managed ruleset ואת הפעולה המבוצעת על ידי יצירת rule override עבור הכלל האחרון של ה-managed ruleset.

  1. קבלו את המזהה של Cloudflare OWASP Core Ruleset באמצעות המתודה List account rulesets, מכיוון ש-managed rulesets של WAF קיימים ברמת החשבון. לחלופין, השתמשו ישירות במזהה ה-ruleset הבא: ...c25d2f1f.

    List account rulesetsbash

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
        --request GET \
        --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
        "result": [
            {
                "id": "4814384a9e5d4991b9815dcfc25d2f1f",
                "name": "Cloudflare OWASP Core Ruleset",
                "description": "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official code repository",
                "source": "firewall_managed",
                "kind": "managed",
                "version": "35",
                "last_updated": "2022-01-24T21:08:20.293196Z",
                "phase": "http_request_firewall_managed"
            }
            // (...)
        ],
        "success": true,
        "errors": [],
        "messages": []
    }
  2. קבלו את המזהה של הכלל האחרון ב-Cloudflare OWASP Core Ruleset. השתמשו במתודה Get an account ruleset כדי לקבל את רשימת הכללים ב-ruleset. לחלופין, השתמשו ישירות במזהה הכלל הבא: ...843b323c.

    Get an account rulesetbash

    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$OWASP_RULESET_ID" \
        --request GET \
        --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
        "result": {
            "id": "4814384a9e5d4991b9815dcfc25d2f1f",
            "name": "Cloudflare OWASP Core Ruleset",
            "description": "Cloudflare's implementation of the Open Web Application Security Project (OWASP) ModSecurity Core Rule Set. We routinely monitor for updates from OWASP based on the latest version available from the official code repository",
            "source": "firewall_managed",
            "kind": "managed",
            "version": "36",
            "rules": [
                // (...)
                {
                    "id": "6179ae15870a4bb7b2d480d4843b323c",
                    "version": "35",
                    "action": "block",
                    "score_threshold": 40,
                    "description": "949110: Inbound Anomaly Score Exceeded",
                    "last_updated": "2022-02-08T16:11:18.236676Z",
                    "ref": "ad0beb2fce9f149e565ee78d6e659d47",
                    "enabled": true
                }
            ],
            "last_updated": "2022-02-08T16:11:18.236676Z",
            "phase": "http_request_firewall_managed"
        },
        "success": true,
        "errors": [],
        "messages": []
    }
  3. קבלו את המזהה של הכלל שפורס את ה-OWASP ruleset לאזור שלכם באמצעות Get a zone entry point ruleset (בדוגמה זו, <EXECUTE_RULE_ID>). חפשו כלל עם "action": "execute" שמוגדר עם מזהה ה-OWASP ruleset באובייקט action_parameters (מזהה ...c25d2f1f). כלל זה קיים רק אם כבר פרסתם את ה-OWASP ruleset.

    Get a zone entry point rulesetbash

    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": {
            "id": "<ENTRY_POINT_RULESET_ID>",
            "name": "zone",
            "description": "",
            "source": "firewall_managed",
            "kind": "zone",
            "version": "3",
            "rules": [
                // (...)
                {
                    "id": "<EXECUTE_RULE_ID>",
                    "version": "1",
                    "action": "execute",
                    "action_parameters": {
                        "id": "4814384a9e5d4991b9815dcfc25d2f1f",
                        "version": "latest"
                    },
                    "expression": "true",
                    "last_updated": "2022-02-04T16:27:58.930927Z",
                    "ref": "<RULE_REF>",
                    "enabled": true
                }
                // (...)
            ],
            "last_updated": "2022-02-07T10:41:31.702744Z",
            "phase": "http_request_firewall_managed"
        },
        "success": true,
        "errors": [],
        "messages": []
    }
  4. עדכנו את הכלל שזיהיתם ב-ruleset של נקודת הכניסה באמצעות הפעולה Update a zone ruleset rule, והוסיפו rule override עבור הכלל האחרון ב-OWASP ruleset (שזוהה בשלב 2) עם המאפיינים והערכים הבאים:

    • "score_threshold": 60
    • "action": "managed_challenge"

    Update a zone ruleset rulebash

    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules/$EXECUTE_RULE_ID" \
        --request PATCH \
        --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
        --json '{
            "action": "execute",
            "action_parameters": {
                    "id": "4814384a9e5d4991b9815dcfc25d2f1f",
                    "overrides": {
                            "rules": [
                                    {
                                            "id": "6179ae15870a4bb7b2d480d4843b323c",
                                            "score_threshold": 60,
                                            "action": "managed_challenge"
                                    }
                            ]
                    }
            },
            "expression": "true",
            "enabled": true
        }'

#משאבים נוספים

לדוגמאות API נוספות, ראו Override examples בתיעוד של Ruleset Engine.