Atacuri cibernetice bazate pe IA: Cum să detectați, să preveniți și să vă apărați împotriva amenințărilor inteligente

Citește acum
Utilizăm inteligența artificială pentru traducerile site-urilor și, deși ne străduim să fim exacți, este posibil ca acestea să nu fie întotdeauna 100% precise. Apreciem înțelegerea dumneavoastră.

Protejarea sistemelor OT împotriva atacurilor de la distanță: Modul în care MetaDefender OT Security™ protejează controlerul Micrologix™ 1400 de CVE-2021-22659

de OPSWAT
Împărtășește această postare
Participanții la programul de burse OPSWAT

Securizarea sistemelor de control industrial și a mediilor OT împotriva atacurilor de la distanță este mai critică ca niciodată, în special cu vulnerabilități precum CVE-2017-14469 și acum CVE-2021-22659 care vizează controlerul Micrologix 1400 al Rockwell Automation, utilizat pe scară largă. Studenții din cadrul programului de burse OPSWAT au testat această vulnerabilitate într-un mediu controlat, subliniind nevoia de securitate. 

În acest blog, explorăm modul în care studenții au demonstrat cum atacatorii ar putea exploata vulnerabilitatea pentru a provoca blocarea sistemelor și cum lipsa validării corespunzătoare a intrărilor ar putea fi utilizată pentru a întrerupe operațiunile PLC. 

Ce este un PLC? Explicații Rockwell Automation Micrologix 1400

Un PLC (Programmable Logic Controller) este un computer industrial conceput pentru automatizarea proceselor prin controlul utilajelor și al altor operațiuni industriale. Acesta funcționează în medii dificile și este programat să execute sarcini specifice pe baza datelor de intrare ale senzorilor. Controlerul MicroLogix 1400 de la Rockwell Automation este un PLC compact și modular utilizat în mod obișnuit în aplicații de dimensiuni mici și medii. Cunoscut pentru rentabilitatea și flexibilitatea sa, acesta suportă diverse protocoale de comunicare și oferă opțiuni I/O digitale și analogice pentru interfațarea cu dispozitivele.

Imagine a unui dispozitiv OPSWAT utilizat pentru monitorizarea sistemului de control industrial

Programarea se face de obicei folosind software-ul Rockwell Automation prin intermediul logicii ladder, permițând utilizatorilor să creeze secvențe de control. MicroLogix 1400 este versatil, potrivit pentru sarcini precum controlul mașinilor și automatizarea proceselor. Modularitatea sa permite utilizatorilor să extindă și să personalizeze sistemul pe baza cerințelor specifice ale aplicației.

Introducere la CVE-2021-22659

În ianuarie 2021, Rockwell Automation a primit un raport de la Parul Sindhwad și Dr. Faruk Kazi de la COE-CNDS de la Veermata Jijabai Technological Institute (VJTI), India, cu privire la o vulnerabilitate în controlerul MicroLogix™ 1400. Aceștia au identificat un defect de securitate în versiunea 21.6 și versiunile anterioare care permite unui atacator neautenticat de la distanță să trimită un pachet Modbus special creat, permițând atacatorului să recupereze sau să modifice valori aleatorii în registru. Dacă este exploatat cu succes, acest lucru ar putea duce la o depășire a bufferului, ducând la o condiție de negare a serviciului. LED-ul FAULT va clipi ROȘU și comunicațiile pot fi pierdute. Recuperarea din starea de negare a serviciului necesită ștergerea defecțiunii de către utilizator. 

NVD a evaluat această vulnerabilitate de securitate ca fiind de severitate ridicată

Metrici CVSS 3.x care arată un scor de severitate ridicat de 8,6 din NIST NVD

Fazele atacului

Diagrama care ilustrează fazele unui atac cibernetic asupra unui PLC MicroLogix

Un atacator de la distanță, neautentificat, cu acces la rețeaua PLC-ului MicroLogix 1400 vulnerabil ar putea trimite un pachet special creat pentru a modifica valorile din registru. Acest lucru ar putea provoca o stare de negare a serviciului pentru dispozitiv, ducând la coruperea sistemului și la întreruperea activității. Un astfel de incident poate perturba semnificativ operațiunile de producție și alte activități comerciale ale organizației.

Protocolul Modbus

Dezvoltat de Modicon în 1979, protocolul Modbus este o structură de mesagerie concepută pentru a stabili comunicarea client-server între dispozitive inteligente. Conceput inițial pentru a fi utilizat cu PLC-urile Modicon, acesta a devenit de atunci un protocol de comunicare standard pentru comunicarea între dispozitivele electronice industriale. 

