مضى على الشبكة و يوم من العطاء.

[بحث] ما هي الانظمة المدمجة(Embeded Systems) وكيف يتم اختراقها ؟!

Dark-Base

>_ عضو متميز _<
.:: كاتب تقني ::.
>:: v1p ::<

السمعة:

ما هي الانظمة المدمجة(Embeded Systems) وكيف يتم اختراقها ؟!
السلام عليكم ,
اللهم صلي وسلم علي سيدنا محمد وعلى اله وصحبة اجمعين ,
اول شيء هذا الموضوع هو بحث وليس من معلوماتي فقط انا عندي معرفة عادية فيه وحابب اتعلمه وعندي معرفة مع بعض التجارب المرتبطة فيه وانا سويت هذا الموضوع لاني بدي اتعلم عنه اكثر وبدي ابحث عنه فقلت ليش ما ابحث واسوي عنه موضوع ألخص اهم الاشياء عشين استفيد اكثر وافيدكم وطبعا وما راح اكتب كلشي من الصفر يعني خلال البحث سواء من مواقع او فيديوهات في اشياء راح انقلها بس عشينه بحث فقط والا راح ياخذ وقت كثير ومن الصعب اكتب كلشي من الصفر وانا لسا داخل جديد على الموضوع واتمنى انكم تستفيدو ❤


في هذا الموضوع سنتكلم عن :
  1. ما هي الانظمة المدمجة(Embeded Systems) وتعريفها (تم)​
  2. كيف تعمل الانظمة المدمجة ؟! (تم)​
  3. ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟! (تم)
  4. ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟! (تم)​
  5. كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟! (تم)
  6. كيف يتم اختراقها وكيف اقوم بذلك ؟! (تم)​
  7. ما هي طرق حماية الانظمة المدمجة من الاختراق ؟! (تم)​
  8. خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها (تم)​




ما هي الانظمة المدمجة(Embeded Systems) وتعريفها

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

نظام التشغيل في الوقت الحقيقي شرحت الفرق بينه و بين نظام التشغيل العادي في هذا الموضوع للحابب يعرف اكثر عنه :

1729533316749.webp

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


امثلة المعالجات والمتحكمات دقيقة التي تستخدم في الانظمة المدمجة :
1. المتحكمات الدقيقة (Microcontrollers):
  • Arduino (ATmega328P)
  • STM32 (STMicroelectronics)
  • ESP32 (Espressif Systems)
  • PIC Microcontrollers (Microchip Technology)
  • 1729534252044.webp
    1729534268508.webp
    1729534293563.webp
    1729534316928.webp
    1729534374486.webp
    1729534418784.webp
2. المعالجات الدقيقة (Microprocessors):
  • ARM Cortex-A Series
  • NXP i.MX Series
  • Intel Atom
1729534457165.webp
1729534465894.webp
1729534508116.webp
1729534517786.webp
1729534564889.webp
1729534650548.webp


أمثلة على أنظمة التشغيل المدمجة :

  1. FreeRTOS

  2. VxWorks

  3. ThreadX

  4. Zephyr

1729534102605.webp
1729534114993.webp
1729534133845.webp
1729534202586.webp


كيف تعمل الانظمة المدمجة ؟!



1729511848712.webp
1729512048934.webp
1729533414728.webp
للتعرف على كيفية عمل الانظمة المدمجة نحتاج التطلع الى مكوناتها حتى نفهم كيف تعمل بوضوح


مكونات الانظمة المدمجة :
  1. المتحكم الدقيق أو المعالج الدقيق (Microcontroller/Microprocessor):
  • يُعتبر عقل النظام المدمج ينفذ التعليمات البرمجية التي تتحكم في الجهاز و المتحكمات مثل : Arduino و esp32 تملك معالجات مع ذاكرة وواجهات ادخال واخراج (Input / Output) في شريحة واحد
  1. الذاكرة (Memory):
  • تشمل الذاكرة الدائمة (ROM أو Flash) لتخزين البرنامج الذي يتم تحميله في المتحكم، والذاكرة المؤقتة (RAM) لتخزين البيانات التي يتم معالجتها خلال تشغيل النظام
  1. أجهزة الإدخال والإخراج (I/O):
  • تشمل الحساسات (Sensors) التي تجمع البيانات من البيئة الخارجية مثل درجة الحرارة أو الضوء، والمشغلات (Actuators) مثل المحركات أو الشاشات التي تؤدي الإجراءات بناء على التعليمات وغالبا ما تكون اجهزة الادخال والاخراج على شكل اطراف(pins) والتي تمثل الخطوط او الاسلاك الكهربائية الناقلة للبيانات او الكهرباء
  1. البرمجيات المدمجة (Firmware):
  • عبارة عن البرمجيات المثبتة على المتحكم الدقيق والتي تنفذ المهام المطلوبة. يتم تطوير هذه البرمجيات بلغة البرمجة C أو C++، وتحتوي على تعليمات تحكمية لإدارة الإدخال والإخراج ومعالجة البيانات وتكون هي اساس النظام المدمج



الان سنذهب ونتطلع لكيفية عمل النظام من الداخل و ما هي اهم الوظائف الداخلية فيه

النظام المدمج يعمل من خلال دورة حياة مستمرة تشمل أربع خطوات رئيسية:
  1. التشغيل (Power-On):
    • عند تشغيل النظام، يقوم المتحكم الدقيق بتحميل البرنامج المدمج من الذاكرة الدائمة (Flash) إلى الذاكرة المؤقتة (RAM) ويبدأ في تنفيذه.
    • يبدأ النظام في التفاعل مع العالم الخارجي من خلال قراءة البيانات من أجهزة الاستشعار. الحساسات تقوم بقياس المتغيرات الفيزيائية مثل الحرارة، الضغط، الحركة، إلخ.

أنماط التشغيل:

  1. التشغيل المتواصل (Continuous Operation):

    • العديد من الأنظمة المدمجة تعمل بشكل متواصل على مدار الساعة، مثل الأنظمة في المصانع أو السيارات. يتم مراقبة البيانات بشكل دوري وتتم معالجة الأحداث في الوقت الحقيقي.
  2. التشغيل عند الطلب (Event-Driven Operation):

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


الاتصال والتفاعل مع الأنظمة الأخرى:

  1. البروتوكولات:

    • الأنظمة المدمجة غالبًا ما تتصل ببعضها البعض أو بأنظمة أخرى من خلال بروتوكولات اتصالات مثل I2C، SPI، UART، CAN، أو بروتوكولات شبكية مثل Wi-Fi وBluetooth.
    • هذه البروتوكولات تسمح للأجهزة بتبادل البيانات والتحكم في بعضها البعض بشكل متزامن.
  2. الاتصال بالإنترنت (IoT - Internet of Things):

    • العديد من الأنظمة المدمجة اليوم تتصل بالإنترنت لتصبح جزءًا من شبكة "إنترنت الأشياء". يتم مراقبة الأجهزة والتحكم فيها عن بُعد من خلال الإنترنت.

1729539756980.webp
1729539766216.webp



ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟!


اهم النقاط والفروقات بينهم :

وجه المقارنةنظام التشغيل العادينظام التشغيل المدمج
تعدد المهامموجودغير موجود ولكنه ممكن في بعضها مثل raspberry
امكانية تثبيت وازالة برامج عديدةممكنغير ممكن
استهلاك الطاقةعاليمنخفض
موارد الجهاز المطلوبة(معالج , ذاكرة , .......)عاليةمنخفضة
مرونة التعامل(تحديث النظام, البرمجة , .......)سهلةصعبة
الحجمكبيرصغير
مستوى الامانعادي, ويحتاج الى تحديثات امنية عديدةعالي لانه نظام مغلق


ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟!


إيجابيات الأنظمة المدمجة :

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


سلبيات الأنظمة المدمجة :

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




كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟!


تكتب برامج الأنظمة المدمجة باستعمال لغات البرمجة عديدة وتعمل على أنظمة تشغيل لينوكس مثل : OSE، Micro C/OS، Nucleus، Fusion، VxWorks، وغيرها

اللغات المستخدمة لبرمجة الانظمة المدمجة :
  1. لغة C: الأكثر شيوعًا في الأنظمة المدمجة و توفر التحكم الكامل في الذاكرة وإدارة الموارد و أداء عالٍ ويعمل على منصات مختلفة و العديد من المتحكمات الدقيقة توفر دعمًا مباشرًا لـ C
  2. لغة C++: تستخدم أيضًا في الأنظمة المدمجة، لكنها أقل انتشارًا من C بسبب تعقيدها و توفر مزايا البرمجة كائنية التوجه و تُستخدم في الأنظمة التي تتطلب تصميمًا معقدًا وبرمجة متقدمة
  3. لغة Assembly (لغة التجميع): تستخدم لبرمجة الأنظمة المدمجة ذات الموارد المحدودة جدًا و تتيح التحكم التام في العتاد الصلب (Hardware) و لكنها صعبة في التعلم والتطبيق بسبب تعقيدها
  4. لغة Python: تستخدم في الأنظمة المدمجة الأعلى أداءً مثل Raspberry Pi ولكن أداءها ليس مرتفعًا كـ C أو Assembly، وتحتاج عادة إلى بيئة تشغيل أكثر قوة (مثل Linux المدمج). و غالبًا تستخدم للتطوير السريع أو التعليم
  5. لغة Ada: تستخدم في الأنظمة المدمجة التي تحتاج إلى أمان عالٍ وتحصين ضد الأخطاء و تستخدم في الطيران والأنظمة العسكرية والمشاريع ذات الحساسيات العالية
  6. لغة Rust: تعتبر لغة حديثة نسبيًا لكنها تكتسب شهرة متزايدة في الأنظمة المدمجة بسبب مزايا الأمان في التعامل مع الذاكرة و تهدف إلى تقديم أداء مماثل لـ C مع تقليل الأخطاء المرتبطة بإدارة الذاكرة
  7. لغة Java (Micro Edition): تستخدم في بعض الأنظمة المدمجة خاصة التي تحتاج إلى تشغيل تطبيقات تعتمد على الآلة الافتراضية (Virtual Machine) و تستخدم بشكل أكبر في إنترنت الأشياء (IoT) أو أجهزة التشغيل المتعددة
  8. لغات HDL (Hardware Description Language) مثل VHDL وVerilog: تستخدم لتصميم واختبار الدوائر الإلكترونية في الأنظمة المدمجة و هذه اللغات لا تُستخدم لبرمجة المعالجات أو المتحكمات الدقيقة بل لتصميمها

1729535067613.webp
1729535081687.webp
1729535163899.webp
1729535233913.webp
1729535256406.webp
1729535304206.webp
1729535332462.webp
1729535410109.webp
1729535463803.webp


اختيار لغة البرمجة المناسبة يعتمد على :
  • حجم الذاكرة
  • السرعة
  • التوافق او نوع الجهاز
  • صعوبة تطبيق البرنامج وصيانته
  • أمان النظام واستقراره

بيئات التطوير الخاصة بالانظمة المدمجة ليست محددة بحيث انه هناك انظمة مدمجة تبرمج عن طريق جهاز حاسبوب اخر مثل : Arduino و esp32 وهناك بيئات تطوير مخصصه لهم


كيف يتم اختراقها وكيف اقوم بذلك ؟!

1729535632783.webp
1729535714632.webp
1729535784910.webp

لكل عملية اختراق مراحل اساسية وهذه اغلب المراحل الاختراق المتعرف عليها
مراحل اختراق الانظمة المدمجة :

