دليل لاختبار أمان تطبيقات الويب - security testing of web applications
اختبار أمان تطبيقات الويب |
اختبار أمان تطبيقات الويب أصبح أمرًا بالغ الأهمية نتيجة للكميات الهائلة من البيانات التي يتم الاحتفاظ بها فيها وزيادة المعاملات عبر الإنترنت. "security testing of web applications"
في هذا البرنامج ، سنقوم بفحص متعمق للمصطلحات والأدوات والمفاهيم الأساسية المستخدمة في اختبار أمان تطبيقات الويب ، بالإضافة إلى منهجية الاختبار.
ما هو اختبار الأمان؟
اختبار أمان تطبيقات الويب هو إجراء يحدد ما إذا كانت المعلومات السرية تظل على هذا النحو أم لا (أي لا يتم الكشف عنها لأشخاص أو كيانات لم يتم تخصيصها لها) وما إذا كان يمكن للمستخدمين تنفيذ المهام التي تم منحهم الإذن من أجلها فقط.
على سبيل المثال ، يجب ألا يكون المستخدم قادرًا على منع المستخدمين الآخرين من استخدام وظائف موقع الويب أو تغيير وظائف تطبيق الويب عن غير قصد ، وما إلى ذلك.
عدة شروط مهمة لاختبار الأمان
سيكون من المفيد التعرف على بضع كلمات تُستخدم بانتظام في اختبار أمان تطبيقات الويب قبل الانتقال.
"الضعف" - ما هو؟
التطبيق عبر الإنترنت من الممكن ان يحتوي على احد العيوب او المشاكل. قد يكون هذا "الضعف" ناتجًا عن مشاكل في التطبيق ، أو إدخال رمز البرنامج النصي ، أو يحتوي على الفيروسات ، أو عوامل أخرى.
"معالجة URL" - ما هو؟
تستخدم بعض التطبيقات عبر الإنترنت عنوان URL لنقل بيانات إضافية بين العميل (المستعرض) والخادم. يُعرف إجراء تغيير عنوان URL بطريقة تجعل الخادم يتصرف عن غير قصد بمعالجة عنوان URL.
"حقن SQL" - ما هو؟
هذا هو الإجراء الخاص بإضافة عبارات SQL إلى استعلام سيتم تشغيله لاحقًا من خلال واجهة المستخدم لتطبيق ويب.
XSS (البرمجة النصية عبر المواقع): ما هي؟
يُعرف باسم XSS عندما يضيف المستخدم HTML أو برنامج نصي من جانب العميل إلى واجهة مستخدم تطبيق الويب ويجعله في متناول المستخدمين الآخرين.
ما هو الخداع بالضبط؟
ينطوي فعل الانتحال على إنتاج رسائل بريد إلكتروني وصفحات ويب مزيفة.
أدوات اختبار الأمان الموصى به
يعد Acunetix اكونتكس أداة اختبار أمان تطبيقات الويب الكاملة. سيوفر لك هذا صورة كاملة عن أمان شركتك. إنه قادر على تحديد 6500 نوع مختلف من الثغرات الأمنية ، بما في ذلك XSS وكلمات المرور الضعيفة وحقن SQL. لمسح النماذج المعقدة متعددة المستويات ، تستخدم تقنية تسجيل الماكرو المتطورة.
المنصة سهلة الاستخدام ومباشرة. يمكن جدولة عمليات الفحص الكاملة والمسح المتزايد وإعطائها الأولوية القصوى. لديها ميزة إدارة الثغرات الأمنية المتكاملة. يمكن استخدام Jenkins وأدوات CI الأخرى لمسح البنيات الحديثة تلقائيًا.
منصة لجميع احتياجات اختبار أمان تطبيقات الويب هي Invicti (المعروفة سابقًا باسم Netsparker). تتضمن هذه الأداة لفحص الثغرات الأمنية على شبكة الإنترنت ميزات إدارة الثغرات وتقييمها وميزات فحص الثغرات الأمنية.
يعد المسح الدقيق وتقنية البحث عن الأصول الخاصة من نقاط القوة في Invicti. يمكن دمج تطبيقات إدارة المشكلات الشائعة وتطبيقات CI / CD معها.
تقدم Invicti دليلاً على برمجيات إكسبلويت عندما يتم العثور على ثغرة لضمان أنها ليست إيجابية كاذبة. إنه يوفر آليات مصادقة متقدمة للزحف ، ومحرك مسح ، وإمكانيات تكامل WAF ، وما إلى ذلك. وستتلقى نتائج فحص شاملة من هذه الأداة جنبًا إلى جنب مع رؤى حول نقاط الضعف.
منهجية الاختبار الأمني
يجب أن يكون خبير الأمان على دراية جيدة ببروتوكول HTTP من أجل إجراء اختبار أمان تطبيق ويب فعال. يعد فهم اتصال HTTP بين العميل (المستعرض) والخادم أمرًا بالغ الأهمية.
يجب أن يكون لدى المختبر أيضًا فهم أولي لحقن XSS و SQL.
نأمل ألا يكون هناك قدر كبير من الثغرات الأمنية في تطبيق الويب. ولكن سيساعدك بالتأكيد إذا كان بإمكانك وصف جميع الثغرات الأمنية بدقة بكل المعلومات الضرورية.
طرق اختبار أمان الويب
1- تكسير كلمات المرور
يمكن أن يبدأ اختراق كلمة المرور في اختبار أمان تطبيقات الويب. يمكن للمرء إما تخمين اسم مستخدم وكلمة مرور أو استخدام برنامج تكسير كلمة المرور لتسجيل الدخول إلى المناطق المخفية للتطبيق. إلى جانب برامج تكسير كلمات المرور مفتوحة المصدر ، يتم توفير قائمة بأسماء المستخدمين وكلمات المرور الشائعة.
قد لا يستغرق فك تشفير تسجيل الدخول وكلمة المرور وقتًا طويلاً إذا كان تطبيق الويب لا يتطلب كلمة مرور معقدة (على سبيل المثال ، كلمة تحتوي على أحرف أبجدية وأرقام وأحرف خاصة أو على الأقل المقدار المطلوب من الأحرف).
إذا تم حفظ اسم المستخدم أو كلمة المرور في ملفات تعريف الارتباط دون تشفيرها ، فيمكن للمهاجم سرقة ملفات تعريف الارتباط والبيانات التي تحتوي عليها ، بما في ذلك اسم المستخدم وكلمة المرور ، باستخدام مجموعة متنوعة من الأساليب.
2- تغيير عناوين URL باستخدام أساليب HTTP GET
يحتاج المُختبِر إلى التحقق مما إذا كان التطبيق يرسل معلومات مهمة في سلسلة الاستعلام أم لا. عندما يستخدم البرنامج تقنية HTTP GET لنقل البيانات بين العميل والخادم ، يحدث هذا.
يتم استخدام وسيطات سلسلة الاستعلام لتمرير البيانات. يمكن للمُختبِر تغيير قيمة المعلمة في سلسلة الاستعلام لمعرفة ما إذا كان الخادم سيقبلها.
يتم إرسال معلومات المستخدم إلى الخادم عبر طلب HTTP GET لاسترداد البيانات أو المصادقة. من أجل الحصول على المعلومات الضرورية أو العبث بالبيانات ، يستطيع المهاجم تغيير كل متغير إدخال تم توفيره من طلب GET هذا إلى خادم. أي إجراء فردي من جانب التطبيق أو خادم الويب في مثل هذه الظروف يكون بمثابة نقطة دخول المهاجم إلى البرنامج.
3- حقن SQL
العنصر التالي الذي يجب فحصه هو SQL Injection. يجب أن يرفض التطبيق أي مربع نص يقبل اقتباسًا منفردًا ('). بدلاً من ذلك ، إذا واجه المُختبِر مشكلة في قاعدة البيانات ، فهذا يدل على أن بعض طلبات البحث التي تم إدخال إدخال المستخدم فيها قد تم تشغيلها بواسطة أحد التطبيقات. التطبيق عرضة لحقن SQL في مثل هذه الحالة.
تعتبر الهجمات باستخدام حقن SQL في غاية الخطورة لأنها تسمح للمهاجم بالحصول على بيانات مهمة من قاعدة بيانات الخادم. ابحث عن الكود في قاعدة الشفرة الخاصة بك حيث يتم إجراء استعلامات MySQL المباشرة على قاعدة البيانات عن طريق قبول إدخالات مستخدم معينة للتحقق من نقاط إدخال حقن SQL في تطبيق الويب الخاص بك.
يمكن للمهاجم إدخال عبارات SQL أو أجزاء من عبارات SQL كمدخلات مستخدم لاستخراج معلومات مهمة من قاعدة بيانات إذا كانت بيانات إدخال المستخدم مصممة خصيصًا في استعلامات SQL للاستعلام عن قاعدة البيانات.
حتى إذا نجح المهاجم في تعطل التطبيق ، فلا يزال بإمكان المهاجم العثور على البيانات التي يحتاجونها من خطأ استعلام SQL الذي يتم عرضه في المستعرض. في هذه الظروف ، يجب التعامل / الهروب من الأحرف الخاصة من مدخلات المستخدم بشكل صحيح.
4- البرمجة النصية عبر المواقع (XSS)
يجب على المختبِر أيضًا التحقق من تطبيق الويب بحثًا عن XSS (البرمجة النصية عبر المواقع). أي HTML على سبيل المثال ، <HTML> أو أي نص برمجي على سبيل المثال ، يجب ألا يقبل التطبيق <SCRIPT>. إذا كان الأمر كذلك ، فيمكن أن يكون التطبيق عرضة لهجوم من خلال البرمجة النصية عبر المواقع.
يمكن للمهاجم استخدام هذه الطريقة لتنفيذ برنامج نصي أو عنوان URL ضار على متصفح الضحية. باستخدام البرمجة النصية عبر المواقع ، يمكن للمهاجم استخدام البرامج النصية مثل JavaScript لسرقة ملفات تعريف الارتباط والمعلومات المخزنة في ملفات تعريف الارتباط.
تحصل العديد من تطبيقات الويب على بعض المعلومات المفيدة وتمرر هذه المعلومات على بعض المتغيرات من صفحات مختلفة.
على سبيل المثال: http://www.examplesite.com/index.php?userid=123&query=xyz .
يمكن للمهاجم تمرير إدخال نص خبيث> يمكنه فحص بيانات المستخدم والخوادم المهمة على المتصفح.
هام: يجب على المختبر توخي الحذر الشديد والامتناع عن تغيير أي مما يلي أثناء إجراء اختبار أمان تطبيقات الويب:
- إما تكوين الخادم أو التطبيق.
- تشغيل خدمات الخادم
- البيانات التي يستضيفها التطبيق حاليًا للمستخدمين أو العملاء.
- يجب أيضًا عدم إجراء اختبار أمان التطبيقات على نظام مباشر.
الخلاصة: الهدف من اختبار أمان تطبيقات الويب هو تحديد نقاط الضعف في تطبيق الويب حتى يتمكن المطورون من إصلاحها ، وحماية التطبيق والبيانات التي يحتوي عليها من أي إجراء غير مصرح به.