Există protocoale Modbus pentru Ethernet (Modbus TCP) și linii seriale (Modbus RTU și Modbus ASCII). Modbus RTU (Remote Terminal Unit) transmite direct date în formă binară prin comunicare serială, iar Modbus TCP (Transmission Control Protocol) include datele protocolului Modbus în pachete TCP pentru transmiterea prin rețele TCP/IP. 

Diagrama comparativă a stivei Modbus și a straturilor OSI pentru protocoalele de comunicare

Structura mesajului Modbus

Modbus este un protocol cerere-răspuns în care clientul transmite o cerere către un dispozitiv Modbus, iar dispozitivul furnizează ulterior un răspuns.

Diagrama care prezintă comunicarea tranzacției Modbus între client și server

Un mesaj Modbus trimis de la un primar la un secundar conține adresa secundarului, "comanda" (de exemplu, "citire registru" sau "scriere registru"), datele și o sumă de verificare (LRC sau CRC).

Structura mesajului Modbus RTU cu antete și coduri de funcții

Adresele de date sunt utilizate în mesajele de interogare Modbus la citirea sau modificarea datelor. Modbus definește patru tipuri de date: Coil, Input Status, Input Register și Holding Register. Două dintre acestea stochează valori on-off (1 bit) numite bobine și intrări discrete, iar două stochează valori numerice sub formă de cuvinte pe 16 biți numite registre. Fiecare este fie numai citire, fie citire/scriere.

Tip de dateAccesDescriere
BobinăCitire-scriereIeșiri cu un singur bit.
Intrare discretăDoar pentru citireIntrări cu un singur bit.
Registru de intrareDoar pentru citireRegistre de intrare pe 16 biți.
Registru de menținereCitire-scriereRegistre de ieșire pe 16 biți.

Există trei categorii de coduri de funcții Modbus:

  • Coduri de funcții publice - De la 1 la 127, cu excepția codurilor definite de utilizator. 
  • Coduri de funcții definite de utilizator - în două intervale, de la 65 la 72 și de la 100 la 110. 
  • Coduri de funcții rezervate - Utilizate de unele companii pentru produse vechi și nu sunt disponibile pentru uz public.
Tip de funcțieDenumirea funcțieiCodul funcției
Accesul la dateAcces la bițiIntrări fizice discreteCitiți intrările discrete2
Biți interni sau bobine fizice

Citiți bobinele

Scrieți o singură bobină

Scrierea mai multor bobine

1

5

15

Acces pe 16 bițiRegistre de intrare fizicăCitiți registrele de intrare4
Registre interne sau registre fizice de ieșire

Citiți mai multe registre de menținere

Scrierea unui singur registru de menținere

Scrierea mai multor registre de menținere

Citire/Scriere registre multiple

Registrul de scriere a măștii

Coada FIFO de citire

3

6

16

23

22

24

Acces la înregistrări de fișiere

Citiți înregistrarea fișierului

Scrierea înregistrării fișierului

20

21

Diagnosticare

Citiți starea excepției

Diagnostic

Obțineți contorul de evenimente Com 

Obțineți jurnalul evenimentelor Com 

Raportați ID-ul sclavului 

Citiți identificarea dispozitivului 

7

8

11

12

17

43

