جرد شبكتك الخاصة وتدقيقها باستخدام Nmap
خروج

الدرس 1 من 9 · الإطار والأساسيات

الإطار والترخيص ومنهجية التدقيق الداخلي

35 د Debian 12

الهدف

أن تفهم لماذا يجب على المسؤول أن يعرف ما الذي تكشفه أجهزته الخاصة، وفي أي إطار قانوني يحق له التحقق من ذلك، وأن تتبع منهجية بسيطة للتدقيق الداخلي (internal audit). ستنتهي بأول فحص… لآلتك الافتراضية نفسها.

أهم النقاط

  • Nmap أداة جرد: تخبرك بالمنافذ (ports) التي تستجيب على جهاز ما وبالخدمات الموجودة عليه. بالنسبة للمسؤول، هي بمثابة معاينة لحالة المكان.
  • لا نفحص إلا أجهزتنا الخاصة أو شبكة نملك بشأنها ترخيصًا مكتوبًا من المؤسسة. ودونه، يُعدّ ذلك جريمة (القانون الجنائي، الفصول 607-3 وما بعده).
  • يُؤطَّر التدقيق قبل بدئه: النطاق الدقيق (العناوين)، والجهة الطالبة، ووثيقة الترخيص، والنافذة الزمنية، وجهة الاتصال في حالة الطوارئ.
  • نسجّل كل أمر ننفّذه مع التاريخ والساعة: فهذا دليلك على أنك بقيت داخل النطاق.
  • في هذا التكوين، تستهدف جميع التمارين 127.0.0.1، أي آلتك الافتراضية نفسها.

لماذا نجرد أجهزتنا الخاصة؟

لنأخذ مثال سميرة، تقنية في مقاولة صغيرة ومتوسطة للوجستيك في طنجة. ثبّت مزوّد خدمات خادم الملفات لديها قبل ثلاث سنوات، ولا أحد يعرف بالضبط ما الذي يعمل عليه. وذات يوم، تسمح خدمة قديمة ومنسية للإدارة عن بُعد بدخول برنامج فدية (ransomware).

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

  1. الجرد: ما المنافذ المفتوحة، وما الخدمات، وما الإصدارات؟
  2. المقارنة مع ما يُفترض وجوده («القائمة البيضاء»: الموقع الإلكتروني، SSH الخاص بالإدارة…).
  3. تصحيح الفارق: إيقاف، تقييد، تصفية، تحديث.
  4. التحقق بفحص جديد من أن التصحيح يعمل.
  5. التكرار بانتظام، والمقارنة مع الجرد السابق.

هذه المراحل الخمس هي الخيط الناظم للتكوين كله.

ماذا يقول القانون المغربي

أضاف القانون رقم 07-03 إلى القانون الجنائي الفصول من 607-3 إلى 607-11 المتعلقة بالمس بنظم المعالجة الآلية للمعطيات. باختصار، ودون أن يغني ذلك عن رأي قانوني متخصص:

الفصل ما يُعاقب عليه (ملخّص)
607-3 الدخول بطريقة احتيالية إلى نظام أو جزء منه، أو البقاء فيه
607-5 عرقلة سير نظام أو إحداث خلل فيه عمدًا
607-6 إدخال معطيات أو تغييرها أو حذفها بطريقة احتيالية
607-10 صنع أو حيازة أو تفويت معدات أو برامج مُعدّة لارتكاب هذه الجرائم
607-11 مصادرة المعدات المستعملة

احفظ المنطق: ما يميّز التدقيق عن الهجوم هو الترخيص. الفحص نفسه، إذا أُطلق على خادم جارك، قد يُعدّ محاولة دخول أو عرقلة (خاصة إذا أبطأ جهازًا هشًّا). أما إذا أُطلق على خادمك، بموافقة مكتوبة من إدارتك، فهو عمل مسؤول أنظمة.

