العمل مع سجلات عقدة الفلتر¶
ترشدك هذه المقالة حول كيفية البحث عن ملفات السجل لعقدة فلتر Wallarm.
بالنسبة للتثبيتات عبر المثبت All-in-one, صورة Docker المستندة إلى NGINX, Amazon Machine Image (AMI) و Google Cloud Machine Image, يتم توضع ملفات السجل داخل دليل /opt/wallarm/var/log/wallarm
.
ها هو تفصيل الملفات السجل التي ستواجهها والنوع من المعلومات التي يحتويها كل منها:
brute-detect-out.log
: سجل جلب العدادات المتعلقة بالهجوم بالقوة الغاشمة في العقدة الفلتر.export-attacks-out.log
: سجل تصدير بيانات الهجمات من الوحدة النمطية postanalytics إلى السحابة Wallarm.export-environment-out.log
: سجل جمع إصدارات الحزم Wallarm المثبتة وتحميل هذه البيانات إلى السحابة Wallarm لإظهارها في تفاصيل العقدة الفلتر في وحدة التحكم Wallarm. يتم تشغيل هذه العمليات مرة واحدة في الساعة.syncnode-out.log
: سجل مزامنة العقدة الفلتر مع السحابة Wallarm (يتضمن جلب الملفات LOM و proton.db من السحابة).tarantool-out.log
: سجل عمليات الوحدة النمطية postanalytics.sync-ip-lists-out.log
(يُسمىsync-blacklist-out.log
في الإصدارات السابقة من العقدة): سجل مزامنة العقدة الفلتر مع عناوين IP المضافة إلى قوائم IP ككائنات فردية أو شبكات فرعية.sync-ip-lists-source-out.log
(يُسمىsync-mmdb-out.log
في الإصدارات السابقة من العقدة): سجل مزامنة العقدة الفلتر مع عناوين IP المسجلة في الدول والمناطق والمراكز البيانات من قوائم IP.appstructure-out.log
(في حاويات Docker فقط): سجل نشاط وحدة اكتشاف API .registernode_loop-out.log
(في حاويات Docker فقط): سجل نشاط البرنامج النصي الغلاف أثناء تشغيل البرنامج النصيregister-node
بينما هو ناجح.weak-jwt-detect-out.log
: سجل الكشف عن الثغرة JWT.detect-cred-stuffing-out.log
: سجل الكشف عن credential stuffing.
عند التثبيت باستخدام طرق أخرى ، مثل الحزم DEB/RPM, يتم توضع ملفات السجل داخل الدليل /var/log/wallarm
.
ها هو تفصيل الملفات السجل التي ستواجهها والنوع من المعلومات التي يحتويها كل منها:
brute-detect.log
: سجل جلب العدادات المتعلقة بالهجوم بالقوة الغاشمة في العقدة الفلتر.export-attacks.log
: سجل تصدير بيانات الهجمات من الوحدة النمطية postanalytics إلى السحابة Wallarm.export-environment.log
: سجل جمع إصدارات الحزم Wallarm المثبتة وتحميل هذه البيانات إلى السحابة Wallarm لإظهارها في تفاصيل العقدة الفلتر في وحدة التحكم Wallarm. يتم تشغيل هذه العمليات مرة واحدة في الساعة.syncnode.log
: سجل مزامنة العقدة الفلتر مع السحابة Wallarm (يتضمن جلب الملفات LOM و proton.db من السحابة).tarantool.log
: سجل عمليات الوحدة النمطية postanalytics.sync-ip-lists.log
(يُسمىsync-blacklist.log
في الإصدارات السابقة من العقدة): سجل مزامنة العقدة الفلتر مع عناوين IP المضافة إلى قوائم IP ككائنات فردية أو شبكات فرعية.sync-ip-lists-source.log
(يُسمىsync-mmdb.log
في الإصدارات السابقة من العقدة): سجل مزامنة العقدة الفلتر مع عناوين IP المسجلة في الدول والمناطق والمراكز البيانات من قوائم IP.appstructure.log
(في حاويات Docker فقط): سجل نشاط وحدة اكتشاف API .registernode_loop.log
(في حاويات Docker فقط): سجل نشاط البرنامج النصي الغلاف أثناء تشغيل البرنامج النصيregister-node
بينما هو ناجح.weak-jwt-detect.log
: سجل الكشف عن الثغرة JWT.
تكوين التسجيل الممتد للعقدة الفلتر المستندة إلى NGINX¶
يكتب NGINX سجلات الطلبات المعالجة (سجلات الوصول) في ملف سجل منفصل ، باستخدام تنسيق التسجيل combined
الذي تم تعريفه مسبقًا بشكل افتراضي.
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $request_id $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" ';
يمكنك تعريف واستخدام تنسيق تسجيل مخصص عن طريق تضمين متغيرات العقدة الفلتر الواحدة أو أكثر (بالإضافة إلى متغيرات NGINX الأخرى إذا لزم الأمر). سيسمح ملف سجل NGINX بتشخيص العقدة الفلتر بشكل أسرع بكثير.
متغيرات عقدة الفلتر¶
قد تستخدم المتغيرات المتغيرة التالية لعقدة الفلتر عند تعريف تنسيق التسجيل NGINX:
الاسم | النوع | القيمة |
---|---|---|
request_id | String | معرف الطلب يحتوي على النموذج التالي للقيمة: a79199bcea606040cc79f913325401fb |
wallarm_request_cpu_time | Float | الوقت بالثواني الذي قضاه CPU الجهاز الموجود على العقدة الفلتر في معالجة الطلب. |
wallarm_request_mono_time | Float | الوقت بالثواني الذي قضاه CPU في معالجة الطلب + الوقت في الطابور. على سبيل المثال ، إذا كان الطلب في الطابور لمدة 3 ثوانٍ وتمت معالجته بواسطة CPU لمدة 1 ثانية ، فإن:
|
wallarm_serialized_size | Integer | حجم الطلب المتسلسل بالبايت |
wallarm_is_input_valid | Integer | صالحية الطلب 0 : الطلب صالح. تم التحقق من الطلب بواسطة العقدة الفلتر ويتطابق مع قواعد LOM.1 : الطلب غير صالح. تم التحقق من الطلب بواسطة العقدة الفلتر ولا يتطابق مع قواعد LOM. |
wallarm_attack_type_list | String | أنواع الهجوم doc-vuln-list التي تم اكتشافها في الطلب مع مكتبة libproton. يتم تقديم الأنواع بتنسيق نصي:
| . For example: if XSS and SQLi attacks are detected, the variable value is xss|sqli . |
wallarm_attack_type | Integer | Attack types detected in the request with the library libproton. Types are presented in bit string format:
6 . |
مثال التكوين¶
فلنفترض أنك بحاجة إلى تحديد تنسيق التسجيل الممتد المسمى wallarm_combined
الذي يتضمن المتغيرات التالية:
-
جميع المتغيرات المستخدمة في تنسيق
combined
-
جميع متغيرات عقدة الفلتر
للقيام بذلك، قم بتنفيذ الإجراءات التالية:
-
الخطوط أدناه تصف التنسيق المطلوب للتسجيل. أضفها إلى كتلة
http
في ملف تكوين NGINX.log_format wallarm_combined '$remote_addr - $remote_user [$time_local] ' '"$request" $request_id $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' '$wallarm_request_cpu_time $wallarm_request_mono_time $wallarm_serialized_size $wallarm_is_input_valid $wallarm_attack_type $wallarm_attack_type_list';
-
قم بتمكين تنسيق التسجيل الممتد بإضافة التوجيه التالي إلى نفس الكتلة كما في الخطوة الأولى:
access_log /var/log/nginx/access.log wallarm_combined;
ستكتب سجلات الطلبات المعالجة في تنسيق
wallarm_combined
في ملف/var/log/nginx/access.log
.تسجيل شرطي
مع التوجيه المدرج أعلاه ، ستتم تسجيل جميع الطلبات المعالجة في ملف السجل ، بما في ذلك تلك التي ليست ذات صلة بالهجوم.
يمكنك تكوين تسجيل شرطي لتسجيل السجلات فقط للطلبات التي تكون جزءًا من هجوم (قيمة متغير
wallarm_attack_type
ليست صفر لهذه الطلبات). للقيام بذلك ، أضف شرطًا للتوجيه المذكور أعلاه:access_log /var/log/nginx/access.log wallarm_combined if=$wallarm_attack_type;
قد يكون هذا مفيدًا إذا كنت ترغب في تقليل حجم ملف السجل ، أو إذا قمت بدمج عقدة فلتر مع واحدة من حلول SIEM.
-
قم بإعادة تشغيل NGINX عن طريق تشغيل أحد الأوامر التالية حسب نظام التشغيل الذي تستخدمه:
معلومات مفصلة
للاطلاع على معلومات مفصلة حول تكوين التسجيل في NGINX ، انتقل إلى هذا الرابط.