
مرحبا ، habrozhiteli! يحتوي تطبيق يعمل في السحابة على العديد من المزايا ، ولكن في الوقت نفسه يخضع لتهديدات خاصة. مهمة فرق DevOps هي تقييم هذه المخاطر وتعزيز حماية النظام ضدهم. يعتمد الكتاب على التجربة الفريدة للمؤلف ويقدم أهم الحلول الاستراتيجية لحماية تطبيقات الويب من الهجمات ، لمنع محاولات الغزو. سترى كيفية ضمان الموثوقية من خلال الاختبارات الآلية والتسليم المستمر وعمليات DevOps الرئيسية. تعلم كيفية تحديد وتقييم وإصلاح الثغرات الموجودة في التطبيق الخاص بك. سيساعدك المؤلف في التنقل في التكوينات السحابية ، وكذلك تطبيق أدوات التشغيل الآلي الشائعة. يتطلب معرفة Linux ومعرفة ممارسات DevOps القياسية مثل CI و CD واختبار الوحدة.
مقتطفات. الفصل 8. تحليل السجل لكشف التسلل والهجوم
في هذا الفصل:
- استكشاف مكونات مستوى التحليل في خط أنابيب التسجيل.
- اكتشف الاختراقات والهجمات باستخدام تواقيع السلسلة والإحصائيات والبيانات التاريخية.
- إدارة طرق لإعلام المستخدمين على النحو الأمثل.
في الفصل 7 ، تعلمت كيفية إنشاء خط أنابيب للتسجيل يجمع سجلات ونقل وتحليلها وتخزينها من البنية التحتية بالكامل ، ويوفر أيضًا الوصول إليها. يُنشئ خط الأنابيب متعدد المستويات بنية تحتية مرنة تُستخدم فيها سجلات من مصادر مختلفة لمراقبة نشاط خدمات المنظمة. قدم الفصل 7 نظرة عامة على الوظائف التي توفرها جميع مستويات خط الأنابيب. في هذا الفصل ، سنركز على المستوى الثالث - مستوى التحليل - ونستعرض التقنيات ونماذج التعليمات البرمجية المتعلقة باكتشاف عمليات الاقتحام والهجمات على الخدمات.
يشبه خط أنابيب التسجيل الذي تستخدمه Mozilla عند كتابة الكتاب ما هو موضح في الفصل 7. يتم استخدام خط الأنابيب لمراقبة حالة عملاء Firefox (يُسمى
القياس عن بُعد ) في بيئة طبيعية ، ومعالجة سجلات الخدمة والتطبيق ، واكتشاف النشاط غير العادي. المركز المنطقي لخط الأنابيب هو على مستوى التحليل ، ويتألف من العديد من البرامج الصغيرة التي تبحث باستمرار عن شيء غير عادي. هذه البرامج الصغيرة ليست متقدمة جدًا بحيث تتعامل مع مدخلات ومخرجات أحداث السجل ، بحيث تنقل هذه المهمة إلى مركز بيانات مخصص - برنامج Hindsight (http://mng.bz/m4gg) ، المصمم لأداء عمل تحليل المكونات الإضافية على تدفقات البيانات .
في هذا الفصل ، سوف نستخدم Hindsight لقراءة أنواع مختلفة من المجلات وكتابة الإضافات الأصلية لتحليلها.
ملاحظة
توجد سجلات النماذج والإضافات لهذا الفصل على العنوان التالي: secure -devops.com/ch08/logging-pipeline . تحتاج إلى نسخ هذا المستودع إلى جهازك المحلي والحصول على حاوية Hindsight Docker لتشغيل الأمثلة.
لنبدأ بوصف كيفية ترتيب الأجزاء المختلفة من مستوى التحليل: يقع Hindsight في الوسط ، ومستويات التجميع والتخزين على كلا الجانبين. ثم سنتحدث عن ثلاثة أساليب مختلفة لاكتشاف الاختراقات والهجمات. بالنسبة إلى أبسطها ، يتم استخدام توقيعات السلسلة التي تحتوي على معلومات حول الهجمات المعروفة لإرسال الإشعارات. بعد ذلك ، نقارن النماذج الإحصائية والنهج بالتوقيعات ، ونتعرف أيضًا على كيفية تكامل هذين النهجين مع بعضهما البعض. أخيرًا ، دعونا نلقي نظرة على طرق تطبيق بيانات نشاط المستخدم السابقة لتحديد المناطق المشبوهة بين الاتصالات.
القسم الأخير من الفصل يدور حول إرسال الإشعارات. من غير المحتمل أنك تريد تلقي الآلاف من الإخطارات من مستوى التحليل كل يوم ، مما سيؤدي إلى الكثير من الضوضاء ، بدلاً من أن يكون مفيدًا. إذا لم يتم تغيير هذا ، فسوف يعتبر المستلمون الإخطارات كرسالة غير مرغوب فيها وسوف يتجاهلونها. في القسم الأخير من هذا الفصل ، سننظر في أفضل الممارسات لتنظيم إرسال الإشعارات ، وكذلك مناقشة طرق إرسال الإشعارات بدقة وكفاءة إلى المسؤولين والمستخدمين النهائيين.
8.2. اكتشاف الهجمات باستخدام توقيعات السلسلة
عند العمل مع السجلات ، فأنت تعمل مع سلاسل. وهذا يعني أن أسهل طريقة لتحديد علامات الاحتيال هي مقارنة السجلات بقائمة من الخطوط الخبيثة المعروفة. قد يبدو الأمر بسيطًا ، لكن الصناعة الأمنية كانت تعمل في هذه السنوات بالتحديد. كانت جدران حماية تطبيقات الويب (WAFs) ، الشائعة جدًا في منتصف العقد الأول من القرن العشرين ، مستودعًا للتعبيرات العادية ، والتي تم فحصها مقابل كل طلب تم إرساله إلى تطبيق ويب.
لا تعتمد على التعبيرات العادية
لقد عملت مرة في بنك استخدم فيه هذا النوع من الحماية على نطاق واسع. كان فريق الأمان مسؤولاً عن دعم WAF ، الذي قام بحماية مجموعة متنوعة من الخدمات عبر الإنترنت ، بما في ذلك خدمة التداول للعملاء. كل طلب ويب تم إرساله إلى هذه الخدمة مر بمئات التعبيرات العادية قبل الوصول إلى خادم التطبيق. بمجرد أن يقرر أحد مطوري فريق خدمة التداول عبر الإنترنت إلقاء نظرة على هذه التعبيرات العادية. لا أعرف ما الذي دفع المهندس للبدء في قراءة محتويات الملف ، المليئة بشكل رئيسي بالخط المائل ورموز الدولار والنجمة والإيجابيات والأقواس المربعة والأقواس ، لكنه أخذها. وفي مكان ما على السطر 418 في تعبير منتظم معقد ، وجد مزيجًا مشبوهًا من ". +". شخصيتان بريئتان سمحتا بكل شيء بالاستمرار دون أي ألم: هذا التعبير المنتظم يشبه قيمة "السماح بكل شيء".
إن فخرنا هو جدار الحماية الخاص بتطبيق الويب الذي يتكلف عدة آلاف يورو ، ويدعمه فريق كامل ، وأجرى المئات من عمليات فحص تعبيرات منتظمة ، مما يؤثر على الأداء ويعقد تصميم نظام معقد بالفعل ، وكل ذلك لتخطي كل شيء دون عوائق. بالطبع ، سرعان ما حل المشكلة ، لكن إيماني باستخدام تعبيرات منتظمة لضمان الأمن لم يرتفع منذ ذلك الحين. إذا كنت ترغب في تطبيق هذا النوع من نظام الحماية في مؤسستك ، فضع في الاعتبار تعقيده بحيث لا يحدث هذا لك.
عند استخدامها بشكل صحيح ، يمكن أن تصبح التعبيرات العادية أداة قوية ، لكن من الصعب للغاية كتابتها والحفاظ عليها بمرور الوقت - بل أكثر صعوبة ، وتنفيذها على نطاق واسع باهظ الثمن. ألقِ نظرة على التعبير العادي ((\٪ 3C) | <) ((\٪ 2F) | \ /) * [a-z0-9 \٪] + ((\٪ 3E) |>). لن تخمن ما يتم استخدامه ، لذلك سأخبرك: يمكن استخدامه للبحث عن الحقن في سلاسل طلب HTTP ، وكشف وجود أحرف عدم المساواة في الفتح والإغلاق ومحتوياتها. ستتلقى هذا النوع من سطر طلب HTTP من المهاجم الذي يحاول ضخ تعليمات برمجية JavaScript ضارة في التطبيق الخاص بك لينتهي بهجوم البرمجة النصية عبر المواقع ، والتي ناقشناها في الفصل 3.
يمكن استخدام هذا التعبير المعتاد لتحديد الطلبات المشبوهة التي تحتوي على محاولات الحقن. تُظهر القائمة 8.7 مثالاً للمحلل اللغوي الذي يقوم بتنفيذ ذلك عن طريق التحقق من مطابقة تعبيرات عادية في كل من سجلات وصول NGINX المنقولة. يتم تخزين التعبير العادي في متغير xss المحلي ، وتتم مقارنة قيمته بكل قيمة من الحقول [طلب] باستخدام دالة rex.match ().
إذا كانت هناك تطابقات ، فإن وظيفة add_to_payload () ترسل إخطارًا بأن المكون الإضافي للإخراج يمكنه استقباله وإرساله إلى الوجهة.
القائمة 8.7. البرنامج المساعد بالكشف عن رسائل السجل التي تحتوي على علامات الهجوم في سلسلة الاستعلام

يتم عرض مثال الإخراج من هذا البرنامج المساعد في قائمة 8.8. يتم إنشاء عدة إخطارات من المجلات عينة ، بعضها تبين أنها إيجابية كاذبة. حدث هذا جزئيًا بسبب إنشاء سجلات النماذج بشكل مصطنع باستخدام ZAP Vulnerability Scanner ، وكذلك لأن سلاسل الاستعلام لا تميل إلى احتواء علامات HTML. على وجه الخصوص ، لن يكون لهذا التعبير العادي نسبة عالية جدًا للعثور على تطابقات إيجابية خاطئة.
القائمة 8.8. أمثلة على الإعلامات التي تم إنشاؤها بواسطة البرنامج المساعد لتحليل XSS

هذا مجرد تعبير واحد منتظم لنوع معين من الهجمات. لكي يكون هذا النهج مفيدًا ، تحتاج إلى العثور على شيء أكثر من التعبيرات العادية. بالنسبة للمبتدئين ، يمكنك جمع التواقيع من مصادر مختلفة ، ومع وجود المزيد والمزيد من العلامات المشبوهة في السجلات ، قم بزيادة حجم قاعدة البيانات الخاصة بك تدريجياً.
تعرض القائمة 8.9 نسخة معدلة من محلل XSS الذي يبحث عن علامات مختلفة للهجوم (http://mng.bz/62h8). يوضح هذا البرنامج النصي كيف يمكنك استخدام جداول Lua لتخزين قائمة السمات واستخدامها دوريًا لتحليل الأحداث الواردة. في مثال التعليمة البرمجية هذا ، يمثل جدول suspicious_terms صفًا بسيطًا من الصفوف يستخدم سلاسل فرعية للبحث عن التعبيرات العادية ، والتي تكون أسرع بكثير. يستخدم جدول suspicious_terms تنسيق قيمة المفتاح لتخزين الملصقات جنبًا إلى جنب مع التعبير من أجل أن يذكرك بأنه ينبغي العثور على التعبير.
ادراج 8.9. ابحث عن علامات الهجمات باستخدام الجمل والتعبيرات


يمكنك تشغيل هذا المحلل باستخدام إعدادات الاختبار الموضحة في بداية الفصل. قم بتشغيل حاوية Docker مع الدلائل المركبة وسيتم كتابة إخراج المحلل إلى الإخراج / الحمولة / التحليل. suspicious_signatures.alerts.txt. سيرسل المكوّن الإضافي آلاف الإعلامات ، وهو أمر متوقع ، نظرًا لأن هذه السجلات يتم إنشاؤها بواسطة الماسح الضوئي لضعف ZAP. يمكن اعتبار هذا النهج ناجحًا ، لكن به عيوب يجب عليك التفكير فيها.
- من الصعب كتابة التعبيرات العادية ، وأصعب في قراءتها . سوف ترتكب أخطاء ليست سهلة التحقيق وتتطلب ساعات من التصحيح المؤلم. لا يوجد سوى أربعة تعبيرات منتظمة في هذا المحلل ، ولكن قراءة هذا الجزء من الكود أمر صعب بالفعل. بغض النظر عن مدى قوة وجاذبية الأداة قد تكون التعبيرات العادية ، أنا لا أوصي العمل معهم باستمرار.
- مع هذا النهج ، يتم إنشاء الكثير من الإخطارات . تتلقى تطبيقات الويب المفتوحة للإنترنت الكثير من حركة المرور غير العادية والخبيثة وغير ذلك الكثير. سيؤدي إنشاء إعلامات لكل علامة غير عادية إلى دفع أي فريق أمان إلى الجنون لعدة أسابيع ، حتى لو كان معدل الإيجابيات الخاطئة منخفضًا. حركة المرور غير الطبيعية هي حدث طبيعي للخدمات التي تعمل على الإنترنت.
يمكنك حل هاتين المشكلتين من خلال تطبيق منهج رياضي وجعل هذا النظام المثالي لاكتشاف الحالات الشاذة أقل مثالية. في القسم التالي ، سنبحث في كيفية استخدام الأساليب الإحصائية لإرسال الإشعارات عند التغلب على العتبة كوسيلة لتقليل الضوضاء من منطق اكتشاف الحالات الشاذة.
عن المؤلف
في وقت كتابة هذا التقرير ، كان
جوليان فيهين يدير فريق أمن العمليات في فايرفوكس ، موزيلا. إنه مسؤول عن إنشاء وتنفيذ وتشغيل استراتيجية أمان خدمات الويب التي يتفاعل معها ملايين مستخدمي Firefox كل يوم. ركز جوليان على حماية خدمات الشبكة في أوائل العقد الأول من القرن العشرين. بدأ العمل كمسؤول نظام في نظام Linux ، وفي عام 2007 حصل على درجة الماجستير في أمن المعلومات.
»يمكن الاطلاع على مزيد من المعلومات حول الكتاب على
موقع الناشر»
المحتويات»
مقتطفاتخصم 25٪ على كوبون
الباعة المتجولين -
DevOpsعند دفع النسخة الورقية من الكتاب ، يتم إرسال كتاب إلكتروني عبر البريد الإلكتروني.