





السمعة:
ما هي الانظمة المدمجة(Embeded Systems) وكيف يتم اختراقها ؟!
السلام عليكم ,
اللهم صلي وسلم علي سيدنا محمد وعلى اله وصحبة اجمعين ,
اول شيء هذا الموضوع هو بحث وليس من معلوماتي فقط انا عندي معرفة عادية فيه وحابب اتعلمه وعندي معرفة مع بعض التجارب المرتبطة فيه وانا سويت هذا الموضوع لاني بدي اتعلم عنه اكثر وبدي ابحث عنه فقلت ليش ما ابحث واسوي عنه موضوع ألخص اهم الاشياء عشين استفيد اكثر وافيدكم وطبعا وما راح اكتب كلشي من الصفر يعني خلال البحث سواء من مواقع او فيديوهات في اشياء راح انقلها بس عشينه بحث فقط والا راح ياخذ وقت كثير ومن الصعب اكتب كلشي من الصفر وانا لسا داخل جديد على الموضوع واتمنى انكم تستفيدو ❤
في هذا الموضوع سنتكلم عن :
- ما هي الانظمة المدمجة(Embeded Systems) وتعريفها (تم)
- كيف تعمل الانظمة المدمجة ؟! (تم)
- ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟! (تم)
- ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟! (تم)
- كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟! (تم)
- كيف يتم اختراقها وكيف اقوم بذلك ؟! (تم)
- ما هي طرق حماية الانظمة المدمجة من الاختراق ؟! (تم)
- خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها (تم)
ما هي الانظمة المدمجة(Embeded Systems) وتعريفها
الأنظمة المدمجة : هي أنظمة مصممة لأداء مهام محدودة، مثل التحكم أو الاتصال أو التفاعل مع المستخدم عبر واجهات تخاطبية، وغالبًا ما تعمل في الزمن الحقيقي ولكنها ليست ضمن نظام التشغيل الوقت الحقيقي RTOS ولكنها قد تعمل و تكون كذلك في بعض الاحيان .
نظام التشغيل في الوقت الحقيقي شرحت الفرق بينه و بين نظام التشغيل العادي في هذا الموضوع للحابب يعرف اكثر عنه :
بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ
السلام عليكم ورحمة الله وبركاته
اول شيء هذا المقال غير مفصل وشامل لجميع المعلومات ولكنه يعرفك أنواع الأنظمة والفروقات بينها. وبالبداية بدنا نتعرف على أنواع أنظمة التشغيل لحتى نعرف شو هو نظام التشغيل في الوقت الحقيقي وهذه الصورة تبين أنواع أنظمة التشغيل من حيث العمل :-
والتي تقسم إلى نظام التشغيل العام(General Oporation System) و نظام التشغيل في الوقت الحقيقي(Real Time - Oporation System) وسنتعرف عليهم حتى نفهمهم ونفهم ما هو نظام التشغيل RTOS :
السلام عليكم ورحمة الله وبركاته
اول شيء هذا المقال غير مفصل وشامل لجميع المعلومات ولكنه يعرفك أنواع الأنظمة والفروقات بينها. وبالبداية بدنا نتعرف على أنواع أنظمة التشغيل لحتى نعرف شو هو نظام التشغيل في الوقت الحقيقي وهذه الصورة تبين أنواع أنظمة التشغيل من حيث العمل :-
والتي تقسم إلى نظام التشغيل العام(General Oporation System) و نظام التشغيل في الوقت الحقيقي(Real Time - Oporation System) وسنتعرف عليهم حتى نفهمهم ونفهم ما هو نظام التشغيل RTOS :
...
- Dark-Base
- general os oporation system os real time oporatio system rtos انظمة التشغيل انواع انظمة التشغيل خصائص خصائص انظمة التشغيل نظام التشغيل نظام التشغيل في الوقت الحقيقي
- الردود: 2
- المنتدى: قسم انظمة التشغيل - Operating Systems
الأنظمة المدمجة تتكون عادة من مكونات مادية و برمجيات مدمجة وتعمل بشكل مستقل أو داخل نظام معقد كبير و
غالباً ما تُستخدم في أجهزة مثل الأجهزة المنزلية، السيارات، الأجهزة الطبية ، الهواتف الذكية ، والات المصانع وغيرها و
تعتمد الأنظمة المدمجة على المعالجات والمتحكمات دقيقة، وتكون البرمجيات فيها محددة لغرض معين مثل التحكم في آلة أو جهاز لتحريك شيء معين او استخدامها مع المجسات(مجسات , حرارة , ضوء , صوت , حركة .....)
امثلة المعالجات والمتحكمات دقيقة التي تستخدم في الانظمة المدمجة :
1. المتحكمات الدقيقة (Microcontrollers):
- Arduino (ATmega328P)
- STM32 (STMicroelectronics)
- ESP32 (Espressif Systems)
- PIC Microcontrollers (Microchip Technology)
- ARM Cortex-A Series
- NXP i.MX Series
- Intel Atom
أمثلة على أنظمة التشغيل المدمجة :
كيف تعمل الانظمة المدمجة ؟!
مكونات الانظمة المدمجة :
- المتحكم الدقيق أو المعالج الدقيق (Microcontroller/Microprocessor):
- يُعتبر عقل النظام المدمج ينفذ التعليمات البرمجية التي تتحكم في الجهاز و المتحكمات مثل : Arduino و esp32 تملك معالجات مع ذاكرة وواجهات ادخال واخراج (Input / Output) في شريحة واحد
- الذاكرة (Memory):
- تشمل الذاكرة الدائمة (ROM أو Flash) لتخزين البرنامج الذي يتم تحميله في المتحكم، والذاكرة المؤقتة (RAM) لتخزين البيانات التي يتم معالجتها خلال تشغيل النظام
- أجهزة الإدخال والإخراج (I/O):
- تشمل الحساسات (Sensors) التي تجمع البيانات من البيئة الخارجية مثل درجة الحرارة أو الضوء، والمشغلات (Actuators) مثل المحركات أو الشاشات التي تؤدي الإجراءات بناء على التعليمات وغالبا ما تكون اجهزة الادخال والاخراج على شكل اطراف(pins) والتي تمثل الخطوط او الاسلاك الكهربائية الناقلة للبيانات او الكهرباء
- البرمجيات المدمجة (Firmware):
- عبارة عن البرمجيات المثبتة على المتحكم الدقيق والتي تنفذ المهام المطلوبة. يتم تطوير هذه البرمجيات بلغة البرمجة C أو C++، وتحتوي على تعليمات تحكمية لإدارة الإدخال والإخراج ومعالجة البيانات وتكون هي اساس النظام المدمج
الان سنذهب ونتطلع لكيفية عمل النظام من الداخل و ما هي اهم الوظائف الداخلية فيه
النظام المدمج يعمل من خلال دورة حياة مستمرة تشمل أربع خطوات رئيسية:
- التشغيل (Power-On):
- عند تشغيل النظام، يقوم المتحكم الدقيق بتحميل البرنامج المدمج من الذاكرة الدائمة (Flash) إلى الذاكرة المؤقتة (RAM) ويبدأ في تنفيذه.
- يبدأ النظام في التفاعل مع العالم الخارجي من خلال قراءة البيانات من أجهزة الاستشعار. الحساسات تقوم بقياس المتغيرات الفيزيائية مثل الحرارة، الضغط، الحركة، إلخ.
أنماط التشغيل:
التشغيل المتواصل (Continuous Operation):
- العديد من الأنظمة المدمجة تعمل بشكل متواصل على مدار الساعة، مثل الأنظمة في المصانع أو السيارات. يتم مراقبة البيانات بشكل دوري وتتم معالجة الأحداث في الوقت الحقيقي.
التشغيل عند الطلب (Event-Driven Operation):
- بعض الأنظمة المدمجة تستجيب للأحداث أو المدخلات الخارجية فقط. مثل الأضواء التي تعمل عند اكتشاف الحركة.
الاتصال والتفاعل مع الأنظمة الأخرى:
البروتوكولات:
- الأنظمة المدمجة غالبًا ما تتصل ببعضها البعض أو بأنظمة أخرى من خلال بروتوكولات اتصالات مثل I2C، SPI، UART، CAN، أو بروتوكولات شبكية مثل Wi-Fi وBluetooth.
- هذه البروتوكولات تسمح للأجهزة بتبادل البيانات والتحكم في بعضها البعض بشكل متزامن.
الاتصال بالإنترنت (IoT - Internet of Things):
- العديد من الأنظمة المدمجة اليوم تتصل بالإنترنت لتصبح جزءًا من شبكة "إنترنت الأشياء". يتم مراقبة الأجهزة والتحكم فيها عن بُعد من خلال الإنترنت.
ما هو الاختلاف بين الانظمة العادية والانظمة المدمجة ؟!
اهم النقاط والفروقات بينهم :
وجه المقارنة | نظام التشغيل العادي | نظام التشغيل المدمج |
تعدد المهام | موجود | غير موجود ولكنه ممكن في بعضها مثل raspberry |
امكانية تثبيت وازالة برامج عديدة | ممكن | غير ممكن |
استهلاك الطاقة | عالي | منخفض |
موارد الجهاز المطلوبة(معالج , ذاكرة , .......) | عالية | منخفضة |
مرونة التعامل(تحديث النظام, البرمجة , .......) | سهلة | صعبة |
الحجم | كبير | صغير |
مستوى الامان | عادي, ويحتاج الى تحديثات امنية عديدة | عالي لانه نظام مغلق |
ما هي ايجابيات الانظمة المدمجة وسلبياتها ؟!
إيجابيات الأنظمة المدمجة :
- كفاءة عالية في الأداء:
- الأنظمة المدمجة تكون مصممة لتنفيذ مهام محددة للغاية، مما يجعلها فعالة جدًا في استهلاك الموارد، سواء كان ذلك في استخدام المعالج أو الذاكرة.
- نظرًا لتركيزها على مهمة معينة .
- الأنظمة المدمجة غالبًا ما تكون صغيرة الحجم من حيث العتاد والبرمجيات, يمكن وضع هذه الأنظمة في مساحات صغيرة جدًا، مما يجعلها مثالية للأجهزة التي تحتاج إلى مكونات مضغوطة مثل الهواتف المحمولة، الأجهزة الطبية، والسيارات .
سلبيات الأنظمة المدمجة :
- المرونة المحدودة:
- الأنظمة المدمجة تكون محدودة في قدراتها ولا يمكنها التعامل مع تطبيقات أو مهام أخرى خارج نطاق الغرض الذي تم تصميمها لأجله. أي تعديل أو تحديث يتطلب تغييرات كبيرة في العتاد أو البرمجيات وهذا .
- من الصعب ترقية الأنظمة المدمجة أو تحديثها بمجرد تثبيتها قد تتطلب أي تغييرات كبيرة تعديل العتاد أو استبداله بالكامل، وهو أمر مكلف ومعقد.
كيفية برمجة الانظمة المدمجة وما هي اللغات التي نستخدمها لذلك ؟!
تكتب برامج الأنظمة المدمجة باستعمال لغات البرمجة عديدة وتعمل على أنظمة تشغيل لينوكس مثل : OSE، Micro C/OS، Nucleus، Fusion، VxWorks، وغيرها
اللغات المستخدمة لبرمجة الانظمة المدمجة :
- لغة C: الأكثر شيوعًا في الأنظمة المدمجة و توفر التحكم الكامل في الذاكرة وإدارة الموارد و أداء عالٍ ويعمل على منصات مختلفة و العديد من المتحكمات الدقيقة توفر دعمًا مباشرًا لـ C
- لغة C++: تستخدم أيضًا في الأنظمة المدمجة، لكنها أقل انتشارًا من C بسبب تعقيدها و توفر مزايا البرمجة كائنية التوجه و تُستخدم في الأنظمة التي تتطلب تصميمًا معقدًا وبرمجة متقدمة
- لغة Assembly (لغة التجميع): تستخدم لبرمجة الأنظمة المدمجة ذات الموارد المحدودة جدًا و تتيح التحكم التام في العتاد الصلب (Hardware) و لكنها صعبة في التعلم والتطبيق بسبب تعقيدها
- لغة Python: تستخدم في الأنظمة المدمجة الأعلى أداءً مثل Raspberry Pi ولكن أداءها ليس مرتفعًا كـ C أو Assembly، وتحتاج عادة إلى بيئة تشغيل أكثر قوة (مثل Linux المدمج). و غالبًا تستخدم للتطوير السريع أو التعليم
- لغة Ada: تستخدم في الأنظمة المدمجة التي تحتاج إلى أمان عالٍ وتحصين ضد الأخطاء و تستخدم في الطيران والأنظمة العسكرية والمشاريع ذات الحساسيات العالية
- لغة Rust: تعتبر لغة حديثة نسبيًا لكنها تكتسب شهرة متزايدة في الأنظمة المدمجة بسبب مزايا الأمان في التعامل مع الذاكرة و تهدف إلى تقديم أداء مماثل لـ C مع تقليل الأخطاء المرتبطة بإدارة الذاكرة
- لغة Java (Micro Edition): تستخدم في بعض الأنظمة المدمجة خاصة التي تحتاج إلى تشغيل تطبيقات تعتمد على الآلة الافتراضية (Virtual Machine) و تستخدم بشكل أكبر في إنترنت الأشياء (IoT) أو أجهزة التشغيل المتعددة
- لغات HDL (Hardware Description Language) مثل VHDL وVerilog: تستخدم لتصميم واختبار الدوائر الإلكترونية في الأنظمة المدمجة و هذه اللغات لا تُستخدم لبرمجة المعالجات أو المتحكمات الدقيقة بل لتصميمها
اختيار لغة البرمجة المناسبة يعتمد على :
- حجم الذاكرة
- السرعة
- التوافق او نوع الجهاز
- صعوبة تطبيق البرنامج وصيانته
- أمان النظام واستقراره
بيئات التطوير الخاصة بالانظمة المدمجة ليست محددة بحيث انه هناك انظمة مدمجة تبرمج عن طريق جهاز حاسبوب اخر مثل : Arduino و esp32 وهناك بيئات تطوير مخصصه لهم
كيف يتم اختراقها وكيف اقوم بذلك ؟!
لكل عملية اختراق مراحل اساسية وهذه اغلب المراحل الاختراق المتعرف عليها
مراحل اختراق الانظمة المدمجة :
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) واستخدام الهجمات على العتادما هي طرق حماية الانظمة المدمجة من الاختراق ؟!
حماية الأنظمة المدمجة من الاختراق يعد تحديًا كبيرًا نظرًا لطبيعتها المحددة والمتخصصة، ولذا يجب اتباع نهج شامل يجمع بين العديد من الأساليب الأمنية
أبرز الطرق لحماية الأنظمة المدمجة من الاختراق:
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) :
- الوصف: إذا كان النظام المدمج يعتمد على برمجيات مفتوحة المصدر، تأكد من استخدام مكتبات معروفة وآمنة ومعتمدة.
- الحماية: يحمي من الثغرات غير المعروفة في المكتبات أو البرمجيات التي قد لا تكون مدعومة أو محدثة.
- التطبيق: متابعة التحديثات المستمرة للبرمجيات مفتوحة المصدر وفحص الأكواد بحثًا عن الثغرات.
خطة للتعلم عن الانظمة المدمجة وكيفية اختراقها
المرحلة الأولى:
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
مصادر تقنية قد تفيدك في هذا الموضوع :
-
12 Common Attacks on Embedded Systems and How to Prevent Them | Apriorit
Learn how to improve the security of embedded systems and protect them from software-based, network-based, and side-channel attacks.www.apriorit.com
-
الأنظمة المدمجة ولغات برمجتها
كيف تُبرمج الأنظمة المدمجة؟ وما اللغات المستعملة في ذلك؟الأنظمة المدمجة (Embedded System) مزيج من الأجهزة والبرمجيّات،electronics-go.com
-
إنترنت الأشياء - ويكيبيديا
ar.wikipedia.org
-
الأنظمة المدمجة Embedded Systems
تبهرنا دائماً التكنولوجيا التي نراها من حولنا في وقتنا هذا بقدراتها وإمكانياتها الكبيرة التي وصلت إليها، وتُعدّ "الأنظمة المدمجة" هي السر الذي يقف وراء هذا التطور...www.syr-res.com
وعليكم السلام ورحمة الله وبركاته