فقدت في الترجمة: نقاط ضعف بوابة البروتوكول الصناعي

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



صورة



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



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



في تقرير عن الحادث صادر عن SANS ICS (قسم تابع لمنظمة الأبحاث والتعليم الأمريكية SANS Institute لدراسة أنظمة التحكم الصناعي) ومركز تحليل الطاقة وتبادل المعلومات (E-ISAC - وهو هيكل يجمع المشاركين في سوق الكهرباء في أمريكا الشمالية) ، تعرضت البرامج الثابتة للبوابة للتلف البروتوكولات كانت تسمى "انفجار الجسور". يصف هذا بدقة ما حدث ، حيث قام المهاجمون بتدمير الرابط الرئيسي - المترجمون ، الذين يعملون فقط كجسر بين وحدات التحكم والمحطات الفرعية.

صورة

هيكل التفاعل بين شبكة التحكم وشبكة التنفيذ. المصدر (يشار إليه فيما بعد ، ما لم يذكر خلاف ذلك): Trend Micro



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



  1. من غير المحتمل أن ينتهي الأمر بالبوابات إلى مخزون حرج للأصول سيتم مراقبته بواسطة وكيل أمان أو نظام تسجيل. وبالتالي ، من غير المرجح أن يتم ملاحظة الهجوم.
  2. يصعب تشخيص مشاكل الترجمة ، لذا فإن العيوب في تصميم بوابات البروتوكول تسمح للمهاجمين المتقدمين بشن هجمات سرية للغاية.


أنواع البوابات



وفقًا لوضع التشغيل ، يمكن تمييز عائلتين من البوابات:



  1. بوابة الوقت الحقيقي (بوابات الوقت الحقيقي) إلى الأمام عند توفرها - يتم تقييم كل حزمة واردة على الفور وترجمتها وإعادة توجيهها ؛ الممثلون: Nexcom NIO50 ، Schneider Link 150 ، Digi One IA ؛
  2. محطات البيانات - تعمل بشكل غير متزامن باستخدام جدول تعيين الواجهة - لا تنتظر طلب قراءة لتلقي البيانات من PLC المتصل ، ولكن اطلب بانتظام تحديثات الحالة من PLC وتخزين البيانات المستلمة في ذاكرة التخزين المؤقت الداخلية للإصدار عند الطلب.


السمة الثانية المهمة لبوابات البروتوكول هي نوع البروتوكولات التي تدعمها وترجمتها. من خلال هذه الخاصية ، يمكن تجميع الأجهزة في ثلاث فئات:



  1. , , , Modbus TCP Modbus RTU, — , ;
  2. , , , Modbus RTU → Profibus, — , ;
  3. , , , Modbus TCP → Profibus, — , .


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



  • fuzzer الذي يولد حركة مرور واردة للبوابة التي تم اختبارها - على سبيل المثال ، عند اختبار الترجمة من Modbus TCP إلى Modbus RTU ، يقوم fuzzer بإنشاء حالات اختبار Modbus TCP ،
  • بوابة - جهاز مدروس ،
  • جهاز محاكاة - جهاز يحاكي محطة استقبال ، على سبيل المثال ، PLC الذي ينفذ Modbus RTU لجهاز تابع - إنه ضروري لأن بعض بوابات البروتوكول قد لا تعمل بشكل صحيح إذا لم يكن هناك جهاز تابع في السلسلة ،
  • المتشمم الذي يجمع معلومات حول حركة المرور الصادرة ، أي حول بروتوكول البث ،
  • محلل حركة المرور الواردة والصادرة.


صورة

رسم تخطيطي لمقعد الاختبار لدراسة نقاط الضعف في بوابات البروتوكول



صورة

Real test



Bench من أجل نمذجة عقدة Modbus الرئيسية ، استخدمنا برنامج QmodMaster مفتوح المصدر ، ونمذجة جهاز الرقيق - pyModSlave ، وتكييفه مع احتياجاتنا ، مثل تلقي البيانات من / dev / ttyUSB0.



استخدمنا Wireshark لـ Modbus TCP و IONinja لـ Modbus RTU لاعتراض حركة المرور. لقد كتبنا محللين خاصين لتحويل مخرجات هذين البرنامجين إلى صيغة مشتركة يستطيع المحلل اللغوي فهمها.



لقد قمنا بتطبيق fuzzer على أساس BooFuzz ​​، بإضافة بعض الوحدات من مشروع Boofuzz-modbus ، والذي يتم توزيعه بموجب ترخيص Apache. لقد جعلنا الفيزر محمولًا لبروتوكولات ICS المختلفة ، واستخدمناه لاختبار العديد من تطبيقات Modbus.



