دليل اختبار الاختراق الكامل مع سيناريوهات الاختبار

دليل اختبار الاختراق الكامل Pentest Guide Complete

دليل اختبار الاختراق الكامل

اختبار الاختراق (Penetration-Testing) هي عملية تحديد الثغرات الأمنية (security vulnerabilities) في أحد التطبيقات من خلال تقييم النظام أو الشبكة باستخدام تقنيات ضارة مختلفة (malicious techniques) . يتم استغلال نقاط الضعف في النظام في هذه العملية من خلال محاكاة هجوم.

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

يُعرف اختبار الاختراق أيضًا باسم Pentest ويشار إلى اختبار الاختراق أيضًا باسم الهاكر الأخلاقي.

ما هو اختبار الاختراق Ethical hacking

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

تشير تقارير اختبار الاختراق أيضًا إلى الإجراءات المضادة التي يمكن اتخاذها لتقليل مخاطر اختراق النظام.

أسباب الضعف Security Vulnerability

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

لماذا اختبار الاختراق؟

لا بد أنك سمعت عن هجوم WannaCry ransomware الذي بدأ في مايو 2017 ودام اربعة ايام, أغلق أكثر من 200.000 جهاز كمبيوتر في 150 دولة حول العالم. وطالب بدفع فدية في عملة البيتكوين المشفرة.  أثر هذا الهجوم على العديد من المنظمات الكبرى حول العالم.


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

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

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

يمكن أن تواجه المنظمة مشكلات قانونية بسبب ثغرة صغيرة في نظام البرمجيات. ومن ثم ، تبحث المؤسسات الكبيرة عن شهادات الامتثال لـ PCI (صناعة بطاقات الدفع) قبل القيام بأي عمل مع عملاء من جهات خارجية.

ما الذي يجب اختباره


  1. البرمجيات (نظام التشغيل ، الخدمات ، التطبيق)
  2. المعدات (Hardware)
  3. الشبكة
  4. العمليات (Processes)
  5. سلوك المستخدم النهائي (End-user behavior)

أنواع اختبار الاختراق


1) اختبار الهندسة الاجتماعية:  
في هذا الاختبار ، تُجرى محاولات لجعل الشخص يكشف عن معلومات حساسة مثل كلمة المرور والبيانات المهمة للأعمال وما إلى ذلك. 
تتم هذه الاختبارات في الغالب عبر الهاتف أو الإنترنت وتستهدف بعض مكاتب المساعدة والموظفين .

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

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

3) اختبار الاختراق المادي Physical Penetration Test: يتم تطبيق طرق أمان مادي قوية لحماية البيانات الحساسة. يستخدم هذا بشكل عام في المنشآت العسكرية والحكومية. يتم اختبار جميع أجهزة الشبكة المادية ونقاط الوصول للتحقق من احتمالات حدوث أي خرق أمني. هذا الاختبار ليس وثيق الصلة بنطاق اختبار البرنامج.

4) اختبار خدمات الشبكة : يعد هذا أحد أكثر اختبارات الاختراق التي يتم إجراؤها شيوعًا حيث يتم تحديد الفتحات في الشبكة من خلال الإدخال الذي يتم إدخاله في الأنظمة الموجودة على الشبكة للتحقق من نوع الثغرات الأمنية الموجودة. يمكن القيام به محليا أو عن بعد.

5) اختبار من جانب العميل Client-side Test: يهدف إلى البحث عن الثغرات الأمنية واستغلالها في برامج العميل.

6) الاتصال الهاتفي عن بعد Remote dial-up war dial: يبحث عن أجهزة المودم في البيئة ويحاول تسجيل الدخول إلى الأنظمة المتصلة من خلال أجهزة المودم هذه عن طريق التخمين بكلمة المرور أو brute-forcing.

7) اختبار الأمان اللاسلكي : يكتشف نقاط الاتصال أو شبكات Wi-Fi المفتوحة وغير المصرح بها والأقل أمانًا ويتصل من خلالها.

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

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

اختبار اختراق الصندوق الأبيض

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

اختبار اختراق الصندوق الرمادي

في هذا النوع ، يكون لدى المختبر تفاصيل محدودة حول البيئة المستهدفة. هي محاكاة لهجمات أمنية خارجية.

تقنيات اختبار الاختراق PenTesting Techniques

  1. اختبار الاختراق اليدوي
  2. استخدام أدوات اختبار الاختراق الاتوماتيكية
  3. الجمع بين الطريقة اليدوية والآلية
تعتبر العملية الثالثة أكثر شيوعًا لاكتشاف جميع أنواع نقاط الضعف.

اختبار الاختراق اليدوي

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

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

