העדכון שאתם לא יכולים להרשות לעצמכם לדלג עליו: סוף התמיכה ב-Office 2016 ו-Office 2019

קרא עכשיו
אנו משתמשים בבינה מלאכותית לתרגום האתר, ועל אף שאנו שואפים לדיוק מרבי, ייתכן שהתרגומים אינם מדויקים במאת האחוזים. אנו מודים לך על ההבנה.

הגנה על מערכות OT מפני התקפות מרחוק: כיצד MetaDefender אבטחת OT™‎ מגינה על בקר Micrologix™‎ 1400 מפני CVE-2021-22659

עַל יְדֵי OPSWAT
שתף את הפוסט הזה
OPSWAT משתתפי תוכנית המלגות

אבטחת מערכות בקרה תעשייתיות וסביבות OT מפני התקפות מרחוק היא קריטית מתמיד, במיוחד עם פגיעויות כמו CVE-2017-14469 וכעת CVE-2021-22659 המכוונות לבקר Micrologix 1400 של Rockwell Automation, הנפוץ בו. סטודנטים מה- OPSWAT תוכנית המלגות בדקה את הפגיעות הזו בסביבה מבוקרת, והדגישה את הצורך באבטחה. 

בבלוג זה, נחקור כיצד הסטודנטים הדגימו כיצד תוקפים יכלו לנצל את הפגיעות כדי לגרום לקריסת מערכות וכיצד היעדר אימות קלט נאות יכול לשמש לשיבוש פעולות בקר בקרה (PLC). 

מהו בקר מתכנת (PLC)? הסבר על Rockwell Automation Micrologix 1400

בקר לוגי ניתנת לתכנות (PLC) הוא מחשב תעשייתי שנועד לאוטומציה של תהליכים על ידי שליטה במכונות ובפעולות תעשייתיות אחרות. הוא פועל בסביבות קשות ומתוכנת לבצע משימות ספציפיות המבוססות על קלט חיישן. בקר MicroLogix 1400 של Rockwell Automation הוא בקר PLC קומפקטי ומודולרי המשמש בדרך כלל ביישומים קטנים ובינוניים. הוא ידוע בזכות יעילות העלות והגמישות שלו, תומך בפרוטוקולי תקשורת שונים ומציע אפשרויות קלט/פלט דיגיטליות ואנלוגיות לממשק עם התקנים.

תמונה של OPSWAT מכשיר המשמש לניטור מערכות בקרה תעשייתיות

תכנות מתבצע בדרך כלל באמצעות תוכנת Rockwell Automation באמצעות לוגיקת סולם, המאפשרת למשתמשים ליצור רצפי בקרה. ה-MicroLogix 1400 הוא רב-תכליתי, מתאים למשימות כגון בקרת מכונות ואוטומציה של תהליכים. המודולריות שלו מאפשרת למשתמשים להרחיב ולהתאים אישית את המערכת בהתבסס על דרישות יישום ספציפיות.

מבוא ל-CVE-2021-22659

בינואר 2021, Rockwell Automation קיבלה דיווח מפרול סינדהוואד וד"ר פארוק קאזי מ-COE-CNDS במכון הטכנולוגי וירמטה ג'יג'אבאי (VJTI), הודו, בנוגע לפגיעות בבקר MicroLogix™ 1400. הם זיהו פרצת אבטחה בגרסה 21.6 ומוכנה יותר המאפשרת לתוקף מרוחק לא מאומת לשלוח חבילת Modbus בעלת מבנה מיוחד, המאפשרת לתוקף לאחזר או לשנות ערכים אקראיים באוגר. אם ינוצל בהצלחה, הדבר עלול להוביל להצפה של מאגר (buffer overflow), וכתוצאה מכך למצב מניעת שירות. נורית ה-FAULT תהבהב באדום והתקשורת עלולה ללכת לאיבוד. התאוששות ממצב מניעת שירות דורשת ניקוי של התקלה על ידי המשתמש. 

NVD העריך את פגיעות האבטחה הזו כחומרה גבוהה

מדדי CVSS 3.x המציגים ציון חומרה גבוה של 8.6 מ-NIST NVD

שלבי התקפה

