أمان الشبكة والبنية التحتية
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 |
التالي، سنستكشف التسجيل والمراقبة وكشف التهديدات لشبكات السحابة. :::