1. التعرف على الجهاز وجمع المعلومات عنه(Reconnaissance) :

  • البحث في المواصفات الفنية:

    • قبل البدء في أي عملية، يجب البحث جيدًا في مواصفات الجهاز، نوع المعالج أو المتحكم الدقيق المستخدم، البروتوكولات التي يعمل بها (مثل I2C، SPI، CAN، وغيرها).
    • معرفة نظام التشغيل المستخدم (إذا كان نظامًا مدمجًا مخصصًا أو نظام تشغيل وقت حقيقي RTOS).
    • إذا كان الجهاز متصلًا بشبكة (مثل أجهزة IoT)، يمكن استخدام أدوات تحليل الشبكة مثل Wireshark لفحص الحزم المرسلة والمستلمة وتحليل البروتوكولات المستخدمة.
    • يمكن أن يكشف تحليل الشبكة عن نقاط ضعف محتملة في الاتصالات أو في البروتوكولات.

2. الهجوم على البرمجيات (Software Attack) :

  • استغلال الثغرات البرمجية (Exploiting Software Vulnerabilities):

    • البحث عن نقاط ضعف معروفة في البرمجيات المستخدمة داخل النظام المدمج. على سبيل المثال، قد يكون هناك ثغرات في الإصدارات القديمة لنظام التشغيل المدمج أو في البرمجيات المثبتة.
    • يمكن البحث عن الثغرات المعروفة (CVE) التي قد تتعلق بالجهاز المحدد أو البرمجيات المستخدمة.
    • سحب وتحليل البرمجيات الثابتة (Firmware) من الجهاز. يمكن سحب البرمجيات باستخدام أدوات مثل JTAG أو UART أو استخدام تقنيات أخرى مثل فك ملفات تحديث الجهاز.
    • بعد الحصول على البرمجيات الثابتة، يمكن فكها (decompile) باستخدام أدوات مثل Binwalk أو Ghidra لتحليل التعليمات البرمجية وفهم كيفية عمل الجهاز.

3. الهجوم على العتاد (Hardware Attack) :

  • استغلال واجهات الأجهزة (Hardware Interfaces):

    • الأنظمة المدمجة عادة ما تحتوي على واجهات مثل JTAG أو UART أو I2C. يمكن استخدام هذه الواجهات للوصول إلى وضع التصحيح (Debug Mode) أو قراءة البيانات مباشرة من ذاكرة الجهاز.
    • إذا كان هناك منفذ UART مفتوح، يمكن محاولة الاتصال بالجهاز باستخدام terminal مثل Minicom أو PuTTY للتحكم بالجهاز مباشرة.
    • في بعض الحالات، يمكن استخدام تقنيات فيزيائية مثل التفريغ الكهربائي (Glitching) أو الهجوم على الطاقة (Power Analysis) لتجاوز القيود الأمنية الموجودة في العتاد. على سبيل المثال، يمكن إحداث تداخل في عمل الجهاز من خلال إرسال إشارات كهربية غير متوقعة لإعادة ضبط الجهاز أو تغيير حالته.

4. الهجوم على الشبكات اللاسلكية (Wireless Network Attacks) :

  • اختراق الاتصالات اللاسلكية (Wireless Exploitation):

    • إذا كان الجهاز يستخدم تقنيات الاتصال اللاسلكي مثل Wi-Fi أو Bluetooth، يمكن محاولة استغلال الثغرات في هذه البروتوكولات. على سبيل المثال، يمكن استخدام هجوم Man-in-the-Middle لاعتراض الحزم أو هجوم Wi-Fi (WPA/WPA2) لاختراق الشبكة المتصلة بالجهاز.
    • أدوات مثل aircrack-ng و reaver يمكن استخدامها لهذا الغرض.
    • يمكن تنفيذ هجمات التشويش لتعطيل الاتصال اللاسلكي بين الجهاز ومكوناته أو بينه وبين الأجهزة الأخرى. الهجوم عبر التشويش قد يعطل أو يجبر النظام على العودة إلى وضع آخر أكثر ضعفًا.

5. تجاوز المصادقة والحماية (Bypassing Authentication & Security) :

  • البحث عن الأخطاء البرمجية (Software Bugs):

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

6. تنفيذ الأوامر (Command Execution) :

  • إذا تمكنت من الحصول على وصول إلى البرمجيات أو العتاد، يمكن محاولة تنفيذ الأوامر (Command Injection) أو التحكم في الجهاز بالكامل من خلال إرساء البرمجيات الخبيثة التي تسمح لك بالوصول المستمر أو التحكم الكامل.

في سياق الاختراق العملي لأنظمة مدمجة معينة، يمكن أن يتجاوز الكود أو الشرح التفصيلي 2500 سطر بسهولة خاصة إذا كنت تقوم بتحليل البرمجيات الثابتة (firmware) واستخدام الهجمات على العتاد




ما هي طرق حماية الانظمة المدمجة من الاختراق ؟!


1729535851352.webp
1729535835554.webp
1729535893703.webp
1729535921730.webp


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

1. التحديث المستمر للبرمجيات (Firmware Updates) :

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

2. استخدام التشفير (Encryption) :

  • الوصف: حماية البيانات المتداولة والمخزنة على الأجهزة من خلال تقنيات التشفير القوي.
  • الحماية: التشفير يحمي البيانات من التصنت (eavesdropping) والهجمات مثل هجوم الرجل في الوسط (Man-in-the-Middle).
  • التطبيق: استخدم بروتوكولات التشفير مثل AES لتشفير البيانات المخزنة، وTLS/SSL لتأمين الاتصالات بين الأجهزة.

3. التحقق من الهوية والمصادقة القوية (Authentication) :

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

4. تقليل سطح الهجوم (Minimize Attack Surface) :

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

5. التأكد من سلامة البرمجيات الثابتة (Secure Boot) :

  • الوصف: استخدام تقنيات مثل "التشغيل الآمن" (Secure Boot) لضمان تشغيل البرنامج الثابت الأصلي وغير المعدل عند الإقلاع.
  • الحماية: يحمي النظام من التلاعب بالبرمجيات الثابتة أو إدخال برمجيات خبيثة.
  • التطبيق: توقيع البرمجيات باستخدام شهادات رقمية وتحقق من صحة التوقيع أثناء عملية الإقلاع.

6. فحص الأجهزة واستخدام واجهات آمنة (Secure Interfaces) :

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

7. استخدام تقنيات الحماية الفيزيائية (Physical Security) :

  • الوصف: حماية الأجهزة نفسها من الوصول الفيزيائي غير المصرح به.
  • الحماية: حماية من سرقة الأجهزة أو العبث بها أو استغلال الوصول الفيزيائي لاستخراج البيانات.
  • التطبيق: استخدام حاويات مغلقة أو تأمين الأجهزة في مواقع محمية والتحكم في الوصول إلى المعدات عبر مفاتيح أو تصاريح أمنية.

8. استخدام إدارة الذاكرة الآمنة (Memory Protection) :

  • الوصف: تطبيق تقنيات لإدارة وحماية الذاكرة المستخدمة في الجهاز المدمج مثل تقنيات الـ Data Execution Prevention (DEP) أو العزل الآمن للذاكرة.
  • الحماية: يمنع من تنفيذ تعليمات برمجية خبيثة في الذاكرة أو استغلال ثغرات مثل "buffer overflow".
  • التطبيق: استخدام معالجات تدعم تقنيات الحماية هذه وتفعيلها أثناء برمجة النظام.

9. مراقبة الاتصالات والشبكات (Network Monitoring and Anomaly Detection) :

  • الوصف: مراقبة الاتصالات الواردة والصادرة للكشف عن أي أنشطة مشبوهة أو غير معتادة.
  • الحماية: يكشف عن الهجمات مثل هجوم الـ DDoS أو محاولة اختراق الشبكة اللاسلكية.
  • التطبيق: استخدام أدوات مراقبة الشبكة مثل Wireshark أو نظام كشف التسلل (IDS) مثل Snort لمراقبة النشاط وتحذير المسؤولين.

10. تقنيات الكشف عن التسلل والاستجابة (Intrusion Detection and Response) :

  • الوصف: استخدام أنظمة لكشف التسلل (IDS) أو أنظمة منع التسلل (IPS) لمراقبة الأنظمة المدمجة وتحليل الأنشطة المشتبه بها.
  • الحماية: يسمح بالكشف المبكر عن محاولات الاختراق والتفاعل معها قبل أن تتفاقم المشكلة.
  • التطبيق: دمج أجهزة وبرمجيات مخصصة للكشف عن الأنشطة المشبوهة في الشبكة أو النظام المدمج نفسه.

11. التأمين ضد الهجمات الجانبية (Side-Channel Attacks) :

  • الوصف: تقليل تسريبات البيانات من خلال تقنيات تحليل استهلاك الطاقة أو الإشعاعات الكهرومغناطيسية (Side-Channel Attacks).
  • الحماية: يمنع استغلال البيانات الحساسة من خلال تحليل الترددات أو استهلاك الطاقة أثناء التشغيل.
  • التطبيق: استخدام تصميمات خاصة بالمكونات الإلكترونية لمنع هذا النوع من الهجمات.

12. التدقيق والفحص المستمر (Regular Audits and Penetration Testing) :

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

13. تأمين البرمجيات مفتوحة المصدر (Secure Open-Source Software) :

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




خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها

1729535993716.webp
1729536070883.webp
1729536076632.webp



المرحلة الأولى:

1. فهم الأنظمة المدمجة :

  • الهدف: اكتساب فهم قوي لماهية الأنظمة المدمجة وكيف تعمل.
    • ما هي الأنظمة المدمجة؟
    • المعالجات والمتحكمات الدقيقة (Microcontrollers vs. Microprocessors).
    • الفرق بين الأنظمة المدمجة والأنظمة التقليدية.
    • أمثلة على الأنظمة المدمجة (Arduino, Raspberry Pi, STM32, ESP32).
    • أنواع أنظمة التشغيل المستخدمة (RTOS vs. Embedded OS).

2. برمجة الأنظمة المدمجة :

  • الهدف: تعلم برمجة الأنظمة المدمجة بلغة C و/أو Python.
  • المواضيع:
    • برمجة المتحكمات الدقيقة باستخدام C أو C++.
    • التعامل مع بروتوكولات الاتصال (I2C, SPI, UART, CAN).
    • برمجة أجهزة استشعار وأجهزة إخراج.
  • الخطوات:
    • إنشاء مشاريع بسيطة مثل التحكم في LED أو قراءة بيانات من مستشعر.
    • فهم المقاطعات (Interrupts) وكيفية استخدامها في الأنظمة المدمجة.
    • التعرف على بروتوكولات الاتصال الشائعة.
  • المصادر:
    • كتب: "Programming Embedded Systems in C and C++" by Michael Barr.
    • دورات: دورة Embedded Systems Essentials على Coursera.
    • مشاريع: تنفيذ مشاريع على Arduino أو Raspberry Pi.

المرحلة الثانية:

3. تحليل وتقييم الأنظمة المدمجة (Reconnaissance) :

  • الهدف: تعلم كيفية جمع المعلومات عن الأنظمة المدمجة لتحديد الثغرات المحتملة.
  • المواضيع:
    • كيفية جمع المعلومات عن نوع المتحكم الدقيق أو المعالج.
    • تحليل الشبكات إذا كان الجهاز متصلاً بالإنترنت.
    • استخدام أدوات تحليل الشبكات مثل Wireshark.
    • أدوات تحليل المنافذ والبروتوكولات مثل Nmap.
  • الخطوات:
    • فهم كيفية تحليل الشبكات.
    • تنفيذ عمليات فحص باستخدام أدوات مثل Nmap.
    • جمع المعلومات حول المنافذ المفتوحة والبروتوكولات المستخدمة.
  • المصادر:
    • تعلم استخدام Wireshark لتحليل البروتوكولات.
    • قراءة مستندات المعالجات (datasheets) مثل معالجات ARM أو AVR.