AlteleTransport de interfață încapsulată43
Tip funcție: Acces la date
Subtip: Acces la biți
Categorie: Intrări discrete fizice
Denumirea funcției: Citire intrări discrete
Cod funcție: 2
Tip funcție: Acces la date
Subtip: Acces la biți
Categorie: Bits interni sau bobine fizice
Denumirea funcției: Read Coils
Cod funcție: 1
Tip funcție: Acces la date
Subtip: Acces la biți
Categorie: Biți interni sau bobine fizice
Denumirea funcției: Write Single Coil
Codul funcției: 5
Tip funcție: Acces la date
Subtip: Acces la biți
Categorie: Biți interni sau bobine fizice
Denumirea funcției: Scriere bobine multiple
Codul funcției: 15
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Physical Input Registers
Denumirea funcției: Read Input Registers
Cod funcție: 4
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Registre interne sau registre fizice de ieșire
Denumirea funcției: Read Multiple Holding Registers
Cod funcție: 3
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Registre interne sau registre fizice de ieșire
Denumirea funcției: Write Single Holding Register
Codul funcției: 6
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Registre interne sau registre fizice de ieșire
Denumirea funcției: Write Multiple Holding Registers
Codul funcției: 16
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Registre interne sau registre fizice de ieșire
Denumirea funcției: Citire/Scriere registre multiple
Cod funcție: 23
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Registre interne sau registre fizice de ieșire
Denumirea funcției: Mask Write Register
Codul funcției: 22
Tip funcție: Acces la date
Subtip: Acces pe 16 biți
Categorie: Registre interne sau registre fizice de ieșire
Denumirea funcției: Read FIFO Queue
Cod funcție: 24
Tip funcție: Acces la date
Subtip: File Record Access
Denumirea funcției: Read File Record
Cod funcție: 20
Tip funcție: Acces la date
Subtip: File Record Access
Denumirea funcției: Write File Record
Codul funcției: 21
Tip funcție: Diagnosticare
Denumirea funcției: Citire stare excepție
Cod funcție: 7
Tip funcție: Diagnosticare
Denumirea funcției: Diagnostic
Codul funcției: 8
Tip funcție: Diagnostics
Denumirea funcției: Get Com Event Counter
Codul funcției: 11
Tip funcție: Diagnostics
Denumirea funcției: Get Com Event Log
Codul funcției: 12
Tip funcție: Diagnosticare
Denumirea funcției: Report Slave ID
Cod funcție: 17
Tip funcție: Diagnosticare
Denumirea funcției: Citește identificarea dispozitivului
Cod funcție: 43
Tip funcție: Altele
Denumirea funcției: Encapsulated Interface Transport
Codul funcției: 43

Exploatare

Analiza vulnerabilității

Prin analiză, bursierii noștri absolvenți OPSWAT au descoperit că în timpul comunicării Modbus TCP, protocolul nu dispune de autentificare și criptare pentru pachetele transmise. În plus, validarea intrărilor în PLC-ul MicroLogix 1400 nu este implementată corespunzător. În consecință, un atacator de la distanță poate analiza pachetul Modbus TCP prin "packet sniffing" și poate trimite orice solicitare către PLC fără autentificare prin protocolul Modbus TCP. Din cauza lipsei validării intrărilor în dispozitivul PLC MicroLogix 1400, un atacator autentificat de la distanță ar putea trimite un număr mare de pachete cu valori aleatorii, putând provoca blocarea PLC-ului.

Suprascrierea registrului

Inițial, am încercat să captăm pachetele Modbus TCP utilizate pentru citirea sau scrierea registrelor pe PLC. Pentru a realiza acest lucru, am examinat pachetele generate de o aplicație numită Modbus Poll, care facilitează citirea și scrierea registrelor pe PLC-ul MicroLogix 1400.

Captură de ecran care prezintă interfața instrumentului Modbus Poll pentru scrierea registrelor individuale

Folosind Wireshark pentru a captura toate pachetele de la interfața de rețea, am putut identifica pachetul Modbus TCP pentru scrierea unui singur registru:

Captură de pachet care arată o tranzacție Modbus cu cod de funcție pentru scrierea unui singur registru
Defalcarea detaliată a sarcinii utile Modbus TCP, inclusiv identificatorii de tranzacție și de protocol

Pe baza structurii pachetelor adulmecate, am dezvoltat un script Python simplu pentru a trimite pachete TCP care solicită scrierea unui registru pe PLC-ul țintă. În acest scenariu, adresa IP a PLC-ului este 192.168.93.89.

Exemplu de cod Python pentru inițierea unei conexiuni Modbus TCP și trimiterea unei sarcini utile

Registrul PLC-ului a fost modificat după primirea pachetului nostru neautentificat malițios. 

Captură de pachet care arată protocolul Modbus/TCP cu un cod de funcție de scriere a registrelor multiple
Captură de ecran a unei diagrame logice ladder cu un bloc de funcții ADD pentru adăugarea valorilor sursă

În Micro Logix 1400, majoritatea instrucțiunilor matematice utilizează trei parametri: Sursa A, Sursa B și Destinația

Valorile pentru sursa A și sursa B pot proveni din două registre pe 16 biți numite N13:3 și N13:4. În plus, valorile din aceste registre pe 16 biți, cum ar fi N13:3 și N13:4, sunt limitate în intervalul de la -32,768 la +32,767. În cazul în care valorile din N13:3 și N13:4 sunt mari, rezultatul instrucțiunii match poate depăși intervalul maxim al tipului de date, ceea ce poate cauza blocarea PLC-ului. În consecință, pentru a induce un crash în PLC, este necesar să scriem valori aleatorii mari în toate registrele, inclusiv N13:3 și N13:4. Pentru a realiza acest lucru, am modificat scriptul nostru Python după cum urmează: 