فيما يلي بعض أنواع الهجمات التي اكتشفناها أثناء فحص بوابات البروتوكول المختلفة:



  • الهجوم على مترجم البروتوكول ،
  • إعادة استخدام بيانات الاعتماد وفك تشفير التكوين ،
  • تضخيم حركة المرور ،
  • تصعيد الامتيازات.


هجوم مترجم البروتوكول



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



صورة

حزمة الهجوم: في Modbus TCP ، تحتوي على أمر لقراءة السجل ، ولكن في Modbus RTU هو بالفعل أمر لكتابة عدة خلايا بت



عند تحليل هذه الحزمة باستخدام دلالات Modbus TCP ، يتم تفسيرها على أنها أمر لقراءة سجل الإدخال (رمز الوظيفة 04) من الكتلة ذات المعرف = 3. ولكن في دلالات Modbus RTU ، يتم تفسيرها على أنها كتابة عدة خلايا بت (كود الوظيفة 15 و 0F) إلى كتلة مع ID = 1.

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



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



إعادة استخدام بيانات الاعتماد وفك تشفير التكوين



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



صورة

خطوات تكوين بوابة Moxa



هناك عيبان أمنيان في هذا الإجراء يمكن إساءة استخدامهما.



- إعادة استخدام



عندما يقوم مهندس بتسجيل الدخول ، يتم تمرير مفتاح إلى MGate Manager لتجزئة كلمة المرور. ومع ذلك ، في البرنامج الثابت الذي تم اختباره ، يتم تنفيذ الآلية بطريقة تمكن المتسلل من اعتراض كلمة المرور المشفرة للمهندس للدخول إلى النظام ، ثم استخدامها لتسجيل الدخول بامتيازات إدارية ، حتى دون معرفة كلمة المرور في شكل نص.



-



فك تشفير التكوين يحتوي التكوين المشفر الذي يتم إرساله عبر الشبكة على مفتاح تشفير يسمح للمتسلل بتفريغه وفك تشفيره.



صورة

يحتوي التكوين المشفر على مفتاح AES لفك تشفيره. مفيد جدا للقرصنة



لفك التشفير ، استخدمنا مكتبة خاصة بفك التشفير مستخرجة من البرامج الثابتة للجهاز. يحتوي التكوين على ملفات التكوين وقواعد بيانات SQLite ومفتاح Secure Shell (SSH). يوجد أدناه مثال على التكوين الذي تم فك تشفيره لبوابة البروتوكول الخاصة بنا ، والتي تمكنا من اعتراضها.



صورة

تم فك تشفير ملفات التكوين Moxa MGate 5105



تضخيم حركة المرور



نظرًا لأن محطات البيانات تبث البروتوكولات مع بعضها البعض بشكل غير متزامن ، يمكن دمج طلبات كتابة واحدة بت واحد في طلب واحد للاستفادة بشكل أفضل من الناقل التسلسلي. على سبيل المثال ، يمكن للمتسلل استدعاء الوظيفة 15 (كتابة عدة بتات) ، في محطة البيانات سيتم تحويلها إلى سجل واحد للمعرف = 2 ، 1 للمعرف = 4 ، 1 للمعرف = 5 ، 1 للمعرف = 6. وبالتالي ، يُترجم إدخال واحد لـ Modbus TCP إلى أربعة إدخالات Modbus RTU ، مما يتسبب في ازدحام طفيف في الناقل التسلسلي.



صورة

يتحول أمر TCP واحد لكتابة خلية إلى أربعة أوامر RTU.



لاحظ أن هذا التضخيم لن يتسبب في رفض الخدمة (DoS) ، لكن ناقل RS-485 المحمّل بشكل زائد يمكن أن يؤدي إلى سلوك غير طبيعي.



تصعيد الامتيازات



في MGate 5105-MB-EIP ، اكتشفنا ثغرة أمنية في تصعيد الامتيازات CVE-2020-885 والتي تسمح للمستخدم غير المتميز بتنفيذ أوامر بامتيازات مرتفعة.



مصدر المشكلة هو عدم تصفية مدخلات المستخدم في واجهة الويب لأداة Ping.



صورة

Mgate Ping Utility Interface



مع الحد الأدنى من المعرفة التقنية ، يمكن للمستخدم غير المتميز تشغيل برنامج Telnet الخفي في سياق المستخدم الجذر من خلال طلب HTTP GET بسيط والحصول على وصول كامل عن بُعد باستخدام غلاف جذر.



توصياتنا



بعد فحص تفاصيل تشغيل العديد من بوابات البروتوكول الصناعي ، قمنا بتطوير عدد من التوصيات للموردين أو المركبين أو المستخدمين النهائيين.



  1. - . . .
  2. — , , . ICS- . Trend Micro — TXOne Networks, OT .
  3. , — /, . , , , MQTT.
  4. OT , .



All Articles