4. استغلال البرمجيات والثغرات البرمجية :

  • الهدف: التعرف على كيفية استغلال الثغرات في البرمجيات المستخدمة داخل الأنظمة المدمجة.
  • المواضيع:
    • استغلال الثغرات البرمجية مثل Buffer Overflow و Authentication Bypass.
    • تحليل البرمجيات الثابتة (Firmware) لفهم كيفية عمل الأنظمة.
    • استخدام أدوات مثل Binwalk وGhidra لتحليل البرمجيات الثابتة.
  • الخطوات:
    • سحب البرمجيات الثابتة من الأجهزة باستخدام أدوات مثل JTAG أو UART.
    • تحليل البرمجيات الثابتة باستخدام Binwalk أو Ghidra.
    • دراسة كيفية اكتشاف الثغرات واستغلالها.
  • المصادر:
    • أدوات: Binwalk وGhidra وIDA Pro.
    • كتب: "The Art of Software Security Assessment" by Mark Dowd.

5. الهجمات العتادية (Hardware Attacks) :

  • الهدف: تعلم كيفية الوصول إلى العتاد المدمج وفحصه لاكتشاف الثغرات.
  • المواضيع:
    • استغلال واجهات الأجهزة مثل JTAG وUART.
    • الهجمات الفيزيائية مثل تحليل استهلاك الطاقة (Power Analysis).
    • محاولة قراءة الذاكرة الداخلية للجهاز (مثل EEPROM أو Flash).
  • الخطوات:
    • استخدام أدوات مثل Minicom أو PuTTY للتفاعل مع واجهات UART.
    • محاولة قراءة البيانات مباشرة من الذاكرة.
    • تنفيذ هجمات مادية مثل استخدام تقنيات Glitching لتعطيل أو تجاوز الأمان.
  • المصادر:
    • أدوات: Minicom، PuTTY، أو Saleae Logic Analyzer.
    • كتب: "Hacking the Xbox" by Andrew Huang.

المرحلة الثالثة:

6. الهجمات على الشبكات اللاسلكية (Wireless Network Attacks) :

  • الهدف: تعلم كيفية استغلال الشبكات اللاسلكية التي تتصل بها الأنظمة المدمجة.
  • المواضيع:
    • تحليل الثغرات في بروتوكولات الاتصال اللاسلكي مثل Wi-Fi وBluetooth.
    • هجمات التشويش (Jamming) وتعطيل الاتصال.
    • أدوات اختراق الشبكات اللاسلكية مثل aircrack-ng وreaver.
  • الخطوات:
    • استخدام aircrack-ng لاختراق شبكة Wi-Fi.
    • تجربة هجمات التشويش باستخدام أدوات برمجية أو عتادية.
    • استغلال بروتوكولات الاتصال اللاسلكية لاختراق الأنظمة المتصلة.
  • المصادر:
    • أدوات: aircrack-ng، reaver.
    • دورات: دورة "Wireless Hacking" على Udemy.

7. تجاوز المصادقة والحماية :

  • الهدف: تعلم كيفية تجاوز آليات المصادقة وأنظمة الحماية في الأنظمة المدمجة.
  • المواضيع:
    • استغلال كلمات المرور الافتراضية أو الثغرات في بروتوكولات المصادقة.
    • استغلال النواقل الجانبية مثل استهلاك الطاقة أو الإشعاعات.
    • حقن الأوامر (Command Injection) للسيطرة على الأنظمة المدمجة.
  • الخطوات:
    • تحليل بروتوكولات المصادقة ومحاولة استغلال الثغرات.
    • تجربة هجمات تحليل الطاقة (Power Analysis) لاستخراج المفاتيح السرية.
    • تنفيذ هجمات Command Injection عبر واجهات مثل UART أو الشبكة.
  • المصادر:
    • أدوات: IDA Pro، Power Spy.
    • كتب: "The Hardware Hacker" by Andrew 'bunnie' Huang.

المرحلة الرابعة:

8. مشاريع عملية وتطبيقات :

  • المشروع الأول: اختراق جهاز IoT متصل بشبكة Wi-Fi
    • البحث عن الثغرات في البروتوكولات المستخدمة وتحليل البيانات المتداولة باستخدام Wireshark.
    • تنفيذ اختراق الشبكة ومحاولة التلاعب بالجهاز.
  • المشروع الثاني: تحليل البرمجيات الثابتة لجهاز مدمج
    • استخدام Binwalk لسحب البرمجيات الثابتة وتحليلها للعثور على ثغرات.
    • محاولة حقن البرمجيات الخبيثة داخل البرمجيات الثابتة.
  • المشروع الثالث: استغلال واجهة UART للوصول إلى نظام مدمج
    • استخدام Minicom للتفاعل مع واجهة UART والتحكم بالجهاز.
    • تنفيذ هجوم Command Injection للسيطرة على الجهاز.

المرحلة الخامسة:

9. البحث والتحديث المستمر :

  • متابعة المدونات والمجتمعات المتعلقة بالاختراق الأمني والأنظمة المدمجة.
  • دراسة الثغرات الجديدة المسجلة في قواعد البيانات مثل CVE.
  • المشاركة في مسابقات CTF التي تتضمن تحديات تتعلق بالأنظمة المدمجة.



كورسات حلوة كثير واتمنى لو في حدا بيقدر يحطها او يجيبها بالمجان للاعضاء بالمنتدى بشكل عام :
Mastering Microcontroller and Embedded Driver Development
Mastering STM32CubeMX 5 and CubeIDE - Embedded Systems
Embedded System for Internet of Things
Embedded Systems and Operating System Development




مصادر تقنية قد تفيدك في هذا الموضوع :



وعليكم السلام ورحمة الله وبركاته
 

المرفقات

  • 1729535116496.webp
    1729535116496.webp
    6.3 KB · المشاهدات: 93
  • 1729535597021.webp
    1729535597021.webp
    10.9 KB · المشاهدات: 86
  • 1729535620965.webp
    1729535620965.webp
    10.9 KB · المشاهدات: 85
  • 1729535651038.webp
    1729535651038.webp
    23.7 KB · المشاهدات: 84
  • 1729535830514.webp
    1729535830514.webp
    13.1 KB · المشاهدات: 88
بسم الله ما شاء الله لا قوة الا بالله
موضوع رائع وطرح جميل مثلك اخي دارك
بارك الله فيك حبيبي وجزاك الله كل خير

ننتظر جديد ابداعاتك دائماً
تحياتي
اخوك ستورم
 
ما هي الانظمة المدمجة(Embeded Systems) وكيف يتم اختراقها ؟!
السلام عليكم ,
اللهم صلي وسلم علي سيدنا محمد وعلى اله وصحبة اجمعين ,
اول شيء هذا الموضوع هو بحث وليس من معلوماتي فقط انا عندي معرفة عادية فيه وحابب اتعلمه وعندي معرفة مع بعض التجارب المرتبطة فيه وانا سويت هذا الموضوع لاني بدي اتعلم عنه اكثر وبدي ابحث عنه فقلت ليش ما ابحث واسوي عنه موضوع ألخص اهم الاشياء عشين استفيد اكثر وافيدكم وطبعا وما راح اكتب كلشي من الصفر يعني خلال البحث سواء من مواقع او فيديوهات في اشياء راح انقلها بس عشينه بحث فقط والا راح ياخذ وقت كثير ومن الصعب اكتب كلشي من الصفر وانا لسا داخل جديد على الموضوع واتمنى انكم تستفيدو ❤


في هذا الموضوع سنتكلم عن :
  1. ما هي الانظمة المدمجة(Embeded Systems) وتعريفها (تم)​
  2. كيف تعمل الانظمة المدمجة ؟! (تم)​
  3. ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟! (تم)
  4. ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟! (تم)​
  5. كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟! (تم)
  6. كيف يتم اختراقها وكيف اقوم بذلك ؟! (تم)​
  7. ما هي طرق حماية الانظمة المدمجة من الاختراق ؟! (تم)​
  8. خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها (تم)​




ما هي الانظمة المدمجة(Embeded Systems) وتعريفها

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

نظام التشغيل في الوقت الحقيقي شرحت الفرق بينه و بين نظام التشغيل العادي في هذا الموضوع للحابب يعرف اكثر عنه :


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


امثلة المعالجات والمتحكمات دقيقة التي تستخدم في الانظمة المدمجة :
1. المتحكمات الدقيقة (Microcontrollers):
2. المعالجات الدقيقة (Microprocessors):
  • ARM Cortex-A Series
  • NXP i.MX Series
  • Intel Atom
مشاهدة المرفق 14670مشاهدة المرفق 14672مشاهدة المرفق 14673مشاهدة المرفق 14674مشاهدة المرفق 14676مشاهدة المرفق 14677

أمثلة على أنظمة التشغيل المدمجة :

  1. FreeRTOS

  2. VxWorks

  3. ThreadX

  4. Zephyr

مشاهدة المرفق 14658مشاهدة المرفق 14659مشاهدة المرفق 14660مشاهدة المرفق 14662

كيف تعمل الانظمة المدمجة ؟!



للتعرف على كيفية عمل الانظمة المدمجة نحتاج التطلع الى مكوناتها حتى نفهم كيف تعمل بوضوح


مكونات الانظمة المدمجة :
  1. المتحكم الدقيق أو المعالج الدقيق (Microcontroller/Microprocessor):
  • يُعتبر عقل النظام المدمج ينفذ التعليمات البرمجية التي تتحكم في الجهاز و المتحكمات مثل : Arduino و esp32 تملك معالجات مع ذاكرة وواجهات ادخال واخراج (Input / Output) في شريحة واحد
  1. الذاكرة (Memory):
  • تشمل الذاكرة الدائمة (ROM أو Flash) لتخزين البرنامج الذي يتم تحميله في المتحكم، والذاكرة المؤقتة (RAM) لتخزين البيانات التي يتم معالجتها خلال تشغيل النظام
  1. أجهزة الإدخال والإخراج (I/O):
  • تشمل الحساسات (Sensors) التي تجمع البيانات من البيئة الخارجية مثل درجة الحرارة أو الضوء، والمشغلات (Actuators) مثل المحركات أو الشاشات التي تؤدي الإجراءات بناء على التعليمات وغالبا ما تكون اجهزة الادخال والاخراج على شكل اطراف(pins) والتي تمثل الخطوط او الاسلاك الكهربائية الناقلة للبيانات او الكهرباء
  1. البرمجيات المدمجة (Firmware):
  • عبارة عن البرمجيات المثبتة على المتحكم الدقيق والتي تنفذ المهام المطلوبة. يتم تطوير هذه البرمجيات بلغة البرمجة C أو C++، وتحتوي على تعليمات تحكمية لإدارة الإدخال والإخراج ومعالجة البيانات وتكون هي اساس النظام المدمج



الان سنذهب ونتطلع لكيفية عمل النظام من الداخل و ما هي اهم الوظائف الداخلية فيه

