التقييم الأمني واختبار الاختراق لتطبيقات الويب

باستخدام منهجيات OWASP WSTG وASVS، نحدّد الثغرات الأمنية في تطبيقات الويب ونقيّمها، بما في ذلك حقن SQL وXSS وعيوب المصادقة وإعدادات الأمان الخاطئة.

OWASP WSTGOWASP ASVSCVSS ScoringPCI-DSS
4
منهجيات مرجعية
91
فئات اختبار OWASP WSTG
286
ضوابط OWASP ASVS
10 من 10
مخاطر OWASP Top 10

تغطية كاملة لـ OWASP Top 10 (2021)

تغطّي اختباراتنا جميع مخاطر OWASP الأمنية العشرة الكبرى

A01

التحكم في الوصول المكسور

A02

إخفاقات التشفير

A03

الحقن

A04

التصميم غير الآمن

A05

سوء الإعداد الأمني

A06

المكوّنات المصابة بالثغرات

A07

إخفاقات المصادقة

A08

إخفاقات سلامة البيانات

A09

إخفاقات التسجيل

A10

SSRF

لماذا يهمّ أمن تطبيقات الويب؟

تطبيقات الويب هي خط الدفاع الأول في مواجهة المهاجمين وتحتاج إلى اختبارات أمنية شاملة

ناقل الهجوم الأساسي

تطبيق الويب متاح من الخارج ويعمل دائماً. وبالنسبة لمهاجم لديه هدف محدّد، فهو أول ما يجرّبه، لأنه لا يحتاج إلى وصول داخلي ولا إلى خداع موظّف.

مخاطر اختراق البيانات

يمكن لحقن SQL وXSS والمصادقة المكسورة كشف بيانات العملاء الحساسة والمعلومات المالية وأسرار العمل.

متطلّبات الامتثال

يتطلّب PCI-DSS وISO 27001 وغيرهما من اللوائح تقييمات أمنية منتظمة لتطبيقات الويب التي تتعامل مع بيانات حساسة.

استمرارية العمل

يمكن للثغرات الأمنية أن تؤدّي إلى تعطّل الخدمة وخسائر مالية وضرر بالسمعة يؤثّر في عملكم.

ما الذي نختبره؟

تغطية شاملة لكل جوانب أمن تطبيقات الويب بناءً على OWASP

جمع المعلومات
قبل اختبار أي شيء نحدّد ما الذي ننظر إليه: النطاقات والنطاقات الفرعية، والتقنية خلف التطبيق، والمسارات الخفية، والإصدارات الأقدم التي لا تزال متاحة.
  • رسم خريطة النطاقات والنطاقات الفرعية
  • تحديد بصمة التقنية والإصدارات
  • اكتشاف المسارات والملفات المتروكة
  • فحص محرّكات البحث والمستودعات العامة
الإعداد والنشر
تأتي الخوادم وأطر العمل والخدمات المساندة عادةً بإعدادات افتراضية. وهنا تُفحَص تلك الإعدادات: ترويسات الأمان، ومعالجة الأخطاء، والملفات المتروكة، والواجهات الإدارية التي لا ينبغي أن تُرى من الخارج.
  • ترويسات الأمان وسياسة المحتوى
  • الواجهات الإدارية المكشوفة
  • ملفات الإعداد والنسخ الاحتياطي
  • معالجة الأخطاء والصفحات الافتراضية
  • إعداد TLS
إدارة الهوية
الأدوار ودورة حياة الحساب: هل يمكن إنشاء حساب بامتياز أعلى، وهل يمكن تخمين أسماء المستخدمين، وهل يتيح التسجيل تعداد المستخدمين.
  • تعريف الأدوار ومستويات الوصول
  • مسار التسجيل والتحقّق
  • تعداد المستخدمين
  • سياسة اسم المستخدم وكلمة المرور
المصادقة
كل مسار يُدخِل المستخدم هو نقطة دخول: نموذج تسجيل الدخول، واستعادة كلمة المرور، والدخول عبر مزوّدين آخرين، والتحقّق بالعامل الثاني.
  • نموذج تسجيل الدخول وتحديد المحاولات
  • استعادة كلمة المرور وتغييرها
  • الدخول الموحَّد وOAuth
  • التحقّق بالعامل الثاني
  • تخزين بيانات الاعتماد
التحكم في الوصول
يتصدّر التحكم في الوصول المكسور قائمة OWASP Top 10 لعام 2021. نختبر بعدّة حسابات في آن واحد لنرى هل يستطيع مستخدم قراءة بيانات مستخدم آخر أو التصرّف فيها.
  • الوصول الأفقي بين المستخدمين المتناظرين
  • الوصول الرأسي إلى دور أعلى
  • الإشارة المباشرة غير الآمنة إلى الكائنات
  • التحكم في الوصول على طبقة API