نصّان آخران مهمّان في التدقيق الداخلي:

  • القانون 09-08 المتعلق بحماية المعطيات الشخصية (CNDP): يجب ألا يحتوي تقرير تدقيق مستشفى على معطيات المرضى؛
  • القانون 05-20 المتعلق بالأمن السيبراني والتوجيه الوطني لأمن نظم المعلومات (DNSSI) بالنسبة للإدارات والبنيات التحتية ذات الأهمية الحيوية، وهما يطالبان تحديدًا بمعرفة الأنظمة والتحكم فيها.

الترخيص المكتوب

حتى داخل المؤسسة، وحتى لو كنت «المعلوماتي الوحيد في الدار»، اطلب ترخيصًا موقّعًا من شخص له صلاحية منحه (المدير، مدير نظم المعلومات، مسؤول أمن نظم المعلومات). ويجب أن يحدد:

البند مثال (جامعة في الرباط)
الجهة الطالبة مديرية نظم المعلومات
المدقّق يوسف أ.، تقني شبكات
النطاق 10.20.30.0/24 (قاعة الخوادم)، باستثناء 10.20.30.50 (خادم شؤون الطلبة خلال فترة الامتحانات)
النافذة الزمنية السبت 25/10، من 8 صباحًا إلى 12 ظهرًا
التقنيات المسموح بها جرد منافذ TCP، كشف الإصدارات، سكربتات NSE من فئة «safe»
الممنوعات اختبارات حجب الخدمة، تجريب كلمات المرور، الاستغلال
جهة الاتصال في الطوارئ المداومة بمديرية نظم المعلومات، الخط الداخلي 1234

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

المنهجية، أداة بأداة

يُثبَّت Nmap من مستودعات توزيعتك:

sudo apt install nmap            # Debian, Ubuntu
sudo dnf install nmap            # Rocky, Alma, RHEL
nmap --version                   # Nmap version 7.93 ( https://nmap.org ) على Debian 12

المرحلة 1: التحقق من قائمة الأهداف دون إرسال أي شيء

يعرض فحص القائمة (-sL) العناوين التي سيستهدفها Nmap، دون إرسال أي حزمة إليها. إنها أفضل طريقة لمراجعة النطاق قبل إطلاق أي شيء.

nmap -sL -n 10.20.30.0/29
# Nmap scan report for 10.20.30.0
# Nmap scan report for 10.20.30.1
# ...
# Nmap done: 8 IP addresses (0 hosts up) scanned in 0.01 seconds

الخيار -n يتجنب استعلامات DNS. وعبارة «0 hosts up» طبيعية: فـ Nmap لم يستعلم أي جهاز.

لاستثناء جهاز من النطاق:

nmap -sL -n 10.20.30.0/24 --exclude 10.20.30.50

المرحلة 2: الفحص الأول، على جهازك الخاص

nmap -sT -p 8080 127.0.0.1
# PORT     STATE SERVICE
# 8080/tcp open  http-proxy
  • -sT: يفتح Nmap اتصال TCP حقيقيًا، كما يفعل المتصفح. إنه الفحص الأكثر «تهذيبًا» ويعمل دون صلاحيات root.
  • -p 8080: منفذ واحد.
  • 127.0.0.1: الجهاز نفسه (عنوان الاسترجاع loopback).

عمود SERVICE (http-proxy) ليس سوى الاسم المعتاد لهذا المنفذ، مأخوذًا من جدول: لم ينظر Nmap بعدُ إلى ما يستجيب فعلًا. وسيكون ذلك موضوع الدرس 2.1.

المرحلة 3: الاحتفاظ بأثر

nmap -sT -p 8080 127.0.0.1 -oN /root/audit/premier.txt     # مخرجات محفوظة
echo "$(date '+%F %T') nmap -sT -p 8080 127.0.0.1" >> /root/audit/journal.txt

