لقد أدّت أنظمة التحكّم الصناعية (ICS) دورًا محوريًّا في تمكين الثورة الصناعية الرابعة. إذ تُؤتمت أجهزة ICS، مثل وحدات التحكّم المنطقيّة القابلة للبرمجة (PLCs)، العمليات الحيوية وتُراقبها وتتحكّم بها في البيئات الصناعية والطاقة والتجارية. وقد أفضى تقارب تكنولوجيا العمليات (OT) مع تكنولوجيا المعلومات (IT) إلى مشهد تهديد جديد وفريد. ألهم ذلك أبحاث دفاع تركّز بكثافة على أساليب كشف الشذوذ المُعتمِدة على التعلُّم الآلي (ML) التي تعمل على عتاد IT خارجي، ما يزيد التكاليف ويُوسّع سطح الهجوم. لإزالة هذا القيد، نقدّم إطار استدلال للتعلُّم الآلي لأنظمة التحكّم الصناعية (ICSML) يتيح تنفيذ استدلال نماذج ML محليًّا على الـ PLC. جرى تنفيذ ICSML باستخدام لغات IEC 61131-3 (بلغة Structured Text أساسًا)، ويُقدّم عددًا من التحسينات لتجاوز القيود التي تفرضها هذه اللغات المتخصّصة، وبذلك يعمل على أي PLC دون حاجة إلى دعم من الشركة المصنِّعة. يُوفّر ICSML مجموعة كاملة من المكوّنات لبناء نماذج ML وتشغيلها بطريقة مماثلة لأُطر ML الشائعة. أجرينا سلسلة من اختبارات الأداء لاستكشاف بصمة الذاكرة وزمن التنفيذ، وقارَنّا حلّنا بإطار الاستدلال TFLite. بالتوازي، طوّرنا تحسينات خاصّة بالمجال لرفع كفاءة ICSML. ولإثبات القدرات، قيّمنا دراسة حالة لدفاع واقعي ضد هجمات مُدركة للعملية تستهدف محطة تحلية مياه.
يشير مصطلح أنظمة التحكّم الصناعية (ICS) إلى جميع الأجهزة التي تُمكِّن أتمتة العمليات الصناعية، بما يشمل أنظمة التحكّم وأجهزة القياس والشبكات والأنظمة الأخرى. تُستخدم أجهزة ICS بكثافة في البُنى التحتية الحيوية للتحكّم في العمليات الفيزيائية الحرِجة، بما يضمن التشغيل السلس والموثوق لبيئات صناعية وطاقوية وتجارية، مثل خطوط التجميع، ومحطات التحلية، وشبكات الطاقة الذكية، ومحطات المعالجة الكيميائية، والبُنى التحتية للتعدين. ووفقًا لتقرير Research and Markets لعام 2021، من المتوقع أن تبلغ القيمة السوقية العالمية لـ ICS نحو 49.6 مليار دولار أمريكي بحلول 2025.
مع بزوغ الثورة الصناعية الرابعة (Industry 4.0)، شرعت الصناعات في الاستفادة من أجهزة تكنولوجيا المعلومات (IT) داخل قطاع تكنولوجيا العمليات (OT)، ما أتاح تحسين الإنتاجية في الزمن الحقيقي، والمراقبة والتحكّم عن بُعد، والصيانة التنبؤية، وزيادة الأتمتة، وغيرها. وبينما كان يُعتقَد سابقًا أن قطاع OT آمن بسبب العزل الشبكي (air-gapped)، فقد ألغت Industry 4.0 الحدود بين IT وOT، وجعلت الأخير عرضة لهجمات الشبكات عن بُعد. فعلى سبيل المثال، أثّرت ثغرة Log4j (CVE-2021-44228
) —التي عُدّت بدايةً مشكلة تخصّ IT— في عدد كبير من مورّدي ICS، إذ طالت أكثر من 100 منتج من Siemens، و8 أجهزة من Rockwell مثل Plex IIoT وغيرها، وبرمجيات Smart Script من WAGO، وشركات أخرى كثيرة. تبعًا لذلك، يمكن للمهاجمين استغلال ثغرات في بنية IT للانتقال إلى شبكة OT وشنّ هجمات قد تسفر عن أضرار جسيمة بالبُنى التحتية الحيوية.
مع ازدياد عدد أجهزة OT المتصلة بالإنترنت وارتفاع الحوافز (مثل العوائد المالية وإمكان إحداث أضرار كبيرة) في ظل كثرة الثغرات، أصبح قطاع OT هدفًا متزايد الجاذبية للهجمات. ووفق Packetlabs، تعرّض 33.8% من حواسيب ICS عالميًّا لهجمات خلال النصف الأول من 2021. كما ازداد عدد الثغرات في ICS بنسبة 41% مقارنةً بالنصف الثاني من 2020، وكان 71% منها قابلاً للاستغلال عن بُعد.
شهد مجال ICS هجمات بارزة عدّة: أصاب Stuxnet أكثر من 200,000 حاسوب وتسبّب في تلف عدد كبير من أجهزة الطرد المركزي لتخصيب اليورانيوم. أما هجوم شبكة الكهرباء الأوكرانية عام 2015 فبدأ بسرقة بيانات VPN، وتمكّن المهاجمون من فتح القواطع الكهربائية وإخراج محطات فرعية من الخدمة وكتابة برمجيات خبيثة لتعطيل الأوامر عن بُعد، ما أدّى إلى انقطاع الكهرباء عن نحو 230,000 شخص. وأُحبِطت هجمات أخرى، مثل الهجوم على محطة معالجة المياه في أولدسمار بولاية فلوريدا، حيث حاول المهاجمون زيادة تركيز هيدروكسيد الصوديوم في المياه إلى 100 ضعف القيمة الطبيعية.
تطرّقت الأدبيات إلى الهجمات على ICS، وتشمل الهجمات على وحدات PLC لتغيير منطق التحكّم أو معلمات العملية، وتعديل البرمجيات الثابتة، أو تزوير قراءات الحساسات ضمن هجمات حقن البيانات الزائفة (FDI) لجمعها وإرسالها إلى PLC بقصد مهاجمة العملية الفيزيائية المتحكَّم بها. كما دُرست طرق اكتشاف الثغرات في برمجة PLC، وتطوير حلول تصحيحية، واكتشاف البرمجيات الخبيثة. واشتملت الدفاعات على حماية PLC باستخدام ثوابت التحكّم (علاقات قراءات الحساسات بأوامر PLC)، واستخراج قواعد منطق التحكّم، واكتشاف انتهاكات السلامة. وبالمثل، وُظِّفت حلول مُعتمِدة على ML لاكتشاف هجمات FDI.
ولا تقتصر استخدامات ML في مجال ICS على كشف الهجمات، بل تُسهِم أيضًا في الرؤية الحاسوبية للفرز واللوجستيات والتعبئة، والصيانة التنبؤية عبر مراقبة حالة الآلات للتنبؤ بالأعطال وجدولة الإصلاحات، وتحسين الضبط عبر نماذج تُكيِّف استراتيجيات التحكّم آليًّا، وتحمل الأعطال واكتشاف الأخطاء.
غالبًا ما تُبنى هذه الحلول المُعتمِدة على ML باستخدام لغات عالية المستوى، ولا يمكن تشغيلها إلا على وحدات PLC التي تدعم أنظمة تشغيل قادرة على تنفيذ برامج عامّة الغرض. وللأسف، تعمل أجهزة كثيرة بلا نظام تشغيل أو بأنظمة خاصة، ما يحول دون تنفيذ مثل هذه الحلول عليها. علاوةً على ذلك، كثيرًا ما تعمل هذه الحلول خارج الجهاز إمّا بجمع البيانات عبر الإنترنت أو دون اتصال، وبذلك يتعذّر نشرها عمليًّا لأن الأمر يتطلّب جهازًا إضافيًّا لكل PLC للوصول إلى مدخلات الحساسات التي يعتمد عليها حل ML. يوضّح الشكل [fig:traditional_setup] الوضع الحالي: إذ يجب أن تتلقى أي منظومة ML مدخلات العملية (غالبًا تناظرية) بشكل منفصل عن PLC، وتنفّذ الاستدلال وتكشف الشذوذ المحتمل، ثم يتعيّن على هذا الجهاز الخارجي (عادةً حاسوبًا عامًا) الاتصال بشبكة OT لتمرير نواتج الاستدلال، ما يزيد سطح الهجوم وإمكان الضرر.
لِلتخلّص من ضرورة إدماج حاسوب عام ضمن دفاعات الأمان المُعتمِدة على ML، نقدّم في هذا العمل إطار ICSML؛ وهو إطار استدلال ML مُنفَّذ محليًّا بلغة Structured Text (ST)، وبالتالي متوافق مع أي جهاز يدعم معيار IEC 61131-3. وبما أنّ الإطار مبنيٌّ بـ ST، فهو يندمج مع أي مشروع IEC ويُمكّن من تنفيذ دفاعات مُعتمِدة على ML على الجهاز نفسه دون أجهزة خارجية إضافية، مع اتصال مباشر بمدخلات الحساسات المرسلة إلى الـ PLC. يتيح ICSML، كما في الشكل [fig:icsml_setup]، تنفيذ الاستدلال داخل الـ PLC دون 1) التضحية بدقة الاستدلال، 2) التأثير في التشغيل الاعتيادي للـ PLC، و3) الحاجة إلى دعم من الشركة المصنِّعة. يمكن تلخيص مساهماتنا كالآتي:
تشمل أنظمة التحكّم الصناعية (ICS) أنظمة التحكّم وأجهزة القياس المرتبطة بها التي تُراقب وتُدير وتتحكّم وتُؤتمت العمليات الفيزيائية الصناعية، وغالبًا ما تُستخدم في البُنى التحتية الحيوية. تُعدّ وحدات التحكّم المنطقية القابلة للبرمجة (PLCs) حجر الأساس في ICS، وهي أجهزة متكاملة ذات تصميم متين لضمان التشغيل الموثوق في البيئات الصناعية القاسية. تعمل PLCs وفق نموذج تشغيلي دوري يُعرف بدورة المسح (scan cycle)، حيث تَقرأ مدخلات الحساسات، وتُجري الحسابات بناءً على منطق التحكّم، وتُفعِّل المشغلات. يُبرمج منطق التحكّم في أجهزة PLC بواسطة مهندسي العمليات باستخدام مجموعة من لغات البرمجة المتخصّصة التي يحدّدها معيار IEC 61131.
يُعد IEC 61131 معيارًا دوليًّا لوحدات التحكّم القابلة للبرمجة. ويحدّد الجزء الثالث منه (IEC 61131-3) عدّة لغات برمجة، منها:
Ladder Diagram (LD): لغة رسومية منخفضة المستوى تُحاكي شكل السلم، تتكوّن من خطّين رأسيين تتصل بينهما خطوط أفقية تُسمّى الأعتاب (rungs). تُمثَّل المدخلات والمخرجات برموز «تلامس» و«ملفات» على الترتيب. تُناسب LD أكثر فِنيّي الصيانة محدودي الخبرة البرمجية.
Function Block Diagram (FBD): لغة رسومية تتألف من كُتل وظيفية (FB) مكتوبة بأيٍّ من لغات IEC 61131-3، وتُوصل بخطوط أفقية تُعرف بخطوط تدفّق الإشارة.
Sequential Function Chart (SFC): لغة رسومية تحدّد السلوك التسلسلي وقابلة للتكامل مع لغات IEC الأخرى. تُشير المربّعات المستطيلة إلى مراحل عملية التحكّم وتترابط عبر أسهم تدفّق.
Structured Text (ST): لغة نصّية عالية المستوى تُشبه Pascal، وتتيح برمجة وظائف معقّدة مواكبةً لتطوّر قدرات PLC.
تتكوّن مشاريع IEC من كُتل برمجية تُسمّى وحدات تنظيم البرامج (POUs)، ويمكن برمجتها بأيٍّ من لغات IEC ثم استخدامها من قبل لغات IEC الأخرى، ما يجعل اللغات متوافقة فيما بينها. تشمل POUs «الدوال» (Functions) المُعرّفة بطريقة تُشبه دوال لغات البرمجة العامّة. وتُعد «كُتل الوظائف» (Function Blocks) وحدة أساسية أخرى وتعمل بصورة تُشبه الكائنات في البرمجة الكائنية، إذ تحتوي متغيرات ودوال تُجسّد الحالة والوظيفة. وتعمل «الواجهات» (Interfaces) في IEC 61131-3 بطريقة تُشبه واجهات اللغات الكائنية، وتُطبَّق عبر كُتل الوظائف. كما يدعم المعيار «الهياكل» (Structs) المُعرّفة على نحوٍ شبيه بهياكل لغة C.
تضمّ الدوال وطرق كُتل الوظائف جزءًا ثابتًا لتعريف وتهيئة المتغيّرات. تُعرَّف المتغيّرات في قسم VAR_INPUT
كوسائط إدخال، وفي VAR_OUTPUT
كقيم إرجاع، وتُعدّ المتغيّرات في قسم VAR
محلّية النطاق. وأخيرًا، تُستخدم متغيّرات VAR_IN_OUT
للإدخال والإخراج معًا.
نستكشف في هذا العمل قدرة وحدات PLC على تنفيذ الاستدلال بكفاءة باستخدام لغات IEC 61131-3 للاستفادة من مزايا الاستدلال المُعتمِد على ML محليًّا على PLC. ويُعد تنفيذ الاستدلال على PLC تحدّيًا للأسباب التالية:
يُفضي تنفيذ حلول التعلُّم الآلي لأنظمة التحكّم الصناعية وجميع وظائفها المرتبطة ضمن بيئة الشركة المصنِّعة للـ PLC باستخدام لغات IEC 61131-3 إلى تحدّيات ناجمة عن القيود المتأصّلة في هذه اللغات المتخصّصة. وبعد دراسة مزايا وعيوب جميع لغات IEC المتاحة، وجدنا أنّ Structured Text هي الأنسب لتطوير تطبيقات ML، إذ تُشبه لغات البرمجة التقليدية وتُعدّ الأكثر مرونة ضمن معيار IEC 61131-3. من أهم القيود في ST ما يلي:
غياب إدارة الذاكرة الديناميكية: مثل بقية لغات IEC 61131-3، تفتقر ST إلى إدارة الذاكرة ديناميكيًّا أثناء التشغيل، ما يمنع —من بين أمور أخرى— تخصيص مصفوفات ذات أطوال متغيرة.
تمرير المُدخلات بالقيمة: تُمرَّر المُدخلات إلى وحدات تنظيم البرامج (POUs) المُعرّفة تحت VAR_INPUT
بالقيمة، أي تُنشأ نسخ من بيانات الإدخال لكل استدعاء.
الدوال لا يمكنها استدعاء كُتل الوظائف: تسمح ST بتمرير كتل الوظائف كوسائط إلى الدوال، لكن بغرض الوصول إلى بياناتها فحسب لا لاستدعاء طرقها.
عدم دعم الاستدعاء الذاتي (Recursion): يُحظَر الاستدعاء الذاتي المباشر أو غير المباشر في لغات IEC 61131-3، لأنّه يمنع حساب الحدّ الأقصى المطلوب من الذاكرة. ويمكن التحايل على فحوصات المُصرّف الثابتة بطرق مثل الاستدعاء غير المباشر، لكن ذلك غالبًا ما يؤدّي إلى تعطل البرنامج وقت التنفيذ.
عدم وجود دوال من الدرجة الأولى: لا تُعدّ الدوال في ST كائنات من الدرجة الأولى، وبالتالي لا يمكن تمريرها كوسائط إلى POUs. ويمنع هذا القيد استخدام البرمجة الوظيفية (FP) التي تُستعمَل كثيرًا في أطر ML لتشكيل خطوط معالجة البيانات وتكوين مكونات مثل طبقة Keras lambda.
الشركة المصنِّعة | النماذج | متوسط زمن تنفيذ التعليمة (\( \mu s \)) | الذاكرة / RAM |
---|---|---|---|
ABB | AC500 PM57x/58x/59x/595/50xx/55x/56x | FP:0.7/0.5/0.004/0.001/0.6/1200 | 128–512KB / 512KB–1MB / 2–4MB / 16MB / 256KB–1MB / 128–512KB |
Allen Bradley | Micro 810/20/30/50/70, CL 5380, 5560/70/80 | 2.5/0.3/0.3/0.3/0.3, N/A, N/A | 2/20/8–20/20/40KB, 600KB–10MB, 3–40/2–32/2–32MB |
Delta Electronics | AS300, AH500 | 1.6, 0.02 LD | N/A, 128KB–4MB |
Eaton | XC152, XC300 | N/A, N/A | 64MB, 512MB |
Emerson | Micro CPUE05/001, RX3i CPE400/CPL410 | 0.8 Bool/1.8, N/A | 64/34KB, 64MB/2GB |
Fatek | B1, B1z | 0.33, 0.33 | 31KB, 15KB |
Festo | CECC-D/LK/S | N/A | 16/16/44MB |
Fuji Electric | SPH5000M/H/D/3000D/300/2000/200 | FP:0.0253/0.066/0.088/0.08/0.27/5600 | 4/4/2/2/2MB / 128KB |
Hitachi | Micro EHV+, HX, EHV+ | N/A, 0.006 FP, 0.08 | 1MB, 16MB, 2MB |
Honeywell | ControlEdge R170 PLC | N/A | 256MB ECC |
Mitsubishi Electric | MELSEC iQ-R/Q/L | 0.0098 FP / 0.0016 LD / 0.065 LD | 4MB / 64–896KB / 64K Steps |
Panasonic | FP 7/2SH/0R/X0/0H | 0.011/0.03/0.08–0.58/0.08–0.58/0.01 | 1MB/20KB/64KB/16KB/64K Steps |
Rexroth (Bosch) | XM21/22/42, VPB | FP:0.026/0.013/0.02/0.02 | 0.5/0.5/2/16GB |
Schneider Electric | Modicon M221/241/251/262 | 0.3/0.3/0.022/0.005 | 256KB/64MB/64MB/32MB |
SIEMENS | SIMATIC S7-1200/1500 | 2.3/0.006–0.384 | 150KB / 150KB–4MB |
WAGO | PFC100/200 | N/A, N/A | 256/512MB |
نظرًا لأن وحدات PLC تُنشر غالبًا في بيئات صناعية مترابطة وقاسية، فإن تصميمها يركّز عادةً على المتانة والكفاءة والاتصال والصلابة، أكثر من تضمين عتاد حاسوبي عالي الأداء.
كما في الجدول [tbl:plc_hardware]، تستخدم PLCs من الفئة الأساسية —مثل Allen Bradley Micro 810— معالجات منخفضة الاستهلاك وذاكرة محدودة (حتى 2 كيلوبايت فقط). أما وحدات PLC من الفئة المتوسطة —مثل Schneider Electric Modicon M241— فتضمّ معالجات متعدّدة النوى وذاكرة RAM موسّعة (نحو 64 ميجابايت). في حين تحتوي وحدات عالية الأداء —مثل WAGO PFC 200— عادةً على معالجات ARM أسرع وذاكرة RAM بسعة 512 ميجابايت.
وبالنظر إلى الموارد المحدودة المتاحة على كثير من وحدات PLC، ينبغي كتابة تطبيقات ML لأنظمة ICS بكفاءة في استخدام المدخلات/المخرجات، وزمن المعالج، والذاكرة، لضمان التشغيل السلس وتحقيق مؤشرات الأداء المطلوبة دون التأثير في مهام ICS الأخرى.
تتضمن عمليات ICS عادةً مهامًا دورية مثل حلقات التغذية الراجعة PID. ولذلك تعمل وحدات PLC وفق نموذج دوري يعتمد على تسلسل «دورة المسح». في بداية الدورة، تلتقط PLC قيم المُدخلات (عادةً قراءات الحساسات) وتحملها في الذاكرة لإجراء الحسابات. بعد ذلك، تُنفّذ تسلسل التعليمات المبرمجة باستخدام لغات IEC 61131-3. وأخيرًا، تُحدّث المُخرجات بناءً على النتائج، ويمكن استخدام هذه المُخرجات لتفعيل المشغّلات، أو جمع البيانات، وغيرها.
قد يختلف طول دورة المسح المطلوبة حسب بيئة ICS. فمثلًا، قد يُطلب من PLCs التي تتحكّم في الروبوتات الصناعية الاستجابة خلال أجزاء من الثانية، لا سيّما في سياقات سلامة الإنسان. أمّا العمليات البتروكيميائية الأبطأ، فقد تُدار بدورات مسح قد تمتدّ لثوانٍ.
يُحدَّد عدد الحسابات التي تُجرى في دورة مسح واحدة بطول الدورة وقوة المعالجة المتاحة على الـ PLC. وقد يؤدّي انتهاك متطلبات الزمن الحقيقي التي تفرضها دورة المسح إلى عواقب وخيمة على العملية الصناعية.
درسنا في هذا العمل الحاجة إلى تنفيذ الاستدلال المُعتمِد على التعلُّم الآلي محليًّا على وحدات التحكّم المنطقية القابلة للبرمجة (PLCs). استعرضنا متطلبات وتحدّيات تشغيل تطبيقات ML في أنظمة التحكّم الصناعية على وحدات PLC، وبنينا على ذلك إطارًا للتعلُّم الآلي باستخدام لغات IEC 61131-3. ثم قدّمنا منهجيّة شاملة لبناء ونقل نماذج ML إلى الإطار المُقترَح. بعد ذلك، استعرضنا أداء الإطار عبر سلسلة من اختبارات القياس، وقارَنّاه بإطار الاستدلال TensorFlow Lite. وأخيرًا، عرضنا قدراته وأكدنا عدم تداخُله مع العملية الأساسية من خلال تطوير دراسة حالة لدفاع مُعتمِد على ML لعملية تحلية المياه بتقنية التبخير الومضي متعدّد المراحل (MSF).
إطار ICSML مفتوح المصدر: https://github.com/momalab/ICSML