الأمن السيبراني الأدلة التقنية

ما تحتاجه قبل الأمن السيبراني: الشبكات وLinux والبرمجة

لماذا الأمن السيبراني طابق يبنى فوق ثلاثة أساسات، وما الذي تحتاجه بالضبط من كل أساس، وكيف تعرف أنك جاهز لا أنك حفظت.

ما تحتاجه قبل الأمن السيبراني: الشبكات وLinux والبرمجة

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

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

وسوف نناقش في هذا المقال ما يلي:

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

لماذا الأمن طابق أعلى؟

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

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

والصورة التالية تبين هذا الترتيب: البرمجة في الأسفل لأن كل شيء فوقها كود، ثم Linux والشبكات لأنهما بيئة عمل كل خادم وكل أداة، ثم فهم كيف تجتمع في أنظمة وخدمات، ثم الأمن في الأعلى:

هرم من أربع طبقات: في الأسفل البرمجة والنصوص بالأزرق، فوقها Linux والشبكات بالأخضر، فوقها كيف يعمل التطبيق والنظام والسحابة بالبرتقالي، وفي القمة الأمن السيبراني بالأسود، وتحت الهرم جملة أن من يبدأ بالأمن قبل الأساسات يحفظ أدوات لا يفهم مخرجاتها
الأمن السيبراني طابق يبنى فوق ثلاثة أساسات، لا مادة تبدأ بها

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

الأساس الأول: الشبكات Networking

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

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

مسار طلب من اليمين لليسار: جهازك بعنوان IP خاص خلف NAT، ثم الراوتر والجدار الناري، ثم DNS يحول الاسم إلى IP، ثم السيرفر يستمع على المنفذ 443، وتحتها صندوق يشرح ما تحتاج فهمه في كل محطة: عنوان IP والشبكة الفرعية، والمنفذ والجدار الناري، وDNS وTCP/IP وHTTP
مسار طلب واحد: كل محطة فيها شيء تحتاج أن تفهمه لتعرف أين الخطر

وما تحتاجه من الشبكات ليس أن تصير مهندس شبكات، وإنما أن تفهم هذه المفاهيم فهماً عملياً تستطيع أن تطبقه:

  • عنوان IP والشبكة الفرعية Subnet: كيف يعنون الجهاز، والفرق بين العنوان الخاص والعام، وكيف تقسم الشبكة إلى مقاطع، لأن هذا هو الذي يحدد أي الأجهزة تستطيع أن تصل إلى أي، وأين يمكن أن يتمدد المهاجم. وحساب الشبكات الفرعية CIDR مهارة تطبقها بيدك لا تحفظها.
  • المنافذ Ports والجدار الناري Firewall: أن الخدمة تستمع على منفذ (SSH على 22، وHTTPS على 443)، وأن الجدار الناري يقرر ما الذي يسمح له بالوصول إلى أي منفذ. وأول سؤال أمني عن أي خادم: أي منافذ مفتوحة، ومن يستطيع الوصول إليها؟
  • نموذج TCP/IP وطبقاته: كيف تغلف البيانات وتنتقل من التطبيق إلى الأسلاك وتعود، لأن كل أداة أمنية تعمل في طبقة من هذه الطبقات، ومن لا يعرفها يخلط بين ما يراه الجدار الناري وما يراه محلل حركة الشبكة.
  • DNS: كيف يتحول الاسم إلى عنوان، لأن كثيراً من الهجمات والدفاعات تمر به، وقد شرحناه في مقال شرح DNS وسجلاته.
  • HTTP وHTTPS: الطلب والرد والترويسات ورموز الحالة، لأن أغلب ما تحميه اليوم تطبيقات ويب، وقد شرحناه في مقال HTTP وHTTPS للمبتدئين.

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

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

الأساس الثاني: Linux وسطر الأوامر

لماذا Linux تحديداً؟ لأن أغلب الخوادم في العالم تعمل به، وأغلب أدوات الأمن مفتوحة المصدر كتبت له، ولأن سطر الأوامر هو لغته: فيه تقرأ السجلات، وتدير الخدمات، وتفحص الشبكة، وتشغل الأدوات. ومن يعرف الواجهة الرسومية فقط يقف عاجزاً أمام خادم لا واجهة له، وهو حال أغلب الخوادم. ولا يعني هذا أن تهجر نظامك الحالي، وإنما أن تتعلم Linux عملياً، ولو في حاوية Docker أو جهاز افتراضي، وقد شرحنا سطر الأوامر للمبتدئين في مقال مستقل.

