ICSML: إطار تعلم الآلة لأنظمة التحكم الصناعية للاستدلال المحلي باستخدام كود IEC 61131-3

كونستانتين دومانيديس

براشانت هاري نارايان راجبوت

ميخائيل مانياتاكوس

الملخص

لعبت أنظمة التحكم الصناعية (ICS) دورًا محوريًا في تمكين الثورة الصناعية الرابعة. تقوم أجهزة ICS مثل وحدات التحكم المنطقية القابلة للبرمجة (PLCs) بأتمتة ومراقبة والتحكم في العمليات الحيوية في البيئات الصناعية والطاقة والتجارية. أدى تقارب تكنولوجيا العمليات التقليدية (OT) مع تكنولوجيا المعلومات (IT) إلى فتح مشهد تهديدات جديد وفريد من نوعه. وقد ألهم ذلك أبحاث الدفاع التي تركز بشكل كبير على طرق اكتشاف الشذوذ المعتمدة على تعلم الآلة (ML) والتي تعمل على أجهزة IT خارجية، مما يؤدي إلى زيادة التكاليف وتوسيع نطاق التهديدات. لإزالة هذا القيد، نقدم إطار استدلال تعلم الآلة لأنظمة التحكم الصناعية (ICSML) الذي يمكّن من تنفيذ استدلال نماذج تعلم الآلة محليًا على وحدة التحكم المنطقية القابلة للبرمجة (PLC). تم تنفيذ ICSML باستخدام كود IEC 61131-3 ويوفر العديد من التحسينات لتجاوز القيود التي تفرضها لغات البرمجة المتخصصة في المجال. وبالتالي، يعمل على كل PLC دون الحاجة إلى دعم من الشركة المصنعة. يوفر ICSML مجموعة كاملة من المكونات لإنشاء نماذج تعلم آلي كاملة بطريقة مشابهة للأطر المعروفة. أجرينا سلسلة من اختبارات الأداء لدراسة الذاكرة والأداء، وقارنّا حلنا بإطار الاستدلال TFLite. في الوقت نفسه، طورنا تحسينات خاصة بالمجال لزيادة كفاءة ICSML. ولإثبات قدرات ICSML، قمنا بتقييم دراسة حالة لدفاع حقيقي ضد هجمات مدركة للعملية تستهدف محطة تحلية مياه.

كلمات رئيسية إضافية: case, of, if, then, end_if, end_case, super, function_block, function, extends, var, constant, byte, end_var, var_input, real, bool, var_output, dint, udint, word, dword, array, of, uint, not, adr, program, for, end_for, while, do, end_while, repeat, end_repeat, until, to, by, else, elsif ، كلمات رئيسية أخرى: :, :=, <>, ;, ., [,], ^ TRUE, FALSE, {attribute, hide} ، الكلمات المفتاحية=[1] case, of, if, then, end_if, end_case, super, function_block, extends, var, constant, byte, end_var, var_input, real, bool, var_output, dint, udint, word, dword, array, of, uint, not, adr, :, :=, <>, ;, ., [,], program, function, for, end_for, while, do, end_while, repeat, end_repeat, until, to, by, else, elsif, sizeof ، نمط الكلمات المفتاحية=[1]، الكلمات المفتاحية=[2] TRUE, FALSE ، نمط الكلمات المفتاحية=[2]، الكلمات المفتاحية=[3] {attribute, hide} ، نمط الكلمات المفتاحية=[3]، sensitive=false، المزيد من التعليقات=[l]//، المزيد من التعليقات=[s](**)، المزيد من السلاسل=[b]" المزيد من السلاسل=[b]’

<ccs2012> <concept> <concept_id>10010520.10010553.10010562</concept_id> <concept_desc>تنظيم أنظمة الحاسوب الأنظمة المدمجة</concept_desc> <concept_significance>500</concept_significance> </concept> <concept> <concept_id>10010147.10010257.10010293</concept_id> <concept_desc>منهجيات الحوسبة مقاربات تعلم الآلة</concept_desc> <concept_significance>500</concept_significance> </concept> <concept> <concept_id>10002978.10002997.10002999</concept_id> <concept_desc>الأمن والخصوصية أنظمة كشف التسلل</concept_desc> <concept_significance>300</concept_significance> </concept> </ccs2012>

المقدمة