תרשים הממחיש את שלבי מתקפת סייבר של PLC MicroLogix

תוקף מרוחק ולא מאומת עם גישה לרשת ל-MicroLogix 1400 PLC הפגיע עלול לשלוח חבילה שנוצרה במיוחד כדי לשנות את הערכים ברישום. מצב זה עלול לגרום למצב של מניעת שירות עבור ההתקן, וכתוצאה מכך לפגיעות במערכת ולזמן השבתה. אירוע כזה עלול לשבש באופן משמעותי את פעולות הייצור ופעילויות עסקיות אחרות של הארגון.

פרוטוקול מודבוס

פרוטוקול Modbus, שפותח על ידי מודיקון בשנת 1979, הוא מבנה העברת הודעות שנועד ליצור תקשורת לקוח-שרת בין מכשירים חכמים. במקור, הוא תוכנן לשימוש עם בקרי בקרה של מודיקון, ומאז הפך לפרוטוקול תקשורת סטנדרטי לתקשורת בין מכשירים אלקטרוניים תעשייתיים. 

ישנם פרוטוקולי Modbus עבור Ethernet (Modbus TCP) וקווים טוריים (Modbus RTU ו-Modbus ASCII). Modbus RTU (יחידת מסוף מרוחקת) משדר נתונים ישירות בצורה בינארית באמצעות תקשורת טורית, ו- Modbus TCP (פרוטוקול בקרת שידור) מטמיע נתוני פרוטוקול Modbus בחבילות TCP לצורך שידור ברשתות TCP/IP. 

טבלת השוואה של ערימת Modbus ושכבות OSI עבור פרוטוקולי תקשורת

מבנה הודעת מודבוס

Modbus הוא פרוטוקול של בקשה-תגובה שבו הלקוח משדר בקשה להתקן Modbus, והמכשיר מספק לאחר מכן תגובה.

תרשים המציג תקשורת טרנזקציות Modbus בין לקוח לשרת

הודעת Modbus הנשלחת מסובב ראשי לסבב משני מכילה את כתובת הסבב המשני, את ה"פקודה" (למשל "קריאה אוגר" או "כתיבה אוגר"), את הנתונים וסכום בדיקה (LRC או CRC).

מבנה הודעת Modbus RTU עם כותרות וקודי פונקציה

כתובות נתונים משמשות בהודעות שאילתה של Modbus בעת קריאה או שינוי נתונים. Modbus מגדיר ארבעה סוגי נתונים: סליל, סטטוס קלט, אוגר קלט ואוגר החזקה. שניים מהם מאחסנים ערכי הפעלה-כיבוי (ביט אחד) הנקראים סלילים וכניסות בדידות, ושניים מאחסנים ערכים מספריים כמילים בנות 16 סיביות הנקראות אוגרים. כל אחד מהם הוא לקריאה בלבד או לקריאה/כתיבה.

סוג נתוניםגִישָׁהתֵאוּר
סְלִילקריאה-כתיבהיציאות של ביט בודד.
קלט דיסקרטילקריאה בלבדכניסות של ביט בודד.
אוגר קלטלקריאה בלבדאוגרי קלט של 16 סיביות.
רישום אחזקותקריאה-כתיבהאוגרי פלט של 16 סיביות.

ישנן שלוש קטגוריות של קודי פונקציית Modbus:

  • קודי פונקציות ציבוריות - מ-1 עד 127 למעט קודים המוגדרים על ידי המשתמש. 
  • קודי פונקציה מוגדרים על ידי המשתמש - בשני טווחים מ-65 עד 72 ומ-100 עד 110. 
  • קודי פונקציה שמורים - משמשים חברות מסוימות עבור מוצרים מדור קודם ואינם זמינים לשימוש ציבורי.
סוג הפונקציהשם הפונקציהקוד פונקציה
גישה לנתוניםגישה לביטכניסות פיזיות בדידותקריאה של קלט בדיד2
ביטים פנימיים או סלילים פיזיים

קרא סלילים

כתוב סליל יחיד

כתוב סלילים מרובים

1

5

15