إدارة الجلسات
تُتابَع الجلسة من لحظة إنشائها حتى تسجيل الخروج: كيف يُولَّد الرمز ويُخزَّن، وسلوك ملفات تعريف الارتباط، والانتهاء، وهل يُبطِل تسجيل الخروج الجلسة فعلاً.
  • توليد الرمز وإمكانية التنبّؤ به
  • سمات ملف تعريف الارتباط ونطاقه
  • انتهاء الجلسة وتجديدها
  • إبطال الجلسة عند الخروج وتغيير كلمة المرور
التحقق من المدخلات والحقن
كل موضع يصل فيه مدخل المستخدم إلى مفسّر: قاعدة البيانات، أو أمر نظام التشغيل، أو محرّك القوالب، أو مسار ملف، أو طلب من جهة الخادم.
  • حقن SQL وحقن NoSQL
  • حقن الأوامر
  • حقن القوالب من جهة الخادم
  • اجتياز المسارات
  • تزوير الطلبات من جهة الخادم
معالجة الأخطاء والتشفير
ما الذي يتسرّب عبر رسائل الأخطاء، وأي الخوارزميات تحمي الأسرار المخزَّنة، وكيف تُضبَط البيانات أثناء النقل.
  • إفشاء المعلومات في رسائل الأخطاء
  • خوارزمية التجزئة وتمليح كلمات المرور
  • تشفير البيانات الحساسة
  • إعداد TLS والشهادات
منطق العمل
لا تجد الأدوات الآلية هذا. نتتبّع التدفّقات الحقيقية للتطبيق، حيث يغيّر ترتيب خطوة أو تكرارها النتيجة.
  • تخطّي خطوات في سير العمل
  • إعادة إرسال الطلبات وحالات التسابق
  • التلاعب بالسعر والخصم
  • إساءة استغلال حدود العمل
جانب العميل وواجهات API
الكود الذي يعمل في المتصفّح وواجهات API خلفه، بما في ذلك كيف تتصرّف تلك الواجهات حين تُستدعى مباشرةً دون الواجهة.
  • البرمجة عبر المواقع وDOM
  • تزوير الطلبات عبر المواقع
  • Clickjacking وسياسة الإطارات
  • CORS وموارد النطاقات الأخرى
  • واجهات REST وGraphQL

بأي مستوى من الوصول يُجرى الاختبار؟

تعطي المستويات الثلاثة نتائج مختلفة. ويعتمد الاختيار بينها على ما إذا كنتم تريدون محاكاة هجوم حقيقي أم الحصول على أوسع تغطية في الوقت المتاح.

الصندوق الأسود
لا معلومات ولا حسابات

نبدأ من حيث يبدأ المهاجم الخارجي. وهذه أقرب صورة إلى هجوم حقيقي، لكن قد لا تُبلَغ أجزاء من التطبيق أبداً ضمن الوقت المتاح.

الصندوق الرمادي
حسابات ونظرة عامة على البنية

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

الصندوق الأبيض
الكود المصدري والوثائق

مناسب لعيوب المنطق والمسارات التي لا يمكن إيجادها من الخارج. وعادةً يسير جنباً إلى جنب مع مراجعة الكود.

نطاق التقييم وما نحتاجه منكم

تعتمد جودة النتيجة أكثر من أي شيء على جاهزية هذه الأمور القليلة.

نتّفق على النطاق كتابةً قبل البدء

قائمة النطاقات والنطاقات الفرعية، والبيئة التي يُجرى عليها الاختبار، وأدوار المستخدمين الداخلة في النطاق، وأي شيء يجب أن يبقى دون مساس.

حساب اختبار لكل دور

حساب واحد على الأقل لكل دور، وحسابان في المستوى نفسه حتى يمكن اختبار التحكم في الوصول بين المتناظرين. وبدونها يبقى جزء كبير من التطبيق دون اختبار.

بيئة الاختبار أو الإنتاج

البيئة التي تطابق الإنتاج تعطي أدقّ نتيجة. وإذا تعيّن إجراء الاختبار على بيئة الإنتاج، فتُتَّفق الساعات والحدود مسبقاً.

تجاوز الطبقات الواقية

حيث يقف WAF أو محدّد معدّل في المقدّمة، تُسمَح عناويننا بالمرور لجزء من الاختبار، بحيث يكون المقيس هو التطبيق نفسه لا المرشّح أمامه.