وما تحتاجه من Linux للأمن:

  • التنقل والملفات: كيف تتحرك في نظام الملفات، وتقرأ الملفات وتبحث فيها، لأن التحقيق في حادثة يبدأ بقراءة ملفات وسجلات.
  • الصلاحيات Permissions: من يملك الملف، ومن يقرأ ويكتب وينفذ، وصلاحية root وsudo، لأن أغلب أخطاء الأمن على الخوادم أخطاء صلاحيات، ومعظم تصعيد الصلاحيات يستغلها. وقد شرحنا هذا في مقالات مرحلة Linux.
  • العمليات والخدمات Processes and Services: كيف ترى ما يعمل، وتوقفه وتشغله، وتقرأ سجله بـ systemd وjournalctl، لأن أول ما تفعله حين تشك في خادم أن تنظر إلى ما يعمل عليه.
  • معالجة النصوص: أدوات مثل grep وawk وsed والأنابيب Pipes، لأن السجلات نصوص، ومحلل الأمن يقضي وقته يستخرج من ملايين الأسطر ما يهم. وهذه المهارة تحديداً هي ما يفرق بين من يغرق في السجلات ومن يجد فيها الإبرة.
  • الشبكة من Linux: أوامر مثل ip وss وcurl وtcpdump، التي تربط أساس الشبكات بأساس Linux، فتفحص بها ما شرحناه في القسم السابق بيدك.

والمعيار هنا عملي: لا يكفي أن تعرف أن grep يبحث، بل أن تستطيع أن تستخرج من سجل خادم كل محاولات الدخول الفاشلة وتعدها حسب العنوان، دون أن تبحث عن الأمر. وهذا ما سوف نفعله في المختبر.

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

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

الأساس الثالث: البرمجة والنصوص Scripting

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

وما تحتاجه من البرمجة:

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

وقد تسأل: كم يجب أن أتقن البرمجة بالضبط؟ والجواب يعتمد على الدور الذي تريده. فمحلل مركز العمليات SOC يحتاج أن يقرأ السكربتات ويكتب استعلامات ويؤتمت مهام بسيطة، ومختبر الاختراق يحتاج برمجة أعمق ليكتب أدواته ويفهم استغلال الثغرات، ومطور أمن التطبيقات يحتاج أن يبرمج بمستوى المطور نفسه ليراجع كوده. لكن القاسم المشترك الأدنى الذي لا يستغني عنه أحد هو أن تقرأ الكود بثقة وتكتب سكربتاً صغيراً. ولا تقع في فخ تعلم خمس لغات في وقت واحد: أتقن Python وحدها حتى تحل بها مشكلة حقيقية، فالعمق في لغة واحدة أنفع من سطحية في خمس.

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

ربط الثلاثة: من يحفظ ومن يفهم

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

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

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

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

أين يظهر كل أساس في عمل الأمن الحقيقي؟

لتربط الأساسات بما سوف تعمله فعلاً، انظر كيف يظهر كل واحد منها في المهام اليومية للأمن:

المهمة الأمنيةالشبكاتLinuxالبرمجة
مراقبة السجلات واكتشاف الحوادثفهم العناوين والمنافذ في السجلقراءة السجلات ومعالجتها بـ grep وawkكتابة قواعد تنبيه واستعلامات
إدارة الثغراتمعرفة ما المكشوف للإنترنتمعرفة إصدارات الحزم المثبتةأتمتة الفحص وربط الثغرة بالخدمة
الاستجابة للحوادثتتبع حركة المهاجم في الشبكةفحص العمليات والملفات والسجلاتتحليل عينة أو سكربت خبيث
تقوية الأنظمةضبط الجدار الناري والمنافذالصلاحيات والخدمات والتحديثاتسكربت يقيس الحالة ويصلحها

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

تجربة عملية: مختبر يثبت الأساسيات الثلاثة

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

تشغيل الخدمة والشبكة

ننشئ أولاً شبكة Docker خاصة، ثم نشغل خادم ويب Nginx عليها بعنوان ثابت:

docker network create --subnet 10.89.77.0/24 lab-net
docker run -d --name web --network lab-net --ip 10.89.77.10 nginx:1.29-alpine

في هذين السطرين طبقت مفهومين من الشبكات: أنشأت شبكة فرعية Subnet بمدى 10.89.77.0/24 (أي 254 عنواناً قابلاً للاستخدام)، وأعطيت الخادم عنواناً ثابتاً فيها. والآن نكتب سكربتاً يفحص هذه الخدمة من حاوية أخرى، نسميه prereq.sh:

apk add --no-cache curl iproute2 >/dev/null 2>&1
echo "== 1) Linux: who am I, and what is my address on the network? =="
ip -4 addr show eth0 | awk '/inet/{print "  my IP:", $2}'
echo "== 2) networking: find the web host by name (Docker DNS), then check the port =="
getent hosts web | awk '{print "  web ->", $1}'
curl -s --max-time 2 -o /dev/null -w "  port 80 http status: %{http_code}\n" http://web/
echo "== 3) application layer: read the HTTP response headers =="
curl -s -D - -o /dev/null http://web/ | sed 's/\r$//; s/^/  /' | head -5
echo "== 4) reading an error: a port that is not open =="
curl -s --max-time 2 http://web:8080/ ; echo "  curl exit code: $?"

نشغله في حاوية على الشبكة نفسها:

docker run --rm --network lab-net -v "$PWD":/w alpine:3.22 sh /w/prereq.sh

والمخرج سوف يكون كما يلي:

== 1) Linux: who am I, and what is my address on the network? ==
  my IP: 10.89.77.2/24
== 2) networking: find the web host by name (Docker DNS), then check the port ==
  web -> 10.89.77.10
  port 80 http status: 200
== 3) application layer: read the HTTP response headers ==
  HTTP/1.1 200 OK
  Server: nginx/1.29.8
  Date: Wed, 28 Oct 2026 11:06:44 GMT
  Content-Type: text/html
  Content-Length: 896
== 4) reading an error: a port that is not open ==
  curl exit code: 7

في المخرج أعلاه لاحظ كيف اجتمعت الأساسيات الثلاثة:

  • عرفت عنواني على الشبكة بأمر Linux (ip)، فأنا في 10.89.77.2 والخادم في 10.89.77.10، أي في الشبكة الفرعية نفسها، ولهذا أصل إليه (مفهوم شبكات).
  • وجدت الخادم باسمه عبر DNS الذي توفره Docker، وهذا يطبق مفهوم DNS الذي شرحناه: الاسم web تحول إلى العنوان 10.89.77.10.
  • فحصت المنفذ 80 فجاء الرد 200، أي أن الخدمة تعمل وتستمع، وقرأت ترويسات HTTP فعرفت اسم الخادم وإصداره nginx/1.29.8، وهذه المعلومة نفسها (إصدار الخادم) هي ما يربط ثغرة CVE بخدمة تشغلها.
  • جربت منفذاً مغلقاً 8080، فأعاد curl رمز الخروج 7 الذي يعني رفض الاتصال Connection refused، أي لا خدمة تستمع هناك. وقراءة رمز الخروج هذا مهارة: الفرق بين «رفض» (لا خدمة) و«انتهاء المهلة» (جدار ناري يحجب) يقول لك أشياء مختلفة عن الخادم.

قراءة السجل: مهارة النصوص

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

docker run --rm --network lab-net alpine:3.22 sh -c '
  apk add --no-cache curl >/dev/null 2>&1
  curl -s -o /dev/null http://web/
  curl -s -o /dev/null http://web/missing-page
  curl -s -o /dev/null -A "lab-check" http://web/robots.txt'
