لقد لعبت أنظمة التحكم الصناعية (ICS) دورًا محوريًا في تمكين الثورة الصناعية الرابعة. إذ تقوم أجهزة ICS مثل وحدات التحكم المنطقية القابلة للبرمجة (PLCs) بأتمتة ومراقبة والتحكم في العمليات الحيوية في البيئات الصناعية والطاقة والتجارية. أدى تقارب تكنولوجيا العمليات التقليدية (OT) مع تكنولوجيا المعلومات (IT) إلى ظهور مشهد تهديدات جديد وفريد من نوعه. وقد ألهم ذلك أبحاث الدفاع التي تركز بشكل كبير على طرق كشف الشذوذ المعتمدة على التعلم الآلي (ML) والتي تعمل على أجهزة IT خارجية، مما يؤدي إلى زيادة التكاليف وتوسيع سطح الهجوم. لإزالة هذا القيد، نقدم إطار استدلال التعلم الآلي لأنظمة التحكم الصناعية (ICSML) الذي يمكّن من تنفيذ استدلال نماذج ML محليًا على وحدة التحكم المنطقية القابلة للبرمجة (PLC). تم تنفيذ ICSML باستخدام كود IEC 61131-3 ويوفر العديد من التحسينات لتجاوز القيود التي تفرضها لغات البرمجة المتخصصة في المجال. وبالتالي، فهو يعمل على كل PLC دون الحاجة إلى دعم من الشركة المصنعة. يوفر ICSML مجموعة كاملة من المكونات لإنشاء نماذج ML كاملة بطريقة مشابهة للأطر المعتمدة في ML. أجرينا سلسلة من اختبارات الأداء لدراسة الذاكرة والأداء، وقارنّا حلنا بإطار استدلال TFLite. في الوقت نفسه، طورنا تحسينات خاصة بالمجال لزيادة كفاءة ICSML. ولإثبات قدرات ICSML، قمنا بتقييم دراسة حالة لدفاع حقيقي ضد هجمات مدركة للعملية تستهدف محطة تحلية مياه.
يشير مصطلح أنظمة التحكم الصناعية (ICS) إلى جميع الأجهزة التي تمكّن أتمتة العمليات الصناعية، بما في ذلك أنظمة التحكم وأجهزة القياس والشبكات والأنظمة الأخرى. تُستخدم أجهزة ICS بشكل متكرر في البنى التحتية الحيوية للتحكم في العمليات الفيزيائية الحرجة. وتضمن هذه الأجهزة التشغيل السلس والموثوق للبيئات الصناعية والطاقة والتجارية مثل خطوط التجميع، ومحطات التحلية، وشبكات الطاقة الذكية، ومحطات المعالجة الكيميائية، والبنية التحتية للتعدين. ووفقًا لتقرير صادر عام 2021 عن Research and Markets، من المتوقع أن تصل القيمة السوقية العالمية لأنظمة التحكم الصناعية إلى 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 باستخدام لغات عالية المستوى، ولا يمكن تنفيذها إلا على PLCs التي تدعم أنظمة تشغيل قادرة على تشغيل برامج عامة. ولسوء الحظ، فإن العديد من هذه الأجهزة تعمل دون أنظمة تشغيل أو بأنظمة تشغيل خاصة، مما يمنع تنفيذ مثل هذه الحلول. علاوة على ذلك، غالبًا ما تعمل هذه الحلول خارج الجهاز إما في وضع جمع البيانات عبر الإنترنت أو دون اتصال، وبالتالي لا يمكن نشرها عمليًا بسبب الحاجة إلى جهاز إضافي لكل 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) الحاجة إلى دعم الشركة المصنعة. يمكن تلخيص مساهماتنا كما يلي:
قمنا بصياغة مشكلة تنفيذ الاستدلال بكفاءة على PLCs باستخدام لغات IEC 61131-3 من خلال دراسة قيود التعبير في اللغات المتاحة، وأخذنا في الاعتبار قيود عتاد PLC، بالإضافة إلى متطلبات الزمن الحقيقي التي تفرضها بيئات تشغيل ICS.
طورنا إطار استدلال تعلم آلي يتجاوز قيود لغات IEC 61131-3 المتخصصة ويوفر مجموعة كاملة من مكونات ML.
قدمنا منهجية شاملة لتنفيذ استدلال ML على PLCs، تشمل تشكيل مجموعة البيانات، وبناء وتدريب النموذج على أطر ML المعتمدة، ونقل النموذج إلى ICSML، وتنفيذه على PLC.
قمنا بتقييم أداء إطار ICSML من خلال سلسلة من اختبارات الأداء التي تبرز متطلبات الذاكرة وتدرج الأداء بالنسبة لحجم النموذج، بالإضافة إلى سلسلة من التحسينات الخاصة بـ PLC.
أظهرنا كفاءة وعدم تدخل ICSML من خلال دراسة حالة لدفاع حقيقي على PLC لمحطة تحلية مياه بتقنية Multi-Stage Flash (MSF).
تشمل أنظمة التحكم الصناعية (ICS) أنظمة التحكم وأجهزة القياس المرتبطة بها التي تراقب وتدير وتتحكم وتؤتمت العمليات الفيزيائية الصناعية، وغالبًا ما تُستخدم في البنى التحتية الحيوية. وتُعد وحدات التحكم المنطقية القابلة للبرمجة (PLCs) حجر الأساس في ICS، وهي أجهزة متكاملة ذات تصميم متين لضمان التشغيل الموثوق في البيئات الصناعية القاسية. تعمل PLCs وفق نموذج تشغيلي دوري يُعرف بدورة المسح (scan cycle)، حيث تقرأ مدخلات الحساسات، وتنفذ الحسابات بناءً على منطق التحكم، وتتحكم في المشغلات. تتم برمجة منطق التحكم في أجهزة PLC بواسطة مهندسي العمليات باستخدام مجموعة من لغات البرمجة المتخصصة التي يحددها معيار IEC 61131.
يعد 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): لغة نصية عالية المستوى تشبه لغة Pascal، وتسمح ببرمجة وظائف معقدة لتلبية تطور PLCs.
تتكون مشاريع IEC من كتل برمجية تُسمى وحدات تنظيم البرامج (POUs)، ويمكن برمجتها بأي لغة من لغات IEC ثم استخدامها من قبل لغات IEC الأخرى، مما يجعل اللغات متوافقة فيما بينها. تشمل POUs الدوال (Functions) التي تُعرف بطريقة مشابهة للدوال في لغات البرمجة العامة. وتُعد كتل الوظائف (Function Blocks) وحدة أساسية أخرى وتعمل بشكل مشابه للكائنات في البرمجة الكائنية، حيث تحتوي على متغيرات ودوال تُجسد الحالة والوظيفة. وتعمل الواجهات (Interfaces) في IEC 61131-3 بطريقة مشابهة للفئات (Classes) التي تنفذها كتل الوظائف. كما يدعم المعيار أيضًا الهياكل (Structs) التي تُعرف بطريقة مشابهة لهياكل لغة C.
تحتوي الدوال وطرق كتل الوظائف على جزء ثابت خاص بتعريف وتهيئة المتغيرات. تُحدد المتغيرات في قسم VAR_INPUT
كوسائط إدخال، بينما تُحدد المتغيرات في VAR_OUT
كقيم إرجاع، وتُعتبر المتغيرات في قسم VAR
محلية النطاق. وأخيرًا، تُستخدم متغيرات VAR_IN_OUT
للإدخال والإخراج معًا.
في هذا العمل، نستكشف قدرة وحدات PLC على تنفيذ الاستدلال بكفاءة باستخدام لغات IEC 61131-3 للاستفادة من مزايا الاستدلال المعتمد على ML محليًا على PLC. ويُعد تنفيذ الاستدلال على PLC تحديًا للأسباب التالية:
تُكتب تطبيقات PLC بلغات برمجة متخصصة ذات تعبيرية محدودة وتُترجم إلى ملفات تنفيذية غير قياسية. وتفتقر هذه اللغات إلى إدارة ديناميكية للذاكرة، ولا تدعم الاستدعاء الذاتي (recursion)، وغير ذلك من القيود التي تتطلب حلولًا مبتكرة لدعم الاستدلال المعتمد على ML بشكل صحيح. سيتم توضيح ذلك في القسم 3.1.
تتوفر PLCs بتكوينات متنوعة من حيث القدرة الحاسوبية، حيث تحتوي الغالبية على ذاكرة ومعالجات مدمجة محدودة، كما هو موضح في القسم 3.2. لذا يجب أن تكون الطرق المطورة خفيفة الوزن ولا تتداخل مع الهدف الأساسي لـ PLC وهو التحكم والمراقبة.
تتطلب العمليات الصناعية عادةً استجابة في الزمن الحقيقي، حيث قد تكون دورة المسح (حلقة الاستشعار-الحساب-التنفيذ) في حدود أجزاء من الثانية. لذا يجب تطوير الاستدلال بعناية مع مراعاة دورة المسح، كما سيناقش في القسم 3.3.
يؤدي تنفيذ حلول التعلم الآلي لأنظمة التحكم الصناعية وجميع الوظائف المرتبطة بها ضمن بيئة الشركة المصنعة لـ 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.
العرض=1
الشركة المصنعة | النماذج | متوسط زمن التنفيذ لكل تعليمة (\(\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 |
نظرًا لأن 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، يجب كتابة تطبيقات ML لأنظمة ICS بكفاءة في استخدام المدخلات/المخرجات، وزمن المعالج، والذاكرة، لضمان التشغيل السلس وتحقيق مؤشرات الأداء المطلوبة دون التأثير على مهام ICS الأخرى.
تتضمن عمليات ICS عادةً مهامًا دورية مثل حلقات التغذية الراجعة PID. لذلك، تعمل PLCs وفق نموذج دوري يعتمد على تسلسل دورة المسح. في بداية دورة المسح، تلتقط PLC قيم المدخلات (عادةً قراءات الحساسات) وتحملها في الذاكرة لإجراء الحسابات. بعد ذلك، تنفذ PLC تسلسل التعليمات المبرمج باستخدام لغات IEC 61131-3. وأخيرًا، يتم تحديث المخرجات بناءً على نتائج الخطوة السابقة، ويمكن استخدام هذه المخرجات لتشغيل المشغلات، أو جمع البيانات، وغيرها.
يمكن أن يختلف طول دورة المسح المطلوبة حسب بيئة ICS. فعلى سبيل المثال، قد يُطلب من PLCs التي تتحكم في الروبوتات الصناعية الاستجابة خلال أجزاء من الثانية، خاصةً عندما يتعلق الأمر بسلامة الإنسان. أما العمليات البتروكيميائية الأبطأ، فيمكن التحكم فيها بدورات مسح تستغرق ثوانٍ.
يُحدد عدد الحسابات التي تُجرى في دورة مسح واحدة بطول الدورة وقوة المعالجة المتوفرة في PLC. وقد يؤدي انتهاك متطلبات الزمن الحقيقي التي تفرضها دورة المسح إلى عواقب وخيمة على العملية الصناعية.
في هذا العمل، درسنا الحاجة إلى تنفيذ الاستدلال المعتمد على التعلم الآلي محليًا على وحدات التحكم المنطقية القابلة للبرمجة (PLCs). استعرضنا المتطلبات والقيود لتطبيقات التعلم الآلي في أنظمة التحكم الصناعية عند تشغيلها على PLCs، وبناءً على ذلك طورنا إطار عمل للتعلم الآلي باستخدام لغات IEC 61131-3. ثم قدمنا منهجية شاملة لبناء ونقل نماذج ML إلى الإطار المطور. بعد ذلك، استعرضنا أداء الإطار من خلال سلسلة من اختبارات الأداء، وقارناه بإطار الاستدلال TensorFlow Lite. وأخيرًا، عرضنا قدرات الإطار المقترح وأكدنا عدم تدخله في العملية الأساسية من خلال تطوير دراسة حالة لدفاع معتمد على ML لعملية تحلية المياه بتقنية MSF.
إطار ICSML مفتوح المصدر: https://github.com/momalab/ICSML