قناة واحدة، ودون انتظار التقرير

جهة اتصال مسمّاة في كلا الطرفين. وإذا ظهر شيء حرج في منتصف المهمة، فيُبلَّغ في اليوم نفسه بدلاً من حجزه للتقرير النهائي.

كيف تُحدَّد خطورة كل نتيجة

رقم لا منهجية وراءه لا يساعد أحداً على تقرير ما يُصلَح أولاً.

CVSS v3.1 هو نقطة البداية

تُسجَّل كل نتيجة بـ CVSS v3.1، فتوجد لغة مشتركة مع مهندسيكم ومع الأدوات التي تستخدمونها أصلاً.

ثم سياق العمل

لا تحمل نقطة الضعف نفسها الوزن ذاته على صفحة تسجيل دخول وعلى شاشة داخلية. تُعدَّل الدرجة الأساسية بحسب قيمة البيانات ومدى إمكانية الوصول إلى المسار.

مُثبَت لا مفترَض

تأتي كل نتيجة مع خطوات تعيد إنتاجها. وما لا نستطيع إثباته لا يُبلَّغ عنه بوصفه نتيجة مؤكَّدة.

ترتيب للإصلاح

يقترح التقرير تسلسلاً: ما يُصلَح هذا الأسبوع، وما يمكن أن ينتظر دورة التطوير التالية.

عمليتنا

نهجنا المنظَّم لتقييم أمن تطبيقات الويب

1
الاستطلاع

نرسم البنية، ونعدّد نقاط النهاية خلف الواجهة وأمامها، ونحدّد التقنية وإصداراتها، ونبحث عن عمليات نشر أقدم لا تزال متاحة. وتحدّد هذه الخطوة أين يُصرَف الوقت المتبقّي.

2
تقييم الثغرات

نمضي في فئات OWASP WSTG على السطح المرسوم. وتغطّي الأدوات الأنماط المعروفة بسرعة؛ أما الفئات التي لا تستطيع الأداة الحكم عليها، وعلى رأسها التحكم في الوصول ومنطق العمل، فتُختبَر يدوياً بعدّة حسابات.

3
الاستغلال والتحقق

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

4
إعداد التقارير والمعالجة

يُقدَّم التقرير مع جلسة لاستعراضه، حتى يفهم المهندسون الذين سيؤدّون العمل كل نتيجة. وبعد الإصلاحات، تُعاد اختبار النتائج ويُحدَّث التقرير.

مخرجات المشروع

تقارير شاملة وقابلة للتنفيذ للفرق التقنية والإدارية

الملخّص التنفيذي

ما الذي اختُبر، وما الذي وُجد، وماذا يعني ذلك للعمل، بلغة يستطيع قارئ غير تقني التصرّف بناءً عليها. صفحتان إلى ثلاث.

التقرير التقني

كل نتيجة مع درجة CVSS v3.1، والخطوات التي تعيد إنتاجها، والطلبات والاستجابات المعنية، والمكوّن المتأثّر.

دليل المعالجة

إصلاح ملموس لكل نتيجة لا مجرّد إحالة إلى معيار، مع نموذج كود حيث يكون الإصلاح كوداً، وترتيب مقترَح للعمل.

إعادة اختبار مجانية

بعد الإصلاح، تُعاد اختبار كل نتيجة فإمّا يُؤكَّد إغلاقها أو تُعاد فتحها مع بيان ما لا يزال يعمل، ويُحدَّث التقرير.

الأسئلة الشائعة

ما أنواع تطبيقات الويب التي تختبرونها؟
ما الفرق بين تقييم الثغرات واختبار الاختراق؟
كم يستغرق تقييم أمن تطبيق ويب معتاد؟
أي منهجيات تتّبعون في اختبار أمن الويب؟
هل يسبّب اختبار الاختراق أي تعطيل لخدماتنا؟
ما المخرجات التي سنتسلّمها بعد التقييم؟
ما الفرق بين اختبار الصندوق الأسود والصندوق الأبيض؟
كم تبلغ تكلفة اختبار اختراق تطبيق الويب؟
هل تحتاجون إلى كودنا المصدري؟
لدينا WAF بالفعل. هل ما زلنا بحاجة إلى اختبار؟
بمَ يختلف هذا عن مسح الثغرات الآلي؟
كم مرة ينبغي تكرار الاختبار؟
ماذا يحدث بعد إصلاحنا للنتائج؟
هل تطبيق الويب لديكم آمن؟
تواصلوا مع فريقنا المتخصّص لإجراء تقييم أمني شامل لتطبيق الويب لديكم