دليل اختبار الاختراق الكامل
اختبار الاختراق (Penetration-Testing) هي عملية تحديد الثغرات الأمنية (security vulnerabilities) في أحد التطبيقات من خلال تقييم النظام أو الشبكة باستخدام تقنيات ضارة مختلفة (malicious techniques) . يتم استغلال نقاط الضعف في النظام في هذه العملية من خلال محاكاة هجوم.
الغرض من هذا الاختبار Pentest هو تأمين البيانات المهمة من الهكر الذين يمكنهم الوصول غير المصرح به إلى النظام فبمجرد تحديد الثغرة الأمنية ، يتم استخدامها لاستغلال النظام للوصول إلى المعلومات الحساسة.
يُعرف اختبار الاختراق أيضًا باسم Pentest ويشار إلى اختبار الاختراق أيضًا باسم الهاكر الأخلاقي.
ما هو اختبار الاختراق Ethical hacking
يمكننا معرفة نقاط الضعف في نظام الكمبيوتر أو تطبيق الويب أو الشبكة من خلال اجراء اختبار اختراق يتضح ما إذا كانت الإجراءات الدفاعية الحالية المستخدمة في النظام قوية بما يكفي لمنع أي اختراقات او انتهاكات أمنية.
أسباب الضعف Security Vulnerability
- أخطاء التصميم والتطوير : يمكن أن تكون هناك عيوب في تصميم الأجهزة والبرامج. يمكن أن تعرض هذه الأخطاء بيانات عملك المهمة لخطر الانكشاف.
- تكوين النظام السيئ : هذا سبب آخر للضعف. إذا كان النظام سيئ التكوين ، فيمكنه إدخال ثغرات يمكن للمهاجمين من خلالها الدخول إلى النظام وسرقة المعلومات.
- الأخطاء البشرية : يمكن أن تؤدي العوامل البشرية مثل التخلص غير السليم من المستندات ، وترك المستندات دون مراقبة ، وأخطاء الترميز ، والتهديدات الداخلية ، ومشاركة كلمات المرور عبر مواقع التصيد الاحتيالي ، وما إلى ذلك ، إلى انتهاكات أمنية.
- الاتصال : إذا كان النظام متصلاً بشبكة غير آمنة (اتصالات مفتوحة) ، فسيكون في متناول للهكر.
- التعقيد : يرتفع الضعف الأمني بما يتناسب مع درجة تعقيد النظام. كلما زادت ميزات النظام ، زادت فرص تعرضه للهجوم.
- كلمات المرور : تستخدم كلمات المرور لمنع الوصول غير المصرح به. يجب أن تكون قوية بما يكفي بحيث لا يستطيع أحد تخمين كلمة مرورك. يجب عدم مشاركة كلمات المرور مع أي شخص بأي ثمن ويجب تغيير كلمات المرور بشكل دوري. على الرغم من هذه التعليمات ، في بعض الأحيان يكشف الأشخاص عن كلمات المرور الخاصة بهم للآخرين ، اكتبها في مكان ما واحتفظ بكلمات مرور سهلة يمكن تخمينها.
- إدخال المستخدم : يجب أن تكون قد سمعت عن حقن SQL ، وتدفقات المخزن المؤقت ، وما إلى ذلك. يمكن استخدام البيانات المستلمة إلكترونيًا من خلال هذه الطرق لمهاجمة نظام الاستقبال.
- الإدارة : الأمن صعب ومكلف للإدارة. في بعض الأحيان تفتقر المنظمات إلى التخلف في الإدارة المناسبة للمخاطر ، وبالتالي يتم إحداث الضعف في النظام.
- نقص تدريب الموظفين : يؤدي هذا إلى أخطاء بشرية ونقاط ضعف أخرى.
- الاتصالات : قنوات مثل شبكات الهاتف المحمول والإنترنت والهاتف تفتح مجال سرقة الأمان.
لماذا اختبار الاختراق؟
لا بد أنك سمعت عن هجوم WannaCry ransomware الذي بدأ في مايو 2017 ودام اربعة ايام, أغلق أكثر من 200.000 جهاز كمبيوتر في 150 دولة حول العالم. وطالب بدفع فدية في عملة البيتكوين المشفرة. أثر هذا الهجوم على العديد من المنظمات الكبرى حول العالم.
- يجب تأمين البيانات المالية أو الهامة أثناء نقلها بين الأنظمة المختلفة أو عبر الشبكة.
- يطلب العديد من العملاء إجراء اختبار Pentesting كجزء من دورة إصدار البرنامج.
- لتأمين بيانات المستخدم.
- للعثور على ثغرات أمنية في أحد التطبيقات.
- لاكتشاف الثغرات في النظام.
- لتقييم الأثر التجاري للهجمات الناجحة.
- لتلبية الامتثال لأمن المعلومات في المنظمة.
- لتنفيذ استراتيجية أمنية فعالة في المنظمة.
تحتاج أي منظمة إلى تحديد مشكلات الأمان الموجودة في الشبكة الداخلية وأجهزة الكمبيوتر. يمكن أن يؤدي استخدام مؤسسة المعلومات هذه إلى التخطيط للدفاع ضد أي محاولة قرصنة.
تعد خصوصية المستخدم وأمن البيانات من أكبر الاهتمامات في الوقت الحاضر. تخيل لو تمكن أي هكر من الحصول على تفاصيل مستخدم لموقع التواصل الاجتماعي مثل Facebook.
يمكن أن تواجه المنظمة مشكلات قانونية بسبب ثغرة صغيرة في نظام البرمجيات. ومن ثم ، تبحث المؤسسات الكبيرة عن شهادات الامتثال لـ PCI (صناعة بطاقات الدفع) قبل القيام بأي عمل مع عملاء من جهات خارجية.
ما الذي يجب اختباره
- البرمجيات (نظام التشغيل ، الخدمات ، التطبيق)
- المعدات (Hardware)
- الشبكة
- العمليات (Processes)
- سلوك المستخدم النهائي (End-user behavior)
أنواع اختبار الاختراق
- الأخطاء البشرية هي الأسباب الرئيسية للضعف الأمني. يجب اتباع المعايير والسياسات الأمنية من قبل جميع الموظفين لتجنب محاولات اختراق الهندسة الاجتماعية. يتضمن أحد الأمثلة على هذه المعايير عدم ذكر أي معلومات حساسة في البريد الإلكتروني أو الاتصال الهاتفي. يمكن إجراء عمليات تدقيق الأمن لتحديد عيوب العملية وتصحيحها.
في هذا النهج ، يقوم المختبر بتقييم النظام أو الشبكة أو العملية المستهدفة دون معرفة تفاصيلها. لديهم مستوى عالٍ جدًا من المدخلات مثل عنوان URL أو اسم الشركة الذي يخترقون من خلاله البيئة المستهدفة. لا يتم فحص أي سورس كود برمجي في هذه الطريقة.
في هذا النهج ، يتم تجهيز المختبر بتفاصيل كاملة حول البيئة المستهدفة - الأنظمة ، والشبكة ، ونظام التشغيل ، وعنوان IP ، والشفرة المصدر ، والمخطط ، وما إلى ذلك ، وهو يفحص الكود ويكتشف أخطاء التصميم والتطوير. بمعنى محاكاة لهجوم أمني داخل الشركة.
في هذا النوع ، يكون لدى المختبر تفاصيل محدودة حول البيئة المستهدفة. هي محاكاة لهجمات أمنية خارجية.
تقنيات اختبار الاختراق PenTesting Techniques
- اختبار الاختراق اليدوي
- استخدام أدوات اختبار الاختراق الاتوماتيكية
- الجمع بين الطريقة اليدوية والآلية
اختبار الاختراق اليدوي
من الصعب العثور على جميع الثغرات الأمنية باستخدام الأدوات الآلية. هناك بعض الثغرات الأمنية التي يمكن التعرف عليها عن طريق الفحص اليدوي فقط. يمكن لمختبري الاختراق أداء هجمات أفضل على التطبيقات بناءً على مهاراتهم ومعرفتهم بالنظام الذي يتم اختراقه.
مثل أساليب الهندسة الاجتماعية يمكن أن يقوم بها البشر فقط. يتضمن الفحص اليدوي التصميم ومنطق العمل بالإضافة إلى التحقق من الشفرة المصدر.
الية عمل اختبار الاختراق:
دعونا نناقش العملية الفعلية التي تتبعها وكالات الاختبار أو مختبرو الاختراق. يعد تحديد الثغرات الأمنية الموجودة في النظام الخطوة الأولى المهمة في هذه العملية.
يتم اتخاذ إجراءات تصحيحية بشأن هذه الثغرة الأمنية ويتم تكرار نفس اختبارات الاختراق حتى يصبح النظام سالبًا لجميع تلك الاختبارات.
طرق اختبار الاختراق اليدوي
سيناريوهات اختبار الاختراق الأساسية
- تحقق مما إذا كان تطبيق الويب قادرًا على تحديد spam attacks على contact forms المستخدمة على موقع الويب.
- الخادم الوكيل -Proxy server تحقق مما إذا كانت حركة مرور الشبكة تتم مراقبتها بواسطة أجهزة البروكسي. يجعل الخادم الوكيل من الصعب على الهكر الحصول على تفاصيل داخلية للشبكة وبالتالي حماية النظام من الهجمات الخارجية.
- عوامل تصفية البريد الإلكتروني العشوائي Spam email filters تحقق من تصفية حركة مرور البريد الإلكتروني الواردة والصادرة وحظر رسائل البريد الإلكتروني غير المرغوب فيها.
- يأتي العديد من عملاء البريد الإلكتروني مع عوامل تصفية البريد العشوائي المضمنة التي يجب تهيئتها وفقًا لاحتياجاتك. يمكن تطبيق قواعد التكوين هذه على رؤوس البريد الإلكتروني أو الموضوع أو النص.
- جدار الحماية - تأكد من حماية الشبكة أو أجهزة الكمبيوتر بالكامل بجدران الحماية. يمكن أن يكون جدار الحماية برنامجًا أو جهازًا لمنع الوصول غير المصرح به إلى النظام. يمكن لجدار الحماية منع إرسال البيانات خارج الشبكة دون إذنك.
- حاول استغلال جميع الخوادم وأنظمة سطح المكتب والطابعات وأجهزة الشبكة.
- تحقق من تشفير جميع أسماء المستخدمين وكلمات المرور ونقلها عبر اتصالات آمنة مثل Https.
- تحقق من المعلومات المخزنة في ملفات تعريف الارتباط الخاصة بالموقع (website cookies) لا ينبغي أن يكون بتنسيق يمكن قراءته.
- تحقق من الثغرات التي تم العثور عليها مسبقًا للتحقق مما إذا كان الإصلاح يعمل.
- تحقق من عدم وجود منفذ مفتوح في الشبكة.
- تحقق من جميع أجهزة الهاتف.
- تحقق من أمان شبكة WIFI.
- تحقق من جميع طرق HTTP. يجب عدم تمكين طرق PUT و Delete على خادم الويب.
- تحقق مما إذا كانت كلمة المرور تفي بالمعايير المطلوبة. يجب أن تتكون كلمة المرور من 8 أحرف على الأقل وتحتوي على رقم واحد وحرف خاص واحد على الأقل.
- يجب ألا يكون اسم المستخدم افتراضي مثل "admin" أو "administrator".
- يجب قفل صفحة تسجيل الدخول إلى التطبيق بعد عدة محاولات تسجيل دخول غير ناجحة.
- يجب أن تكون رسائل الخطأ عامة ويجب ألا تذكر تفاصيل خطأ محددة مثل "اسم المستخدم غير صالح" أو "كلمة المرور غير الصالحة".
- تحقق مما إذا كان يتم التعامل مع الأحرف الخاصة وعلامات HTML والبرامج النصية بشكل صحيح كقيمة إدخال.
- يجب عدم الكشف عن تفاصيل النظام الداخلي في أي من رسائل الخطأ أو التنبيه.
- يجب عرض رسائل الخطأ المخصصة للمستخدمين النهائيين في حالة تعطل صفحة الويب.
- تحقق من استخدام إدخالات التسجيل. يجب عدم الاحتفاظ بالمعلومات الحساسة في السجل.
- يجب فحص جميع الملفات قبل تحميلها على الخادم.
- يجب عدم تمرير البيانات الحساسة في عناوين URL أثناء الاتصال بالوحدات النمطية الداخلية المختلفة لتطبيق الويب.
- يجب ألا يكون هناك أي اسم مستخدم أو كلمة مرور مشفرة في النظام.
- تحقق من جميع حقول الإدخال مع سلسلة إدخال طويلة مع وبدون مسافات.
- تحقق مما إذا كانت وظيفة إعادة تعيين كلمة المرور آمنة.
- تحقق من التطبيق من ثغرات الحقن SQL Injection.
- تحقق من التطبيق الخاص بـ Cross-Site Scripting .
- يجب إجراء عمليات التحقق من صحة الإدخال المهمة من جانب الخادم بدلاً من عمليات التحقق من JavaScript من جانب العميل.
- يجب أن تكون الموارد الهامة في النظام متاحة للأشخاص والخدمات المصرح لهم فقط.
- يجب الاحتفاظ بجميع سجلات الوصول مع أذونات الوصول المناسبة.
- تحقق من انتهاء جلسة المستخدم عند تسجيل الخروج.
- تحقق من تعطيل استعراض الملفات على الخادم.
- تحقق من أن جميع التطبيقات وإصدارات قواعد البيانات محدثة.
- تحقق من معالجة عنوان URL للتحقق مما إذا كان تطبيق الويب لا يعرض أي معلومات غير مرغوب فيها.
- تحقق من تسرب الذاكرة memory leak وتجاوز سعة المخزن المؤقت buffer overflow.
- تحقق مما إذا تم فحص حركة مرور الشبكة الواردة للعثور على هجمات طروادة Trojan attacks.
- تحقق مما إذا كان النظام آمنًا من هجمات Brute-Force Attacks - وهي طريقة للتجربة والخطأ للعثور على معلومات حساسة مثل كلمات المرور.
- تحقق مما إذا كان النظام أو الشبكة مؤمنين من هجمات DoS (رفض الخدمة). يمكن للهاكر أن يستهدف شبكة أو جهاز كمبيوتر واحد مع طلبات مستمرة بسبب زيادة التحميل على الموارد الموجودة على النظام المستهدف مما يؤدي إلى رفض الخدمة للطلبات الشرعية.
- تحقق من التطبيق لهجمات حقن نص HTML.
- تحقق من هجمات COM & ActiveX.
- تحقق من هجمات الانتحال Spoofing Attacks يمكن أن يكون الانتحال من عدة أنواع - انتحال عنوان IP ، انتحال معرف البريد الإلكتروني ،
- انتحال ARP spoofing ، انتحال المرجع Referrer spoofing، انتحال هوية المتصل ، تسميم Poisoning شبكات مشاركة الملفات ، GPS spoofing.
- تحقق من هجوم سلسلة التنسيق غير المنضبط uncontrolled format string attack- هجوم أمني يمكن أن يتسبب في تعطل التطبيق أو تنفيذ البرنامج النصي الضار (harmful script) عليه.
- تحقق من هجوم حقن XML - يُستخدم لتغيير المنطق المقصود للتطبيق.
- تحقق من الهجمات المتعارف عليها.
- تحقق مما إذا كانت صفحات الخطأ تعرض أي معلومات يمكن أن تكون مفيدة للهكر للدخول إلى النظام.
- تحقق مما إذا كانت أي بيانات مهمة مثل كلمة المرور مخزنة في ملفات سرية على النظام.
- تحقق مما إذا كان التطبيق يقوم بإرجاع بيانات أكثر مما هو مطلوب.
معايير اختبار الاختراق Pentest
- PCI DSS (معيار أمان بيانات صناعة بطاقات الدفع)
- OWASP (مشروع أمان تطبيق الويب المفتوح)
- ISO / IEC 27002 ، OSSTMM - The Open Source Security Testing Methodology Manual
الشهادات
أدوات القرصنة الاخلاقية الموصى بها
أخيرًا ، بصفتك أحد مختبري الاختراق ، يجب عليك جمع وتسجيل جميع نقاط الضعف في النظام. لا تتجاهل أي سيناريو مع الأخذ في الاعتبار أنه لن يتم تنفيذه من قبل المستخدمين النهائيين.