Script Python care prezintă crearea unei sarcini utile Modbus TCP pentru scrierea mai multor registre

Simulați atacul

Pentru a simula un atac din lumea reală, bursierii noștri absolvenți OPSWAT au încercat să provoace o defecțiune la PLC-ul MicroLogix 1400 situat în laboratoarele CIP OPSWAT , presupunând că atât atacatorul, cât și PLC-ul sunt în aceeași rețea și pot comunica între ele. 

În starea normală de funcționare a PLC-ului MicroLogix 1400 de la OPSWAT Labs, cu PLC-ul în modul REMOTE RUN, toate valorile registrelor sunt valide și se încadrează în intervalul desemnat pentru tipurile lor de date, indicând faptul că programul utilizatorului funcționează corect. 

Captură de ecran a fișierului de date RSLogix 500 care prezintă valorile datelor N13 în format zecimal

La executarea scriptului nostru Python, numeroase pachete Modbus TCP vor fi trimise către PLC, solicitând scrierea unor valori aleatorii mari în toate registrele fără autentificare:

Captură de pachete care arată solicitări repetate Modbus TCP de scriere a registrelor multiple

După primirea acestor cereri de pachete malițioase, valorile tuturor registrelor, inclusiv N13:3 și N13:4, sunt setate la 16.990. Rezultatul operației ADD pe registrele N13:3 și N13:4 depășește intervalul valid al unui registru pe 16 biți. Această problemă provoacă o depășire a numărului întreg, ceea ce duce la o eroare și întrerupe funcționarea PLC-ului, după cum indică starea FAULTED.

RSLogix 500 afișează o condiție de eroare și valorile datelor pentru adresele N13

Bursierii noștri absolvenți OPSWAT au reușit să blocheze PLC-ul MicroLogix 1400 prin exploatarea CVE-2021-22659.

Remediere

Captură de ecran a unui tablou de bord al vulnerabilităților PLC care prezintă detalii CVE și vulnerabilități critice pentru Rockwell Automation MicroLogix

În fața unor vulnerabilități precum CVE-2021-22659, remedierea cuprinzătoare este esențială pentru protejarea sistemelor OT și ciberfizice. Mai jos sunt prezentate câteva dintre strategiile-cheie care pot fi utilizate pentru a preveni răspândirea atacurilor:

  1. Detectarea CVE-urilor cunoscute: Scanarea regulată a rețelelor pentru vulnerabilități precum CVE-2021-22659.
  2. Monitorizarea comportamentelor anormale: Evidențierea creșterilor neobișnuite ale frecvenței în comunicarea cu PLC-ul Micrologix 1400, care ar putea sugera un atac în curs de desfășurare de transfer neautorizat de date.
  3. Identificarea conexiunilor noilor dispozitive: Sistemul trebuie să detecteze momentul în care un dispozitiv nou se conectează la PLC. 
  4. Segmentarea rețelei: Izolarea dispozitivelor afectate poate ajuta la prevenirea răspândirii laterale a atacurilor, minimizând astfel impactul.

MetaDefender OT Security de la OPSWATrăspunde acestor nevoi prin detectarea CVE-urilor, monitorizarea continuă a rețelei pentru comportamente neobișnuite și identificarea conexiunilor neautorizate. Utilizând inteligența artificială, acesta învață tiparele normale de trafic, stabilește un comportament de bază și implementează politici pentru a alerta anomaliile. Acest lucru permite răspunsuri instantanee și informate la potențialele amenințări. 

În cazul unui atac care exploatează CVE-2021-22659, MetaDefender OT Security se integrează cu MetaDefender Industrial Firewall pentru a bloca comunicațiile suspecte pe baza regulilor stabilite. Firewall-ul utilizează inteligența artificială pentru a învăța modelele regulate de trafic și pentru a aplica politici de prevenire a conexiunilor neautorizate. 

Prin combinarea acestor capabilități de detectare, alertă și segmentare a rețelei, MetaDefender OT Security devine mecanismul de apărare ideal pentru mediile industriale, reducând semnificativ riscul și impactul amenințărilor cibernetice în mediile tehnologice operaționale.

Explorați modul în care platforma de securitate cibernetică de apărare în profunzime a OPSWATvă poate îmbunătăți și maturiza postura. Discutați astăzi cu un expert pentru o demonstrație gratuită.

Rămâneți la curent cu OPSWAT!

Înscrieți-vă astăzi pentru a primi cele mai recente actualizări ale companiei, povești, informații despre evenimente și multe altele.