22 ثغرات أمنية شائعة في تطبيقات الويب يجب معرفتها
نشرت: 2021-10-14تتحرك الشركات باستمرار إلى اليسار وتستفيد من تجارب العملاء والموظفين المبتكرة التي توفرها التطبيقات المستندة إلى السحابة. في الوقت نفسه ، يقوم الجناة الخبثاء أيضًا بمراجعة استراتيجيات هجومهم باستمرار لتلائم هذا التحول.
للحفاظ على خصوصية البيانات وأمنها ، من الضروري أن تسعى الشركات إلى الحماية ضد هذه الثغرات الأمنية الشائعة في تطبيقات الويب البالغ عددها 22.
التحكم في الوصول التالف
ضوابط الوصول مسؤولة عن كيفية تفاعل المستخدمين مع الموارد والبيانات ، بالإضافة إلى ما يمكنهم تحريره و / أو قراءته. من الممكن حدوث ثغرة أمنية خاطئة في التحكم في الوصول عندما يكون المستخدم قادرًا على إشراك البيانات بطريقة غير ضرورية حقًا. على سبيل المثال ، إذا كان يجب أن يكون المستخدم قادرًا فقط على قراءة تفاصيل الدفع ولكن لديه بالفعل القدرة على تعديلها ، فإن مثل هذا الموقف يمثل مثالاً على التحكم في الوصول المعطل. يستغل المهاجمون الضارون هذه الثغرة الأمنية للحصول على وصول غير مصرح به إلى البرامج والشبكات والأنظمة. يمكنهم بعد ذلك استغلال الموقف ، ومنح معرف المستخدم مزيدًا من الوصول داخل البنية التحتية ، لتقويض توفر البيانات أو السرية أو السلامة.
المصادقة تالفة
تنبع ثغرات تطبيق الويب المرتبطة بالمصادقة التالفة أو المعطلة أيضًا من وصول المستخدم. ومع ذلك ، في هذه الحالة ، يؤثر المهاجمون الضارون سلبًا على البيانات التي تؤكد هوية المستخدم ، على سبيل المثال من خلال اختطاف الرموز المميزة للجلسة أو المفاتيح أو كلمات المرور. يحصل المهاجم الضار على وصول غير مصرح به إلى البرامج والأنظمة والشبكات لأن المؤسسة لم تكن قادرة على تعيين الضوابط الملائمة لإدارة الهوية والوصول.
إرجاع السطر وحقن التغذية (CRLF)
يعمل حرف الإرجاع كأمر يشير إلى بداية سطر من التعليمات البرمجية ، ويشار إليه عادةً باسم / r. من ناحية أخرى ، فإن تغذية السطر هي أمر يشير إلى نهاية سطر من التعليمات البرمجية ، ويشار إليه عادةً باسم / n. مثل العديد من البرامج الأخرى ، يستخدم كل نظام تشغيل مجموعات مختلفة من إرجاع السطر وتغذية السطر. عندما يشارك المهاجمون الضارون في عمليات حقن CRLF ، فإن الكود المُدخَل يغير الطريقة التي يتفاعل بها تطبيق الويب مع الأوامر. يمكن استخدام هذا إما للكشف عن البيانات الحساسة أو تنفيذ التعليمات البرمجية.
تحويل الشفرات غير آمن
التشفير ، وهو مصطلح قياسي لـ "خوارزمية التشفير" ، هو في الواقع الرياضيات الكامنة وراء عملية التشفير أو فك التشفير. يشير التحول إلى الخطوط العريضة للعمليات المنفذة على المدخلات لتسليم المخرجات المتوقعة. وبالتالي ، يشير تحويل الشفرات إلى عدد العمليات التي تخفي البيانات المشفرة غير القابلة للقراءة إلى بيانات قابلة للقراءة وفك تشفيرها. تصف الثغرة الأمنية غير الآمنة في تحويل التشفير أنه يمكن كسر خوارزمية التشفير بسهولة ، مما يؤدي في النهاية إلى تخريب جوهر التشفير في المقام الأول.
مكونات مع نقاط ضعف واضحة
يعتمد كل تطبيق ويب على المكونات الأخرى للعمل. على سبيل المثال ، إذا كنت تقوم بتشغيل تطبيق على خادم تطبيق أو ويب غير مُصحح ، فإن الخادم هو الجزء الذي يحتوي على نقاط ضعف واضحة. تشتمل قائمة الثغرات الأمنية والتعرضات الشائعة (CVE) على جميع الثغرات الأمنية المعروفة. نظرًا لأن المهاجمين الضارين لديهم معرفة بالقائمة ، فإنهم كثيرًا ما يبحثون عن مكونات بدون تحديثات تصحيح الأمان المناسبة. في اللحظة التي يمكنهم فيها اختراق أحد مكونات تطبيق الويب ، يمكنهم أيضًا الوصول إلى بيانات التطبيق.
سياسة مشاركة الموارد عبر المنشأ (CORS)
تستخدم جميع التطبيقات المستندة إلى الويب عنوان URL كوسيلة لتوصيل متصفح المستخدم بخادمه. سياسة المنشأ نفسه هي حماية مشتركة واحدة. تماشياً مع هذا ، سيستجيب الخادم فقط لعنوان URL له نفس البروتوكول ومخطط المسار واسم مجال المستوى الأعلى. ما يعنيه هذا هو أنه يمكنك الوصول إلى http://organization.com/page1 و http://organization.com/page2 لأن كلاهما يشتركان في ما يلي:
- البروتوكول: HTTP
- المجال: Company.com
- مخطط المسار: / الصفحة #
على الرغم من كونها آمنة ، فإن سياسة المنشأ نفسها مقيدة عند التعامل مع التطبيقات المستندة إلى الويب التي تتطلب الوصول إلى الموارد التي تتصل بأطراف ثالثة أو نطاقات فرعية.
تمنح سياسة CORS الإذن للمتصفح لعرض هذه الموارد المترابطة من خلال إنشاء عدد من رؤوس HTTP المسموح بها والتي تعتبر "موثوقة". على سبيل المثال ، قد يضطر التطبيق إلى سحب البيانات من قاعدتي بيانات على خوادم ويب منفصلة. تصبح صياغة قائمة "مسموح بها" معينة عملاً مفرطًا حيث تقوم بتضمين خوادم إضافية. نظرًا لأن كلا الخادمين "يشاركان" التطبيق ، تكتب الشركة سياسة CORS التي تسمح للمتصفحات بالاتصال بكليهما. ومع ذلك ، إذا لم يتم تعريف سياسة CORS بشكل صحيح ، فقد تسمح السياسة للخوادم بمنح الوصول عند طلب ذلك من قبل مهاجم ضار.
إدارة أوراق الاعتماد
تتكون بيانات اعتماد المستخدم من معرف المستخدم ومفتاح المرور. يجب على المستخدم توفير كلا العنصرين من المعلومات في صفحة تسجيل الدخول قبل الوصول إلى التطبيق. ومع ذلك ، تميل قواعد البيانات إلى استخدام تشفير ضعيف أو الاحتفاظ بالمعلومات في نص عادي. تسمح إدارة بيانات الاعتماد الضعيفة للمهاجمين بسرقة بيانات الاعتماد بسهولة واستغلالها للوصول إلى تطبيقات الويب.
تزوير الطلبات عبر المواقع (CSRF)
يستخدم هجوم CSRF منهجيات الهندسة الاجتماعية لدفع المستخدم إلى تعديل المعلومات ، مثل كلمات المرور أو أسماء المستخدمين ، في التطبيق. يتطلب CSRF ، بخلاف هجمات البرمجة النصية عبر المواقع (XXS) أو البرامج الضارة ، تسجيل دخول المستخدم إلى التطبيق الذي يستخدم ملفات تعريف الارتباط للجلسة فقط للتحقق من طلبات المستخدم أو تتبع الجلسات. في اللحظة التي ينفذ فيها المستخدم الإجراء المتوقع ، يستخدم الفاعل الضار المتصفح لتنفيذ الجزء المتبقي من الهجوم ، مثل نقل الأموال ، دون أن يعرف المستخدم ما حدث.
البرمجة النصية عبر المواقع (XXS)
على عكس CSRF الذي يتطلب من المستخدم تسجيل الدخول إلى تطبيق ليتم خداعه لتغيير معلومات معينة ، يتطلب هجوم XXS من المهاجم الضار إدخال رمز في صفحة ويب ، عادةً في بعض مكونات الصفحة مثل صورة. بمجرد قيام المستخدم بتشغيل صفحة الويب على متصفحه ، يبدأ تنزيل الشفرة السيئة وتشغيلها في المتصفح. على سبيل المثال ، قد تعيد الشفرة الضارة توجيه المستخدم من موقع موثوق به إلى موقع غير شرعي.
فهرسة الدليل
عادةً ما تحدد خوادم الويب جميع الملفات المحفوظة عليها في دليل واحد. عندما يريد المستخدم تحديد موقع ملف معين في تطبيق ويب ، فإنه عادةً ما يضيف اسم الملف في الطلب. في حالة عدم توفر الملف ، سيقدم التطبيق للمستخدم قائمة بجميع الملفات المفهرسة ، بحيث يكون لدى المستخدم خيار تحديد شيء آخر.
ومع ذلك ، يتم فهرسة الملفات تلقائيًا بواسطة خوادم الويب. عندما يقدم التطبيق قائمة بجميع الملفات المخزنة ، يمكن للمهاجم الضار الذي يستغل نقاط الضعف في فهرس الدليل الوصول إلى البيانات التي يمكن أن تمنحهم مزيدًا من المعلومات حول النظام. على سبيل المثال ، يمكنهم التعرف على حسابات المستخدمين الشخصية أو اصطلاحات التسمية. يمكن استغلال نقطتي البيانات هاتين لتنفيذ هجمات سرقة بيانات الاعتماد أو كشف معلومات حساسة.
اجتياز الدليل
تُعرف أيضًا باسم هجوم التراجع ، و dot-dot-slash ، وتسلق الدليل ، تستغل الثغرة الأمنية لمسح الدليل الطريقة التي يتلقى بها التطبيق البيانات من خادم الويب. تعمل قوائم التحكم في الوصول (ACL) بشكل عام على تقييد وصول المستخدم إلى ملفات معينة معينة داخل دليل جذر. يكتشف المهاجمون الضارون الذين يستخدمون وضع الثغرة الأمنية لاجتياز الدليل تنسيق عنوان URL الذي يستخدمه التطبيق في طلب الملفات.
التغليف
تختلف عن بعض الثغرات الأمنية الشائعة الأخرى في تطبيقات الويب في القائمة ، تستفيد ثغرة التغليف من العيوب في الطريقة التي قام المطور بها بترميز التطبيق. التغليف هو مصطلح برمجة يشير إلى تجميع البيانات والإجراءات التي يمكن تنفيذها على تلك البيانات في وحدة واحدة فقط. يؤمن التغليف البيانات عن طريق إخفاء المعلومات حول كيفية تشغيل الكود مما يوفر واجهة مستخدم أفضل. لا يتعين على المستخدمين معرفة كيف يقدم التطبيق البيانات لهم ؛ كل ما يحتاجونه هو الوصول إليه.
على سبيل المثال ، يمكن لمطور التطبيق تضمين عناصر التحكم في الوصول ، مثل أذونات القراءة أو الكتابة ، في قدرة التطبيق على استرداد البيانات. إذا طلب المستخدم معلومات في التطبيق ، فإنه يقدم فقط البيانات التي سُمح له بالوصول إليها.
ولكن إذا فشل المطورون في وضع حدود محددة بوضوح بين البيانات والإجراءات التي يتم تنفيذها عبر جوانب مختلفة من التطبيق ، فإن التطبيق يعاني من ثغرة أمنية في التغليف. يستفيد المهاجمون من هذا عن طريق إرسال طلب إلى التطبيق ، مع العلم أن مثل هذا الإجراء قد يؤدي إلى ظهور رسالة خطأ. توفر رسالة الخطأ هذه بعد ذلك معلومات تتعلق ببنية التطبيق ، مما يساعد على المزيد من استراتيجيات الهجوم مثل DOS - رفض الخدمة.
مراجع الكائنات المباشرة غير الآمنة (IDOR)
يمكن لعناوين URL لتطبيق الويب كشف النمط أو التنسيق المستخدم في توجيه المستخدمين إلى مواقع التخزين الخلفية. على سبيل المثال ، قد يُظهر عنوان URL النمط / التنسيق لمعرّف السجل في نظام تخزين مثل نظام الملفات أو قاعدة البيانات.
قد يكون IDOR وحده مصدر قلق منخفض المخاطر. ومع ذلك ، عندما يتم دمج IDOR مع فشل فحص التحكم في الوصول ، يحصل المهاجمون على فرصة لضربهم بنجاح.
نقاط الضعف الشائعة الأخرى في تطبيقات الويب التي يجب أن تعرفها هي:
تقسيم استجابة HTTP
هذا نوع من هجوم حقن CRLF. HTTP هي العملية التي ترسل من خلالها المتصفحات الاستعلامات وترسل الخوادم الردود مرة أخرى. في ثغرة تطبيق الويب هذه ، يستخدم المهاجمون الخبثاء رموز CR و LR من أجل معالجة كيفية تواصل المتصفحات والخوادم مع بعضها البعض والتي تقدم طلبًا ولكنها تخبر الخادم "بتقسيم" الاستجابة إلى أجزاء مختلفة. يمكّن تقسيم الاستجابة إلى جزأين مختلفين الفاعل الضار من التحكم في المعلومات التي يقدمها الخادم استجابةً للجزء الآخر من الطلب. عندما تكون هذه البيانات المطلوبة هي بيانات معرف المستخدم أو معلومات حساسة ، يكون الفاعل الضار قد نفذ الهجوم بنجاح.
عيب الحقن
يسمح عيب الحقن بعدد كبير من تقنيات الهجوم المختلفة. يمكن أن يعاني أي تطبيق يسمح للمستخدمين بتحديث أمر shell أو استدعاء نظام التشغيل أو قاعدة بيانات من عيب في الحقن. يستفيد المهاجمون الضارون من عيوب الحقن لتغيير الأوامر التي تتطور إلى إجراءات جديدة وغير متوقعة داخل التطبيق. من خلال الاستفادة من هذه الثغرات الأمنية ، يمكن للجهات الضارة إنشاء البيانات أو تحديثها أو قراءتها أو حتى حذفها.
ثغرة أمنية في ملخّص الرسائل
هذه ثغرة تشفير تحد من فعالية التشفير. يجب أن يشتمل ملخص الرسالة على وظيفة تجزئة التشفير. على عكس التشفير ، لا تتطلب وظائف التجزئة من المرسل والمستخدمين استخدام المفاتيح.
وبالتالي ، يستغل المهاجمون الضارون نقاط الضعف غير الآمنة لاستمرار "هجوم تصادمات التجزئة". الهدف من الهجوم هو معرفة ما إذا كان إرسال إدخال يؤدي إلى إنشاء تجزئة مكررة. إذا أدى الإجراء الضار إلى إنشاء تجزئة مشتركة بالقوة ، فيمكنهم استخدام هذه التجزئة لتقديم ملف خبيث للتنزيل. وهذا بدوره يترك للمستخدم النهائي افتراض أن الملف شرعي.
حماية طبقة النقل غير كافية
يشير أمان طبقة النقل (TLS) إلى العملية التي يمكن لتطبيقات الكمبيوتر من خلالها "الاتصال" بأمان مع بعضها البعض على الإنترنت. لا يستخدم عدد من التطبيقات TLS إلا أثناء عملية المصادقة ، مما يترك البيانات ومعلومات جلسة المعرف ضعيفة عندما يستخدم الشخص التطبيق.
يمكن للمهاجمين الاستفادة من هذه الثغرة الأمنية لتحويل البيانات أثناء انتقالها عبر الإنترنت بين جهاز المستخدم وخادم التطبيق.
تنفيذ التعليمات البرمجية عن بعد (RCE)
الثغرات الأمنية في تنفيذ التعليمات البرمجية عن بُعد هي أخطاء ترميزية في تطبيقات الويب تمكّن المهاجمين الضارين من إدخال التعليمات البرمجية بغض النظر عن موقعهم الجغرافي. تندرج RCEs ضمن فئة أوسع من الثغرات الأمنية لإدخال تطبيقات الويب حيث يقوم المهاجمون بإدخال التعليمات البرمجية الخاصة بهم في تطبيق لن يؤكد إدخالات المستخدم ، مما يجعل الخادم ينظر إليها على أنها رمز تطبيق أصلي. عادةً ما يستفيد المهاجمون الضارون من الثغرات الأمنية المعروفة غير المصححة ويقومون بإدخال التعليمات البرمجية الخاصة بهم في التطبيق.
تضمين الملف البعيد (RFI)
لربط الدلائل الشائعة بتطبيق ما ، يضيف المطورون عبارات "include" في التعليمات البرمجية الخاصة بهم. على سبيل المثال ، قد يضطر التطبيق إلى سحب البيانات من قاعدة البيانات. بدلاً من ترميزه يدويًا للحصول على كل ملف ، تساعد عبارة "include" في ربط دليل المصدر بالكامل بحيث يمكن استخدام كل شيء مخزَّن هناك.
عندما يعاني تطبيق ويب من ثغرة أمنية في RFI ، يمكن للمهاجمين معالجة التطبيق لتحميل تعليمات برمجية ضارة أو برامج ضارة إلى قاعدة البيانات أو الخادم أو موقع الويب.
خطأ في تكوين الأمان
يعد احتمال حدوث خطأ في تكوين الأمان أحد أكثر نقاط الضعف شيوعًا في تطبيقات الويب اليوم. تحدث مشكلة عدم الحصانة بشكل عام بسبب فشل المؤسسة في تعديل إعدادات الأمان الافتراضية. تكوينات الأمان الخاطئة الشائعة هي:
- الاستفادة من كلمات المرور أو الحسابات الافتراضية
- برنامج غير مصحح
- لا يوجد تشفير
- سياسات جدار الحماية غير الملائمة
- إهمال الموارد غير المستخدمة والميزات والمكونات الأخرى
حقن SQL
SQL ، والتي تعني لغة الاستعلام الهيكلية ، هي لغة برمجة تستخدم لقواعد البيانات. يسمح باسترجاع البيانات ومعالجتها لقواعد البيانات العلائقية. توجد ثغرة أمنية في إدخال SQL ضمن مجموعة أكبر من إدخالات المستخدم التي لم يتم التحقق منها. عندما ترسل الجهات الخبيثة طلبات خاطئة عمدًا ، يستجيب تطبيق الويب برسالة خطأ تزودهم بمعلومات حول بنية قاعدة البيانات وحمايتها.
تفعيل مكتبة آلي غير مُحقَّق
لتوفير الوقت عند البرمجة ، يميل المطورون إلى استخدام مكتبات الطرف الثالث. في معظم الحالات ، يمكّنهم ذلك من الاستفادة من التعليمات البرمجية التي تم اختبارها مسبقًا والتي تسرع عملية تطوير التطبيق. ومع ذلك ، فإن استخدام التعليمات البرمجية مفتوحة المصدر المتاحة للجمهور يزيد من المخاطر الأمنية ، بما في ذلك:
- يزيد عدم وجود ملكية موثقة من مخاطر إضافة رمز خبيث
- المشاريع المهملة التي لم يتم تحديثها بعد الآن
هذه الثغرة الأمنية منتشرة بشكل متزايد ، مع الأخذ في الاعتبار أن العديد من التطبيقات تشترك في تبعيات مكتبة تابعة لجهات خارجية.
نأمل أن تكون محتويات منشور المدونة هذا مفيدة حقًا وثاقبة بالنسبة لك. إن التأكد من إيجاد حل لأي ثغرة في تطبيق الويب تنطبق على حالتك سيكون بمثابة تغيير للعبة في تجارب موظفيك وعملائك.