النظام المدمج يعمل من خلال دورة حياة مستمرة تشمل أربع خطوات رئيسية:
  1. التشغيل (Power-On):
    • عند تشغيل النظام، يقوم المتحكم الدقيق بتحميل البرنامج المدمج من الذاكرة الدائمة (Flash) إلى الذاكرة المؤقتة (RAM) ويبدأ في تنفيذه.
    • يبدأ النظام في التفاعل مع العالم الخارجي من خلال قراءة البيانات من أجهزة الاستشعار. الحساسات تقوم بقياس المتغيرات الفيزيائية مثل الحرارة، الضغط، الحركة، إلخ.

أنماط التشغيل:

  1. التشغيل المتواصل (Continuous Operation):

    • العديد من الأنظمة المدمجة تعمل بشكل متواصل على مدار الساعة، مثل الأنظمة في المصانع أو السيارات. يتم مراقبة البيانات بشكل دوري وتتم معالجة الأحداث في الوقت الحقيقي.
  2. التشغيل عند الطلب (Event-Driven Operation):

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


الاتصال والتفاعل مع الأنظمة الأخرى:

  1. البروتوكولات:

    • الأنظمة المدمجة غالبًا ما تتصل ببعضها البعض أو بأنظمة أخرى من خلال بروتوكولات اتصالات مثل I2C، SPI، UART، CAN، أو بروتوكولات شبكية مثل Wi-Fi وBluetooth.
    • هذه البروتوكولات تسمح للأجهزة بتبادل البيانات والتحكم في بعضها البعض بشكل متزامن.
  2. الاتصال بالإنترنت (IoT - Internet of Things):

    • العديد من الأنظمة المدمجة اليوم تتصل بالإنترنت لتصبح جزءًا من شبكة "إنترنت الأشياء". يتم مراقبة الأجهزة والتحكم فيها عن بُعد من خلال الإنترنت.

مشاهدة المرفق 14714مشاهدة المرفق 14715


ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟!


اهم النقاط والفروقات بينهم :

وجه المقارنةنظام التشغيل العادينظام التشغيل المدمج
تعدد المهامموجودغير موجود ولكنه ممكن في بعضها مثل raspberry
امكانية تثبيت وازالة برامج عديدةممكنغير ممكن
استهلاك الطاقةعاليمنخفض
موارد الجهاز المطلوبة(معالج , ذاكرة , .......)عاليةمنخفضة
مرونة التعامل(تحديث النظام, البرمجة , .......)سهلةصعبة
الحجمكبيرصغير
مستوى الامانعادي, ويحتاج الى تحديثات امنية عديدةعالي لانه نظام مغلق


ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟!


إيجابيات الأنظمة المدمجة :

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


سلبيات الأنظمة المدمجة :

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




كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟!


تكتب برامج الأنظمة المدمجة باستعمال لغات البرمجة عديدة وتعمل على أنظمة تشغيل لينوكس مثل : OSE، Micro C/OS، Nucleus، Fusion، VxWorks، وغيرها

اللغات المستخدمة لبرمجة الانظمة المدمجة :
  1. لغة C: الأكثر شيوعًا في الأنظمة المدمجة و توفر التحكم الكامل في الذاكرة وإدارة الموارد و أداء عالٍ ويعمل على منصات مختلفة و العديد من المتحكمات الدقيقة توفر دعمًا مباشرًا لـ C
  2. لغة C++: تستخدم أيضًا في الأنظمة المدمجة، لكنها أقل انتشارًا من C بسبب تعقيدها و توفر مزايا البرمجة كائنية التوجه و تُستخدم في الأنظمة التي تتطلب تصميمًا معقدًا وبرمجة متقدمة
  3. لغة Assembly (لغة التجميع): تستخدم لبرمجة الأنظمة المدمجة ذات الموارد المحدودة جدًا و تتيح التحكم التام في العتاد الصلب (Hardware) و لكنها صعبة في التعلم والتطبيق بسبب تعقيدها
  4. لغة Python: تستخدم في الأنظمة المدمجة الأعلى أداءً مثل Raspberry Pi ولكن أداءها ليس مرتفعًا كـ C أو Assembly، وتحتاج عادة إلى بيئة تشغيل أكثر قوة (مثل Linux المدمج). و غالبًا تستخدم للتطوير السريع أو التعليم
  5. لغة Ada: تستخدم في الأنظمة المدمجة التي تحتاج إلى أمان عالٍ وتحصين ضد الأخطاء و تستخدم في الطيران والأنظمة العسكرية والمشاريع ذات الحساسيات العالية
  6. لغة Rust: تعتبر لغة حديثة نسبيًا لكنها تكتسب شهرة متزايدة في الأنظمة المدمجة بسبب مزايا الأمان في التعامل مع الذاكرة و تهدف إلى تقديم أداء مماثل لـ C مع تقليل الأخطاء المرتبطة بإدارة الذاكرة
  7. لغة Java (Micro Edition): تستخدم في بعض الأنظمة المدمجة خاصة التي تحتاج إلى تشغيل تطبيقات تعتمد على الآلة الافتراضية (Virtual Machine) و تستخدم بشكل أكبر في إنترنت الأشياء (IoT) أو أجهزة التشغيل المتعددة
  8. لغات HDL (Hardware Description Language) مثل VHDL وVerilog: تستخدم لتصميم واختبار الدوائر الإلكترونية في الأنظمة المدمجة و هذه اللغات لا تُستخدم لبرمجة المعالجات أو المتحكمات الدقيقة بل لتصميمها

مشاهدة المرفق 14680مشاهدة المرفق 14681مشاهدة المرفق 14683مشاهدة المرفق 14684مشاهدة المرفق 14685مشاهدة المرفق 14686مشاهدة المرفق 14687مشاهدة المرفق 14688مشاهدة المرفق 14689

اختيار لغة البرمجة المناسبة يعتمد على :
  • حجم الذاكرة
  • السرعة
  • التوافق او نوع الجهاز
  • صعوبة تطبيق البرنامج وصيانته
  • أمان النظام واستقراره

بيئات التطوير الخاصة بالانظمة المدمجة ليست محددة بحيث انه هناك انظمة مدمجة تبرمج عن طريق جهاز حاسبوب اخر مثل : Arduino و esp32 وهناك بيئات تطوير مخصصه لهم


كيف يتم اختراقها وكيف اقوم بذلك ؟!

مشاهدة المرفق 14693مشاهدة المرفق 14695مشاهدة المرفق 14697
لكل عملية اختراق مراحل اساسية وهذه اغلب المراحل الاختراق المتعرف عليها
مراحل اختراق الانظمة المدمجة :

1. التعرف على الجهاز وجمع المعلومات عنه(Reconnaissance) :

  • البحث في المواصفات الفنية:

    • قبل البدء في أي عملية، يجب البحث جيدًا في مواصفات الجهاز، نوع المعالج أو المتحكم الدقيق المستخدم، البروتوكولات التي يعمل بها (مثل I2C، SPI، CAN، وغيرها).
    • معرفة نظام التشغيل المستخدم (إذا كان نظامًا مدمجًا مخصصًا أو نظام تشغيل وقت حقيقي RTOS).
    • إذا كان الجهاز متصلًا بشبكة (مثل أجهزة IoT)، يمكن استخدام أدوات تحليل الشبكة مثل Wireshark لفحص الحزم المرسلة والمستلمة وتحليل البروتوكولات المستخدمة.
    • يمكن أن يكشف تحليل الشبكة عن نقاط ضعف محتملة في الاتصالات أو في البروتوكولات.

2. الهجوم على البرمجيات (Software Attack) :

  • استغلال الثغرات البرمجية (Exploiting Software Vulnerabilities):

    • البحث عن نقاط ضعف معروفة في البرمجيات المستخدمة داخل النظام المدمج. على سبيل المثال، قد يكون هناك ثغرات في الإصدارات القديمة لنظام التشغيل المدمج أو في البرمجيات المثبتة.
    • يمكن البحث عن الثغرات المعروفة (CVE) التي قد تتعلق بالجهاز المحدد أو البرمجيات المستخدمة.
    • سحب وتحليل البرمجيات الثابتة (Firmware) من الجهاز. يمكن سحب البرمجيات باستخدام أدوات مثل JTAG أو UART أو استخدام تقنيات أخرى مثل فك ملفات تحديث الجهاز.
    • بعد الحصول على البرمجيات الثابتة، يمكن فكها (decompile) باستخدام أدوات مثل Binwalk أو Ghidra لتحليل التعليمات البرمجية وفهم كيفية عمل الجهاز.

3. الهجوم على العتاد (Hardware Attack) :

  • استغلال واجهات الأجهزة (Hardware Interfaces):

    • الأنظمة المدمجة عادة ما تحتوي على واجهات مثل JTAG أو UART أو I2C. يمكن استخدام هذه الواجهات للوصول إلى وضع التصحيح (Debug Mode) أو قراءة البيانات مباشرة من ذاكرة الجهاز.
    • إذا كان هناك منفذ UART مفتوح، يمكن محاولة الاتصال بالجهاز باستخدام terminal مثل Minicom أو PuTTY للتحكم بالجهاز مباشرة.
    • في بعض الحالات، يمكن استخدام تقنيات فيزيائية مثل التفريغ الكهربائي (Glitching) أو الهجوم على الطاقة (Power Analysis) لتجاوز القيود الأمنية الموجودة في العتاد. على سبيل المثال، يمكن إحداث تداخل في عمل الجهاز من خلال إرسال إشارات كهربية غير متوقعة لإعادة ضبط الجهاز أو تغيير حالته.

4. الهجوم على الشبكات اللاسلكية (Wireless Network Attacks) :

  • اختراق الاتصالات اللاسلكية (Wireless Exploitation):

    • إذا كان الجهاز يستخدم تقنيات الاتصال اللاسلكي مثل Wi-Fi أو Bluetooth، يمكن محاولة استغلال الثغرات في هذه البروتوكولات. على سبيل المثال، يمكن استخدام هجوم Man-in-the-Middle لاعتراض الحزم أو هجوم Wi-Fi (WPA/WPA2) لاختراق الشبكة المتصلة بالجهاز.
    • أدوات مثل aircrack-ng و reaver يمكن استخدامها لهذا الغرض.
    • يمكن تنفيذ هجمات التشويش لتعطيل الاتصال اللاسلكي بين الجهاز ومكوناته أو بينه وبين الأجهزة الأخرى. الهجوم عبر التشويش قد يعطل أو يجبر النظام على العودة إلى وضع آخر أكثر ضعفًا.

5. تجاوز المصادقة والحماية (Bypassing Authentication & Security) :

  • البحث عن الأخطاء البرمجية (Software Bugs):

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

6. تنفيذ الأوامر (Command Execution) :

  • إذا تمكنت من الحصول على وصول إلى البرمجيات أو العتاد، يمكن محاولة تنفيذ الأوامر (Command Injection) أو التحكم في الجهاز بالكامل من خلال إرساء البرمجيات الخبيثة التي تسمح لك بالوصول المستمر أو التحكم الكامل.

في سياق الاختراق العملي لأنظمة مدمجة معينة، يمكن أن يتجاوز الكود أو الشرح التفصيلي 2500 سطر بسهولة خاصة إذا كنت تقوم بتحليل البرمجيات الثابتة (firmware) واستخدام الهجمات على العتاد




ما هي طرق حماية الانظمة المدمجة من الاختراق ؟!


مشاهدة المرفق 14700مشاهدة المرفق 14699مشاهدة المرفق 14702مشاهدة المرفق 14703

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

1. التحديث المستمر للبرمجيات (Firmware Updates) :

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