الية عمل اختبار الاختراق:

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

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

يمكننا تصنيف هذه العملية بالطرق التالية:

طرق اختبار الاختراق اليدوي

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

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

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

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

4) نتيجة التحليل وإعداد التقرير: بعد الانتهاء من اختبارات الاختراق ، يتم إعداد تقارير مفصلة لاتخاذ الإجراءات التصحيحية. يتم سرد جميع نقاط الضعف المحددة والأساليب التصحيحية الموصى بها في هذه التقارير. 
يمكنك تخصيص تنسيق تقرير الثغرات الأمنية (HTML أو XML أو MS Word أو PDF) وفقًا لاحتياجات مؤسستك.

سيناريوهات اختبار الاختراق الأساسية

تذكر أن هذا ليس اختبارًا وظيفيًا. هدفك في Pentest هو إيجاد ثغرات أمنية في النظام. فيما يلي بعض حالات الاختبار العامة ولا تنطبق بالضرورة على جميع التطبيقات.
  1. تحقق مما إذا كان تطبيق الويب قادرًا على تحديد spam attacks على contact forms المستخدمة على موقع الويب.
  2. الخادم الوكيل -Proxy server تحقق مما إذا كانت حركة مرور الشبكة تتم مراقبتها بواسطة أجهزة البروكسي. يجعل الخادم الوكيل من الصعب على الهكر الحصول على تفاصيل داخلية للشبكة وبالتالي حماية النظام من الهجمات الخارجية.
  3. عوامل تصفية البريد الإلكتروني العشوائي Spam email filters  تحقق من تصفية حركة مرور البريد الإلكتروني الواردة والصادرة وحظر رسائل البريد الإلكتروني غير المرغوب فيها.
  4. يأتي العديد من عملاء البريد الإلكتروني مع عوامل تصفية البريد العشوائي المضمنة التي يجب تهيئتها وفقًا لاحتياجاتك. يمكن تطبيق قواعد التكوين هذه على رؤوس البريد الإلكتروني أو الموضوع أو النص.
  5. جدار الحماية - تأكد من حماية الشبكة أو أجهزة الكمبيوتر بالكامل بجدران الحماية. يمكن أن يكون جدار الحماية برنامجًا أو جهازًا لمنع الوصول غير المصرح به إلى النظام. يمكن لجدار الحماية منع إرسال البيانات خارج الشبكة دون إذنك.
  6. حاول استغلال جميع الخوادم وأنظمة سطح المكتب والطابعات وأجهزة الشبكة.
  7. تحقق من تشفير جميع أسماء المستخدمين وكلمات المرور ونقلها عبر اتصالات آمنة مثل Https.
  8. تحقق من المعلومات المخزنة في ملفات تعريف الارتباط الخاصة بالموقع (website cookies) لا ينبغي أن يكون بتنسيق يمكن قراءته.
  9. تحقق من الثغرات التي تم العثور عليها مسبقًا للتحقق مما إذا كان الإصلاح يعمل.
  10. تحقق من عدم وجود منفذ مفتوح في الشبكة.
  11. تحقق من جميع أجهزة الهاتف.
  12. تحقق من أمان شبكة WIFI.
  13. تحقق من جميع طرق HTTP. يجب عدم تمكين طرق PUT و Delete على خادم الويب.
  14. تحقق مما إذا كانت كلمة المرور تفي بالمعايير المطلوبة. يجب أن تتكون كلمة المرور من 8 أحرف على الأقل وتحتوي على رقم واحد  وحرف خاص واحد على الأقل.
  15. يجب ألا يكون اسم المستخدم افتراضي مثل "admin" أو "administrator".
  16. يجب قفل صفحة تسجيل الدخول إلى التطبيق بعد عدة محاولات تسجيل دخول غير ناجحة.
  17. يجب أن تكون رسائل الخطأ عامة ويجب ألا تذكر تفاصيل خطأ محددة مثل "اسم المستخدم غير صالح" أو "كلمة المرور غير الصالحة".
  18. تحقق مما إذا كان يتم التعامل مع الأحرف الخاصة وعلامات HTML والبرامج النصية بشكل صحيح كقيمة إدخال.
  19. يجب عدم الكشف عن تفاصيل النظام الداخلي في أي من رسائل الخطأ أو التنبيه.
  20. يجب عرض رسائل الخطأ المخصصة للمستخدمين النهائيين في حالة تعطل صفحة الويب.
  21. تحقق من استخدام إدخالات التسجيل. يجب عدم الاحتفاظ بالمعلومات الحساسة في السجل.
  22. يجب فحص جميع الملفات قبل تحميلها على الخادم.
  23. يجب عدم تمرير البيانات الحساسة في عناوين URL أثناء الاتصال بالوحدات النمطية الداخلية المختلفة لتطبيق الويب.
  24. يجب ألا يكون هناك أي اسم مستخدم أو كلمة مرور مشفرة في النظام.
  25. تحقق من جميع حقول الإدخال مع سلسلة إدخال طويلة مع وبدون مسافات.
  26. تحقق مما إذا كانت وظيفة إعادة تعيين كلمة المرور آمنة.
  27. تحقق من التطبيق من ثغرات الحقن SQL Injection.
  28. تحقق من التطبيق الخاص بـ Cross-Site Scripting .
  29. يجب إجراء عمليات التحقق من صحة الإدخال المهمة من جانب الخادم بدلاً من عمليات التحقق من JavaScript من جانب العميل.
  30. يجب أن تكون الموارد الهامة في النظام متاحة للأشخاص والخدمات المصرح لهم فقط.
  31. يجب الاحتفاظ بجميع سجلات الوصول مع أذونات الوصول المناسبة.
  32. تحقق من انتهاء جلسة المستخدم عند تسجيل الخروج.
  33. تحقق من تعطيل استعراض الملفات على الخادم.
  34. تحقق من أن جميع التطبيقات وإصدارات قواعد البيانات محدثة.
  35. تحقق من معالجة عنوان URL للتحقق مما إذا كان تطبيق الويب لا يعرض أي معلومات غير مرغوب فيها.
  36. تحقق من تسرب الذاكرة memory leak وتجاوز سعة المخزن المؤقت buffer overflow.
  37. تحقق مما إذا تم فحص حركة مرور الشبكة الواردة للعثور على هجمات طروادة Trojan attacks.
  38. تحقق مما إذا كان النظام آمنًا من هجمات Brute-Force Attacks - وهي طريقة للتجربة والخطأ للعثور على معلومات حساسة مثل كلمات المرور.
  39. تحقق مما إذا كان النظام أو الشبكة مؤمنين من هجمات DoS (رفض الخدمة). يمكن للهاكر أن يستهدف شبكة أو جهاز كمبيوتر واحد مع طلبات مستمرة بسبب زيادة التحميل على الموارد الموجودة على النظام المستهدف مما يؤدي إلى رفض الخدمة للطلبات الشرعية.
  40. تحقق من التطبيق لهجمات حقن نص HTML.
  41. تحقق من هجمات COM & ActiveX.
  42. تحقق من هجمات الانتحال Spoofing Attacks يمكن أن يكون الانتحال من عدة أنواع - انتحال عنوان IP ، انتحال معرف البريد الإلكتروني ،
  43. انتحال ARP spoofing ، انتحال المرجع Referrer spoofing، انتحال هوية المتصل ، تسميم Poisoning شبكات مشاركة الملفات ، GPS spoofing.
  44. تحقق من هجوم سلسلة التنسيق غير المنضبط uncontrolled format string attack- هجوم أمني يمكن أن يتسبب في تعطل التطبيق أو تنفيذ البرنامج النصي الضار (harmful script) عليه.
  45. تحقق من هجوم حقن XML - يُستخدم لتغيير المنطق المقصود للتطبيق.
  46. تحقق من الهجمات المتعارف عليها.
  47. تحقق مما إذا كانت صفحات الخطأ تعرض أي معلومات يمكن أن تكون مفيدة للهكر للدخول إلى النظام.
  48. تحقق مما إذا كانت أي بيانات مهمة مثل كلمة المرور مخزنة في ملفات سرية على النظام.
  49. تحقق مما إذا كان التطبيق يقوم بإرجاع بيانات أكثر مما هو مطلوب.
هذه ليست سوى سيناريوهات الاختبار الأساسية لبدء استخدام Pentest. هناك المئات من طرق الاختراق المتقدمة التي يمكن إجراؤها يدويًا أو بمساعدة أدوات automation tools.

معايير اختبار الاختراق Pentest

  • PCI DSS (معيار أمان بيانات صناعة بطاقات الدفع)
  • OWASP (مشروع أمان تطبيق الويب المفتوح)
  • ISO / IEC 27002 ، OSSTMM -  The Open Source Security Testing Methodology Manual

الشهادات

مساعد اختبار الأمان ( AST )
كبير مختبري الأمن (SST)
اختبار الاختراق المعتمد ( CPT )

أدوات القرصنة الاخلاقية الموصى بها

  1. Nmap
  2. Nessus
  3. Metasploit
  4. Wireshark
  5. OpenSSL
  6. AIRCRACK-NG
  7. JOHN THE RIPPER
  8. SNORT

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