أساسيات اختبار اختراق تطبيقات الويب:
من خلال هذا المقال سنتعرف على أساسيات اختبار اختراق والحماية لتطبيقات الويب من الصفر, اذا كنت مبتدئ ولا تملك أي معرفة مسبقة حول مجال اختبار اختراق تطبيقات الويب فلا بأس. لأن هذا المقال مخصص للذين يودون الدخول في هذا المجال دون اي معرفة مسبقة. لان المعرفة والمهارة يمكن اكتسابها من خلال القراءة والممارسة المستمرة.ما هو اختبار الاختراق؟
اختبار الاختراق هو عملية تستخدمها الشركات لاختبار أمان برامجها وبنيتها التحتية. في اختبار الاختراق ، تعمل مجموعة من محترفي الأمن كمهاجمين من أجل تحديد نقاط الضعف التي قد يستخدمها الهكر في تدمير المواقع والبيانات. الهدف من اختبار الاختراق هو توفير معلومات للشركة حول نقاط ضعفها. يشار إلى هذا في عالم الأمن عادة باسم الفريق الأحمر. على الجانب الآخر من الاختراق ، يختبر فريق الأمن التابع للشركة ، الفريق الأزرق ، المجالات التي يجب تعزيز أمنها.يمكن تقسيم عملية اختبار الاختراق إلى أربع مراحل أساسية:
منهجية اختبار الاختراق
- مرحلة المسح والاستطلاع Scanning and Reconnaissance
- مرحلة البحث عن الثغرات
- مرحلة الاستغلال Exploitation
- مرحلة تنفيذ الاستغلال والحفاظ على الوصول (الاختراق) Maintain access
1- مرحلة المسح والاستطلاع Scanning and Reconnaissance
على عكس ما نشاهده في أفلام الهكر، لا تبدأ الكتابة في الشاشة السوداء فقط 😁، ومن ثم يتم الاختراق النظام تلقائيًا. يُعد المسح والاستطلاع جزءًا أساسيًا من أي هجوم حيث يمكنه تفصيل المناطق المعرضة للخطر في النظام.يمكن أن تكون الخطوة الأولى لجمع المعلومات بسيطة مثل البحث السريع في جوجل google.
يمكنك اعتبار جمع المعلومات مثل اقتحام منزل ليست هناك حاجة لكسر الباب للدخول إلى الداخل عندما تكون هناك نافذة مفتوحة. في جمع المعلومات، نريد أن نجد ما إذا كانت الشركة التي نختبرها قد تركت أي أبواب مفتوحة أو ربما نافذة مفتوحة.
ما الذي ستبحث عنه؟
يبدأ جمع المعلومات بطريقة سلبية Passive. نريد الحصول على أدلة حول شكل بنية الشركة وإذا كان هناك أي روتين يمكننا رسمه. يرجع ذلك إلى العثور على بعض المعلومات المتاحة للجمهور مثل:- عناوين البريد الإلكتروني
- أرقام الهواتف
- معلومات النظام
- الوظائف شاغرة
- السيرة ذاتية
- أسماء المتصلين
2- مرحلة البحث عن الثغرات
بعد مرحلة الاستطلاع نحن بحاجة إلى القيام بالمزيد من البحث والتحليل وتحديد نقاط الضعف الموجودة بالتطبيق الهدف، بما في ذلك المسح الآلي ، والتحليل المستهدف ، والبحث اليدوي. وهنالك عدة أدوات مشهورة للقيام بذلك مثل: Nikto و Nmap و Nessus و OpenVAS وأداة Wireshark لالتقاط الحزم على الشبكة وتحليلها.
3- مرحلة الاستغلال Exploitation
في هذه المرحلة يتم استغلال الثغرات وتنفيذها للحصول على الصلاحيات والوصول لبيانات المستخدمين وحساباتهم البنكية الموجودة بقاعدة البيانات, وأشهر أداة تقوم بتنفيذ الاستغلالات هي المبتاسبلويت, كما يمكن ايضا استغلال ادوات اخرى مثل اداة Sqlmap الخاصة بتنفيذ ثغرات الحقن.
4- مرحلة تنفيذ الاستغلال والحفاظ على الوصول
وتمثل أخر مرحلة في عملية اختبار الاختراق فبعد تنفيذ الاستغلال سيتحصل الهكر على صلاحيات تخوله للوصول لبيانات ومعلومات الخاصة الموجودة بالنظام المستهدف.
وهذه المرحلة يمكن تسميتها ايضا بـ Post-Exploitation Reporting أي تقارير ما بعد الاستغلال - وهي اعطاء تفاصيل أكثر حول الثغرات الموجودة وتوفير المعلومات حول التأثير المحتمل على الشركة إذا تم استغلالها وهذا يخص مُختبر الاختراق الاخلاقي.
- الويب سيرفر Web Server
- تطبيق الويب Web Application
- مستخدم الويب Web client
سنعرف هذه الأهداف كالتالي:
يمكن اعتبار الويب سرفر جهاز كمبيوتر بمواصفات عالية جدا, فهو يقوم بتأمين خدمات عديدة تعمل على منافذ أو بورتات مفتوحة والتي تسمح لتطبيق الويب بالاتصال مع متصفح المستخدم.
الويب سيرفر يمكن أن يتضمن أخطاء امنية أو ثغرات وعلى مختبر الاختراق محاول الحصول عليها واكتشافها ومن ثم مهاجمة الخدمات التي تعمل على السيرفر للحصول على دخول غير مصرح به لملفات سيرفر الويب وملفات النظام ومن ثم يقوم بترقيعها.
الويب سيرفر الـ Web Server:
هو تطبيق يعمل على نظام التشغيل الذي يستضيف تطبيق الويب مثل IIS وهي اختصار لـ Internet Information Services والتي تعمل على سيرفرات الويندوز, والـ Apache Hypertext Transfer Protocol والتي تستخدم على أنظمة اللينكس .يمكن اعتبار الويب سرفر جهاز كمبيوتر بمواصفات عالية جدا, فهو يقوم بتأمين خدمات عديدة تعمل على منافذ أو بورتات مفتوحة والتي تسمح لتطبيق الويب بالاتصال مع متصفح المستخدم.
الويب سيرفر يمكن أن يتضمن أخطاء امنية أو ثغرات وعلى مختبر الاختراق محاول الحصول عليها واكتشافها ومن ثم مهاجمة الخدمات التي تعمل على السيرفر للحصول على دخول غير مصرح به لملفات سيرفر الويب وملفات النظام ومن ثم يقوم بترقيعها.
تطبيق الويب Web Application:
يعد تطبيق الويب تطبيقًا يتم معالجته مباشرةً عبر الإنترنت من خلال مستعرض ويب ، وبالتالي لا يتطلب التثبيت على أجهزة العميل، على عكس تطبيقات الأجهزة المحمولة.بالطريقة نفسها التي يتم بها تثبيت مواقع الويب ، يتم تثبيت تطبيق الويب بشكل عام على خادم وتتم معالجته عن طريق تشغيل عناصر واجهة المستخدم باستخدام مستعرض ويب ، عبر شبكة كمبيوتر (الإنترنت ، إنترانت ، شبكة محلية ، إلخ). مثل: مراسلة الويب وأنظمة إدارة المحتوى والمواقع الإلكترونية والمدونات الإلكترونية هي تطبيقات ويب.
وكل المستخدمين هم عرضة للهجوم من طرف الهكر بواسطة الثغرات الأتية:
بعض الأدوات التي ستحتاجها هي:
الحقن يحدث عندما يقوم مختبر الاختراق بإرسال مدخلات مخادع إلى تطبيق الويب والذي يقوم بعدها بعملية غير آمنة ،هذا النوع هو أقدم أنواع الهجمات ضد تطبيقات الويب ولكنه مازال متربع على عرش الثغرات فهو منتشر بشكل واسع وهو خطير فثغرات الحقن يمكن أن تظهر في كل مكان داخل تطبيق الويب.
بعض أنواع هجمات الحقن الأكثر شيوعا هي:
ثغرة XSSتسمح لمختبر الاختراق او الهاكر تنفيذ سكريبت المستخدم وهذا يسمح له بسرقة جلسة المستخدم Session hijacking ويمكن أن يقوم بتنصيب Keyloggerأو إعادة توجيه المستخدم إلى مواقع خبيثة أو إلى أي شيء أخر يريده مختبر الاختراق.
مستخدم الويب Web client
المستخدم الداخلي هو الذي يقوم بإدارة تطبيق الويب سواء كان المدير أو المبرمج والمستخدم الخارجي (الزبون أو الزائر)وكل المستخدمين هم عرضة للهجوم من طرف الهكر بواسطة الثغرات الأتية:
- cross-site scripting (XSS)
- cross-site request forgery (CSRF)
- الهندسة الاجتماعية Social Engineering أو كما يسميه البعض اختراق العقول.
الأدوات الأكثر شيوعا لفحص واكتشاف ثغرات الويب
معظم هذه الأدوات موجودة بنظام كالي لينكس وهناك أدوات كثيرة أخرى تؤدي نفس الغرض.بعض الأدوات التي ستحتاجها هي:
- : Burp Suiteوهي أداة ضرورية في أي عملية اختبار اختراق للويب.
أنصحكم بهذا الكورس المجاني كورس اختبار تطبيقات الويب باستخدام Burp Suite مجانا
- :Zed Attack Proxy(ZAP)تشبه Burp Suiteولكنها تحوي على باحث مجاني عن الثغرات قابل للعمل على تطبيقات الويب. فحص المواقع واستخراج الثغرات بأداة - OWASP ZAP
- :Nmapلمسح البورتات والخدمات والمنافذ
- :Nessus and Niktoللبحث عن الثغرات وفحص المواقع والخدمات.
- :Metasploitلديها استعمالات شتى اهمها تنفيذ الاستغلال وانشاء وتشفير البايلود فحص الثغرات والخدمات باستعمال بعض الموديلات.
- :Sqlmapمن أجل الحقن في قواعد البيانات SQL injection
- Social Engineering Toolkit (SET)للقيام بهجوم هندسة اجتماعية ضد مستخدم الويب وذلك بصنع صفحات مزورة لمواقع التواصل الاجتماعي وارسال تحديثات مزيفة ...
الحقن Injection
يحدث عندما يقوم مستخدم غير موثوق به بإرسال بيانات إلى تطبيق الويب كجزء من تعليمة أو طلب. بيانات مختبر الاختراق الخبيثة يمكن أن تخدع تطبيق الويب ليقوم بتنفيذ تعليمات غير مرغوبة أو للوصول غير المسموح به للبيانات.الحقن يحدث عندما يقوم مختبر الاختراق بإرسال مدخلات مخادع إلى تطبيق الويب والذي يقوم بعدها بعملية غير آمنة ،هذا النوع هو أقدم أنواع الهجمات ضد تطبيقات الويب ولكنه مازال متربع على عرش الثغرات فهو منتشر بشكل واسع وهو خطير فثغرات الحقن يمكن أن تظهر في كل مكان داخل تطبيق الويب.
بعض أنواع هجمات الحقن الأكثر شيوعا هي:
- Structured query language (SQL) queries
- Lightweight directory access protocol (LDAP) queries
- XML path language (XPATH) queries
- Operating system (OS) commands
(Cross-site Scripting (XSS
ثغرات الـ XSS تسمح للمهاجم بتشغيل اكواد Javascript أو Html وسبب حدوثها هو عدم فلتره المدخلات القادمة من المستخدم.ثغرة XSSتسمح لمختبر الاختراق او الهاكر تنفيذ سكريبت المستخدم وهذا يسمح له بسرقة جلسة المستخدم Session hijacking ويمكن أن يقوم بتنصيب Keyloggerأو إعادة توجيه المستخدم إلى مواقع خبيثة أو إلى أي شيء أخر يريده مختبر الاختراق.
وتنقسم هذه الثغرة الى ثلاثة انواع:
1- Stored - مُخزّنه
2- Reflected - المنعكس, غير مُخزّنه
3- Dom-Based XSS تعتمد على دوم
معلومة:
الهاكر يمكن أن يرسل نفس عنوان الرابط URLالخبيث إلى ملايين من الضحايا ولكن فقط الشخص الذي سيضغط على الرابط هو الذي سيصاب بالهجوم.
المستخدمون الشرعيون يطلبون الصفحة و عندها فإن الاستغلال XSS exploitسوف يعمل في كل متصحفات المستخدمين.
كال النوعين من XSSلهما نفس payloadولكن يتم تسليمها بطرق مختلفة.
إذا تم التعامل مع البيانات بشكل غير صحيح ، يمكن للمهاجم حقن حمولة ، والتي سيتم تخزينها كجزء من DOM وتنفيذها عند قراءة البيانات مرة أخرى من DOM.
غالبًا ما يكون هجوم XSS المستند إلى DOM بمثابة هجوم من جانب العميل ولا يتم إرسال البايلود إلى الخادم. هذا يجعل الأمر أكثر صعوبة للكشف عن جدران حماية تطبيقات الويب (WAFs) ومهندسي الأمن الذين يقومون بتحليل سجلات الخادم لأنهم لن يروا الهجوم أبدًا.
تتضمن كائنات DOM التي يتم معالجتها غالبًا عنوان (URL (document.URL ، والجزء الرئيسي من الرابط (location.hash) ، والمراجع (document.referrer).
تطبيق الويب يستخدم إدارة الجلسة للحفاظ على مسار طلبات كل مستخدم ،وبدون إدارة الجلسة فإنك ستضطر إلى تسجيل الدخول بعد
كل طلب تقوم به ،لذلك تم إيجاد إدارة الجلسة وبالتالي المستخدم يجب عليه تسجيل الدخول مرة واحدة فقط عند زيارة موقع.
في CSRFيمكن بعض نتائج تزوير الطلبات هي تغيير كلمة السر أو خلق مستخدم جديد أو خلق محتوى ويب جديد ،طالما أن مختبر الاختراق يعرف بالضبط ماهي البارامترات الضرورية لإكمال الطلب وأن الهدف ُمصادق مع التطبيق، فإن الطلب سيتنفذ كما لو أنه تم بمعرفة المستخدم الهدف.
في CSRFيمكن تزوير الطلبات وتغيير كلمة السر أو خلق مستخدم جديد أو خلق محتوى ويب جديد ،طالما أن مختبر الاختراق يعرف بالضبط ماهي البارامترات الضرورية لإكمال الطلب وأن الهدف ُمصادق مع التطبيق، فإن الطلب سيتنفذ كما لو أنه تم بمعرفة المستخدم الهدف.
1- Stored - مُخزّنه
2- Reflected - المنعكس, غير مُخزّنه
3- Dom-Based XSS تعتمد على دوم
يمكن استخدام هجمات (XSS) عبر المواقع لسرقة ملفات تعريف الارتباط الخاصة بالجلسات، مما يسمح للمهاجم بانتحال شخصية الضحية. بالإضافة إلى ذلك ، تم استخدام ثغرات XSS لإنشاء ديدان تنتشر على الشبكات الاجتماعية ، ونشر البرامج الضارة، وتشويه المواقع الإلكترونية، والتصيد للحصول على بيانات الاعتماد الخاصة بالمستخدمين. كما تم استخدامها جنبًا إلى جنب مع تقنيات الهندسة الاجتماعية للتصعيد إلى مزيد من الهجمات الضارة مثل استرجاع المعلومات الخاصة.
- سبب اختصار العبارة Cross Site Scripting الى XSS رغم أن الأصح هو CSS وهذا تجنبا للخلط بينها وبين لغه الأنماط القياسيه CSS وللتفريق بينهما.
- ثغرات XSS تتربع في المرتبه الثانيه فيخطورتها حسب تصنيف موقع OWASP بعد ثغرات الحقن
1- الثغرة المنعكسة او العاكسة XSS reflected
هو أكثر انتشارا في تطبيقات الويب ويعتبر الأقل ضررا, سبب اعتباره أنه هو الأقل ضررا ليس بسبب ما الذي يستطيع عمله ولكن عندما يتم إرسال البايلود payloadفي هجوم reflected XSSفإنه يكون فعال لطلب واحد فقط وأي مستخدم أخر يضغط على الرابط الذي يتضمن السكريبت الخبيث سيكون الشخص الوحيد المتأثر أو المصاب مباشرة بهذا الهجوم.الهاكر يمكن أن يرسل نفس عنوان الرابط URLالخبيث إلى ملايين من الضحايا ولكن فقط الشخص الذي سيضغط على الرابط هو الذي سيصاب بالهجوم.
2-الثغرة المخزنة Stored XSS
من الصعب ايجاده في تطبيقات الويب ولكن ضرره كبير جدا ولأنه يستمر عبر أكثر من طلب ويمكن أن يستغل عدد من المستخدمين في هجوم واحد ،و يحدث عندما يكون المهاجم قادر على حقن السكريبت الخبيث في التطبيق ويكون السكريبت متاح لكل المستخدمين الزائرين ويمكن أن يكون في قاعدة البيانات التي تستخدم من قبل صفحة الويب أو في المنتدى الذي يعرض الرسائل للمستخدم أو في أي تقنية تقوم بتخزين المدخلات.المستخدمون الشرعيون يطلبون الصفحة و عندها فإن الاستغلال XSS exploitسوف يعمل في كل متصحفات المستخدمين.
كال النوعين من XSSلهما نفس payloadولكن يتم تسليمها بطرق مختلفة.
3- ثغرة XSS المبنية على دوم Dom-Based XSS
هو هجوم XSS متقدم. يمكن أن تقوم البرامج النصية من جانب العميل الخاصة بتطبيق الويب بكتابة البيانات المقدمة من المستخدم إلى كائن المستند (DOM). تتم قراءة البيانات لاحقًا من DOM بواسطة تطبيق الويب وإخراجها إلى المستعرض.إذا تم التعامل مع البيانات بشكل غير صحيح ، يمكن للمهاجم حقن حمولة ، والتي سيتم تخزينها كجزء من DOM وتنفيذها عند قراءة البيانات مرة أخرى من DOM.
غالبًا ما يكون هجوم XSS المستند إلى DOM بمثابة هجوم من جانب العميل ولا يتم إرسال البايلود إلى الخادم. هذا يجعل الأمر أكثر صعوبة للكشف عن جدران حماية تطبيقات الويب (WAFs) ومهندسي الأمن الذين يقومون بتحليل سجلات الخادم لأنهم لن يروا الهجوم أبدًا.
تتضمن كائنات DOM التي يتم معالجتها غالبًا عنوان (URL (document.URL ، والجزء الرئيسي من الرابط (location.hash) ، والمراجع (document.referrer).
كسر المصادقة وإدارة الجلسة:
الجلسة هي ُمعرف فريد يٌخصص للمستخدم بعد عملية المصادقة المعرف, وهي مفتاح اختراق مستخدم الويب غالبا تتم بشكل وظائف التطبيق المتعلقة بالمصادقة وإدارة الجلسة صحيح وهذا يسمح لمختبر الاختراق بالوصول إلى كلمات السر و Session Token الخاصة بالجلسة تشغيل تطبيق الويب تحت المصادقة يتضمن ضبط كلمة السر وإعادة تعينها واستعادة الحساب.تطبيق الويب يستخدم إدارة الجلسة للحفاظ على مسار طلبات كل مستخدم ،وبدون إدارة الجلسة فإنك ستضطر إلى تسجيل الدخول بعد
كل طلب تقوم به ،لذلك تم إيجاد إدارة الجلسة وبالتالي المستخدم يجب عليه تسجيل الدخول مرة واحدة فقط عند زيارة موقع.
(:CSRF (Cross-site Request Forgery
تحدث عندما يكون لمختبر الاختراق أو الهاكر القدرة على إرسال طلب يقوم هو بانشائه لاغراض خبيثة إلى مستخدم ُمصادق مع التطبيق وهو يتضمن بارامترات ضرورية لإكمال الطلب للتطبيق بدون أن يدرك المستخدم الهدف ذلك. هذا شبيه ب reflected XSS والتي فيها يجب على مختبر الاختراق أن يجبر الهدف على تأدية عمل في تطبيق الويب (الضغط على رابط) السكريبت الخبيث يمكن أن يستمر في العمل في متصفح الهدف ولكن أيضا أن يؤدي إلى انشاء طلب شرعي لتطبيق الويب.في CSRFيمكن بعض نتائج تزوير الطلبات هي تغيير كلمة السر أو خلق مستخدم جديد أو خلق محتوى ويب جديد ،طالما أن مختبر الاختراق يعرف بالضبط ماهي البارامترات الضرورية لإكمال الطلب وأن الهدف ُمصادق مع التطبيق، فإن الطلب سيتنفذ كما لو أنه تم بمعرفة المستخدم الهدف.
في CSRFيمكن تزوير الطلبات وتغيير كلمة السر أو خلق مستخدم جديد أو خلق محتوى ويب جديد ،طالما أن مختبر الاختراق يعرف بالضبط ماهي البارامترات الضرورية لإكمال الطلب وأن الهدف ُمصادق مع التطبيق، فإن الطلب سيتنفذ كما لو أنه تم بمعرفة المستخدم الهدف.
الإعداد الخاطئ للحماية security misconfiguration attack
ربما هي ليست ثغرة بالمعنى التقليدي ولكن يمكن تصنيفها كضعف أمني, فالحماية الفعالة تتطلب إعدادات خاصة بضبط إطار العمل سواء كان (سيرفر تطبيق الويب أو قاعدة البيانات أوعلى مستوى نظام التشغيل) ,كل هذه الاعدادات يجب أن تقوم بضبطها بشكل صحيح بدل من ترك اعدادات الحماية الافتراضية ،وهذا يتضمن كل البرامج التي تتعامل مع قواعد البيانات والمكتبات التي يستخدمها التطبيق لأن هذه الاعدادات تصبح أكثر خطورة عندما لا تؤمن الحماية لمنع الوصول غير المسموح به للتطبيق.أمثلة على هذه الثغرة التي يمكن أن تكون في سيرفر الويب:- البرامج غير الضرورية Unnecessary software.
- تفعيل الخدمات غير الضرورية Activation of non-essential services.
- سياسات الحساب غير المحمية Unprotected account policies
- رسائل الخطأ المفصلة Detailed error messages