السطر الأول من ملف -oN يذكّر أصلًا بالأمر والساعة: # Nmap 7.93 scan initiated … as: nmap -sT -p 8080 …. أما السجل، فيجمع كل أوامر التدقيق في ملف واحد يستطيع مسؤولك قراءته.

أخطاء متكررة

  • «إنها شبكة المؤسسة وأنا أعمل فيها، إذن يحق لي»: لا. دون ترخيص مكتوب يحدد النطاق، أنت مخطئ، حتى بنوايا حسنة.
  • الخطأ في العنوان: خطأ مطبعي واحد (10.20.3.0/24 بدل 10.20.30.0/24) وتجد نفسك تفحص شبكة غيرك. راجع دائمًا بـ -sL أولًا.
  • فحص شبكة مزوّد استضافة أو سحابة دون قراءة شروطه: كثير منهم يؤطّرون ذلك، حتى بالنسبة لأجهزتك الخاصة.
  • نسيان السجل: إذا وقع حادث خلال نافذة التدقيق، فهو الذي سيثبت ما فعلته (وما لم تفعله).

التطبيق العملي (Lab)

تُعِدّ تدقيقًا مصغّرًا لآلتك الافتراضية: تكتب بطاقة التأطير (الهدف، الجهة الطالبة، الترخيص، النافذة الزمنية)، وتراجع نطاقًا بفحص القائمة دون إرسال أي حزمة، ثم تجري أول فحص TCP للمنفذ 8080 على 127.0.0.1 وتسجّله في سجل التدقيق. ابدأ بالأمر sudo ml demarrer nmap-1-1.

اختبار قصير

  1. ما الذي يميّز قانونيًا التدقيق عن الهجوم؟
  2. ماذا يفعل الخيار -sL؟ وهل يرسل حزمًا إلى الأهداف؟
  3. اذكر أربعة بنود لا غنى عنها في ترخيص التدقيق.
  4. لماذا يجب الحذر في المستشفى؟
  5. في المخرجات 8080/tcp open http-proxy، هل تحقق Nmap من أن الأمر يتعلق بـ proxy؟
الأجوبة
  1. الترخيص المكتوب من المؤسسة المالكة، الذي يحدد النطاق والتقنيات المسموح بها (القانون الجنائي، الفصول 607-3 وما بعده بشأن الدخول أو العرقلة دون حق).
  2. يسرد العناوين المستهدفة دون إرسال أي حزمة إليها: إنه مراجعة للنطاق.
  3. الجهة الطالبة، المدقّق، النطاق (والاستثناءات)، النافذة الزمنية، التقنيات المسموح بها والممنوعة، جهة الاتصال في الطوارئ.
  4. بعض الأجهزة الطبية الحيوية أو وحدات التحكم الآلي هشّة؛ وقد يربكها فحص سريع جدًا. نستثنيها أو نفحصها بلطف، بحضور المصلحة المعنية.
  5. لا: إنه الاسم المعتاد للمنفذ 8080. كشف الإصدار (-sV) وحده يستعلم الخدمة فعلًا.

المراجع: الدليل المرجعي لـ Nmap وصفحة الدليل nmap(1)؛ القانون الجنائي المغربي (القانون رقم 07-03). نص أصلي من MasterLinux.

تمارين تطبيقية

تُنجَز على Debian 12

أنجز هذا التطبيق العملي على جهازك

الطرفية طرفيتك: آلة افتراضية بنظام لينكس (VirtualBox أو VMware أو Hyper-V أو WSL…) أو Docker/Podman. أداة ml تحضّر التمرين وتصحّح عملك، ويُؤكَّد الدرس هنا تلقائيًا.

أنشئ حسابًا مجانيًا للحصول على أمرك الشخصي وتصحيح تطبيقاتك العملية تلقائيًا.

إنشاء حسابي