يشمل مصطلح أنظمة التحكم الصناعية (ICS) جميع الأجهزة التي تمكّن أتمتة العمليات الصناعية، بما في ذلك أنظمة التحكم وأجهزة القياس والشبكات والأنظمة الأخرى. تُستخدم أجهزة ICS بشكل متكرر في البنى التحتية الحيوية للتحكم في العمليات الفيزيائية الحرجة. تضمن هذه الأجهزة التشغيل السلس والموثوق للبيئات الصناعية والطاقة والتجارية مثل خطوط التجميع، ومحطات تحلية المياه، وشبكات الطاقة الذكية، ومحطات المعالجة الكيميائية، وبنية التعدين التحتية. ووفقًا لتقرير صادر عن Research and Markets عام 2021، من المتوقع أن تصل القيمة السوقية العالمية للتحكم الصناعي إلى 49.6 مليار دولار أمريكي بحلول عام 2025.

مع ظهور الثورة الصناعية الرابعة (Industry 4.0)، بدأت الصناعات في الاستفادة من أجهزة تكنولوجيا المعلومات (IT) في قطاع تكنولوجيا العمليات (OT)، مما أتاح تحسين الإنتاجية في الوقت الفعلي، والمراقبة والتحكم عن بُعد، والصيانة التنبؤية، وزيادة الأتمتة، وغير ذلك الكثير. كان يُعتقد سابقًا أن قطاع OT آمن بسبب عزله عن الشبكات (air-gapped). ومع ذلك، أدت الثورة الصناعية الرابعة إلى طمس الحدود بين قطاعي 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، والتصحيح، واكتشاف البرمجيات الخبيثة. كما تم بحث الدفاعات ضد الهجمات على عتاد ICS بشكل موسع، بما في ذلك حماية PLC باستخدام ثوابت التحكم (العلاقة بين قراءات الحساسات وأوامر PLC)، واستخراج قواعد منطق التحكم، واكتشاف انتهاكات السلامة. وبالمثل، تم توظيف حلول معتمدة على تعلم الآلة (ML) لاكتشاف هجمات FDI.

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

غالبًا ما تُبنى هذه الحلول المعتمدة على تعلم الآلة باستخدام لغات عالية المستوى، ولا يمكن تنفيذها إلا على PLCs التي تستخدم نظام تشغيل يدعم تنفيذ البرمجيات العامة. ولسوء الحظ، فإن العديد من هذه الأجهزة تعمل مباشرة على العتاد أو تستخدم أنظمة تشغيل خاصة، مما يمنع مثل هذه العمليات. علاوة على ذلك، غالبًا ما تعمل هذه الحلول خارج الجهاز إما في وضع جمع البيانات عبر الإنترنت أو دون اتصال. وبالتالي، لا يمكن نشرها واقعيًا بسبب الحاجة إلى جهاز إضافي لكل PLC مع إمكانية الوصول إلى مدخلات الحساسات المستخدمة في الحل المعتمد على ML. يوضح الشكل [fig:traditional_setup] الحالة الراهنة: يجب أن تتلقى أي حل معتمد على ML مدخلات العملية (عادةً تناظرية) بشكل منفصل عن PLC، وتنفذ الاستدلال وربما تكتشف شذوذًا. كما يجب أن يتصل هذا الجهاز الخارجي (عادةً حاسوب عادي) بشبكة OT لنقل نتيجة الاستدلال. من الواضح أن وجود جهاز IT تقليدي في شبكة OT يمكن أن يوسع سطح الهجوم ويزيد من قدرات التدمير.

لإزالة الحاجة إلى تضمين ودمج حاسوب عادي في دفاعات الأمن المعتمدة على ML، نقدم في هذا العمل ICSML؛ إطار استدلال تعلم الآلة مُنفذ محليًا بلغة Structured Text (ST)، وبالتالي متوافق مع جميع الأجهزة المتوافقة مع IEC 61131-3. وبما أن الإطار مبني بلغة ST، فإنه يندمج مع أي مشروع IEC ويمكّن من تنفيذ الدفاعات المعتمدة على ML على الجهاز نفسه. يمكن لهذا الحل أن يعمل على PLC دون الحاجة إلى أجهزة خارجية إضافية، ويبقى مرتبطًا بشكل وثيق بمدخلات الحساسات المرسلة إلى PLC. يوضح الشكل [fig:icsml_setup] ICSML، حيث يسمح بالاستدلال داخل PLC دون 1) التضحية بدقة الاستدلال، 2) التأثير على التشغيل الاعتيادي للـPLC، و3) الحاجة إلى دعم الشركة المصنعة. يمكن تلخيص مساهماتنا كما يلي:


المبادئ الأساسية

أنظمة التحكم الصناعية

