كيفية تنفيذ حظر IP استنادًا إلى النقاط في AWS WAF

كيفية تنفيذ حظر IP استنادًا إلى النقاط في AWS WAF

إذا كانت لديك قواعد تعتمد على معدل الطلبات، فهي تتم حظر عنوان IP عندما يتجاوز عدد الطلبات المسموح به خلال فترة زمنية معينة. وأطول فترة زمنية يمكن تحديدها هي 10 دقائق، ولا يمكن تحديد فترة حظر طويلة أو دائمة مباشرة على القاعدة نفسها. لحظر عنوان IP لفترة أطول، يمكنك إدارة قائمة الحظر ضمن مجموعة عناوين IP (IP set) تسيطر عليها وتحدثها بشكل يدوي.

للحصول على حظر ثابت لوقت محدد، يمكنك اتباع نمطين مختلفين. أحدهما يعتمد على اتخاذ إجراءات بناءً على العلامات التي تضاف إلى الطلبات، وليس على الحظر المباشر.

قم باستخدام قواعد العد (Count rules) لإنشاء إشارات خاصة بك. هذه القواعد لا تمنع الطلب مباشرة، بل تضيف علامات إلى الطلبات المشبوهة، مثل طلبات الوصول إلى ملفات معينة أو تطابق مع قواعد محددة، أو طلبات مرتفعة جداً في المعدل. تظهر هذه العلامات في سجلات الطلبات بمجالات مثل “labels” و”nonTerminatingMatchingRules” و”rateBasedRuleList”. يمكنك الاطلاع على مزيد من التفاصيل عبر توثيق سجلات الحماية.

بعد ذلك، قم بتقييم كل عنوان IP باستخدام وظيفة Lambda، بحيث تعطي لكل علامة وزنًا معينًا، وتقوم بتحديث النقاط في قاعدة بيانات DynamoDB بشكل تلقائي. يمكنك تحديد مدة زمنية على النقاط، مثلاً 24 ساعة، بحيث يتم حذف النقاط القديمة تلقائيًا.

عندما تتجاوز النقاط حدًا معينًا، قم بزيادة عدد محاولات عنوان IP وتحديد وقت الحظر. على سبيل المثال، يمكنك حظر العنوان لمدة ساعة، ثم تمتد المدة إلى 24 ساعة، ثم لمدة أسبوع كامل حسب تكرار المخالفات.

بعد الانتهاء من مدة الحظر، قم بإزالة العنوان من مجموعة عناوين IP المحظورة، وذلك عن طريق إضافته إلى مجموعة IP set التي تديرها، وتحدثها بشكل دوري باستخدام جدول زمني يعمل بشكل آلي.

عند إعداد ذلك، ينبغي أن تضع في اعتبارك بعض الأمور المهمة. فمن أجل تحديث مجموعة عناوين IP بشكل ممتد، يمكنك استخدام وظيفة برمجية تقوم بتحديث القائمة بشكل مجمّع كل دقيقة، بدلاً من تحديثها مع كل سجل طلب، وذلك لتجنب التداخل في التعديلات. كما أن تحديث قوائم IP قد يستغرق من بعض ثوانٍ إلى عدة دقائق ليتم تطبيقه، لذا من الأفضل أن تظل القواعد المعتمدة على المعدل هي الحماية الأولى والأسرع.

وتذكر أن مجموعة عناوين IP يمكن أن تحتوي على حتى 10,000 عنوان، ويتم تخصيص كل مجموعة لنوع واحد من العناوين، سواء IPv4 أو IPv6، ولذلك من الضروري أن تدير مجموعتين على الأقل. يمكنك حظر العملاء عبر IPv6 باستخدام بادئة /64، لضمان أن عملية التدوير العنوان لن تتجنب الحظر.

إذا كنت تستخدم توزيع CloudFront، قم بإنشاء مجموعة عناوين IP ضمن نطاق المنطقة الجغرافية “us-east-1” مع تحديد النطاق على أنه خاص بـ CloudFront. وإذا كان هناك وكيل أمام AWS WAF، فاستفد من عنوان IP الموجه (Forwarded IP) في قواعد الحظر.

للعمل مع عدد كبير من المستخدمين الذين يشتركون في عنوان IP واحد خلف NAT أو شبكة جوّالة، يُفضل تطبيق نظام التحدي مثل CAPTCHA أو تحدٍ، بحيث يتم حظر فقط العناوين التي سجلت درجات عالية جدًا.

كما تتوفر حلول أُخرى من خلال أدوات الأتمتة الأمنية التي تحلل السجلات وتصدر إجراءات الحظر، ولكنها ستصل إلى نهايتها بحلول ديسمبر 2026، لذلك فهي ليست الخيار الأمثل لبناء نظام جديد.

بهذه الطريقة، يمكنك إدارة الحظر بشكل فعال وطويل المدى مع ضمان أن تكون الإجراءات مرنة وقابلة للتحديث بشكل دوري لتوفير حماية مستمرة لموقعك الإلكتروني أو تطبيقك.