المهام المطلوبة

  1. اكتب بطاقة التأطير /root/audit/cadre/perimetre.txt في أربعة أسطر من نوع «مفتاح=قيمة»: cible=127.0.0.1 (الهدف)، commanditaire=… (الجهة التي تطلب التدقيق)، autorisation=… (مرجع الوثيقة الموقّعة) وfenetre=… (اليوم والساعات المرخّص بها). احتفظ بأسماء المفاتيح الفرنسية هذه كما هي، لأن التحقق يبحث عنها.
    عرض تلميحسطر واحد لكل معلومة، دون فراغات حول «=». مثال: commanditaire=Direction PME Tanger.
    عرض الحل
    printf "%s\n" "cible=127.0.0.1" "commanditaire=Direction informatique - PME Tanger" "autorisation=AUT-2026-014 signee le 19/10/2026" "fenetre=lundi 20/10 de 20h a 22h" > /root/audit/cadre/perimetre.txt

    التحقق : f=/root/audit/cadre/perimetre.txt; grep -qx "cible=127.0.0.1" $f && grep -q "^commanditaire=.\{2,\}" $f && grep -q "^autorisation=.\{2,\}" $f && grep -q "^fenetre=.\{2,\}" $f

  2. دون إرسال أي حزمة، اجعل Nmap يسرد عناوين 127.0.0.0/30 (فحص القائمة، دون تحليل DNS) واحفظ النتيجة بالصيغة العادية في /root/audit/cadre/liste.txt
    عرض تلميحفحص القائمة هو -sL؛ و-n يعطّل الـ DNS؛ و-oN ملف يحفظ المخرجات العادية.
    عرض الحل
    nmap -sL -n 127.0.0.0/30 -oN /root/audit/cadre/liste.txt >/dev/null

    التحقق : f=/root/audit/cadre/liste.txt; grep -q "^# Nmap .* -sL" $f && grep -q "Nmap scan report for 127.0.0.3" $f && grep -q "(0 hosts up)" $f

  3. خادم ويب صغير للاختبار يستمع على آلتك. أجرِ فحصك الأول: اتصال TCP كامل (-sT) على المنفذ 8080 وحده من 127.0.0.1، والمخرجات العادية في /root/audit/cadre/premier.txt
    عرض تلميحnmap -sT -p 8080 127.0.0.1 -oN …
    عرض الحل
    nmap -sT -p 8080 127.0.0.1 -oN /root/audit/cadre/premier.txt >/dev/null

    التحقق : f=/root/audit/cadre/premier.txt; grep -q "^# Nmap .*-sT" $f && grep -Eq "^8080/tcp +open" $f

  4. املأ سجل التدقيق: أضف إلى /root/audit/cadre/journal.txt سطرًا يبدأ بالتاريخ بصيغة YYYY-MM-DD متبوعًا بالساعة، ثم الأمر الدقيق للفحص السابق (nmap -sT -p 8080 127.0.0.1)
    عرض تلميحالأمر date "+%F %T" يعطي 2026-10-19 21:05:12. اجمع بينهما: echo "$(date '+%F %T') nmap -sT -p 8080 127.0.0.1" >> …
    عرض الحل
    echo "$(date "+%F %T") nmap -sT -p 8080 127.0.0.1" >> /root/audit/cadre/journal.txt

    التحقق : f=/root/audit/cadre/journal.txt; grep -Eq "^20[0-9]{2}-[01][0-9]-[0-3][0-9].*[0-2][0-9]:[0-5][0-9].*nmap -sT -p 8080 127\.0\.0\.1" $f

المراجع الرسمية المعتمدة: Nmap Reference Guide (Nmap Network Scanning, Gordon Lyon) — https://nmap.org/book/man.html ; Nmap — Legal Issues — https://nmap.org/book/legal-issues.html ; nmap(1) — page de manuel (Debian 12, paquet nmap 7.93) ; Code pénal marocain, articles 607-3 à 607-11 (loi n° 07-03 relative aux atteintes aux systèmes de traitement automatisé des données). نص أصلي من MasterLinux.