docker logs web 2>&1 | grep -E 'GET|HEAD' | tail -4
10.89.77.2 - - [28/Oct/2026:11:09:22 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/8.14.1" "-"
10.89.77.2 - - [28/Oct/2026:11:09:22 +0000] "GET /missing-page HTTP/1.1" 404 153 "-" "curl/8.14.1" "-"
10.89.77.2 - - [28/Oct/2026:11:09:22 +0000] "GET /robots.txt HTTP/1.1" 404 153 "-" "lab-check" "-"

كل سطر هنا حدث Event: من أي عنوان، وماذا طلب، وبأي رمز حالة أجيب، وبأي متصفح. والآن نطبق مهارة النصوص لنلخص السجل كما يفعل محلل: نعد الطلبات حسب رمز الحالة والمسار:

docker logs web 2>&1 | grep -oE '"GET [^ ]+ HTTP/1.1" [0-9]+' | awk '{print $4, $2}' | sort | uniq -c
      5 200 /
      1 404 /missing-page
      1 404 /robots.txt

في سطر واحد استخرجنا من السجل كل طلب GET، وأخذنا منه رمز الحالة والمسار، ثم رتبناها وعددناها. وهذا بالضبط ما يفعله محلل الأمن حين يبحث في ملايين الأسطر عن نمط: عدد كبير من أخطاء 404 لمسارات غريبة قد يعني أن أحداً يمسح خادمك بحثاً عن صفحات مخفية، وعدد كبير من أخطاء الدخول 401 من عنوان واحد قد يعني محاولة تخمين. ولاحظ أننا لم نستخدم أداة أمنية واحدة، وإنما أدوات Linux الأساسية: grep وawk وsort وuniq. فمن أتقن هذه الأدوات يملك نصف عمل محلل الأمن قبل أن يلمس أداة متخصصة.

وبعد التجربة ننظف المختبر كما تعودنا:

docker rm -f web
docker network rm lab-net

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

من أين تتعلم؟ وكم تحتاج من الوقت؟

الأساسات الثلاثة لها في خارطة التعلم مراحل كاملة تشرح كل مفهوم، وهي مصدرك الأول: مرحلة البرمجة للخطوات الأولى، ومرحلة Linux لسطر الأوامر وإدارة الخادم، ومرحلة الشبكات من الحزمة إلى DNS وHTTP. وإلى جانبها مصادر مجانية موثوقة: التوثيق الرسمي لكل أداة، وكتب مفتوحة لأساسيات الشبكات، وبيئات تدريب تفاعلية مجانية لـ Linux. والقاعدة: تعلم بالممارسة لا بالمشاهدة، فساعة تطبق فيها أمراً على جهازك تعلمك أكثر من عشر ساعات فيديو تشاهدها.

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

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

أخطاء شائعة Common Mistakes في الطريق

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

قائمة تحقق: هل أنت جاهز للتعمق في الأمن؟

الأساستستطيع أن…
الشبكاتترسم أين يقف جهازك، وتعرف عنوانه ومنفذه المكشوف، وتفحص خدمة بـ curl وss
الشبكاتتشرح كيف يصل طلب من المتصفح إلى الخادم، وأين يقع DNS والجدار الناري في الطريق
Linuxتجد العملية التي تستهلك الموارد، وتقرأ سجل خدمة، وتبحث فيه بـ grep وawk
Linuxتفهم الصلاحيات، وتعرف الفرق بين المستخدم العادي وroot ومتى تستخدم sudo
البرمجةتقرأ سكربت Python أو Bash متوسط الطول وتعرف ماذا يفعل سطراً سطراً
البرمجةتكتب سكربتاً صغيراً يؤتمت مهمة متكررة، وتستخدم Git لحفظ عملك
الأنظمةتشغل خدمة في حاوية Docker، وتصل إليها، وتقرأ سجلها، وتوقفها وتنظفها

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

الخلاصة

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

  • الشبكات أولاً، لأن كل هجوم ودفاع يحدث عليها: IP والمنافذ وDNS وTCP/IP وHTTP فهماً عملياً لا نظرياً.
  • Linux وسطر الأوامر لغة الخوادم والأدوات: الملفات والصلاحيات والعمليات والسجلات ومعالجة النصوص.
  • البرمجة لأن الأمن كله كود: لغة واحدة (Python) تقرؤها وتكتب بها، وBash للأتمتة، وGit، وفهم من أين تأتي الثغرة.
  • المعيار ليس ما قرأت، وإنما ما تستطيع أن تفعله الآن على جهازك دون دليل أمامك.
  • تعلم بالممارسة لا بالمشاهدة، وابن مختبراً صغيراً، واربط الأساسات بمشروع واحد يجمعها.
  • لا تقفز إلى أدوات الأمن قبل أن تفهم ما تحتها، فمن يفهم اللبنة يفهم الأداة، ومن يحفظ يقف عند أول اختلاف.

تدريب عملي Practice

  • أعد بناء المختبر، ثم زد في سكربت الفحص فحص منفذ SSH (22)، واقرأ الفرق بين رد منفذ مفتوح ومنفذ مغلق ومنفذ محجوب.
  • خذ سجل خادم حقيقي تملكه (أو سجل المختبر)، واكتب أمر awk يطبع أكثر خمسة عناوين IP طلباً، وأكثر خمسة مسارات أعطت خطأ 404.
  • راجع قائمة التحقق أعلاه بصدق، وحدد صفاً واحداً لا تستطيع فعله بعد، واقض هذا الأسبوع في إتقانه على مختبرك.

سجل التحديثات

  • أكتوبر 2026: كتابة المقال، وتشغيل مختبر الأساسيات على Docker (شبكة خاصة وnginx:1.29-alpine وalpine:3.22) ثم إزالته.
Could not load content
نشرة عرب رووت | ArabRoot

معرفة تستحق مكاناً في بريدك.

مقالات مختارة وأدوات مفيدة وأفكار لمشروعك القادم، في رسالة واحدة كل أسبوع.

يمكنك إلغاء الاشتراك متى شئت. الخصوصية

تم استلام طلبك. افتح بريدك واضغط رابط التأكيد لإتمام الاشتراك.