أنواع الاختبار والـ Scope والـ Rules of Engagement

جارٍ التحميل…

01 / ملخص الدرس

أنواع الاختبار والـ Scope والـ Rules of Engagement

Black و White و Gray Box، و External و Internal، والـ Scope، والـ Rules of Engagement، وتعمل إيه لو لقيت حاجة برا الـ Scope.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

أهلاً بيك. دلوقتي بقيت فاهم الأساس، وبتفكر زي المهاجم. من النهاردة هنتعلم إزاي نشتغل كـ Penetration Tester محترف… وأول حاجة: قبل ما نلمس أي حاجة، لازم نعرف إحنا هنختبر إيه، وإزاي.

أنواع الاختبار حسب المعلومات اللي معاك: Black Box، مش عارف أي حاجة، زي مهاجم حقيقي من برا. White Box، معاك كل حاجة، حتى الـ source code. Gray Box، معاك جزء، زي حساب user عادي. و Gray Box هو الأشهر في الشغل الحقيقي.

وأنواع حسب المكان: External، من الإنترنت، على الحاجات المكشوفة. Internal، من جُوّه الشبكة، كأن المهاجم دخل خلاص أو موَزَّف. Web Application، على موقع أو API معيّن. وفيه كمان Wireless و Social Engineering.

وأهم ورقة في المشروع كله اسمها Scope. ده الاتفاق المكتوب اللي بيحدد إيه المسموح تختبره بالزبط. الـ domains، والـ IP ranges، وإيه الممنوع خالص.

ومعاه ورقة تانية اسمها Rules of Engagement. مواعيد الاختبار، مَسَلاً بعد الساعة عشرة بالليل. ممنوع إيه، زي DoS أو مسح بيانات. تكلّم مين لو حصلت مشكلة. وتعمل إيه لو لقيت ثَغْرة خطيرة قوي. طب لو لقيت جهاز مهم برا الـ Scope؟ ما تلمسوش. اكتب الملاحزة، وبلّغ العميل، وهو اللي يقرر. حتى لو شكله سهل… الإزن هو اللي بيحميك. الـ Scope ساعات بيبقى IP range. يعني slash twenty four مَسَلاً، معناها مِيّتين خمسة وخمسين عنوان تقريباً. نعمل function تتأكد إن الـ target جُوّه الـ range، ومش في الممنوع. نشغّل… الأول مسموح، التاني ممنوع، والتالت برا الـ range خالص.

main.py
import ipaddress

scope = ipaddress.ip_network("10.10.10.0/24")
excluded = [ipaddress.ip_address("10.10.10.1")]

def in_scope(ip):
    ip = ipaddress.ip_address(ip)
    return ip in scope and ip not in excluded

for t in ["10.10.10.5", "10.10.10.1", "10.10.20.7"]:
    print(t, in_scope(t))

المخرجات

10.10.10.5 True
10.10.10.1 False
10.10.20.7 False

دورك: العميل قال كمان العنوان ten dot ten dot ten dot two hundred ممنوع. ضيفه للـ excluded، وجرّبه.

تمرين

ضيف ipaddress.ip_address("10.10.10.200") للـ excluded، وجرّب "10.10.10.200".

الحل: نشغّل…

main.py
import ipaddress

scope = ipaddress.ip_network("10.10.10.0/24")
excluded = [
    ipaddress.ip_address("10.10.10.1"),
    ipaddress.ip_address("10.10.10.200"),
]

def in_scope(ip):
    ip = ipaddress.ip_address(ip)
    return ip in scope and ip not in excluded

for t in ["10.10.10.5", "10.10.10.1", "10.10.20.7", "10.10.10.200"]:
    print(t, in_scope(t))

المخرجات

10.10.10.5 True
10.10.10.1 False
10.10.20.7 False
10.10.10.200 False

الدرس الجاي: الاختبار نفسه بيمشي إزاي من أوله لآخره؟ مراحل اختبار الاختراق. يلا بينا.

03 / دروس المسار (23)
  1. 01أهلاً بيك — يعني إيه أمن سيبراني؟
  2. 02الكمبيوتر بيشتغل إزاي من جُوّه؟
  3. 03نظام التشغيل: المدير اللي بيدير كل حاجة
  4. 04الملفات والـ Users والصلاحيات
  5. 05صفر وواحد: Binary و Hex و Encoding
  6. 06الشبكات والـ IP Address
  7. 07الـ Ports والـ Protocols
  8. 08الـ DNS والـ HTTP: إزاي الموقع بيفتح؟
  9. 09تطبيق الويب: Client و Server و Database
  10. 10مفاهيم الحماية: CIA Triad
  11. 11Vulnerability و Threat و Risk
  12. 12Authentication و Authorization
  13. 13Least Privilege و Defense in Depth
  14. 14الـ Hashing: إزاي نحفَظ الباسورد صح
  15. 15الـ Encryption: Symmetric و Asymmetric و HTTPS
  16. 16تفكير المهاجم: الثقة والمدخلات
  17. 17الـ Attack Surface والـ Attack Vectors
  18. 18الـ Social Engineering والـ Phishing
  19. 19أنواع المهاجمين، والأخلاق، والقانون
  20. 20أنواع الاختبار والـ Scope والـ Rules of Engagementانت هنا
  21. 21مراحل اختبار الاختراق
  22. 22جهّز الـ Lab بتاعك
  23. 23مراجعة نهائية: سيناريو كامل، وإنت رايح فين