10 ثغرات أمنية شائعة على شبكة الإنترنت
OWASP أو مشروع أمان الويب المفتوح هي منظمة خيرية غير ربحية تركز على تحسين أمان البرامج وتطبيقات الويب.
تنشر المنظمة قائمة بأهم نقاط الضعف في أمان الويب بناءً على البيانات الواردة من مختلف المنظمات الأمنية.
يتم تحديد أولويات الثغرات الأمنية على الويب اعتمادًا على قابلية الاستغلال وإمكانية الاكتشاف والتأثير على البرامج.
- قابلية الاستغلال –ما هو المطلوب لاستغلال الثغرة الأمنية؟ أعلى قابلية للاستغلال عندما يحتاج الهجوم إلى متصفح ويب فقط، وأقلها برمجة وأدوات متقدمة.
- إمكانية الكشف – ما مدى سهولة اكتشاف التهديد؟ أعلى مستوى هو المعلومات المعروضة على URL، نموذج أو رسالة خطأ، وأقلها هو كود المصدر.
- التأثير أو الضرر –ما حجم الضرر الذي سيحدث إذا تم الكشف عن الثغرة الأمنية أو مهاجمتها؟ الأعلى هو الانهيار الكامل للنظام والأدنى هو لا شيء على الإطلاق.
الهدف الرئيسي من OWASP Top 10 هو تثقيف المطورين والمصممين والمديرين والمهندسين المعماريين والمنظمات حول أهم الثغرات الأمنية.
أكبر 10 ثغرات أمنية حسب OWASP Top 10 هي:
حقن SQL
الوصف
الحقن عبارة عن ثغرة أمنية تسمح للمهاجم بتغيير الواجهة الخلفية SQL البيانات عن طريق التلاعب بالبيانات المقدمة من المستخدم.
يحدث الحقن عندما يتم إرسال إدخال المستخدم إلى مترجم كجزء من أمر أو استعلام ويخدع المترجم لتنفيذ أوامر غير مقصودة ويتيح الوصول إلى البيانات غير المصرح بها.
أمر SQL الذي عند تنفيذه بواسطة تطبيق الويب يمكنه أيضًا الكشف عن قاعدة البيانات الخلفية.
يتضمن
- يمكن للمهاجم إدخال محتوى ضار في الحقول المعرضة للخطر.
- يمكن قراءة البيانات الحساسة مثل أسماء المستخدمين وكلمات المرور وما إلى ذلك من قاعدة البيانات.
- يمكن تعديل بيانات قاعدة البيانات (إدراج/تحديث/حذف).
- الإدارة Operaيمكن تنفيذها على قاعدة البيانات
الكائنات الضعيفة
- حقول الإدخال
- URLيتفاعل مع قاعدة البيانات.
أمثلة:
- حقن SQL في صفحة تسجيل الدخول
تسجيل الدخول إلى التطبيق دون الحصول على بيانات اعتماد صالحة.
اسم المستخدم الصالح متاح، وكلمة المرور غير متوفرة.
اختبار URL: http://demo.testfire.net/default.aspx
اسم المستخدم: sjones
كلمة المرور: 1=1' أو pass123
تم إنشاء استعلام SQL وإرساله إلى المترجم الفوري على النحو التالي
حدد * من المستخدمين حيث User_Name = sjones وكلمة المرور = 1=1 'أو pass123؛
توصيات
- القائمة البيضاء لحقول الإدخال
- تجنب عرض رسائل خطأ مفصلة مفيدة للمهاجم.
عبر الموقع البرمجة
الوصف
تُعرف البرمجة النصية عبر المواقع أيضًا قريبًا باسم XSS.
تستهدف ثغرات XSS البرامج النصية المضمنة في الصفحة التي يتم تنفيذها على جانب العميل، أي متصفح المستخدم بدلاً من جانب الخادم. يمكن أن تحدث هذه العيوب عندما يأخذ التطبيق بيانات غير موثوقة ويرسلها إلى متصفح الويب دون التحقق المناسب.
يمكن للمهاجمين استخدام XSS لتنفيذ نصوص برمجية ضارة على المستخدمين في هذه الحالة المتصفحات الضحية. نظرًا لأن المتصفح لا يمكنه معرفة ما إذا كان البرنامج النصي موثوقًا أم لا، فسيتم تنفيذ البرنامج النصي، ويمكن للمهاجم اختطاف ملفات تعريف الارتباط للجلسة، أو تشويه مواقع الويب، أو إعادة توجيه المستخدم إلى مواقع ويب ضارة وغير مرغوب فيها.
XSS هو هجوم يسمح للمهاجم بتنفيذ البرامج النصية على متصفح الضحية.
يتضمن:
- من خلال استغلال هذه الثغرة الأمنية، يمكن للمهاجم إدخال البرامج النصية في التطبيق، ويمكنه سرقة ملفات تعريف الارتباط للجلسة، وتشويه مواقع الويب، ويمكنه تشغيل برامج ضارة على أجهزة الضحية.
الكائنات الضعيفة
- حقول الإدخال
- URLs
أمثلة
1. http://www.vulnerablesite.com/home?”<script>alert(“xss”)</script>
عند تشغيل البرنامج النصي أعلاه على المتصفح، سيتم عرض مربع رسالة إذا كان الموقع عرضة لـ XSS.
يمكن تنفيذ الهجوم الأكثر خطورة إذا أراد المهاجم عرض ملف تعريف ارتباط الجلسة أو تخزينه.
2. http://demo.testfire.net/search.aspx?txtSearch <iframe> http://google.com العرض = 500 الارتفاع 500>
عند تشغيل البرنامج النصي أعلاه، سيقوم المتصفح بتحميل إطار غير مرئي يشير إلى http://google.com.
يمكن جعل الهجوم خطيرًا عن طريق تشغيل برنامج نصي ضار على المتصفح.
توصيات
- حقول إدخال القائمة البيضاء
- ترميز الإدخال والإخراج
المصادقة المعطلة وإدارة الجلسة
الوصف
تقوم مواقع الويب عادةً بإنشاء ملف تعريف ارتباط للجلسة ومعرف جلسة لكل جلسة صالحة، وتحتوي ملفات تعريف الارتباط هذه على بيانات حساسة مثل اسم المستخدم وكلمة المرور وما إلى ذلك. عند انتهاء الجلسة إما عن طريق تسجيل الخروج أو إغلاق المتصفح فجأة، يجب إبطال ملفات تعريف الارتباط هذه، أي لكل جلسة يجب أن يكون هناك ملف تعريف ارتباط جديد.
إذا لم يتم إبطال ملفات تعريف الارتباط، فستكون البيانات الحساسة موجودة في النظام. على سبيل المثال، إذا كان المستخدم يستخدم جهاز كمبيوتر عام (Cyber Cafe)، فإن ملفات تعريف الارتباط الخاصة بالموقع الضعيف تستقر على النظام وتتعرض للمهاجم. يستخدم المهاجم نفس الكمبيوتر العام بعد مرور بعض الوقت، مما يؤدي إلى اختراق البيانات الحساسة.
وبنفس الطريقة، يقوم المستخدم الذي يستخدم جهاز كمبيوتر عام، بدلاً من تسجيل الخروج، بإغلاق المتصفح فجأة. يستخدم المهاجم نفس النظام، وعندما يتصفح نفس الموقع الضعيف، سيتم فتح الجلسة السابقة للضحية. يمكن للمهاجم أن يفعل ما يريد القيام به من سرقة معلومات الملف الشخصي، ومعلومات بطاقة الائتمان، وما إلى ذلك.
يجب إجراء فحص لمعرفة قوة المصادقة وإدارة الجلسة. يجب تنفيذ المفاتيح ورموز الجلسة وملفات تعريف الارتباط بشكل صحيح دون المساس بكلمات المرور.
الكائنات الضعيفة
- يتم عرض معرّفات الجلسات على URL قد يؤدي ذلك إلى هجوم تثبيت الجلسة.
- معرفات الجلسة نفسها قبل وبعد تسجيل الخروج وتسجيل الدخول.
- لم يتم تنفيذ مهلات الجلسة بشكل صحيح.
- يقوم التطبيق بتعيين نفس معرف الجلسة لكل جلسة جديدة.
- تتم حماية الأجزاء التي تمت مصادقتها من التطبيق باستخدام SSL ويتم تخزين كلمات المرور بتنسيق مجزأ أو مشفر.
- يمكن إعادة استخدام الجلسة بواسطة مستخدم ذي امتيازات منخفضة.
يتضمن
- ومن خلال الاستفادة من هذه الثغرة الأمنية، يمكن للمهاجم اختطاف الجلسة والحصول على وصول غير مصرح به إلى النظام مما يسمح بالكشف عن المعلومات غير المصرح بها وتعديلها.
- يمكن اختراق الجلسات باستخدام ملفات تعريف الارتباط المسروقة أو الجلسات باستخدام XSS.
أمثلة
- يدعم تطبيق حجز تذاكر الطيران URL إعادة كتابة التعليمات، ووضع معرّفات الجلسات في URL:http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (بيع تذاكر إلى جزر المالديف) يرغب مستخدم معتمد للموقع في إبلاغ أصدقائه بالبيع ويرسل بريدًا إلكترونيًا عبره. يتلقى الأصدقاء معرف الجلسة ويمكن استخدامه لإجراء تعديلات غير مصرح بها أو إساءة استخدام تفاصيل بطاقة الائتمان المحفوظة.
- يكون التطبيق عرضة لـ XSS، والذي من خلاله يمكن للمهاجم الوصول إلى معرف الجلسة ويمكن استخدامه لاختطاف الجلسة.
- لم يتم ضبط مهلة انتهاء صلاحية التطبيقات بشكل صحيح. يستخدم المستخدم جهاز كمبيوتر عامًا ويغلق المتصفح بدلاً من تسجيل الخروج ويغادر. يستخدم المهاجم نفس المتصفح بعد فترة من الوقت، ويتم مصادقة الجلسة.
توصيات
- ينبغي تحديد جميع متطلبات المصادقة وإدارة الجلسة وفقًا لمعيار التحقق من أمان تطبيقات OWASP.
- لا تكشف عن أي بيانات اعتماد في URLأو سجلات.
- وينبغي أيضًا بذل جهود قوية لتجنب عيوب XSS التي يمكن استخدامها لسرقة معرفات الجلسة.
مراجع الكائنات المباشرة غير الآمنة
الوصف
يحدث ذلك عندما يكشف المطور عن مرجع لكائن تنفيذ داخلي، مثل ملف أو دليل أو مفتاح قاعدة بيانات كما في URL أو كمعامل نموذج. يمكن للمهاجم استخدام هذه المعلومات للوصول إلى كائنات أخرى، ويمكنه إنشاء هجوم مستقبلي للوصول إلى البيانات غير المصرح بها.
يتضمن
- باستخدام هذه الثغرة الأمنية، يمكن للمهاجم الوصول إلى كائنات داخلية غير مصرح بها، أو تعديل البيانات أو اختراق التطبيق.
الكائنات الضعيفة
- في خانة رمز الخصم، أدخل TABBYDAY. URL.
أمثلة:
تغيير "userid" في ما يلي URL يمكن أن يسمح ذلك للمهاجم بالاطلاع على معلومات المستخدمين الآخرين.
http://www.vulnerablesite.com/userid=123 تم التعديل ل http://www.vulnerablesite.com/userid=124
يمكن للمهاجم عرض معلومات الآخرين عن طريق تغيير قيمة معرف المستخدم.
التوصيات:
- تنفيذ فحوصات التحكم في الوصول.
- تجنب كشف مراجع الكائنات في URLs.
- التحقق من الترخيص لجميع الكائنات المرجعية.
عبر الموقع طلب تزوير
الوصف
تزوير طلب الموقع المشترك هو طلب مزور جاء من الموقع المشترك.
هجوم CSRF هو هجوم يحدث عندما يتسبب موقع ويب أو بريد إلكتروني أو برنامج ضار في قيام متصفح المستخدم بتنفيذ إجراء غير مرغوب فيه على موقع موثوق به يتم التحقق من صحة المستخدم فيه حاليًا.
يفرض هجوم CSRF على متصفح الضحية الذي قام بتسجيل الدخول إرسال طلب HTTP مزور، بما في ذلك ملف تعريف ارتباط جلسة الضحية وأي معلومات مصادقة أخرى مضمنة تلقائيًا، إلى تطبيق ويب ضعيف.
سيرسل المهاجم رابطًا إلى الضحية عندما ينقر المستخدم على الرابط. URL عند تسجيل الدخول إلى الموقع الإلكتروني الأصلي، سيتم سرقة البيانات من الموقع.
يتضمن
- يمكن أن يؤدي استخدام هذه الثغرة الأمنية كمهاجم إلى تغيير معلومات ملف تعريف المستخدم، وتغيير الحالة، وإنشاء مستخدم جديد نيابة عن المسؤول، وما إلى ذلك.
الكائنات الضعيفة
- صفحة الملف الشخصي للمستخدم
- نماذج حساب المستخدم
- صفحة المعاملات التجارية
أمثلة
يتم تسجيل دخول الضحية إلى موقع بنكي باستخدام بيانات اعتماد صالحة. ويتلقى بريدًا إلكترونيًا من المهاجم يقول "الرجاء النقر هنا للتبرع بمبلغ 1 دولار لقضية ما".
عندما ينقر الضحية عليها، سيتم إنشاء طلب صالح للتبرع بمبلغ 1 دولار لحساب معين.
http://www.vulnerablebank.com/transfer.do?account=cause&amount=1
يلتقط المهاجم هذا الطلب وينشئ الطلب أدناه ويضمنه في زر يقول "أنا أدعم القضية".
http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000
وبما أن الجلسة قد تمت المصادقة عليها وأن الطلب يأتي عبر موقع البنك، فسيقوم الخادم بتحويل مبلغ 1000 دولار إلى المهاجم.
توصية مجاناً
- تفويض حضور المستخدم أثناء تنفيذ الإجراءات الحساسة.
- تنفيذ آليات مثل CAPTCHA، وإعادة المصادقة، ورموز الطلب الفريدة.
خطأ في التكوين الأمني
الوصف
يجب تحديد تكوين الأمان ونشره للتطبيق والأطر وخادم التطبيق وخادم الويب وخادم قاعدة البيانات والمنصة. إذا تم تكوينها بشكل صحيح، فيمكن للمهاجم الوصول غير المصرح به إلى البيانات أو الوظائف الحساسة.
أحيانًا تؤدي هذه العيوب إلى اختراق النظام بالكامل.ping يُعدّ تحديث البرنامج ميزة أمان جيدة أيضاً.
يتضمن
- ومن خلال الاستفادة من هذه الثغرة الأمنية، يمكن للمهاجم تعداد التكنولوجيا الأساسية ومعلومات إصدار خادم التطبيق ومعلومات قاعدة البيانات والحصول على معلومات حول التطبيق لشن المزيد من الهجمات.
الكائنات الضعيفة
- URL
- حقول النموذج
- حقول الإدخال
أمثلة
- يتم تثبيت وحدة تحكم مسؤول خادم التطبيق تلقائيًا ولا تتم إزالتها. لا يتم تغيير الحسابات الافتراضية. يمكن للمهاجم تسجيل الدخول باستخدام كلمات المرور الافتراضية ويمكنه الحصول على وصول غير مصرح به.
- لم يتم تعطيل قائمة الدليل على الخادم الخاص بك. يكتشف المهاجم ويمكنه ببساطة إدراج الدلائل للعثور على أي ملف.
توصيات
- هندسة تطبيق قوية توفر الفصل الجيد والأمان بين المكونات.
- تغيير أسماء المستخدمين وكلمات المرور الافتراضية.
- تعطيل قوائم الدليل وتنفيذ عمليات التحقق من التحكم في الوصول.
تخزين التشفير غير الآمن
الوصف
يعد تخزين التشفير غير الآمن ثغرة أمنية شائعة توجد عندما لا يتم تخزين البيانات الحساسة بشكل آمن.
تعتبر بيانات اعتماد المستخدم ومعلومات الملف الشخصي والتفاصيل الصحية ومعلومات بطاقة الائتمان وما إلى ذلك بمثابة معلومات بيانات حساسة على موقع الويب.
سيتم تخزين هذه البيانات في قاعدة بيانات التطبيق. عندما يتم تخزين هذه البيانات بشكل غير صحيح من خلال عدم استخدام التشفير أو التجزئة*، فإنها ستكون عرضة للمهاجمين.
(* التجزئة هي تحويل أحرف السلسلة إلى سلاسل أقصر ذات طول ثابت أو مفتاح. لفك تشفير السلسلة، يجب أن تكون الخوارزمية المستخدمة لتشكيل المفتاح متاحة)
يتضمن
- وباستخدام هذه الثغرة الأمنية، يمكن للمهاجم سرقة البيانات ذات الحماية الضعيفة أو تعديلها بغرض سرقة الهوية أو الاحتيال على بطاقات الائتمان أو جرائم أخرى.
الكائنات الضعيفة
- قاعدة بيانات التطبيق.
أمثلة
في أحد التطبيقات المصرفية، تستخدم قاعدة بيانات كلمات المرور علامات التجزئة غير المملحة * لتخزين كلمات مرور الجميع. يسمح عيب إدخال SQL للمهاجم باسترداد ملف كلمة المرور. يمكن فرض جميع التجزئة غير المملحة في أي وقت من الأوقات، في حين أن كلمات المرور المملحة قد تستغرق آلاف السنين.
(*التجزئة غير المملحة - الملح عبارة عن بيانات عشوائية تضاف إلى البيانات الأصلية. يتم إلحاق الملح بكلمة المرور قبل التجزئة)
توصيات
- تأكد من استخدام خوارزميات معيارية قوية مناسبة. لا تقم بإنشاء خوارزميات تشفير خاصة بك. استخدم فقط الخوارزميات العامة المعتمدة مثل AES، وتشفير المفتاح العام RSA، وSHA-256، وما إلى ذلك.
- تأكد من تشفير النسخ الاحتياطية خارج الموقع، ولكن تتم إدارة المفاتيح ونسخها احتياطيًا بشكل منفصل.
الفشل في التقييد URL استخدم
الوصف
فحص تطبيقات الويب URL يجب التحقق من حقوق الوصول قبل عرض الروابط والأزرار المحمية. ويتعين على التطبيقات إجراء فحوصات مماثلة للتحكم في الوصول في كل مرة يتم فيها الوصول إلى هذه الصفحات.
في معظم التطبيقات، لا يتم عرض الصفحات والمواقع والموارد المميزة للمستخدمين المميزين.
من خلال التخمين الذكي، يمكن للمهاجم الوصول إلى صفحات الامتياز. يمكن للمهاجم الوصول إلى الصفحات الحساسة، واستدعاء الوظائف وعرض المعلومات السرية.
يتضمن
- باستغلال هذه الثغرة الأمنية، يمكن للمهاجم الوصول إلى النظام بشكل غير مصرح به. URLيمكن للمهاجمين الوصول إلى صفحات حساسة، واستدعاء وظائف، والاطلاع على معلومات سرية، دون تسجيل الدخول إلى التطبيق.
الكائنات المعرضة للخطر:
- URLs
أمثلة
- يلاحظ المهاجم URL يشير إلى الدور على أنه "/user/getaccounts". يقوم بتعديله إلى "/admin/getaccounts".
- بإمكان المهاجم إضافة دور إلى URL.
http://www.vulnerablsite.com يمكن تعديلها كما http://www.vulnerablesite.com/admin
توصيات
- تنفيذ عمليات التحقق القوية من التحكم في الوصول.
- يجب أن تكون سياسات المصادقة والترخيص مبنية على الأدوار.
- تقييد الوصول إلى غير المرغوب فيه URLs.
حماية طبقة النقل غير كافية
الوصف
يتناول هذا القسم تبادل المعلومات بين المستخدم (العميل) والخادم (التطبيق). وتقوم التطبيقات عادةً transmit معلومات حساسة مثل تفاصيل المصادقة ومعلومات بطاقة الائتمان ورموز الجلسة عبر الشبكة.
إن استخدام خوارزميات ضعيفة أو استخدام شهادات منتهية الصلاحية أو غير صالحة أو عدم استخدام SSL قد يسمح بكشف الاتصالات لمستخدمين غير موثوق بهم، مما قد يؤدي إلى تعريض تطبيق الويب للخطر أو سرقة المعلومات الحساسة.
يتضمن
- ومن خلال الاستفادة من هذه الثغرة الأمنية على الويب، يمكن للمهاجم التعرف على بيانات اعتماد المستخدم المشروعة والوصول إلى التطبيق.
- يمكنه سرقة معلومات بطاقة الائتمان.
الكائنات الضعيفة
- البيانات المرسلة عبر الشبكة.
توصيات
- تمكين HTTP الآمن وفرض نقل بيانات الاعتماد عبر HTTPS فقط.
- تأكد من أن شهادتك صالحة وغير منتهية الصلاحية.
أمثلة:
1. في حالة عدم استخدام تطبيق SSL، سيقوم المهاجم ببساطة بمراقبة حركة مرور الشبكة ومراقبة ملف تعريف ارتباط جلسة الضحية الذي تمت مصادقته. يمكن للمهاجم سرقة ملف تعريف الارتباط هذا وتنفيذ هجوم Man-in-the-Middle.
عمليات إعادة التوجيه وإعادة التوجيه غير المعتمدة
الوصف
يستخدم تطبيق الويب طرقًا قليلة لإعادة توجيه المستخدمين وإعادة توجيههم إلى صفحات أخرى للغرض المقصود.
إذا لم يكن هناك تحقق مناسب أثناء إعادة التوجيه إلى صفحات أخرى، فيمكن للمهاجمين الاستفادة من ذلك ويمكنهم إعادة توجيه الضحايا إلى مواقع التصيد الاحتيالي أو البرامج الضارة، أو استخدام إعادة التوجيه للوصول إلى الصفحات غير المصرح بها.
يتضمن
- بإمكان المهاجم إرسال URL للمستخدم الذي يحتوي على بيانات أصلية URL مُلحق ببرمجيات خبيثة مشفرة URLبمجرد أن يرى المستخدم الجزء الحقيقي من الرسالة التي أرسلها المهاجم، فإنه يستطيع كشف هويته. URL يمكن تصفحه وقد يصبح ضحية.
أمثلة
1.http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com
تم التعديل ل
http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com
توصيات
- ما عليك سوى تجنب استخدام عمليات إعادة التوجيه وإعادة التوجيه في التطبيق. إذا تم استخدامه، فلا تتضمن استخدام معلمات المستخدم في حساب الوجهة.
- إذا لم يكن من الممكن تجنب معلمات الوجهة، فتأكد من أن القيمة المقدمة صالحة ومصرح بها للمستخدم.