تشمل أنظمة التحكم الصناعية (ICS) أنظمة التحكم وأجهزة القياس المرتبطة بها التي تراقب وتدير وتتحكم وتؤتمت العمليات الصناعية الفيزيائية، وغالبًا ما تُستخدم في البنى التحتية الحيوية. أحد اللبنات الأساسية في ICS هي وحدات التحكم المنطقية القابلة للبرمجة (PLCs)، وهي أجهزة متكاملة ذات تصميم متين لضمان التشغيل الموثوق في البيئات الصناعية القاسية. تعمل PLCs وفق نموذج تشغيلي دوري يُعرف بدورة المسح (scan cycle)، حيث تقرأ مدخلات الحساسات، وتنفذ الحسابات بناءً على منطق التحكم، وتضبط المشغلات. تتم برمجة منطق التحكم لأجهزة PLC من قبل مهندسي العمليات باستخدام مجموعة من لغات البرمجة المتخصصة التي يحددها معيار IEC 61131.

لغات IEC 61131-3

يعد IEC 61131 معيارًا دوليًا لوحدات التحكم القابلة للبرمجة. يحدد الجزء الثالث من المعيار (IEC 61131-3) عدة لغات برمجة تشمل:

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

مخطط الكتل الوظيفية (Function Block Diagram - FBD): لغة رسومية تتكون من كتل وظيفية (FB) مكتوبة بأي لغة من لغات IEC 61131-3، متصلة بخطوط أفقية تُعرف بخطوط تدفق الإشارة.

مخطط الوظائف التسلسلية (Sequential Function Chart - SFC): لغة رسومية تحدد السلوك التسلسلي وقادرة على التكامل مع لغات IEC الأخرى. تحدد الكتل المستطيلة مراحل عملية التحكم وتتصل عبر خطوط التدفق.

النص الهيكلي (Structured Text - ST): لغة نصية عالية المستوى تشبه لغة البرمجة باسكال. تتيح برمجة وظائف معقدة لتلبية تطور PLCs.

تتكون مشاريع IEC من كتل برمجية تُسمى وحدات تنظيم البرامج (POUs)، يمكن برمجتها باستخدام إحدى لغات IEC ثم استخدامها من قبل لغات IEC الأخرى، مما يجعل اللغات متوافقة فيما بينها. تشمل POUs الدوال (Functions) التي تُعرف بطريقة مشابهة للدوال في لغات البرمجة العامة. الكتل الوظيفية (Function Blocks) هي وحدة أساسية أخرى وتعمل بشكل مشابه للكائنات في البرمجة الكائنية، حيث تحتوي على متغيرات ودوال تُغلف الحالة والوظيفة. تعمل الواجهات (Interfaces) في IEC 61131-3 بشكل مشابه للفئات (classes) للكتل الوظيفية التي تنفذها. كما يدعم المعيار أيضًا الهياكل (Structs) التي تُعرف بطريقة مشابهة لهياكل لغة C.

تحتوي الدوال وطرق الكتل الوظيفية على جزء ثابت خاص لتعريف وتهيئة المتغيرات. المتغيرات المعرفة في أقسام VAR_INPUT وVAR_OUT تمثل مدخلات الدالة وقيم الإرجاع على التوالي، بينما المتغيرات في قسم VAR تعتبر محلية النطاق. وأخيرًا، تُستخدم متغيرات VAR_IN_OUT للمدخلات والمخرجات معًا.

صياغة المشكلة

في هذا العمل، نستكشف قدرة PLCs على تنفيذ الاستدلال بكفاءة باستخدام لغات IEC 61131-3 للاستفادة من مزايا تعلم الآلة محليًا على PLC. إن تنفيذ الاستدلال المعتمد على ML محليًا على PLC يمثل تحديًا للأسباب التالية:

  1. تُكتب تطبيقات PLC بلغات برمجة متخصصة ذات تعبيرية محدودة وتُترجم إلى ملفات تنفيذية غير قياسية. تفتقر هذه اللغات إلى إدارة الذاكرة الديناميكية، ولا تدعم الاستدعاء الذاتي (recursion)، وغير ذلك من القيود التي تتطلب حلولًا مبتكرة لدعم الاستدلال المعتمد على ML بشكل صحيح. سيتم توضيح ذلك في القسم 3.1.

  2. تأتي PLCs بتكوينات متنوعة من حيث القدرة الحاسوبية، حيث تحتوي الغالبية على ذاكرة ومعالجات مدمجة محدودة، كما سيتم توضيحه في القسم 3.2. لذا يجب أن تكون الطرق المطورة خفيفة الوزن ولا تتداخل مع الهدف الحوسبي الأساسي للـPLC: التحكم والمراقبة.

  3. عادةً ما تتطلب العمليات الصناعية استجابة في الزمن الحقيقي، حيث قد تكون دورة المسح (حلقة الإحساس-الحساب-التنفيذ) بفترات زمنية في حدود أجزاء من الثانية. لذا يجب تطوير الاستدلال بعناية مع مراعاة دورة المسح، كما سيناقش في القسم 3.3.

قيود لغات IEC 61131-3