2. استخدام التشفير (Encryption) :

  • الوصف: حماية البيانات المتداولة والمخزنة على الأجهزة من خلال تقنيات التشفير القوي.
  • الحماية: التشفير يحمي البيانات من التصنت (eavesdropping) والهجمات مثل هجوم الرجل في الوسط (Man-in-the-Middle).
  • التطبيق: استخدم بروتوكولات التشفير مثل AES لتشفير البيانات المخزنة، وTLS/SSL لتأمين الاتصالات بين الأجهزة.

3. التحقق من الهوية والمصادقة القوية (Authentication) :

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

4. تقليل سطح الهجوم (Minimize Attack Surface) :

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

5. التأكد من سلامة البرمجيات الثابتة (Secure Boot) :

  • الوصف: استخدام تقنيات مثل "التشغيل الآمن" (Secure Boot) لضمان تشغيل البرنامج الثابت الأصلي وغير المعدل عند الإقلاع.
  • الحماية: يحمي النظام من التلاعب بالبرمجيات الثابتة أو إدخال برمجيات خبيثة.
  • التطبيق: توقيع البرمجيات باستخدام شهادات رقمية وتحقق من صحة التوقيع أثناء عملية الإقلاع.

6. فحص الأجهزة واستخدام واجهات آمنة (Secure Interfaces) :

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

7. استخدام تقنيات الحماية الفيزيائية (Physical Security) :

  • الوصف: حماية الأجهزة نفسها من الوصول الفيزيائي غير المصرح به.
  • الحماية: حماية من سرقة الأجهزة أو العبث بها أو استغلال الوصول الفيزيائي لاستخراج البيانات.
  • التطبيق: استخدام حاويات مغلقة أو تأمين الأجهزة في مواقع محمية والتحكم في الوصول إلى المعدات عبر مفاتيح أو تصاريح أمنية.

8. استخدام إدارة الذاكرة الآمنة (Memory Protection) :

  • الوصف: تطبيق تقنيات لإدارة وحماية الذاكرة المستخدمة في الجهاز المدمج مثل تقنيات الـ Data Execution Prevention (DEP) أو العزل الآمن للذاكرة.
  • الحماية: يمنع من تنفيذ تعليمات برمجية خبيثة في الذاكرة أو استغلال ثغرات مثل "buffer overflow".
  • التطبيق: استخدام معالجات تدعم تقنيات الحماية هذه وتفعيلها أثناء برمجة النظام.

9. مراقبة الاتصالات والشبكات (Network Monitoring and Anomaly Detection) :

  • الوصف: مراقبة الاتصالات الواردة والصادرة للكشف عن أي أنشطة مشبوهة أو غير معتادة.
  • الحماية: يكشف عن الهجمات مثل هجوم الـ DDoS أو محاولة اختراق الشبكة اللاسلكية.
  • التطبيق: استخدام أدوات مراقبة الشبكة مثل Wireshark أو نظام كشف التسلل (IDS) مثل Snort لمراقبة النشاط وتحذير المسؤولين.

10. تقنيات الكشف عن التسلل والاستجابة (Intrusion Detection and Response) :

  • الوصف: استخدام أنظمة لكشف التسلل (IDS) أو أنظمة منع التسلل (IPS) لمراقبة الأنظمة المدمجة وتحليل الأنشطة المشتبه بها.
  • الحماية: يسمح بالكشف المبكر عن محاولات الاختراق والتفاعل معها قبل أن تتفاقم المشكلة.
  • التطبيق: دمج أجهزة وبرمجيات مخصصة للكشف عن الأنشطة المشبوهة في الشبكة أو النظام المدمج نفسه.

11. التأمين ضد الهجمات الجانبية (Side-Channel Attacks) :

  • الوصف: تقليل تسريبات البيانات من خلال تقنيات تحليل استهلاك الطاقة أو الإشعاعات الكهرومغناطيسية (Side-Channel Attacks).
  • الحماية: يمنع استغلال البيانات الحساسة من خلال تحليل الترددات أو استهلاك الطاقة أثناء التشغيل.
  • التطبيق: استخدام تصميمات خاصة بالمكونات الإلكترونية لمنع هذا النوع من الهجمات.

12. التدقيق والفحص المستمر (Regular Audits and Penetration Testing) :

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

13. تأمين البرمجيات مفتوحة المصدر (Secure Open-Source Software) :

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




خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها

مشاهدة المرفق 14704مشاهدة المرفق 14706مشاهدة المرفق 14707


المرحلة الأولى:

1. فهم الأنظمة المدمجة :

  • الهدف: اكتساب فهم قوي لماهية الأنظمة المدمجة وكيف تعمل.
    • ما هي الأنظمة المدمجة؟
    • المعالجات والمتحكمات الدقيقة (Microcontrollers vs. Microprocessors).
    • الفرق بين الأنظمة المدمجة والأنظمة التقليدية.
    • أمثلة على الأنظمة المدمجة (Arduino, Raspberry Pi, STM32, ESP32).
    • أنواع أنظمة التشغيل المستخدمة (RTOS vs. Embedded OS).

2. برمجة الأنظمة المدمجة :

  • الهدف: تعلم برمجة الأنظمة المدمجة بلغة C و/أو Python.
  • المواضيع:
    • برمجة المتحكمات الدقيقة باستخدام C أو C++.
    • التعامل مع بروتوكولات الاتصال (I2C, SPI, UART, CAN).
    • برمجة أجهزة استشعار وأجهزة إخراج.
  • الخطوات:
    • إنشاء مشاريع بسيطة مثل التحكم في LED أو قراءة بيانات من مستشعر.
    • فهم المقاطعات (Interrupts) وكيفية استخدامها في الأنظمة المدمجة.
    • التعرف على بروتوكولات الاتصال الشائعة.
  • المصادر:
    • كتب: "Programming Embedded Systems in C and C++" by Michael Barr.
    • دورات: دورة Embedded Systems Essentials على Coursera.
    • مشاريع: تنفيذ مشاريع على Arduino أو Raspberry Pi.

المرحلة الثانية:

3. تحليل وتقييم الأنظمة المدمجة (Reconnaissance) :

  • الهدف: تعلم كيفية جمع المعلومات عن الأنظمة المدمجة لتحديد الثغرات المحتملة.
  • المواضيع:
    • كيفية جمع المعلومات عن نوع المتحكم الدقيق أو المعالج.
    • تحليل الشبكات إذا كان الجهاز متصلاً بالإنترنت.
    • استخدام أدوات تحليل الشبكات مثل Wireshark.
    • أدوات تحليل المنافذ والبروتوكولات مثل Nmap.
  • الخطوات:
    • فهم كيفية تحليل الشبكات.
    • تنفيذ عمليات فحص باستخدام أدوات مثل Nmap.
    • جمع المعلومات حول المنافذ المفتوحة والبروتوكولات المستخدمة.
  • المصادر:
    • تعلم استخدام Wireshark لتحليل البروتوكولات.
    • قراءة مستندات المعالجات (datasheets) مثل معالجات ARM أو AVR.

4. استغلال البرمجيات والثغرات البرمجية :

  • الهدف: التعرف على كيفية استغلال الثغرات في البرمجيات المستخدمة داخل الأنظمة المدمجة.
  • المواضيع:
    • استغلال الثغرات البرمجية مثل Buffer Overflow و Authentication Bypass.
    • تحليل البرمجيات الثابتة (Firmware) لفهم كيفية عمل الأنظمة.
    • استخدام أدوات مثل Binwalk وGhidra لتحليل البرمجيات الثابتة.
  • الخطوات:
    • سحب البرمجيات الثابتة من الأجهزة باستخدام أدوات مثل JTAG أو UART.
    • تحليل البرمجيات الثابتة باستخدام Binwalk أو Ghidra.
    • دراسة كيفية اكتشاف الثغرات واستغلالها.
  • المصادر:
    • أدوات: Binwalk وGhidra وIDA Pro.
    • كتب: "The Art of Software Security Assessment" by Mark Dowd.

5. الهجمات العتادية (Hardware Attacks) :

  • الهدف: تعلم كيفية الوصول إلى العتاد المدمج وفحصه لاكتشاف الثغرات.
  • المواضيع:
    • استغلال واجهات الأجهزة مثل JTAG وUART.
    • الهجمات الفيزيائية مثل تحليل استهلاك الطاقة (Power Analysis).
    • محاولة قراءة الذاكرة الداخلية للجهاز (مثل EEPROM أو Flash).
  • الخطوات:
    • استخدام أدوات مثل Minicom أو PuTTY للتفاعل مع واجهات UART.
    • محاولة قراءة البيانات مباشرة من الذاكرة.
    • تنفيذ هجمات مادية مثل استخدام تقنيات Glitching لتعطيل أو تجاوز الأمان.
  • المصادر:
    • أدوات: Minicom، PuTTY، أو Saleae Logic Analyzer.
    • كتب: "Hacking the Xbox" by Andrew Huang.

المرحلة الثالثة:

6. الهجمات على الشبكات اللاسلكية (Wireless Network Attacks) :

  • الهدف: تعلم كيفية استغلال الشبكات اللاسلكية التي تتصل بها الأنظمة المدمجة.
  • المواضيع:
    • تحليل الثغرات في بروتوكولات الاتصال اللاسلكي مثل Wi-Fi وBluetooth.
    • هجمات التشويش (Jamming) وتعطيل الاتصال.
    • أدوات اختراق الشبكات اللاسلكية مثل aircrack-ng وreaver.
  • الخطوات:
    • استخدام aircrack-ng لاختراق شبكة Wi-Fi.
    • تجربة هجمات التشويش باستخدام أدوات برمجية أو عتادية.
    • استغلال بروتوكولات الاتصال اللاسلكية لاختراق الأنظمة المتصلة.
  • المصادر:
    • أدوات: aircrack-ng، reaver.
    • دورات: دورة "Wireless Hacking" على Udemy.

7. تجاوز المصادقة والحماية :

  • الهدف: تعلم كيفية تجاوز آليات المصادقة وأنظمة الحماية في الأنظمة المدمجة.
  • المواضيع:
    • استغلال كلمات المرور الافتراضية أو الثغرات في بروتوكولات المصادقة.
    • استغلال النواقل الجانبية مثل استهلاك الطاقة أو الإشعاعات.
    • حقن الأوامر (Command Injection) للسيطرة على الأنظمة المدمجة.
  • الخطوات:
    • تحليل بروتوكولات المصادقة ومحاولة استغلال الثغرات.
    • تجربة هجمات تحليل الطاقة (Power Analysis) لاستخراج المفاتيح السرية.
    • تنفيذ هجمات Command Injection عبر واجهات مثل UART أو الشبكة.
  • المصادر:
    • أدوات: IDA Pro، Power Spy.
    • كتب: "The Hardware Hacker" by Andrew 'bunnie' Huang.

المرحلة الرابعة:

8. مشاريع عملية وتطبيقات :

  • المشروع الأول: اختراق جهاز IoT متصل بشبكة Wi-Fi
    • البحث عن الثغرات في البروتوكولات المستخدمة وتحليل البيانات المتداولة باستخدام Wireshark.
    • تنفيذ اختراق الشبكة ومحاولة التلاعب بالجهاز.
  • المشروع الثاني: تحليل البرمجيات الثابتة لجهاز مدمج
    • استخدام Binwalk لسحب البرمجيات الثابتة وتحليلها للعثور على ثغرات.
    • محاولة حقن البرمجيات الخبيثة داخل البرمجيات الثابتة.
  • المشروع الثالث: استغلال واجهة UART للوصول إلى نظام مدمج
    • استخدام Minicom للتفاعل مع واجهة UART والتحكم بالجهاز.
    • تنفيذ هجوم Command Injection للسيطرة على الجهاز.

