الدرس 15 من 24

أمان الشبكة والبنية التحتية

WAF وحماية DDoS وأمان الحافة

4 دقيقة للقراءة

جدران حماية تطبيقات الويب (WAF) وخدمات حماية DDoS تدافع ضد هجمات طبقة التطبيق التي لا تستطيع مجموعات الأمان حظرها. خدمات أمان الحافة هذه ضرورية للتطبيقات المواجهة للإنترنت.

جدار حماية تطبيقات الويب (WAF)

قدرات WAF

الميزة الغرض أمثلة على القواعد
حماية SQL injection حظر محاولات SQLi ' OR 1=1, UNION SELECT
حماية XSS حظر حقن السكربتات <script>، معالجات الأحداث
تحديد المعدل منع القوة الغاشمة 100 طلب/دقيقة
الحظر الجغرافي قيود إقليمية حظر دول محددة
كشف الروبوتات تصفية الهجمات الآلية توقيعات الروبوتات المعروفة
قواعد مخصصة خاصة بالتطبيق حظر أنماط محددة

AWS WAF

# Terraform - AWS WAF مع القواعد المُدارة
resource "aws_wafv2_web_acl" "main" {
  name        = "production-waf"
  description = "Production WAF ACL"
  scope       = "REGIONAL"

  default_action {
    allow {}
  }

  # القواعد المُدارة من AWS - مجموعة القواعد الأساسية
  rule {
    name     = "AWSManagedRulesCommonRuleSet"
    priority = 1

    override_action {
      none {}
    }

    statement {
      managed_rule_group_statement {
        name        = "AWSManagedRulesCommonRuleSet"
        vendor_name = "AWS"
      }
    }

    visibility_config {
      cloudwatch_metrics_enabled = true
      metric_name               = "CommonRuleSetMetric"
      sampled_requests_enabled  = true
    }
  }

  # القواعد المُدارة من AWS - SQL Injection
  rule {
    name     = "AWSManagedRulesSQLiRuleSet"
    priority = 2

    override_action {
      none {}
    }

    statement {
      managed_rule_group_statement {
        name        = "AWSManagedRulesSQLiRuleSet"
        vendor_name = "AWS"
      }
    }

    visibility_config {
      cloudwatch_metrics_enabled = true
      metric_name               = "SQLiRuleSetMetric"
      sampled_requests_enabled  = true
    }
  }

  # قاعدة تحديد المعدل
  rule {
    name     = "RateLimitRule"
    priority = 3

    action {
      block {}
    }

    statement {
      rate_based_statement {
        limit              = 2000
        aggregate_key_type = "IP"
      }
    }

    visibility_config {
      cloudwatch_metrics_enabled = true
      metric_name               = "RateLimitMetric"
      sampled_requests_enabled  = true
    }
  }

  visibility_config {
    cloudwatch_metrics_enabled = true
    metric_name               = "ProductionWAF"
    sampled_requests_enabled  = true
  }
}

Azure WAF

# إنشاء سياسة WAF
az network application-gateway waf-policy create \
    --name myWAFPolicy \
    --resource-group myRG

# تفعيل قواعد OWASP المُدارة
az network application-gateway waf-policy managed-rule-set add \
    --policy-name myWAFPolicy \
    --resource-group myRG \
    --type OWASP \
    --version 3.2

# إضافة تحديد معدل مخصص
az network application-gateway waf-policy custom-rule create \
    --policy-name myWAFPolicy \
    --resource-group myRG \
    --name RateLimitRule \
    --priority 1 \
    --rule-type RateLimitRule \
    --action Block \
    --rate-limit-threshold 100 \
    --rate-limit-duration OneMin

GCP Cloud Armor

# إنشاء سياسة أمان
gcloud compute security-policies create my-policy \
    --description="Production WAF policy"