يؤدي تنفيذ حلول تعلم الآلة لأنظمة التحكم الصناعية وجميع الوظائف المرتبطة بها في بيئة الشركة المصنعة للـPLC باستخدام لغات IEC 61131-3 إلى تحديات ناتجة عن القيود الخاصة بهذه اللغات. نعتبر مزايا وعيوب جميع لغات IEC المتاحة ونرى أن Structured Text هي الأنسب لتطوير تطبيقات ML لأنها تشبه لغات البرمجة التقليدية وتعد الأكثر مرونة ضمن معيار IEC 61131-3. من أهم القيود في لغة ST ما يلي:

غياب إدارة الذاكرة الديناميكية: تفتقر ST، مثل بقية لغات IEC 61131-3، إلى القدرة على إدارة الذاكرة ديناميكيًا أثناء التشغيل. من بين أمور أخرى، يمنع ذلك تخصيص مصفوفات بأطوال متغيرة.

المدخلات تُمرر "بالقيمة": تُمرر المدخلات إلى POUs المعرفة تحت VAR_INPUT بالقيمة، أي يتم إنشاء نسخ من البيانات المدخلة لكل استدعاء POU.

لا يمكن للدوال استدعاء الكتل الوظيفية: تسمح ST بتمرير الكتل الوظيفية كوسائط إلى الدوال، لكن ذلك فقط للوصول إليها كبيانات وليس لاستدعاء طرقها.

عدم دعم الاستدعاء الذاتي (Recursion): يُحظر تمامًا الاستدعاء الذاتي المباشر أو غير المباشر في لغات IEC 61131-3، لأنها لا تسمح بحساب الحد الأقصى المطلوب من الذاكرة. يمكن التحايل على الفحوصات الثابتة للمترجم باستخدام طرق مثل الاستدعاء غير المباشر، لكن هذه الطرق تؤدي إلى أعطال أثناء التنفيذ.

عدم وجود دوال من الدرجة الأولى: لا تعتبر الدوال في ST من الأنواع من الدرجة الأولى، وبالتالي لا يمكن تمريرها كوسائط إلى POUs. يمنع هذا القيد استخدام البرمجة الوظيفية (FP) التي تُستخدم غالبًا في أطر ML لتشكيل خطوط معالجة البيانات وتكوين مكونات مثل طبقة Keras lambda.

العرض=1

جدول 1: مواصفات عتاد PLC من شركات مختلفة
الشركة المصنعة النماذج متوسط زمن/تعليمة (\( \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

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

كما هو موضح في الجدول [tbl:plc_hardware]، تستخدم PLCs ذات المستوى المبدئي مثل Allen Bradley Micro 810 معالجات منخفضة الطاقة وتحتوي على ذاكرة محدودة (فقط 2 كيلوبايت). أما PLCs متوسطة الأداء مثل Schneider Electric Modicon M241، فتحتوي على معالجات متعددة النوى أسرع وذاكرة RAM مطورة (حوالي 64 ميجابايت). وأخيرًا، تحتوي PLCs عالية الأداء مثل WAGO PFC 200 عادةً على معالجات ARM أسرع وذاكرة RAM بسعة 512 ميجابايت.

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

قيود الزمن الحقيقي

عادةً ما تتضمن عمليات ICS مهامًا تعمل بشكل دوري، مثل حلقات التغذية الراجعة PID. لذلك، تعمل PLCs وفق نموذج دوري يعتمد على تسلسل دورة المسح. في بداية دورة المسح، تلتقط PLC قيم المدخلات (عادةً قراءات الحساسات) وتحملها في الذاكرة لإجراء الحسابات. بعد ذلك، تنفذ PLC تسلسل التعليمات المبرمج باستخدام لغات IEC 61131-3. وأخيرًا، يتم تحديث مخرجات PLC بناءً على نتائج الخطوة السابقة، ويمكن استخدام هذه المخرجات لأغراض متعددة مثل تفعيل المشغلات وجمع البيانات وغيرها.

يمكن أن يختلف الطول المرغوب لدورة المسح حسب بيئة ICS. على سبيل المثال، قد يُطلب من PLCs التي تتحكم في الروبوتات الصناعية الاستجابة خلال أجزاء من الثانية، خاصةً عندما يتعلق الأمر بسلامة الإنسان. من ناحية أخرى، يمكن التحكم في العمليات البتروكيميائية البطيئة باستخدام دورات مسح تستغرق ثوانٍ.

يُحدد عدد الحسابات المنفذة في دورة مسح PLC واحدة بطول الدورة وقوة المعالجة المتوفرة. قد يؤدي انتهاك قيود الزمن الحقيقي لعملية ICS التي تحددها دورة المسح إلى عواقب وخيمة.

الموارد

ICSML مفتوح المصدر: https://github.com/momalab/ICSML