المرحلة الخامسة:

9. البحث والتحديث المستمر :

  • متابعة المدونات والمجتمعات المتعلقة بالاختراق الأمني والأنظمة المدمجة.
  • دراسة الثغرات الجديدة المسجلة في قواعد البيانات مثل CVE.
  • المشاركة في مسابقات CTF التي تتضمن تحديات تتعلق بالأنظمة المدمجة.



كورسات حلوة كثير واتمنى لو في حدا بيقدر يحطها او يجيبها بالمجان للاعضاء بالمنتدى بشكل عام :
Mastering Microcontroller and Embedded Driver Development
Mastering STM32CubeMX 5 and CubeIDE - Embedded Systems
Embedded System for Internet of Things
Embedded Systems and Operating System Development




مصادر تقنية قد تفيدك في هذا الموضوع :



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

ننتظر جديد ابداعاتك دائماً
تحياتي
اخوك ستورم
الله يبارك فيك اخي ❤ ,
حياك الله اخي ولله تستحقون كل شيء ❤
او مرة اسوي شروحات زي هيك لانه انا كنت زمان ما احب اتعمق في المواضيع كنت اخذ معلومات عميقة بفهم او بدون فهم ومعلومات سطحية وكنت متخصص لكن في البرمجة بدون تخصص
وانشاء الله اتعمق بالمجال انشاء الله طبعا , لعل الله قدر اني ادخل هذا المجال واصير انشر فيه
 
التعديل الأخير:
  • Love
التفاعلات: STORM
ما شاء الله تبارك الله مشكور اخوي
فعلا موضوع شامل ورائع ...وانا شايف في زيادة في البحث عن هاد الموضوع كل الحب والاحترام لشخصك
الله يبارك فيك اخي ❤ ,
حياك الله ❤
 
ما هي الانظمة المدمجة(Embeded Systems) وكيف يتم اختراقها ؟!
السلام عليكم ,
اللهم صلي وسلم علي سيدنا محمد وعلى اله وصحبة اجمعين ,
اول شيء هذا الموضوع هو بحث وليس من معلوماتي فقط انا عندي معرفة عادية فيه وحابب اتعلمه وعندي معرفة مع بعض التجارب المرتبطة فيه وانا سويت هذا الموضوع لاني بدي اتعلم عنه اكثر وبدي ابحث عنه فقلت ليش ما ابحث واسوي عنه موضوع ألخص اهم الاشياء عشين استفيد اكثر وافيدكم وطبعا وما راح اكتب كلشي من الصفر يعني خلال البحث سواء من مواقع او فيديوهات في اشياء راح انقلها بس عشينه بحث فقط والا راح ياخذ وقت كثير ومن الصعب اكتب كلشي من الصفر وانا لسا داخل جديد على الموضوع واتمنى انكم تستفيدو ❤


في هذا الموضوع سنتكلم عن :
  1. ما هي الانظمة المدمجة(Embeded Systems) وتعريفها (تم)​
  2. كيف تعمل الانظمة المدمجة ؟! (تم)​
  3. ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟! (تم)
  4. ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟! (تم)​
  5. كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟! (تم)
  6. كيف يتم اختراقها وكيف اقوم بذلك ؟! (تم)​
  7. ما هي طرق حماية الانظمة المدمجة من الاختراق ؟! (تم)​
  8. خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها (تم)​




ما هي الانظمة المدمجة(Embeded Systems) وتعريفها

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

نظام التشغيل في الوقت الحقيقي شرحت الفرق بينه و بين نظام التشغيل العادي في هذا الموضوع للحابب يعرف اكثر عنه :


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


امثلة المعالجات والمتحكمات دقيقة التي تستخدم في الانظمة المدمجة :
1. المتحكمات الدقيقة (Microcontrollers):
2. المعالجات الدقيقة (Microprocessors):
  • ARM Cortex-A Series
  • NXP i.MX Series
  • Intel Atom
مشاهدة المرفق 14670مشاهدة المرفق 14672مشاهدة المرفق 14673مشاهدة المرفق 14674مشاهدة المرفق 14676مشاهدة المرفق 14677

أمثلة على أنظمة التشغيل المدمجة :

  1. FreeRTOS

  2. VxWorks

  3. ThreadX

  4. Zephyr

مشاهدة المرفق 14658مشاهدة المرفق 14659مشاهدة المرفق 14660مشاهدة المرفق 14662

كيف تعمل الانظمة المدمجة ؟!



للتعرف على كيفية عمل الانظمة المدمجة نحتاج التطلع الى مكوناتها حتى نفهم كيف تعمل بوضوح


مكونات الانظمة المدمجة :
  1. المتحكم الدقيق أو المعالج الدقيق (Microcontroller/Microprocessor):
  • يُعتبر عقل النظام المدمج ينفذ التعليمات البرمجية التي تتحكم في الجهاز و المتحكمات مثل : Arduino و esp32 تملك معالجات مع ذاكرة وواجهات ادخال واخراج (Input / Output) في شريحة واحد
  1. الذاكرة (Memory):
  • تشمل الذاكرة الدائمة (ROM أو Flash) لتخزين البرنامج الذي يتم تحميله في المتحكم، والذاكرة المؤقتة (RAM) لتخزين البيانات التي يتم معالجتها خلال تشغيل النظام
  1. أجهزة الإدخال والإخراج (I/O):
  • تشمل الحساسات (Sensors) التي تجمع البيانات من البيئة الخارجية مثل درجة الحرارة أو الضوء، والمشغلات (Actuators) مثل المحركات أو الشاشات التي تؤدي الإجراءات بناء على التعليمات وغالبا ما تكون اجهزة الادخال والاخراج على شكل اطراف(pins) والتي تمثل الخطوط او الاسلاك الكهربائية الناقلة للبيانات او الكهرباء
  1. البرمجيات المدمجة (Firmware):
  • عبارة عن البرمجيات المثبتة على المتحكم الدقيق والتي تنفذ المهام المطلوبة. يتم تطوير هذه البرمجيات بلغة البرمجة C أو C++، وتحتوي على تعليمات تحكمية لإدارة الإدخال والإخراج ومعالجة البيانات وتكون هي اساس النظام المدمج



الان سنذهب ونتطلع لكيفية عمل النظام من الداخل و ما هي اهم الوظائف الداخلية فيه

النظام المدمج يعمل من خلال دورة حياة مستمرة تشمل أربع خطوات رئيسية:
  1. التشغيل (Power-On):
    • عند تشغيل النظام، يقوم المتحكم الدقيق بتحميل البرنامج المدمج من الذاكرة الدائمة (Flash) إلى الذاكرة المؤقتة (RAM) ويبدأ في تنفيذه.
    • يبدأ النظام في التفاعل مع العالم الخارجي من خلال قراءة البيانات من أجهزة الاستشعار. الحساسات تقوم بقياس المتغيرات الفيزيائية مثل الحرارة، الضغط، الحركة، إلخ.

أنماط التشغيل:

  1. التشغيل المتواصل (Continuous Operation):

    • العديد من الأنظمة المدمجة تعمل بشكل متواصل على مدار الساعة، مثل الأنظمة في المصانع أو السيارات. يتم مراقبة البيانات بشكل دوري وتتم معالجة الأحداث في الوقت الحقيقي.
  2. التشغيل عند الطلب (Event-Driven Operation):

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


الاتصال والتفاعل مع الأنظمة الأخرى:

  1. البروتوكولات:

    • الأنظمة المدمجة غالبًا ما تتصل ببعضها البعض أو بأنظمة أخرى من خلال بروتوكولات اتصالات مثل I2C، SPI، UART، CAN، أو بروتوكولات شبكية مثل Wi-Fi وBluetooth.
    • هذه البروتوكولات تسمح للأجهزة بتبادل البيانات والتحكم في بعضها البعض بشكل متزامن.
  2. الاتصال بالإنترنت (IoT - Internet of Things):

    • العديد من الأنظمة المدمجة اليوم تتصل بالإنترنت لتصبح جزءًا من شبكة "إنترنت الأشياء". يتم مراقبة الأجهزة والتحكم فيها عن بُعد من خلال الإنترنت.

مشاهدة المرفق 14714مشاهدة المرفق 14715


ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟!


اهم النقاط والفروقات بينهم :

وجه المقارنةنظام التشغيل العادينظام التشغيل المدمج
تعدد المهامموجودغير موجود ولكنه ممكن في بعضها مثل raspberry
امكانية تثبيت وازالة برامج عديدةممكنغير ممكن
استهلاك الطاقةعاليمنخفض
موارد الجهاز المطلوبة(معالج , ذاكرة , .......)عاليةمنخفضة
مرونة التعامل(تحديث النظام, البرمجة , .......)سهلةصعبة
الحجمكبيرصغير
مستوى الامانعادي, ويحتاج الى تحديثات امنية عديدةعالي لانه نظام مغلق


ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟!


إيجابيات الأنظمة المدمجة :

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


سلبيات الأنظمة المدمجة :

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




كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟!


تكتب برامج الأنظمة المدمجة باستعمال لغات البرمجة عديدة وتعمل على أنظمة تشغيل لينوكس مثل : OSE، Micro C/OS، Nucleus، Fusion، VxWorks، وغيرها

اللغات المستخدمة لبرمجة الانظمة المدمجة :
  1. لغة C: الأكثر شيوعًا في الأنظمة المدمجة و توفر التحكم الكامل في الذاكرة وإدارة الموارد و أداء عالٍ ويعمل على منصات مختلفة و العديد من المتحكمات الدقيقة توفر دعمًا مباشرًا لـ C
  2. لغة C++: تستخدم أيضًا في الأنظمة المدمجة، لكنها أقل انتشارًا من C بسبب تعقيدها و توفر مزايا البرمجة كائنية التوجه و تُستخدم في الأنظمة التي تتطلب تصميمًا معقدًا وبرمجة متقدمة
  3. لغة Assembly (لغة التجميع): تستخدم لبرمجة الأنظمة المدمجة ذات الموارد المحدودة جدًا و تتيح التحكم التام في العتاد الصلب (Hardware) و لكنها صعبة في التعلم والتطبيق بسبب تعقيدها
  4. لغة Python: تستخدم في الأنظمة المدمجة الأعلى أداءً مثل Raspberry Pi ولكن أداءها ليس مرتفعًا كـ C أو Assembly، وتحتاج عادة إلى بيئة تشغيل أكثر قوة (مثل Linux المدمج). و غالبًا تستخدم للتطوير السريع أو التعليم
  5. لغة Ada: تستخدم في الأنظمة المدمجة التي تحتاج إلى أمان عالٍ وتحصين ضد الأخطاء و تستخدم في الطيران والأنظمة العسكرية والمشاريع ذات الحساسيات العالية
  6. لغة Rust: تعتبر لغة حديثة نسبيًا لكنها تكتسب شهرة متزايدة في الأنظمة المدمجة بسبب مزايا الأمان في التعامل مع الذاكرة و تهدف إلى تقديم أداء مماثل لـ C مع تقليل الأخطاء المرتبطة بإدارة الذاكرة
  7. لغة Java (Micro Edition): تستخدم في بعض الأنظمة المدمجة خاصة التي تحتاج إلى تشغيل تطبيقات تعتمد على الآلة الافتراضية (Virtual Machine) و تستخدم بشكل أكبر في إنترنت الأشياء (IoT) أو أجهزة التشغيل المتعددة
  8. لغات HDL (Hardware Description Language) مثل VHDL وVerilog: تستخدم لتصميم واختبار الدوائر الإلكترونية في الأنظمة المدمجة و هذه اللغات لا تُستخدم لبرمجة المعالجات أو المتحكمات الدقيقة بل لتصميمها