גישה של 16 סיביותאוגרי קלט פיזייםקריאת אוגרי קלט4
אוגרי מסחר פנימיים או אוגרי פלט פיזיים

קרא מספר אוגרי אחזקה

כתיבת רישום אחזקות יחיד

כתיבת מספר אוגרי החזקה

קריאה/כתיבה של אוגרים מרובים

מסכת כתיבת רישום

קרא תור FIFO

3

6

16

23

22

24

גישה לרשומת קבצים

קרא רשומת קובץ

כתיבת רשומת קובץ

20

21

אבחון

קרא את סטטוס החריגה

אבחון

קבל מונה אירועים של Com 

קבל יומן אירועי קום 

מזהה עבד של דווח 

קרא את זיהוי המכשיר 

7

8

11

12

17

43

אַחֵרהובלת ממשק מקופסלה43
סוג פונקציה: גישה לנתונים
תת-סוג: גישת ביט
קטגוריה: כניסות פיזיות בדידות
שם הפונקציה: קריאת קלט בדיד
קוד פונקציה: 2
סוג פונקציה: גישה לנתונים
תת-סוג: גישת ביט
קטגוריה: ביטים פנימיים או סלילים פיזיים
שם הפונקציה: קריאת סלילים
קוד פונקציה: 1
סוג פונקציה: גישה לנתונים
תת-סוג: גישת ביט
קטגוריה: ביטים פנימיים או סלילים פיזיים
שם הפונקציה: כתיבה בסליל יחיד
קוד פונקציה: 5
סוג פונקציה: גישה לנתונים
תת-סוג: גישת ביט
קטגוריה: ביטים פנימיים או סלילים פיזיים
שם הפונקציה: כתיבת סלילים מרובים
קוד פונקציה: 15
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי קלט פיזיים
שם הפונקציה: קריאת אוגרי קלט
קוד פונקציה: 4
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי נתונים פנימיים או אוגרי נתונים פיזיים
שם הפונקציה: קריאת אוגרי החזקה מרובים
קוד פונקציה: 3
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי נתונים פנימיים או אוגרי נתונים פיזיים
שם הפונקציה: כתיבת אוגר החזקה יחיד
קוד פונקציה: 6
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי נתונים פנימיים או אוגרי נתונים פיזיים
שם הפונקציה: כתיבת אוגרי החזקה מרובים
קוד פונקציה: 16
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי נתונים פנימיים או אוגרי נתונים פיזיים
שם הפונקציה: קריאה/כתיבה של אוגרים מרובים
קוד פונקציה: 23
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי נתונים פנימיים או אוגרי נתונים פיזיים
שם הפונקציה: אוגר כתיבת מסכה
קוד פונקציה: 22
סוג פונקציה: גישה לנתונים
תת-סוג: גישה של 16 סיביות
קטגוריה: אוגרי נתונים פנימיים או אוגרי נתונים פיזיים
שם הפונקציה: קריאת תור FIFO
קוד פונקציה: 24
סוג פונקציה: גישה לנתונים
תת-סוג: גישה לרשומות קבצים
שם הפונקציה: קריאת רשומת קובץ
קוד פונקציה: 20
סוג פונקציה: גישה לנתונים
תת-סוג: גישה לרשומות קבצים
שם הפונקציה: כתיבת רשומת קובץ
קוד פונקציה: 21
סוג פונקציה: אבחון
שם הפונקציה: סטטוס חריג קריאה
קוד פונקציה: 7
סוג פונקציה: אבחון
שם הפונקציה: אבחון
קוד פונקציה: 8
סוג פונקציה: אבחון
שם הפונקציה: מונה אירועי קבל קומפקטי
קוד פונקציה: 11
סוג פונקציה: אבחון
שם הפונקציה: קבל יומן אירועי COM
קוד פונקציה: 12
סוג פונקציה: אבחון
שם הפונקציה: מזהה עבד דוח
קוד פונקציה: 17
סוג פונקציה: אבחון
שם הפונקציה: קריאת זיהוי התקן
קוד פונקציה: 43
סוג פונקציה: אחר
שם הפונקציה: הובלת ממשק מקופסל
קוד פונקציה: 43

ניצול

ניתוח פגיעויות