# إضافة قواعد OWASP
gcloud compute security-policies rules create 1000 \
    --security-policy=my-policy \
    --expression="evaluatePreconfiguredExpr('xss-stable')" \
    --action=deny-403

gcloud compute security-policies rules create 1001 \
    --security-policy=my-policy \
    --expression="evaluatePreconfiguredExpr('sqli-stable')" \
    --action=deny-403

# إضافة تحديد المعدل
gcloud compute security-policies rules create 1002 \
    --security-policy=my-policy \
    --expression="true" \
    --action=rate-based-ban \
    --rate-limit-threshold-count=100 \
    --rate-limit-threshold-interval-sec=60 \
    --ban-duration-sec=600

حماية DDoS

خدمات DDoS من مزودي السحابة

المزود أساسي (مجاني) متقدم (مدفوع)
AWS Shield Standard Shield Advanced ($3,000/شهر)
Azure DDoS Protection Basic DDoS Protection Standard
GCP حماية دائمة Cloud Armor Managed Protection

AWS Shield Advanced

# Terraform - تفعيل Shield Advanced
resource "aws_shield_protection" "alb" {
  name         = "alb-protection"
  resource_arn = aws_lb.main.arn
}

resource "aws_shield_protection" "cloudfront" {
  name         = "cloudfront-protection"
  resource_arn = aws_cloudfront_distribution.main.arn
}

Azure DDoS Protection

# إنشاء خطة حماية DDoS
az network ddos-protection create \
    --name myDDoSPlan \
    --resource-group myRG

# الربط مع VNet
az network vnet update \
    --name myVNet \
    --resource-group myRG \
    --ddos-protection true \
    --ddos-protection-plan myDDoSPlan

معمارية أمان الحافة

فوائد أمان CDN

المستخدم → حافة CDN (WAF + DDoS) → خادم الأصل
    - حركة الهجوم تُمتص في الحافة
    - IP الأصل مخفي
    - إنهاء SSL/TLS
    - التخزين المؤقت يقلل حمل الأصل

CloudFront مع WAF

resource "aws_cloudfront_distribution" "main" {
  enabled = true

  origin {
    domain_name = aws_lb.main.dns_name
    origin_id   = "alb-origin"

    custom_origin_config {
      http_port              = 80
      https_port             = 443
      origin_protocol_policy = "https-only"
      origin_ssl_protocols   = ["TLSv1.2"]
    }
  }

  web_acl_id = aws_wafv2_web_acl.main.arn

  default_cache_behavior {
    allowed_methods        = ["GET", "HEAD", "OPTIONS", "PUT", "POST", "PATCH", "DELETE"]
    cached_methods         = ["GET", "HEAD"]
    target_origin_id       = "alb-origin"
    viewer_protocol_policy = "redirect-to-https"

    forwarded_values {
      query_string = true
      cookies {
        forward = "all"
      }
    }
  }

  restrictions {
    geo_restriction {
      restriction_type = "blacklist"
      locations        = ["CN", "RU"]  # مثال على الحظر الجغرافي
    }
  }

  viewer_certificate {
    acm_certificate_arn      = aws_acm_certificate.main.arn
    ssl_support_method       = "sni-only"
    minimum_protocol_version = "TLSv1.2_2021"
  }
}

أفضل ممارسات WAF

الممارسة التنفيذ
ابدأ في وضع العد راقب قبل الحظر
استخدم القواعد المُدارة OWASP، خاصة بالمورد
تحديثات القواعد المنتظمة اشترك في نشرات الأمان
قواعد مخصصة للتطبيق أنماط خاصة بالتطبيق
سجل جميع الطلبات فعّل تسجيل الطلبات الكامل
تنبيه على الشذوذ إعداد تنبيهات CloudWatch/Azure Monitor

التالي، سنستكشف التسجيل والمراقبة وكشف التهديدات لشبكات السحابة. :::

اختبار

الوحدة 4: أمان الشبكة والبنية التحتية

خذ الاختبار