مشاهدة المرفق 14680مشاهدة المرفق 14681مشاهدة المرفق 14683مشاهدة المرفق 14684مشاهدة المرفق 14685مشاهدة المرفق 14686مشاهدة المرفق 14687مشاهدة المرفق 14688مشاهدة المرفق 14689

اختيار لغة البرمجة المناسبة يعتمد على :
  • حجم الذاكرة
  • السرعة
  • التوافق او نوع الجهاز
  • صعوبة تطبيق البرنامج وصيانته
  • أمان النظام واستقراره

بيئات التطوير الخاصة بالانظمة المدمجة ليست محددة بحيث انه هناك انظمة مدمجة تبرمج عن طريق جهاز حاسبوب اخر مثل : Arduino و esp32 وهناك بيئات تطوير مخصصه لهم


كيف يتم اختراقها وكيف اقوم بذلك ؟!

مشاهدة المرفق 14693مشاهدة المرفق 14695مشاهدة المرفق 14697
لكل عملية اختراق مراحل اساسية وهذه اغلب المراحل الاختراق المتعرف عليها
مراحل اختراق الانظمة المدمجة :

1. التعرف على الجهاز وجمع المعلومات عنه(Reconnaissance) :

  • البحث في المواصفات الفنية:

    • قبل البدء في أي عملية، يجب البحث جيدًا في مواصفات الجهاز، نوع المعالج أو المتحكم الدقيق المستخدم، البروتوكولات التي يعمل بها (مثل I2C، SPI، CAN، وغيرها).
    • معرفة نظام التشغيل المستخدم (إذا كان نظامًا مدمجًا مخصصًا أو نظام تشغيل وقت حقيقي RTOS).
    • إذا كان الجهاز متصلًا بشبكة (مثل أجهزة IoT)، يمكن استخدام أدوات تحليل الشبكة مثل Wireshark لفحص الحزم المرسلة والمستلمة وتحليل البروتوكولات المستخدمة.
    • يمكن أن يكشف تحليل الشبكة عن نقاط ضعف محتملة في الاتصالات أو في البروتوكولات.

2. الهجوم على البرمجيات (Software Attack) :

  • استغلال الثغرات البرمجية (Exploiting Software Vulnerabilities):

    • البحث عن نقاط ضعف معروفة في البرمجيات المستخدمة داخل النظام المدمج. على سبيل المثال، قد يكون هناك ثغرات في الإصدارات القديمة لنظام التشغيل المدمج أو في البرمجيات المثبتة.
    • يمكن البحث عن الثغرات المعروفة (CVE) التي قد تتعلق بالجهاز المحدد أو البرمجيات المستخدمة.
    • سحب وتحليل البرمجيات الثابتة (Firmware) من الجهاز. يمكن سحب البرمجيات باستخدام أدوات مثل JTAG أو UART أو استخدام تقنيات أخرى مثل فك ملفات تحديث الجهاز.
    • بعد الحصول على البرمجيات الثابتة، يمكن فكها (decompile) باستخدام أدوات مثل Binwalk أو Ghidra لتحليل التعليمات البرمجية وفهم كيفية عمل الجهاز.

3. الهجوم على العتاد (Hardware Attack) :

  • استغلال واجهات الأجهزة (Hardware Interfaces):

    • الأنظمة المدمجة عادة ما تحتوي على واجهات مثل JTAG أو UART أو I2C. يمكن استخدام هذه الواجهات للوصول إلى وضع التصحيح (Debug Mode) أو قراءة البيانات مباشرة من ذاكرة الجهاز.
    • إذا كان هناك منفذ UART مفتوح، يمكن محاولة الاتصال بالجهاز باستخدام terminal مثل Minicom أو PuTTY للتحكم بالجهاز مباشرة.
    • في بعض الحالات، يمكن استخدام تقنيات فيزيائية مثل التفريغ الكهربائي (Glitching) أو الهجوم على الطاقة (Power Analysis) لتجاوز القيود الأمنية الموجودة في العتاد. على سبيل المثال، يمكن إحداث تداخل في عمل الجهاز من خلال إرسال إشارات كهربية غير متوقعة لإعادة ضبط الجهاز أو تغيير حالته.

4. الهجوم على الشبكات اللاسلكية (Wireless Network Attacks) :

  • اختراق الاتصالات اللاسلكية (Wireless Exploitation):

    • إذا كان الجهاز يستخدم تقنيات الاتصال اللاسلكي مثل Wi-Fi أو Bluetooth، يمكن محاولة استغلال الثغرات في هذه البروتوكولات. على سبيل المثال، يمكن استخدام هجوم Man-in-the-Middle لاعتراض الحزم أو هجوم Wi-Fi (WPA/WPA2) لاختراق الشبكة المتصلة بالجهاز.
    • أدوات مثل aircrack-ng و reaver يمكن استخدامها لهذا الغرض.
    • يمكن تنفيذ هجمات التشويش لتعطيل الاتصال اللاسلكي بين الجهاز ومكوناته أو بينه وبين الأجهزة الأخرى. الهجوم عبر التشويش قد يعطل أو يجبر النظام على العودة إلى وضع آخر أكثر ضعفًا.

5. تجاوز المصادقة والحماية (Bypassing Authentication & Security) :

  • البحث عن الأخطاء البرمجية (Software Bugs):

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

6. تنفيذ الأوامر (Command Execution) :

  • إذا تمكنت من الحصول على وصول إلى البرمجيات أو العتاد، يمكن محاولة تنفيذ الأوامر (Command Injection) أو التحكم في الجهاز بالكامل من خلال إرساء البرمجيات الخبيثة التي تسمح لك بالوصول المستمر أو التحكم الكامل.

في سياق الاختراق العملي لأنظمة مدمجة معينة، يمكن أن يتجاوز الكود أو الشرح التفصيلي 2500 سطر بسهولة خاصة إذا كنت تقوم بتحليل البرمجيات الثابتة (firmware) واستخدام الهجمات على العتاد




ما هي طرق حماية الانظمة المدمجة من الاختراق ؟!


مشاهدة المرفق 14700مشاهدة المرفق 14699مشاهدة المرفق 14702مشاهدة المرفق 14703

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

1. التحديث المستمر للبرمجيات (Firmware Updates) :

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

2. استخدام التشفير (Encryption) :

  • الوصف: حماية البيانات المتداولة والمخزنة على الأجهزة من خلال تقنيات التشفير القوي.
  • الحماية: التشفير يحمي البيانات من التصنت (eavesdropping) والهجمات مثل هجوم الرجل في الوسط (Man-in-the-Middle).
  • التطبيق: استخدم بروتوكولات التشفير مثل AES لتشفير البيانات المخزنة، وTLS/SSL لتأمين الاتصالات بين الأجهزة.

3. التحقق من الهوية والمصادقة القوية (Authentication) :

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

4. تقليل سطح الهجوم (Minimize Attack Surface) :

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

5. التأكد من سلامة البرمجيات الثابتة (Secure Boot) :

  • الوصف: استخدام تقنيات مثل "التشغيل الآمن" (Secure Boot) لضمان تشغيل البرنامج الثابت الأصلي وغير المعدل عند الإقلاع.
  • الحماية: يحمي النظام من التلاعب بالبرمجيات الثابتة أو إدخال برمجيات خبيثة.
  • التطبيق: توقيع البرمجيات باستخدام شهادات رقمية وتحقق من صحة التوقيع أثناء عملية الإقلاع.

6. فحص الأجهزة واستخدام واجهات آمنة (Secure Interfaces) :

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

7. استخدام تقنيات الحماية الفيزيائية (Physical Security) :

  • الوصف: حماية الأجهزة نفسها من الوصول الفيزيائي غير المصرح به.
  • الحماية: حماية من سرقة الأجهزة أو العبث بها أو استغلال الوصول الفيزيائي لاستخراج البيانات.
  • التطبيق: استخدام حاويات مغلقة أو تأمين الأجهزة في مواقع محمية والتحكم في الوصول إلى المعدات عبر مفاتيح أو تصاريح أمنية.

8. استخدام إدارة الذاكرة الآمنة (Memory Protection) :

  • الوصف: تطبيق تقنيات لإدارة وحماية الذاكرة المستخدمة في الجهاز المدمج مثل تقنيات الـ Data Execution Prevention (DEP) أو العزل الآمن للذاكرة.
  • الحماية: يمنع من تنفيذ تعليمات برمجية خبيثة في الذاكرة أو استغلال ثغرات مثل "buffer overflow".
  • التطبيق: استخدام معالجات تدعم تقنيات الحماية هذه وتفعيلها أثناء برمجة النظام.

9. مراقبة الاتصالات والشبكات (Network Monitoring and Anomaly Detection) :

  • الوصف: مراقبة الاتصالات الواردة والصادرة للكشف عن أي أنشطة مشبوهة أو غير معتادة.
  • الحماية: يكشف عن الهجمات مثل هجوم الـ DDoS أو محاولة اختراق الشبكة اللاسلكية.
  • التطبيق: استخدام أدوات مراقبة الشبكة مثل Wireshark أو نظام كشف التسلل (IDS) مثل Snort لمراقبة النشاط وتحذير المسؤولين.

10. تقنيات الكشف عن التسلل والاستجابة (Intrusion Detection and Response) :

  • الوصف: استخدام أنظمة لكشف التسلل (IDS) أو أنظمة منع التسلل (IPS) لمراقبة الأنظمة المدمجة وتحليل الأنشطة المشتبه بها.
  • الحماية: يسمح بالكشف المبكر عن محاولات الاختراق والتفاعل معها قبل أن تتفاقم المشكلة.
  • التطبيق: دمج أجهزة وبرمجيات مخصصة للكشف عن الأنشطة المشبوهة في الشبكة أو النظام المدمج نفسه.

11. التأمين ضد الهجمات الجانبية (Side-Channel Attacks) :

  • الوصف: تقليل تسريبات البيانات من خلال تقنيات تحليل استهلاك الطاقة أو الإشعاعات الكهرومغناطيسية (Side-Channel Attacks).
  • الحماية: يمنع استغلال البيانات الحساسة من خلال تحليل الترددات أو استهلاك الطاقة أثناء التشغيل.
  • التطبيق: استخدام تصميمات خاصة بالمكونات الإلكترونية لمنع هذا النوع من الهجمات.

12. التدقيق والفحص المستمر (Regular Audits and Penetration Testing) :

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

13. تأمين البرمجيات مفتوحة المصدر (Secure Open-Source Software) :

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




خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها

مشاهدة المرفق 14704مشاهدة المرفق 14706مشاهدة المرفق 14707


المرحلة الأولى:

1. فهم الأنظمة المدمجة :

  • الهدف: اكتساب فهم قوي لماهية الأنظمة المدمجة وكيف تعمل.
    • ما هي الأنظمة المدمجة؟
    • المعالجات والمتحكمات الدقيقة (Microcontrollers vs. Microprocessors).
    • الفرق بين الأنظمة المدمجة والأنظمة التقليدية.
    • أمثلة على الأنظمة المدمجة (Arduino, Raspberry Pi, STM32, ESP32).
    • أنواع أنظمة التشغيل المستخدمة (RTOS vs. Embedded OS).

