مشروع OWASP – الـ 10 مخاطر الأوائل في أمن تطبيقات الويب

OWASP

OWASP هي الحروف الأولى من كلمات عبارة Open Web Application Security Project والتي تعني مشروع أمان تطبيق الويب المفتوح، هذا المشروع هو مؤسسة غير ربحية تعمل على تحسين أمان البرامج والتطبيقات.

OWASP Top 10 عبارة عن وثيقة توعية للمطورين تتعلق بأمان تطبيقات الويب. إنها تمثل قائمة بالمخاطر السيبرانية الأكثر أهمية والأكثر شيوعًا لتطبيقات الويب. وذلك بهدف تثقيف الأشخاص المنوط بهم تطوير الويب كالمطورين والمصممين وغيرهم من مديري الأنظمة - حول الآثار المترتبة نتيجة لنقاط الضعف الأمنية. وقد تم اختيار أعلى 10 مخاطر ويتم التحديث عليهم من وقت لآخر.

قائمة OWASP Top 10 - أهم مخاطر أمنية لتطبيقات الويب

1. الحقن Injection

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

كيف تحمي موقعك

  • يمكن أن يساعد الاحتفاظ بالبيانات غير الموثوقة منفصلة عن الأوامر والاستعلامات في منع الثغرات الأمنية للحقن.
  • الخيار المفضل هو استخدام واجهة برمجة تطبيقات آمنة، والتي تتجنب استخدام المُفسِّــر بشكل كامل.

2. ضعف التحقق من الهوية Broken Authentication

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

كيف تحمي موقعك

يمكنك المساعدة في حماية موقع الويب الخاص بك من ثغرات ضعف التحقق من الهوية بـ:

  • مجموعة قوية من وحدات التحقق من الهوية.
  • جهود قوية يجب أن تقدم لمنع ثغرات البرمجة عبر المواقع XSS، والتي قد تستخدم لسرقة معرفات جلسات الاتصال (انظر رقم 7).

3. كشف البيانات الحساسة Sensitive Data Exposure

قد تسمح التطبيقات وواجهات برمجة التطبيقات التي لا توفر الحماية بشكل صحيح للمخترقين بالوصول إلى البيانات الحساسة.

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

كيف تحمي موقعك

لا يمكن لمشروع OWASP 10 TOP تغطية كافة تفاصيل المخاطر. لكن هذا لا يمنع من اتباع الخطوات التالية لحماية البيانات الحساسة مثل:

  • خذ بعين الاعتبار التهديدات التي تتعرض لها هذه البيانات وتأكد من تشفير بياناتك الحساسة في حالة التخزين والإرسال.
  • لا تخزن البيانات الحساسة غير المطلوبة.
  • عطل خاصية الإكمال التلقائي عند تعبئة البيانات الحساسة.
  • عطل خاصية الاحتفاظ بنسخة الوصول السريع في الصفحات Caching والتي يمكن أن تحتوي على بيانات حساسة.

4. كيانات XML الخارجية XML External Entities (XXE)

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

كيف تحمي موقعك

  • أفضل طريقة لمنع XXE هي استخدام تنسيقات بيانات أقل تعقيدًا مثل JSON وتجنب تسلسل البيانات الحساسة.
  • قم بتصحيح أو ترقية كافة معالجات ومكتبات XML المستخدمة من قبل التطبيق أو على نظام التشغيل الأساسي. واستخدم مدقق التبعية. قم بتحديث SOAP إلى SOAP 1.2 أو أعلى.

5. كسر مراقبة الدخول Broken Access Control

تسمح هذه الثغرة الأمنية للمخترق بتجاوز التفويض وأداء المهام التي عادةً ما تقتصر على المستخدمين الذين يتمتعون بامتيازات أعلى مثل المسؤول.

يمكن أن تسمح هذه الثغرة للمخترق بأداء مهام متقدمة بمستوى المسؤول مثل إضافة أو إزالة المكونات الإضافية والمستخدمين.

كيف تحمي موقعك

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

  • تنفيذ آليات التحكم في الوصول مرة واحدة وإعادة استخدامها في جميع أجزاء التطبيق، بما في ذلك تقليل استخدام CORS.
  • يجب أن تقوم عناصر التحكم في الوصول إلى النموذج بفرض ملكية السجل، بدلًا من قبول إمكانية إنشاء المستخدم أو قراءته أو تحديثه أو حذفه.
  • تعطيل قائمة دليل خادم الويب والتأكد من عدم وجود البيانات الوصفية للملف (مثل .git) وملفات النسخ الاحتياطي داخل جذور الويب.
  • سجل حالات فشل مراقبة الدخول، وقم بتنبيه المسؤولين عند الاقتضاء (مثل حالات الفشل المتكررة).

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


6. الإعدادات الأمنية الخاطئة Security Misconfiguration

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

كيف تحمي موقعك

  • يمكن التخفيف من مشكلات الإعدادات الأمنية الخاطئة عن طريق إزالة أي ميزات غير مستخدمة في التعليمات البرمجية، والحفاظ على تحديث جميع المكتبات، وجعل رسائل الخطأ أكثر عمومية.
  • حاول تشغيل أدوات الفحص والقيام بعمليات التدقيق دوريا للكشف عن الإعدادات الخاطئة أو التصحيحات المفقودة في المستقبل.
  • أنشئ بنية تطبيق قوية بحيث توفر فصل آمن وفعال بين المكونات.

7. البرمجة عبر المواقع Cross-Site Scripting (XSS)

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

كيف تحمي موقعك

القضاء على ثغرات XSS يتطلب فصل البيانات الغير موثوق بها من المحتوى النشط للمتصفح.

  • الخيار المفضل هو تخطي البيانات الغير موثوقة بالاعتماد على سياق HTML (body).
  • يجب الأخذ بعين الاعتبار مكتبات التطهير الآلية (auto-sanitization) مثلOWASP Java HTML Sanitizer و OWASP AntiSamy.
  • يمكن عمل قائمة بالمدخلات المسموحة "whitelist" لمساعدتك في الحماية ضد ثغراتً XSS، رغم كونها ليست حماية كاملة.
  • يجب النظر في سياسات أمن المعلومات خاصتك للمحتوى (Content Policy Security (CSP)).

8. ضعف التسجيل ومراقبة النشاط Insufficient Logging & Monitoring

يمكن أن يؤدي ضعف التسجيل ومراقبة النشاط إلى تأخير اكتشاف خرق أمني. تظهر معظم الدراسات أن الوقت اللازم لاكتشاف الاختراق يزيد عن 200 يوم! يسمح هذا المقدار من الوقت للمهاجم باختراق أنظمة أخرى أو تعديل أو سرقة أو إتلاف المزيد من البيانات.

كيف تحمي موقعك

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

9. استخدام مكونات معروفة الضعف Using Components with Known Vulnerabilities

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

كيف تحمي موقعك

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

10. إلغاء التسلسل غير الآمن Insecure Deserialization

يحول التسلسل الكائنات من رمز التطبيق إلى تنسيق يمكن استعادته لاحقًا، مثل تصدير إعدادات "مكون إضافي" إلى ملف JSON.

إلغاء التسلسل هو عكس هذه العملية، حيث يتم أخذ البيانات المهيكلة بتنسيق ما وإعادة بنائها مرة أخرى في كائن. على سبيل المثال، أخذ إعدادات "مكون إضافي" التي قمت بتخزينها في ملف JSON واستيرادها إلى موقع ويب جديد.

يمكن وأن يؤدي إلغاء التسلسل الغير آمن غالبًا إلى قيام المهاجم بتنفيذ التعليمات البرمجية عن بُعد، مما قد يؤدي إلى هجمات تصعيد الحقن.

كيف تحمي موقعك

  • الطريقة الوحيدة للتخفيف من ثغرات إلغاء التسلسل الغير آمن هي عدم قبول التسلسل من مصادر غير موثوق بها.

تعد قائمة OWASP Top 10 موردًا جيدا لنشر الوعي حول كيفية تأمين تطبيقاتك من الثغرات الأمنية الأكثر شيوعًا. لسوء الحظ، السبب في جعل هذه الثغرات الأمنية في قائمة العشرة الأوائل هو أنها منتشرة.

يمكن أن يساعد استخدام مكون إضافي للأمان في ووردبريس في تأمين موقع الويب الخاص بك وحمايته من العديد من مشكلات الأمن الشائعة هذه.

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

مزيد من المعلومات عن مشروع OWASP يمكنك قراءة ملف الـ PDF التالي لعام 2013 - أو زيارة الموقع الرسمي لـ OWASP