באמצעות ניתוח, שלנו OPSWAT חוקרים בוגרי התוכנית גילו כי במהלך תקשורת Modbus TCP, הפרוטוקול חסר אימות והצפנה עבור חבילות המועברות. בנוסף, אימות הקלט בבקר MicroLogix 1400 אינו מיושם כראוי. כתוצאה מכך, תוקף מרוחק יכול לנתח את חבילת Modbus TCP באמצעות חבילת רחרוח ולשלוח כל בקשה לבקר ללא אימות דרך פרוטוקול Modbus TCP. עקב היעדר אימות קלט במכשיר ה-MicroLogix 1400, תוקף מרוחק שאומת עלול לשלוח מספר רב של חבילות עם ערכים אקראיים, דבר שעלול לגרום לקריסת הבקר.

החלפת רישום

בתחילה, ניסינו ללכוד חבילות Modbus TCP המשמשות לקריאה או כתיבה של אוגרים בבקר PLC. לשם כך, בדקנו חבילות שנוצרו על ידי יישום בשם Modbus Poll, המאפשר קריאה וכתיבה של אוגרים בבקר MicroLogix 1400.

צילום מסך המציג את ממשק כלי Modbus Poll לכתיבת אוגרים בודדים

באמצעות Wireshark כדי ללכוד את כל החבילות מממשק הרשת, נוכל לזהות את חבילת Modbus TCP לכתיבת אוגר יחיד:

לכידת מנות המציגה טרנזקציית Modbus עם קוד פונקציה לכתיבת אוגר יחיד
פירוט מפורט של מטען Modbus TCP, כולל מזהי עסקאות ופרוטוקולים

בהתבסס על מבנה החבילות שנאספו, פיתחנו סקריפט פייתון פשוט לשליחת חבילות TCP המבקשות כתיבת אוגר במערכת ה-PLC המכוונת. בתרחיש זה, כתובת ה-IP של ה-PLC היא 192.168.93.89 .

דוגמה לקוד Python ליצירת חיבור Modbus TCP ושליחת מטען

רישום ה-PLC שונה לאחר קבלת חבילה זדונית ולא מאומתת שלנו. 

לכידת מנות המציגה את פרוטוקול Modbus/TCP עם קוד פונקציית כתיבת אוגרים מרובים
צילום מסך של דיאגרמת לוגיקת סולם עם בלוק פונקציית ADD להוספת ערכי מקור

ב-Micro Logix 1400, רוב הוראות המתמטיקה משתמשות בשלושה פרמטרים: מקור A, מקור B ויעד

הערכים עבור מקור א' ומקור ב' יכולים להגיע משני אוגרים בני 16 סיביות בשם N13:3 ו-N13:4. יתר על כן, הערכים באוגרים בני 16 סיביות אלה, כגון N13:3 ו-N13:4, מוגבלים בטווח של -32,768 עד +32,767. אם הערכים של N13:3 ו-N13:4 גדולים, תוצאת הוראת ההתאמה עלולה לחרוג מהטווח המרבי של סוג הנתונים, מה שעלול לגרום לקריסת ה-PLC. כתוצאה מכך, כדי לגרום לקריסה ב-PLC, יש צורך לכתוב ערכים אקראיים גדולים לכל האוגרים, כולל N13:3 ו-N13:4. כדי להשיג זאת, שינינו את סקריפט הפייתון שלנו באופן הבא: 

סקריפט פייתון המציג יצירת מטען Modbus TCP לכתיבת מספר אוגרים

לדמות את ההתקפה

כדי לדמות מתקפה בעולם האמיתי, שלנו OPSWAT עמיתים לתואר שני ניסו לגרום לקריסה במערכת ה-PLC MicroLogix 1400 שנמצאה ב... OPSWAT מעבדות CIP, תחת ההנחה שגם התוקף וגם ה-PLC נמצאים באותה רשת ויכולים לתקשר זה עם זה. 

במצב פעולה רגיל של ה- MicroLogix 1400 PLC ב OPSWAT מעבדות, כאשר ה-PLC במצב הפעלה מרחוק, כל ערכי האוגר תקפים ונמצאים בטווח המיועד לסוגי הנתונים שלהם, דבר המצביע על כך שתוכנית המשתמש פועלת כהלכה. 

צילום מסך של קובץ נתונים של RSLogix 500 המציג ערכי נתונים של N13 בפורמט עשרוני

עם ביצוע סקריפט הפייתון שלנו, יישלחו מספר רב של חבילות Modbus TCP לבקר, שיבקשו כתיבת ערכים אקראיים גדולים לכל האוגרים ללא אימות:

לכידת מנות המציגה בקשות חוזרות של כתיבת אוגרים מרובים באמצעות Modbus TCP

לאחר קבלת בקשות חבילות זדוניות אלו, ערכי כל האוגרים, כולל N13:3 ו-N13:4, נקבעים ל-16,990. תוצאת פעולת ה-ADD באוגרים N13:3 ו-N13:4 חורגת מהטווח התקף של אוגר בן 16 סיביות. בעיה זו גורמת לגלישה שלמה, מה שמוביל לתקלה ולהפרעה לפעולת ה-PLC, כפי שמצוין על ידי המצב FAULTED.

RSLogix 500 מציג מצב תקלה וערכי נתונים עבור כתובות N13

שֶׁלָנוּ OPSWAT סטודנטים לתואר שני הצליחו להרוס את ה-PLC MicroLogix 1400 על ידי ניצול CVE-2021-22659.

תיקון

צילום מסך של לוח מחוונים של פגיעויות ב-PLC המציג פרטי CVE ופגיעויות קריטיות עבור Rockwell Automation MicroLogix

לנוכח פגיעויות כמו CVE-2021-22659, תיקון מקיף הוא קריטי להגנה על מערכות OT ומערכות סייבר-פיזיות. להלן כמה מהאסטרטגיות המרכזיות בהן ניתן להשתמש כדי למנוע את התפשטות ההתקפות:

  1. זיהוי CVEs ידועים: סריקה קבועה של רשתות אחר פגיעויות כמו CVE-2021-22659.
  2. ניטור התנהגויות חריגות: סימון עליות חריגות בתדירות התקשורת עם בקר ה-PLC Micrologix 1400, דבר שיכול להצביע על מתקפה מתמשכת של העברת נתונים לא מורשית.
  3. זיהוי חיבורי התקנים חדשים: המערכת אמורה לזהות מתי התקן חדש מתחבר ל-PLC. 
  4. פילוח רשת: בידוד מכשירים מושפעים יכול לסייע במניעת התפשטות רוחבית של התקפות, ובכך למזער את ההשפעה.

OPSWAT של MetaDefender OT Security עונה על צרכים אלה על ידי זיהוי CVEs, ניטור רציף של הרשת לאיתור התנהגויות חריגות וזיהוי חיבורים לא מורשים. באמצעות בינה מלאכותית, היא לומדת דפוסי תנועה רגילים, קובעת התנהגות בסיסית ומיישמת מדיניות להתרעה על אנומליות. זה מאפשר תגובות מיידיות ומושכלות לאיומים פוטנציאליים. 

במקרה של מתקפה המנצלת את CVE-2021-22659, MetaDefender OT Security משתלב עם ה- MetaDefender Industrial Firewall לחסום תקשורת חשודה על סמך כללים קבועים. חומת האש משתמשת בבינה מלאכותית כדי ללמוד דפוסי תנועה קבועים ולאכוף מדיניות למניעת חיבורים לא מורשים. 

על ידי שילוב יכולות הזיהוי, ההתרעה ופילוח הרשת הללו, MetaDefender OT Security הופך למנגנון ההגנה האידיאלי עבור סביבות תעשייתיות, ומפחית משמעותית את הסיכון וההשפעה של איומי סייבר בסביבות טכנולוגיה תפעוליות.

גלה כיצד OPSWAT פלטפורמת אבטחת הסייבר המעמיקה של יכולה לשפר ולפתח את היציבה שלך. דבר עם מומחה עוד היום לקבלת הדגמה בחינם.

הישאר מעודכן עם OPSWAT !

הירשמו עוד היום כדי לקבל את העדכונים האחרונים של החברה, סיפורים, מידע על אירועים ועוד.