2. برمجة الأنظمة المدمجة :

  • الهدف: تعلم برمجة الأنظمة المدمجة بلغة C و/أو Python.
  • المواضيع:
    • برمجة المتحكمات الدقيقة باستخدام C أو C++.
    • التعامل مع بروتوكولات الاتصال (I2C, SPI, UART, CAN).
    • برمجة أجهزة استشعار وأجهزة إخراج.
  • الخطوات:
    • إنشاء مشاريع بسيطة مثل التحكم في LED أو قراءة بيانات من مستشعر.
    • فهم المقاطعات (Interrupts) وكيفية استخدامها في الأنظمة المدمجة.
    • التعرف على بروتوكولات الاتصال الشائعة.
  • المصادر:
    • كتب: "Programming Embedded Systems in C and C++" by Michael Barr.
    • دورات: دورة Embedded Systems Essentials على Coursera.
    • مشاريع: تنفيذ مشاريع على Arduino أو Raspberry Pi.

المرحلة الثانية:

3. تحليل وتقييم الأنظمة المدمجة (Reconnaissance) :

  • الهدف: تعلم كيفية جمع المعلومات عن الأنظمة المدمجة لتحديد الثغرات المحتملة.
  • المواضيع:
    • كيفية جمع المعلومات عن نوع المتحكم الدقيق أو المعالج.
    • تحليل الشبكات إذا كان الجهاز متصلاً بالإنترنت.
    • استخدام أدوات تحليل الشبكات مثل Wireshark.
    • أدوات تحليل المنافذ والبروتوكولات مثل Nmap.
  • الخطوات:
    • فهم كيفية تحليل الشبكات.
    • تنفيذ عمليات فحص باستخدام أدوات مثل Nmap.
    • جمع المعلومات حول المنافذ المفتوحة والبروتوكولات المستخدمة.
  • المصادر:
    • تعلم استخدام Wireshark لتحليل البروتوكولات.
    • قراءة مستندات المعالجات (datasheets) مثل معالجات ARM أو AVR.

4. استغلال البرمجيات والثغرات البرمجية :

  • الهدف: التعرف على كيفية استغلال الثغرات في البرمجيات المستخدمة داخل الأنظمة المدمجة.
  • المواضيع:
    • استغلال الثغرات البرمجية مثل Buffer Overflow و Authentication Bypass.
    • تحليل البرمجيات الثابتة (Firmware) لفهم كيفية عمل الأنظمة.
    • استخدام أدوات مثل Binwalk وGhidra لتحليل البرمجيات الثابتة.
  • الخطوات:
    • سحب البرمجيات الثابتة من الأجهزة باستخدام أدوات مثل JTAG أو UART.
    • تحليل البرمجيات الثابتة باستخدام Binwalk أو Ghidra.
    • دراسة كيفية اكتشاف الثغرات واستغلالها.
  • المصادر:
    • أدوات: Binwalk وGhidra وIDA Pro.
    • كتب: "The Art of Software Security Assessment" by Mark Dowd.

5. الهجمات العتادية (Hardware Attacks) :

  • الهدف: تعلم كيفية الوصول إلى العتاد المدمج وفحصه لاكتشاف الثغرات.
  • المواضيع:
    • استغلال واجهات الأجهزة مثل JTAG وUART.
    • الهجمات الفيزيائية مثل تحليل استهلاك الطاقة (Power Analysis).
    • محاولة قراءة الذاكرة الداخلية للجهاز (مثل EEPROM أو Flash).
  • الخطوات:
    • استخدام أدوات مثل Minicom أو PuTTY للتفاعل مع واجهات UART.
    • محاولة قراءة البيانات مباشرة من الذاكرة.
    • تنفيذ هجمات مادية مثل استخدام تقنيات Glitching لتعطيل أو تجاوز الأمان.
  • المصادر:
    • أدوات: Minicom، PuTTY، أو Saleae Logic Analyzer.
    • كتب: "Hacking the Xbox" by Andrew Huang.

المرحلة الثالثة:

6. الهجمات على الشبكات اللاسلكية (Wireless Network Attacks) :

  • الهدف: تعلم كيفية استغلال الشبكات اللاسلكية التي تتصل بها الأنظمة المدمجة.
  • المواضيع:
    • تحليل الثغرات في بروتوكولات الاتصال اللاسلكي مثل Wi-Fi وBluetooth.
    • هجمات التشويش (Jamming) وتعطيل الاتصال.
    • أدوات اختراق الشبكات اللاسلكية مثل aircrack-ng وreaver.
  • الخطوات:
    • استخدام aircrack-ng لاختراق شبكة Wi-Fi.
    • تجربة هجمات التشويش باستخدام أدوات برمجية أو عتادية.
    • استغلال بروتوكولات الاتصال اللاسلكية لاختراق الأنظمة المتصلة.
  • المصادر:
    • أدوات: aircrack-ng، reaver.
    • دورات: دورة "Wireless Hacking" على Udemy.

7. تجاوز المصادقة والحماية :

  • الهدف: تعلم كيفية تجاوز آليات المصادقة وأنظمة الحماية في الأنظمة المدمجة.
  • المواضيع:
    • استغلال كلمات المرور الافتراضية أو الثغرات في بروتوكولات المصادقة.
    • استغلال النواقل الجانبية مثل استهلاك الطاقة أو الإشعاعات.
    • حقن الأوامر (Command Injection) للسيطرة على الأنظمة المدمجة.
  • الخطوات:
    • تحليل بروتوكولات المصادقة ومحاولة استغلال الثغرات.
    • تجربة هجمات تحليل الطاقة (Power Analysis) لاستخراج المفاتيح السرية.
    • تنفيذ هجمات Command Injection عبر واجهات مثل UART أو الشبكة.
  • المصادر:
    • أدوات: IDA Pro، Power Spy.
    • كتب: "The Hardware Hacker" by Andrew 'bunnie' Huang.

المرحلة الرابعة:

8. مشاريع عملية وتطبيقات :

  • المشروع الأول: اختراق جهاز IoT متصل بشبكة Wi-Fi
    • البحث عن الثغرات في البروتوكولات المستخدمة وتحليل البيانات المتداولة باستخدام Wireshark.
    • تنفيذ اختراق الشبكة ومحاولة التلاعب بالجهاز.
  • المشروع الثاني: تحليل البرمجيات الثابتة لجهاز مدمج
    • استخدام Binwalk لسحب البرمجيات الثابتة وتحليلها للعثور على ثغرات.
    • محاولة حقن البرمجيات الخبيثة داخل البرمجيات الثابتة.
  • المشروع الثالث: استغلال واجهة UART للوصول إلى نظام مدمج
    • استخدام Minicom للتفاعل مع واجهة UART والتحكم بالجهاز.
    • تنفيذ هجوم Command Injection للسيطرة على الجهاز.

المرحلة الخامسة:

9. البحث والتحديث المستمر :

  • متابعة المدونات والمجتمعات المتعلقة بالاختراق الأمني والأنظمة المدمجة.
  • دراسة الثغرات الجديدة المسجلة في قواعد البيانات مثل CVE.
  • المشاركة في مسابقات CTF التي تتضمن تحديات تتعلق بالأنظمة المدمجة.



كورسات حلوة كثير واتمنى لو في حدا بيقدر يحطها او يجيبها بالمجان للاعضاء بالمنتدى بشكل عام :
Mastering Microcontroller and Embedded Driver Development
Mastering STM32CubeMX 5 and CubeIDE - Embedded Systems
Embedded System for Internet of Things
Embedded Systems and Operating System Development




مصادر تقنية قد تفيدك في هذا الموضوع :



وعليكم السلام ورحمة الله وبركاته
ماشاء الله تبارك الله لا قوة إلا بالله
أحييك على مواضيعك المتميزة والفريدة من نوعها
نفع الله بك
هذا الموضوع بالذات من المواضيع التخصصية التي لا يتحدث عنها الكثير
وهذا يعود لأهمية امتلاك خلفية جيدة في عدة مواضيع مثل الـ Microprocessor والـ Computer organization , والـ computer Architicture بالإضافة إلى فهم جيد للـ OS وفهم لبرمجة الـ Low level
المجال ممتع ورائع وقليل من يتخصص به في جانب السايبر
أخي الكريم شرحك رائع ووافي وأنا أقول هذا كمهندس متخصص وليس فقط كمحب وداعم لك
أتحفنا دائما بإبداعاتك ومشاركاتك الرائعة
نفع الله بك
 
ماشاء الله تبارك الله لا قوة إلا بالله
أحييك على مواضيعك المتميزة والفريدة من نوعها
نفع الله بك
هذا الموضوع بالذات من المواضيع التخصصية التي لا يتحدث عنها الكثير
وهذا يعود لأهمية امتلاك خلفية جيدة في عدة مواضيع مثل الـ Microprocessor والـ Computer organization , والـ computer Architicture بالإضافة إلى فهم جيد للـ OS وفهم لبرمجة الـ Low level
المجال ممتع ورائع وقليل من يتخصص به في جانب السايبر
أخي الكريم شرحك رائع ووافي وأنا أقول هذا كمهندس متخصص وليس فقط كمحب وداعم لك
أتحفنا دائما بإبداعاتك ومشاركاتك الرائعة
نفع الله بك
الله يسعدك اخي ❤ ,
شكرا على المدح والتقدير اخي ❤ , و انشاء الله يضل عندي حافز الاستمرار في المشاركة وانشر محتوى مفيد 💪
واريد اضافة نقطة صغيرة : انا فاهم كلشي كتبته بنسبة 90%(طبعا ما تعلق على موضوع النسبة 😅 , هي فقط لاحتمال نسبة الخطأ) ولكن لم اكتب كلشيء لاكون صريح لانه من الصعب فعل ذلك وانا شخص احب الاختصار المفيد وهناك اشياء مثل خطوات الاختراق والخطط التعليمية(اخر موضوع في المنشور) قمت بنقلها لاني كنت ابحث في الموضوع وانا جديد على موضوع السوفتوير والاختراق في هذا المجال وكتبت وجمعت كلشي شفته تقريبا في المواقع وفي اشياء حذفت منها وخليت المهم فقط وكل هذا اخذ قرابة 5-8ساعات مقسمة على اوقات الفراغ 👍
 
التعديل الأخير:
الله يسعدك اخي ❤ ,
شكرا على المدح والتقدير اخي ❤ , و انشاء الله يضل عندي حافز الاستمرار في المشاركة وانشر محتوى مفيد 💪
واريد اضافة نقطة صغيرة : انا فاهم كلشي كتبته بنسبة 90%(طبعا ما تعلق على موضوع النسبة 😅 , هي فقط لاحتمال نسبة الخطأ) ولكن لم اكتب كلشيء لاكون صريح لانه من الصعب فعل ذلك وانا شخص احب الاختصار المفيد وهناك اشياء مثل خطوات الاختراق والخطط التعليمية(اخر موضوع في المنشور) قمت بنقلها لاني كنت ابحث في الموضوع وانا جديد على موضوع السوفتوير والاختراق في هذا المجال وكتبت وجمعت كلشي شفته تقريبا في المواقع وفي اشياء حذفت منها وخليت المهم فقط وكل هذا اخذ قرابة 5-8ساعات مقسمة على اوقات الفراغ 👍
الله يجعله في ميزان حسناتك أخي
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى