الوحدة 2
تسجيل أحداث موقع الويب للأمان
آخر تحديث في: 26 ديسمبر 2024
GitHub تعديل هذه الصفحة علىالوحدة 2
آخر تحديث في: 26 ديسمبر 2024
GitHub تعديل هذه الصفحة علىيُعدّ أي موقع ويب على الإنترنت معرضًا لشكل مستمر للهجوم، وعلى أقل تقدير تغرق بهجمات غير موجّهة من أعداد كبيرة من روبوتات تُديرها جهات إجرامية. والأمر الأكثر إثارة للقلق هو الهجمات المستهدفة لأن حتى المهاجمين غير المهرة مع القليل من المثابرة والحظ، يمكنهم العثور على نقاط ضعف في موقع الويب.
من الناحية المثالية، يجب أن يكون مالك موقع الويب قادرًا على إدراك التهديدات التي يواجهها، وسيرغب في معرفة ما إذا كان المهاجم قريبًا من العثور على ثغرة أمنية في موقعه أو وجدها مؤخرًا. وأخيرًا في حالة استغلال ثغرة أمنية سيرغب مالكو الموقع في معرفة مكانها ومدة استغلالها، ويمكن أن تدعم سجلات موقع الويب كل هذه الرغبات.
من ناحية أخرى يمكن أن يشكل فرط إبقاء السجلات خطرًا على مستخدمي مواقع الويب، حيث إذا قام الموقع بتسجيل معلومات حساسة وحصل المتطفل على هذه السجلات (على سبيل المثال، الاستيلاء عليها من قبل سلطات إنفاذ القانون أو سرقها المخترقون)، فقد تنتهي المعلومات الحساسة بسهولة في الأيدي الخطأ.
سيغطي هذا الموضوع الفرعي مناهج تسجيل مواقع الويب لتعظيم الفائدة لأصحاب مواقع الويب وتقليل المخاطر التي يتعرض لها مستخدمو الموقع.
بعد استكمال هذا الموضوع الفرعي، يجب أن يكون الممارس قادرًا على القيام بما يلي:
حتى مع توفر المهارات والتفاني والعمليات بأفضل صورة، من شبه المستحيل تطوير موقع ويب يكون محصناً تماماً ضد أي نوع من الهجمات، ومع مرور الوقت وبعض الحظ السيئ سيتعرض كل موقع لحادث أمني. عندما يحدث ذلك من المهم أن يكون لديك سجلات أحداث تدعم اكتشاف الأحداث الأمنية والتحقيق فيها، وفي الوقت نفسه من المهم ألا تشكل سجلات موقع الويب مخاطر إضافية بحد ذاتها. سيعلمك هذا الموضوع الفرعي كيفية التعامل مع التسجيل لزيادة أمان الموقع، وسيناقش:
تمتلك منصات الويب المختلفة أنظمة تسجيل خاصة بها، ويمكن الاعتماد عليها لتسجيل البيانات عند كل طلب واستجابة، ولكنها لا تكفي عمومًا لجميع احتياجات الاستجابة للحوادث. لنراجع ما هو متاح في بعض سجلات الأطر الشائعة.
أباتشي هو خادم ويب مكتمل الميزات والأكثر شعبية على الإنترنت ويخدم مواقع أكثر نشاطًا من أي خادم آخر، وبشكل افتراضي يُسجل الأحداث للملف على نظام ملفات خادم الويب. يوجد ملفان: access_log وerror_log. ويضم سجل الوصول معلومات منظمة حول كل طلب بينما يحتوي سجل الأخطاء على المزيد من البيانات شبه المنظمة حول الأشياء التي حدثت بشكل خاطئ.
يحتوي سجل الوصول على سطر واحد لكل إدخال بصيغة قابلة للتكوين، والصيغة الافتراضية هي الحقول التالية، كل منها مفصولة بمسافة:
إليك مثال على ذلك:
127.0.0.1 - - [13/Dec/2023:13:55:36 -0700] "GET / HTTP/1.1" 200 2326
لاحظ أنه يمكن تكوين كل خادم أباتشي لتسجيل المزيد من بيانات أقل. لمزيد من المعلومات، راجع وثائق أباتشي ولمزيد من المعلومات حول سجل وصول أباتشي وكيفية استخدامهthe Apache documentation، راجع هذه المقالة..
يتكون سجل الأخطاء من مزيج من الرسائل من أباتشي بتنسيق شبه منظم ورسائل خطأ من مواقع الويب التي تعمل على الخادم، دون أي بنية مهيكلة، والهيكل الافتراضي لإدخالات سجل الأخطاء من أباتشي نفسها هو سطر واحد لكل إدخال، مع الحقول التالية، مفصولة مرة أخرى بمسافات:
توفر هذه المقالة معلومات إضافية حول استخدامسجل أخطاء أباتشي.
نترنت إنفورميشن سيرفيسيز هو خادم الويب الافتراضي لويندوز وهو أيضًا خادم ويب شائع جدًا. مثل أباتشي يقوم إنترنت إنفورميشن سيرفيسيز أيضًا افتراضيًا بتسجيل الطلبات إلى نظام ملفات خادم الويب. توجد العديد من تنسيقات السجلات المتاحة، ولكن الافتراضي هو صيغة دبليو 3 سي (W3C) التي تسجل ما يلي مفصولة بمسافات:
GET
, POST
, HEAD
, etc.)/
, /index.htm
, /posts/34/reply
, etc.)200
, 404
, 500
, etc.)HTTP/1.1
)لاحظ أن السجلات الافتراضية لا تسجل سلسلة الاستعلام، لذلك على سبيل المثال سيسجل طلب http://example.com/profile?profileID=34 will only log /profile
.
اجع وثائق مايكروسوفت. Microsoft documentation.
سجلات الأخطاء ضمن إنترنت إنفورميشن سيرفيسيز أكثر تعقيدًا قليلًا. حسب نوع الخطأ قد ينتقل إلى ملف سجل HTTP.SYS HTTPERR أو سجل أحداث ويندوز.
يحتوي ملف HTTPERR على أخطاء على مستوى البروتوكول وهو بصيغة منظمة مع فصل الحقول التالية بمسافات:
لمزيد من المعلومات حول سجل الأخطاء، راجع وثائق مايكروسوفتMicrosoft documentation.
يحتوي سجل أحداث ويندوز على أخطاء تم إنشاؤها من خادم التطبيق (مثل ASP.NET) أو التطبيق، وهي متوفرة في عارض أحداث ويندوز وهي شبه منظمة:
لمزيد من المعلومات حول العثور على سجلات الأخطاء على ويندوز، راجع هذه المقالة.
حسب طريقة الحساب قد يكون إن جي آي إن إكس هو خادم الويب الأكثر شيوعًا على الإنترنت ولكنه محدود إلى حد ما وعادةً ما يعمل على شكل وكيل عكسي لخادم الويب الخلفي أو يقدم ملفات ثابتة.
تتشابه سجلات الوصول الافتراضية مع سجلات أباتشي الافتراضية، ولكن مع الحقول التالية في نهاية كل سطر:
لمزيد من المعلومات حول سجلات إن جي آي إن إكس، راجع الوثائق الرسمية.
سجلات أخطاء إن جي آي إن إكس شبه منظمة وتشمل الحقول التالية مفصولة بمسافات:
للاطلاع على مزيد من المعلومات، انظر هذه المقالة.
إذا كان الموقع خلف شبكة توصيل المحتوى، فغالبًا ما يكون من المفيد الاطلاع على سجلات طلبات المرسلة إلى شبكة توصيل المحتوى بدلًا من الطلبات من شبكة توصيل المحتوى إلى موقع المنشأ. يوفر كل مزود شبكة توصيل المحتوى سجلات مختلفة ولديه هياكل تسعير مختلفة للسجلات.
عند إعداد سجلات الخادم، توجد بعض خطوات يجب اتخاذها لزيادة قيمة أمان السجلات.
حتى عند تكوينها بالكامل غالبًا ما تفقد سجلات الخادم المضمّنة الكثير من المعلومات المهمة، ومن الأمثلة على ذلك:
لم يتم تضمين الكثير من هذه المعلومات لسبب وجيه ويمكن أن يكون للكثير منها آثار سيئة على خصوصية المستخدم، يتطلب بعضها الآخر (مثل تسجيل الأخطاء المفيدة) معرفة متعمّقة بالتطبيق نفسه ولذلك لا يمكن القيام بذلك بواسطة خادم الويب.
يتمثل الغرض الرئيسي من تسجيل الأحداث على مستوى التطبيق في تطبيق الويب في التغلب على قيود تسجيل الخادم للأحداث، وهناك العديد من المقالات التي تصف أفضل الممارسات لتسجيل الأحداث، وفيما يلي بعض منها:
يجب أن تُوفر لك هذه الموارد المعرفة التي تحتاجها لدمج تسجيل الأحداث الأمنية في تطبيق ويب موجود (أو جديد).
عند التغلب على قيود تسجيل الأحداث في الخادم المدمج، سنرغب بالتأكد من أننا لا نعرض مستخدمي الموقع للخطر، وغالبًا ما تكون السجلات ذات حماية أقل من قواعد بيانات الإنتاج. أولًا، ليست السجلات هدفًا واضحًا مثل قاعدة بيانات الإنتاج ولذلك يميل الناس إلى عدم التركيز عليها كثيرًا عند وضع التدابير الأمنية. ثانيًا، غالبًا ما يُمنح عدد أكبر من المستخدمين في المؤسسة حق الوصول إلى السجلات مقارنةً بالوصول إلى قاعدة بيانات الإنتاج. ثالثًا، عادة ما تُرسل السجلات إلى العديد من الأنظمة المختلفة، في حين تميل قواعد بيانات الإنتاج إلى البقاء مركزية ولهذا السبب يجدر النظر في تنقيح المعلومات الحساسة في السجلات.
توفر هذه المقالة بعض أفضل الممارسات العامة للتعامل مع البيانات الحساسة أثناء التسجيل، وفيما يلي بعض الأساليب التي يجب مراعاتها لأنواع محددة من البيانات:
من الممارسات الموصى بها عدم تضمين المعلومات الحساسة في معلمات غت، وبالتالي الحصول على المعلمات التي يتم تسجيلها، ولكن ليس معلمات بوست، لكن قد يكون من المفيد للغاية الوصول إلى معلومات حول معلمات بوست عند الاستجابة للهجوم، وتوجد عدة أمور يجب أخذها في الاعتبار عند التنفيذ:
يجب إعفاء صفحات معينة (مثل صفحة تسجيل الدخول) و/أو المعلمات (رقم بطاقة الائتمان وحقول كلمة المرور) من تسجيل الأحداث.
بالنسبة لمعلمات النشر التي سيتم تسجيلها، يجب أن تراعي تنقيحها لإخفاء المعلومات التي يحتمل أن تكون حساسة مع متابعة تحديد حركة المرور الضارة. يمكن لتعليمات بايثون البرمجية التالية أن تساعدك:
|
|
إذا تسبب الطلب في خطأ يبدو وكأنه محاولة لاختراق عناصر التحكم أو تجاوزها، فيجب على موقع الويب تسجيل معلومات الطلب بالتفصيل، وتشمل الأمثلة على ذلك ما يلي:
في حالة حدوث أي من هذه الأمور، من الجيد تسجيل الطلب بالإضافة إلى المعلومات الداخلية (على سبيل المثال، استعلام قاعدة البيانات واسم الملف وما إلى ذلك). في الحالات الجيدة يكون خطأً بسيطًا في الموقع، وفي هذه الحالة توجد الكثير من معلومات تصحيح الأخطاء. وفي الحالة السيئة يكون الموقع قد تعرض للاختراق، وفي هذه الحالة من الأسهل العثور على مكان حدوث الاختراق بحيث يكون التحليل الجنائي أكثر فعالية.
قد يكون تسجيل أحداث هوية المستخدم الذي قام بتسجيل الدخول أمرًا خطيرًا ولكن هناك خطوات يمكن اتخاذها للتخفيف من الخطر. توجد شكوك حول تسجيل ملفات تعريف الارتباط للجلسة ولكن يمكن استخدام تجزئة معرّف الجلسة لتتبع نشاط المستخدم عبر الموقع. إذا كان خادم الويب يحتوي على دليل قابل للاستعلام لجلسات المستخدم النشطة، فيمكن استخدام معرّف داخلي في السجلات أو يمكن توليد شفرة تجزئة معرّفات الجلسة الحالية لتحديد إدخالات السجل لمستخدم مسجل الدخول. سيسمح ذلك لمالكي المواقع بتحديد هوية المهاجم النشط في حين يبقي الهويات الموجودة في السجلات عديمة الفائدة لممثل التهديد بمفرده.
اقرأ أمثلة الأوامر التالية التي تستخدم أدوات يونكس الشائعة مثل awk وsort وuniq وgrep لإجراء التحليل على سجلات أباتشي وإن جي آي إن إكس.
فيما يلي أمثلة أوامر تستخدم أدوات يونكس الشائعة مثل awk وsort وuniq وgrep لإجراء التحليل على سجلات أباتشي وإن جي آي إن إكس. تُعدّ awk أداة سطر أوامر قوية لمعالجة الملفات النصية في أنظمة التشغيل الشبيهة بيونكس، وبناء جملها بسيط، وفيما يلي البناء الأساسي لأمر awk ما يلي:
awk 'pattern { action }' file
For example let’s consider the following text file (we will call it example.txt):
apple red 5
banana yellow 10
pear green 15
Orange orange 20
بتقسيم كل سطر من سطور الإدخال إلى حقول حسب المسافة الفارغة (افتراضيًا). يمكن الإشارة إلى الحقول باستخدام 1$ و2$ وما إلى ذلك حيث يشير 1$ إلى الحقل الأول و2$ إلى الحقل الثاني وما إلى ذلك.
على سبيل المثال لطباعة العمود الأول بأمر awk نحتاج إلى استخدام:
awk '{ print $1 }' example.txt
يمكننا استخدام التصفية الشرطية، على سبيل المثال إذا اردنا طباعة الأسطر التي يكون فيها العمود الثالث أكبر من 10، نستخدم:
awk '$3 > 10 {print $1, $3}' example.txt
لاستخدام محدِّد مخصص مع awk، استخدم خيار F- متبوعًا بحرف المحدِّد. على سبيل المثال، إذا كان لدينا ملف مقسوم بالفواصل، فيمكننا استخدام ‘,‘F- (أرفق حرف المحدِّد بين علامات اقتباس مفردة) لتحديد الفاصلة (,) بحيث تكون هي المحدِّد.
awk -F',' '{print $1, $3}' comma-delimited.txt
يمكننا إجراء العمليات الحسابية باستخدام awk، ويحسب هذا الأمر مجموع القيم في الحقل الثالث عبر جميع الأسطر ويطبع الإجمالي في النهاية. يُعدّ “END” نمطًا خاصًا يُستخدم لتنفيذ البيانات بعد معالجة السجل الأخير
awk '{total += $3} END {print "Total:", total}' example.txt
طباعة أرقام الأسطر بالإضافة إلى محتويات الأسطر:
awk '{print NR, $0}' example.txt
اقض بعض الوقت في تجربة أوامر awk التالية، ويمكنك استخدام سجل من خادم الويب الخاص بك أو استخدام سجل تدريبي، مثل هذا.
تحديد العدد الإجمالي للطلبات المسجلة في سجل الوصول
cat apache_access.log | wc -l
Determine the most frequently requested URLs.
awk '{print $7}' apache_access.log | sort | uniq -c | sort -nr | head -5
سيقوم أمر awk هذا بطباعة العمود السابع من كل سطر من السجل ثم يقوم بتوصيل خرج أمر awk السابق إلى أمر sort ويستخدم sort لترتيب أسطر النص أبجديًا أو رقميًا وبشكل افتراضي يفرزها بترتيب تصاعدي. بعد فرز المُخْرج باستخدام sort، يستخدم أمر uniq -c لحساب تكرارات كل سطر فريد في الخرج الذي تم فرزه. ويُستخدم أمر sort -nr لفرز المُخْرج رقميًا (n-) بترتيب عكسي (r-)، وهذا يعني أن الخطوط تفرز بناءً على قيمها العددية مع ظهور أعلى القيم أولًا. يُستخدم أمر head -5 لعرض أول 5 أسطر من الإدخال.
تعرّف على أعلى 5 عناوين بروتوكول إنترنت تُقدم طلبات إلى الخادم
awk '{print $1}' apache_access.log | sort | uniq -c | sort -nr | head -5
تحليل توزيع طرق الطلبات.
awk '{print $6}' apache_access.log | sort | uniq -c
حساب العدد الإجمالي للطلبات في سجل وصول إن جي آي إن إكس ويمكنك استخدام سجل من خادم الويب الخاص بك أو استخدام سجل تدريبي مثل هذا.
cat nginx_access.log | wc -l
تحديد عناوين مواقع الويب الأكثر طلبًا ورموز الحالة المقابلة لها
awk '{print $7, $9}' nginx_access.log | sort | uniq -c | sort -nr | head -5
حساب متوسط حجم الطلبات (بالبايت)
awk '{sum+=$10} END {print "Average request size:", sum/NR, "bytes"}' nginx_access.log
يحسب أمر AWK هذا متوسط حجم الطلبات عن طريق تلخيص القيم في العمود العاشر (يُفترض أنه يمثل أحجام الطلبات) لجميع الأسطر في ملف nginx_access.log، ثم يُقسم المجموع الإجمالي على عدد الأسطر (NR) وهو ما يمثل متوسط حجم الطلبات بالبايت، وأخيرًا تُطبع النتيجة جنبًا إلى جنب مع رسالة وصفية.
تأكد من أن العمود العاشر يمثل بالفعل حجم الطلبات بالبايت في ملف nginx_access.log الخاص بك حيث تعتمد دقة الحساب على صحة فهرسة العمود.
تحديد أفضل 5 وكلاء مستخدمين يصلون إلى الخادم
awk -F'"' '{print $6}' nginx_access.log | sort | uniq -c | sort -nr | head -5
وأخيرًا يُستخدم head -5 لعرض أفضل 5 عناوين مواقع الويب أو مسارات الطلب التي تحتوي على أعلى عدد مرات حدوث.
تحليل توزيع الطلبات حسب الساعة في اليوم
awk '{print $4}' nginx_access.log | cut -c 14-15 | sort | uniq -c
يستخدم awk لاستخراج الحقل الرابع (4$) من كل سطر من ملف access.log الذي يحتوي عادةً على الطابع الزمني.
ثم يطبق أمر cut لاستخراج الأحرف من 14 إلى 15 من كل طابع زمني والتي تتوافق مع الجزء من الساعة.
يتم توصيل قيم الساعات المستخرجة للفرز لترتيبها بترتيب تصاعدي ويستخدم uniq -c لحساب تكرارات كل قيمة ساعة فريدة.
سيعرض الخرج عدد إدخالات السجل لكل ساعة في ملف السجل.
حساب العدد الإجمالي لإدخالات الخطأ في السجل
ويمكنك استخدام سجل من خادم الويب الخاص بك أو استخدام سجل تدريبي، مثل هذا.
cat apache_error.log | grep 'error' | wc -l
cat nginx_error.log | grep 'error' | wc -l
تحديد أكثر أنواع الأخطاء شيوعًا يقوم أمر awk ‘{print $NF}’ بقراءة كل سطر من بيانات الإدخال ويقسمها إلى حقول (مفصولة بمسافة بيضاء افتراضيًا) ثم يطبع قيمة الحقل الأخير من كل سطر.
cat apache_error.log | grep 'error' | awk '{print $NF}' | sort | uniq -c | sort -nr | head -5
The number at the beginning of each line shows how many times a particular error occurred in the log. In this case, “2047
” means that the error with the last field “757
” occurred 2047 times.
The last field represents different things in each line. It could be a file path, a specific action, or some other identifier related to the error. For instance, “757
” or “154
” could be error codes or unique identifiers, while “/home/mysite/public_html/new/wp-content/plugins/woocommerce/includes/data-stores/abstract-wc-order-data-store-cpt.php:100
” could be a file path and line number where the error occurred.
nginx: Determine the top 5 IP addresses, domains, or file paths generating errors.
cat nginx_error.log | grep 'error' | awk '{print $NF}' | sort | uniq -c | sort -nr | head -5
Apache: Analyze the distribution of errors by date or time.
cat apache_error.log | grep 'error' | awk '{print $1}' | sort | uniq -c
Apache: Investigate any recurring error patterns and propose potential solutions. {$1=""; $2=""; $3="";}: This part of the awk command sets the first three fields (date, time, and timezone information) to empty strings.
cat apache_error.log | grep 'error' | awk '{$1=""; $2=""; $3=""; print}' | sort | uniq -c | sort -nr | head -10
بالنسبة لهذا التمرين، نستخدم ملفات السجل التالية this collection (same collection as the other files in this practice section)
في هذه المهمة سنستخدم التعبيرات العادية (Regular expressions أو regex اختصارًا) وهي تشبه أدوات البحث القوية التي تساعدك في العثور على أنماط محددة في البيانات. على سبيل المثال، إذا كنت تحقق في حركة مرور مشبوهة على الشبكة وتعلم أن الطلبات الضارة غالبًا ما تحتوي على أنماط معينة من الأحرف، فيمكنك استخدام التعبيرات العادية للبحث في السجلات أو تسجيلات حركة المرور للعثور على تلك الطلبات. تتيح لك التعبيرات العادية تحديد أنماط البحث المرنة، مثل:
**[a-z] range **- Matches a character in the range "a" to "z". Case sensitive.
I.e. [g-s] matches a character between g and s inclusive
abcdef**ghijklmnopqrs**tuvwxyz
**[A-Z] range -** Matches a character in the range "A" to "Z" . Case sensitive.
**[0-9] range - **Matches a character in the range "0" to "9". Case sensitive.
We can also use **quantifiers** to match the specified quantity of the previous token. {1,3} will match 1 to 3. {3} will match exactly 3. {3,} will match 3 or more.
[a-d]{3} matches any sequence of exactly three characters within the given range, each of which can be any lowercase letter from ‘a’ to ’d’. So, it would match strings like ‘abc’, ‘bda’, ‘cad’, etc. Some characters have special meanings within regexes these characters are:
Symbol | Name | Description |
---|---|---|
\ | Backslash | Used to escape a special character |
^ | Caret | Beginning of a string |
$ | Dollar sign | End of a string |
. | Period or dot | Matches any single character |
| | Vertical bar or pipe symbol | Matches previous OR next character/group |
? | Question mark | Match zero or one of the previous |
* | Asterisk or star | Match zero, one or more of the previous |
+ | Plus sign | Match one or more of the previous |
( ) | Opening and closing parenthesis | Group characters |
[ ] | Opening and closing square bracket | Matches a range of characters |
{ } | Opening and closing curly brace | Matches a specified number of occurrences of the previous |
في مهمتنا سنستخدم الخط المائل العكسي لإلغاء حرف خاص “".
يمكنك قراءة المزيد عن التعبيرات العادية هنا: https://en.wikipedia.org/wiki/Regular_expression
إذا اطلّعت على سجل وصول إن جي آي إن إكس المقدم يمكنك رؤية هذا النوع من الأسطر:
181.214.166.113 - - [15/Feb/2024:15:05:19 -0500] "[L\x9E\x804\xD9-\xFB&\xA3\x1F\x9C\x19\x95\x12\x8F\x0C\x89\x05\x81" 400 181 "-" "-"
45.95.169.184 - - [15/Feb/2024:15:49:27 -0500] "\x10 \x00\x00BBBB\xBA\x8C\xC1\xABDAAA" 400 181 "-" "-"
كما ترون، يحتوي كلا السطرين على x\ متبوعين بحرفين بالضبط يمثلان التدوين السداسي العشري (لذلك يستخدمان الأرقام من 0-9 والحروف من A إلى F)، مثل x9C\ وx10\ وxBA\ وما إلى ذلك. لتصفية جميع الأسطر، نحتاج إلى استخدام نمط ‘\x[a-fA-F0-9]’ حيث يكون \x[a-fA-F0-9] هو رمزنا المميز وهو محددنا الكمي.
سنستخدم أمر grep للبحث عن النمط المحدد في النص مثل:
يصفي أمرgrep ‘abcd’ جميع الأسطر التي تحتوي على سلسلة “abcd”.
يتيح خيار “E-” في أمر grep استخدام تعبيرات عادية موسّعة لمطابقة نمط grep -E ‘abcd[0-9]’ لتصفية النص مثل abcd\34 أو abcd\47 وما إلى ذلك.
بالنسبة لتلك التمارين، نستخدم ملفات السجل التالية this collection (كما هو الحال في القسم أعلاه)
'\\x[a-fA-F0-9]{2}'
regex to filter requests from nginx access.log containing a suspicious payload. The regex '\x[a-fA-F0-9]{3}'
matches a sequence starting with ‘\x
’ followed by exactly three hexadecimal characters (0-9, a-f, or A-F). How many lines are there? error.log
by running more error.log
. You can quit this command with ctrl+c or press the “q” key to return command prompt. Excluding “PHP Notice” errors. What kind of critical errors can you find in the log?التمرين 1: الإجابة الصحيحة: 113 lines
Command(s) to execute: grep -E '\\x[a-fA-F0-9]{2}' nginx_access.log|wc|awk '{print $1}'
التمرين 2: الإجابة الصحيحة: 222.186.13.131 20 lines
Command(s) to execute: grep -E '\\x[a-fA-F0-9]{2}' nginx_access.log|sort|awk '{print $1}'| sort | uniq -c | sort -nr
التمرين 3: الإجابة الصحيحة: أخطاء مصافحة طبقة مآخذ التوصيل الآمنة الأمر أو الأوامر الواجب تنفيذها: SSL handshaking errors
Command(s) to execute:
more nginx_error.log
cat nginx_error.log|grep -v "PHP"|grep crit
التمرين 4:
الإجابة الصحيحة: .git/config
Command(s) to execute: cat nginx_error.log|grep -v "PHP"|grep forbidden
سيكون اختبار المهارة هذا أسهل بكثير إذا كنت قد أكملت التمرين التدريبي أعلاه أولًا.
قُدّم لك سجل وصول إن جي آي إن إكس من موقع ويب يتعرض للهجوم كي تحقق فيه: download here
حدد مسارًا مشبوهًا يتم استهدافه، واستخرج عناوين بروتوكول الإنترنت التي ترسل طلبات مشبوهة واكتشف البلدان التي توجد فيها عناوين بروتوكول هذه (يمكنك استخدام قواعد بيانات جيو آي بي (geoIP)، الموضحة بمزيد من التفصيل في مسار تعلم البنية التحتية الضارة لهذا الغرض). يمكنك استخدام أدوات واجهة سطر الأوامر القياسية مثل awk وgrep وsort وuniq. لمعرفة أرقام AS والبلدان نوصي باستخدام خدمات البحث ذات الصلة عبر الإنترنت.
تلميح: يوفر ipinfo.io طريقة مريحة للبحث عن تفاصيل بروتوكول الإنترنت، ويمكنك استخدام curl للحصول عليها.
127.0.0.1 - - [13/Dec/2023:13:55:36 -0700] “GET / HTTP/1.1” 200 2326
import re
keep = [‘select’, ‘where’, ‘from’, ‘and’, ‘script’, ‘on’, ‘src’, ‘../’, ‘<’, ‘>’] output = '’
i = 0 while i < len(target): matched = False for j in keep: if target[i:i+len(j)].lower() == j.lower(): output = output + target[i:i+len(j)] i=i+len(j) matched = True if not matched: if ’ ’ == target[i:i+1]: output = output + ’ ' elif re.search(’\w’, target[i:i+1]): output = output + “A” elif re.search(’\d’, target[i:i+1]): output = output + “1” else: output = output + “*” i = i+1
ملفات السجل - أباتشي
مجانًانظرة عامة على كيفية قراءة ملفات السجل في خادم ويب أباتشي
فهم الوصول إلى أباتشي وسجل الأخطاء
مجانًامقالتان أخريان حول كيفية قراءة سجلات خادم ويب أباتشي
فهم الوصول إلى أباتشي وسجل الأخطاء
مجانًامقالتان أخريان حول كيفية قراءة سجلات خادم ويب أباتشي
تسجيل الأحداث من جانب الخادم
مجانًاتحليل السجلات داخل خادم مايكروسوفت إنترنت إنفورميشن سيرفيسيز
(ASP.Net) الفاشلة سجلات أخطاء إنترنت إنفورميشن سيرفيسيز والطرق الأخرى للعثور على طلبات إيه إس ب دوت نت
مجانًاالوصف : نظرة أخرى على سجلات إنترنت إنفورميشن سيرفيسيز وكيف يمكننا البحث عن أخطاء التطبيق فيها
تكوين تسجيل الأحداث على إن جي آي إن إكس
مجانًاوثائق خادم الويب إن جي آي إن إكس حول كيفية تكوين السجلات والعمل معها
دليل لسجلات إن جي آي إن إكس
مجانًانظرة عامة على مختلف سجلات إن جي آي إن إكس وصيغها
سجل الأمان: أفضل الممارسات لتسجيل الأحداث وإدارتها
مجانًاتحليل متى تكون السجلات مفيدة وكيف يمكننا تحليلها والسياسات التي يمكننا إنشاؤها حولها
ورقة معلومات مرجعية والمفردات لتسجيل أحداث مشروع أمان تطبيق الويب المفتوح
مجانًادليل من مشروع أمان تطبيق الويب المفتوح حول الغرض الذي يجب أن تخدمه سجلات الأحداث وكيف يجب أن نحللها بالإضافة إلى المفردات القياسية لها
ورقة معلومات مرجعية والمفردات لتسجيل أحداث مشروع أمان تطبيق الويب المفتوح
مجانًادليل من مشروع أمان تطبيق الويب المفتوح حول الغرض الذي يجب أن تخدمه سجلات الأحداث وكيف يجب أن نحللها بالإضافة إلى المفردات القياسية لها
أبق البيانات الحساسة خارج سجلاتك: أفضل 9 ممارسات
مجانًايمكن أن يتسبب تسجيل الأحداث الشامل أيضًا بتضمين بيانات حساسة مما قد يعرض المستخدمين للخطر. يبحث هذا الدليل في كيفية تكييف ممارسات التسجيل الخاصة بنا لاستبعاد البيانات الحساسة من السجلات.
تهانينا على إنهائك الوحدة 2!
حدد خانة الاختيار لتأكيد إكمالك والمتابعة إلى الوحدة التالية.
تحديد الوحدة الحالية على أنها مكتملة وحفظ التقدم للمستخدم.
لقد أكملت جميع الوحدات في مسار التعلم هذا.