Yapay Zeka Destekli Siber Saldırılar: Akıllı Tehditler Nasıl Tespit Edilir, Önlenir ve Savunulur?

Şimdi Oku
Site çevirileri için yapay zeka kullanıyoruz ve doğruluk için çaba göstersek de her zaman %100 kesin olmayabilir. Anlayışınız için teşekkür ederiz.

OT Sistemlerini Uzaktan Saldırılara Karşı Koruma: MetaDefender OT Security™ Micrologix™ 1400 Kontrolörünü CVE-2021-22659'dan Nasıl Korur?

tarafından OPSWAT
Bu Gönderiyi Paylaş
OPSWAT Burs Programı Katılımcıları

Endüstriyel kontrol sistemlerini ve OT ortamlarını uzaktan saldırılara karşı korumak, özellikle Rockwell Automation'ın yaygın olarak kullanılan Micrologix 1400 Kontrolörünü hedef alan CVE-2017-14469 ve şimdi CVE-2021-22659 gibi güvenlik açıkları nedeniyle her zamankinden daha kritiktir. OPSWAT Burs Programı öğrencileri bu güvenlik açığını kontrollü bir ortamda test ederek güvenlik ihtiyacını vurguladılar. 

Bu blogda, öğrencilerin saldırganların sistemlerin çökmesine neden olmak için güvenlik açığından nasıl yararlanabileceklerini ve PLC işlemlerini bozmak için uygun girdi doğrulama eksikliğinden nasıl yararlanılabileceğini nasıl gösterdiklerini keşfediyoruz. 

PLC nedir? Rockwell Automation Micrologix 1400 Açıklaması

PLC (Programlanabilir Mantık Denetleyicisi), makineleri ve diğer endüstriyel işlemleri kontrol ederek süreçleri otomatikleştirmek için tasarlanmış endüstriyel bir bilgisayardır. Zorlu ortamlarda çalışır ve sensör girişine dayalı olarak belirli görevleri yerine getirmek üzere programlanır. Rockwell Automation'ın MicroLogix 1400 Kontrolörü, küçük ve orta ölçekli uygulamalarda yaygın olarak kullanılan kompakt ve modüler bir PLC'dir. Maliyet etkinliği ve esnekliği ile bilinen bu ürün, çeşitli iletişim protokollerini destekler ve cihazlarla arayüz oluşturmak için dijital ve analog I/O seçenekleri sunar.

Endüstriyel kontrol sistemi izleme için kullanılan bir OPSWAT cihazının görüntüsü

Programlama tipik olarak Rockwell Automation'ın yazılımı kullanılarak merdiven mantığı aracılığıyla yapılır ve kullanıcıların kontrol dizileri oluşturmasına olanak tanır. MicroLogix 1400 çok yönlüdür, makine kontrolü ve proses otomasyonu gibi görevler için uygundur. Modülerliği, kullanıcıların sistemi belirli uygulama gereksinimlerine göre genişletmesine ve özelleştirmesine olanak tanır.

CVE-2021-22659'a Giriş

Ocak 2021'de Rockwell Automation, Hindistan Veermata Jijabai Teknoloji Enstitüsü (VJTI) COE-CNDS'den Parul Sindhwad ve Dr. Faruk Kazi'den MicroLogix™ 1400 kontrol cihazındaki bir güvenlik açığı ile ilgili bir rapor aldı. Sürüm 21.6 ve önceki sürümlerde, uzaktan kimliği doğrulanmamış bir saldırganın özel olarak hazırlanmış bir Modbus paketi göndermesine olanak tanıyan ve saldırganın kayıt defterindeki rastgele değerleri almasını veya değiştirmesini sağlayan bir güvenlik açığı tespit ettiler. Başarılı bir şekilde istismar edilirse, bu bir arabellek taşmasına yol açarak hizmet reddi durumuna neden olabilir. HATA LED'i KIRMIZI renkte yanıp söner ve iletişim kesilebilir. Hizmet reddi durumundan kurtarma, hatanın kullanıcı tarafından temizlenmesini gerektirir. 

NVD bu güvenlik açığını Yüksek önem derecesi olarak değerlendirmiştir. 

NIST NVD'den 8,6 gibi yüksek bir önem derecesi puanı gösteren CVSS 3.x metrikleri

Saldırı Aşamaları

Bir PLC MicroLogix siber saldırısının aşamalarını gösteren diyagram

Savunmasız MicroLogix 1400 PLC'ye ağ erişimi olan uzak, kimliği doğrulanmamış bir saldırgan, kayıttaki değerleri değiştirmek için özel olarak hazırlanmış bir paket gönderebilir. Bu durum potansiyel olarak cihaz için bir hizmet reddi durumuna neden olarak sistemin bozulmasına ve çalışmama süresine yol açabilir. Böyle bir olay, kuruluşun üretim operasyonlarını ve diğer iş faaliyetlerini önemli ölçüde kesintiye uğratabilir.

Modbus Protokolü

Modicon tarafından 1979 yılında geliştirilen Modbus protokolü, akıllı cihazlar arasında istemci-sunucu iletişimi kurmak için tasarlanmış bir mesajlaşma yapısıdır. Başlangıçta Modicon'un PLC'leri ile kullanılmak üzere tasarlanmış, o zamandan beri endüstriyel elektronik cihazlar arasındaki iletişim için standart bir iletişim protokolü haline gelmiştir. 

Ethernet (Modbus TCP) ve seri hatlar (Modbus RTU ve Modbus ASCII) için Modbus protokolleri vardır. Modbus RTU (Uzak Terminal Birimi), verileri seri iletişim yoluyla doğrudan ikili biçimde iletir ve Modbus TCP (İletim Kontrol Protokolü), Modbus protokol verilerini TCP/IP ağları üzerinden iletim için TCP paketlerine yerleştirir. 

İletişim protokolleri için Modbus yığını ve OSI katmanlarının karşılaştırma tablosu

Modbus Mesaj Yapısı

Modbus, istemcinin bir Modbus cihazına bir istek ilettiği ve cihazın daha sonra bir yanıt verdiği bir istek-yanıt protokolüdür.

İstemci ve sunucu arasındaki Modbus işlem iletişimini gösteren diyagram

Birincilden ikincile gönderilen bir Modbus mesajı ikincilin adresini, "komutu " (örn. "kayıt oku" veya "kayıt yaz"), verileri ve bir kontrol toplamını (LRC veya CRC) içerir.

Başlıklar ve fonksiyon kodları ile Modbus RTU mesajının yapısı

Veri adresleri, verileri okurken veya değiştirirken Modbus sorgu mesajlarında kullanılır. Modbus dört Veri Tipi tanımlar: Bobin, Giriş Durumu, Giriş Kaydı ve Tutma Kaydı. Bunlardan ikisi Bobinler ve Ayrık Girişler olarak adlandırılan açma-kapama (1 bit) değerlerini depolar ve ikisi de Kayıtlar olarak adlandırılan 16 bitlik kelimeler olarak sayısal değerleri depolar. Her biri ya salt okunur ya da okuma/yazma özelliğine sahiptir.

Veri TipiErişimTanım
BobinOkuma-yazmaTek bit çıkışlar.
Ayrık GirişSalt okunurTek bit girişler.
Giriş KaydıSalt okunur16 bit giriş kayıtları.
Holding KaydıOkuma-yazma16 bit çıkış kayıtları.

Modbus fonksiyon kodlarının üç kategorisi vardır:

  • Genel Fonksiyon Kodları - Kullanıcı tanımlı kodlar hariç 1'den 127'ye kadar. 
  • Kullanıcı Tanımlı Fonksiyon Kodları - 65 ila 72 ve 100 ila 110 arasında iki aralıkta. 
  • Ayrılmış Fonksiyon Kodları - Bazı şirketler tarafından eski ürünler için kullanılır ve genel kullanıma açık değildir.
Fonksiyon tipiİşlev adıFonksiyon kodu
Veri ErişimiBit erişimiFiziksel Ayrık GirişlerAyrık Girişleri Okuma2
Dahili Bitler veya Fiziksel Bobinler

Bobinleri Okuyun

Tek Bobin Yaz

Çoklu Bobin Yazma

1

5

15

16 bit erişimFiziksel Giriş KayıtlarıGiriş Kayıtlarını Okuma4
Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları

Çoklu Tutma Kayıtlarını Okuma

Tek Tutma Kaydı Yaz

Birden Fazla Tutma Kaydı Yazma

Çoklu Kayıtları Okuma/Yazma

Maske Yazma Kaydı

Okuma FIFO Kuyruğu

3

6

16

23

22

24

Dosya Kayıt Erişimi

Dosya Kaydını Oku

Dosya Kaydı Yaz

20

21

Teşhis

İstisna Durumunu Oku

Teşhis

Com Olay Sayacını Al 

Com Olay Günlüğünü Al 

Slave Kimliğini Bildir 

Cihaz Tanımlamasını Oku 

7

8

11

12

17

43

DiğerKapsüllenmiş Arayüz Aktarımı43
İşlev türü: Veri Erişimi
Alt tip: Bit erişimi
Kategori: Fiziksel Ayrık Girişler
Fonksiyon adı: Ayrık Girişleri Oku
Fonksiyon kodu: 2
İşlev türü: Veri Erişimi
Alt tip: Bit erişimi
Kategori: Dahili Bitler veya Fiziksel Bobinler
Fonksiyon adı: Bobinleri Oku
Fonksiyon kodu: 1
İşlev türü: Veri Erişimi
Alt tip: Bit erişimi
Kategori: Dahili Bitler veya Fiziksel Bobinler
Fonksiyon adı: Tek Bobin Yaz
Fonksiyon kodu: 5
İşlev türü: Veri Erişimi
Alt tip: Bit erişimi
Kategori: Dahili Bitler veya Fiziksel Bobinler
Fonksiyon adı: Birden Fazla Bobin Yaz
Fonksiyon kodu: 15
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Fiziksel Giriş Kayıtları
İşlev adı: Giriş Kayıtlarını Oku
Fonksiyon kodu: 4
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları
Fonksiyon adı: Çoklu Tutma Kayıtlarını Oku
Fonksiyon kodu: 3
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları
Fonksiyon adı: Write Single Holding Register
Fonksiyon kodu: 6
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları
Fonksiyon adı: Çoklu Tutma Kayıtlarını Yaz
Fonksiyon kodu: 16
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları
Fonksiyon adı: Çoklu Kayıtları Oku/Yaz
Fonksiyon kodu: 23
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları
Fonksiyon adı: Maske Yazma Kaydı
Fonksiyon kodu: 22
İşlev türü: Veri Erişimi
Alt tip: 16 bit erişim
Kategori: Dahili Kayıtlar veya Fiziksel Çıkış Kayıtları
Fonksiyon adı: FIFO Kuyruğunu Oku
Fonksiyon kodu: 24
İşlev türü: Veri Erişimi
Alt tür: Dosya Kaydı Erişimi
Fonksiyon adı: Dosya Kaydını Oku
Fonksiyon kodu: 20
İşlev türü: Veri Erişimi
Alt tür: Dosya Kaydı Erişimi
Fonksiyon adı: Dosya Kaydı Yaz
Fonksiyon kodu: 21
Fonksiyon tipi: Teşhis
Fonksiyon adı: İstisna Durumunu Oku
Fonksiyon kodu: 7
Fonksiyon tipi: Diyagnostik
Fonksiyon adı: Diyagnostik
Fonksiyon kodu: 8
İşlev türü: Teşhis
Fonksiyon adı: Com Olay Sayacını Al
Fonksiyon kodu: 11
İşlev türü: Teşhis
Fonksiyon adı: Com Olay Günlüğünü Al
Fonksiyon kodu: 12
Fonksiyon tipi: Teşhis
Fonksiyon adı: Slave ID'yi bildir
Fonksiyon kodu: 17
Fonksiyon tipi: Teşhis
Fonksiyon adı: Cihaz Tanımlamasını Oku
Fonksiyon kodu: 43
İşlev türü: Diğer
İşlev adı: Encapsulated Interface Transport
İşlev kodu: 43

İstismar

Güvenlik Açığı Analizi

OPSWAT Yüksek Lisans Bursiyerlerimiz, analiz yoluyla Modbus TCP iletişimi sırasında protokolün iletilen paketler için kimlik doğrulama ve şifrelemeden yoksun olduğunu keşfetti. Ayrıca, MicroLogix 1400 PLC'de girdi doğrulaması düzgün bir şekilde uygulanmamaktadır. Sonuç olarak, uzaktaki bir saldırgan Modbus TCP paketini paket koklama yoluyla analiz edebilir ve Modbus TCP protokolü aracılığıyla kimlik doğrulaması olmadan PLC'ye herhangi bir istek gönderebilir. MicroLogix 1400 PLC cihazının giriş doğrulama eksikliği nedeniyle, uzaktan kimliği doğrulanmış bir saldırgan rastgele değerlere sahip çok sayıda paket gönderebilir ve bu da PLC'nin çökmesine neden olabilir.

Kayıt Üzerine Yazma

Başlangıçta, PLC'deki kayıtları okumak veya yazmak için kullanılan Modbus TCP paketlerini yakalamaya çalıştık. Bunu başarmak için, MicroLogix 1400 PLC'deki kayıtların okunmasını ve yazılmasını kolaylaştıran Modbus Poll adlı bir uygulama tarafından oluşturulan paketleri inceledik.

Tek kayıtların yazılması için Modbus Poll aracı arayüzünü gösteren ekran görüntüsü

Ağ arayüzünden gelen tüm paketleri yakalamak için Wireshark kullanarak, tek bir kayıt yazmak için Modbus TCP paketini tanımlayabiliriz:

Tek bir kayıt yazmak için işlev kodu içeren bir Modbus işlemini gösteren paket yakalama
İşlem ve protokol tanımlayıcıları dahil olmak üzere Modbus TCP yükünün ayrıntılı dökümü

Koklanan paketlerin yapısına dayanarak, hedef PLC'de bir kaydın yazılmasını talep eden TCP paketleri göndermek için basit bir Python betiği geliştirdik. Bu senaryoda PLC'nin IP adresi 192.168.93.89'dur.

Bir Modbus TCP bağlantısı başlatmak ve bir yük göndermek için Python kod örneği

Kötü niyetli kimliği doğrulanmamış paketimizi aldıktan sonra PLC'nin kaydı değiştirildi. 

Çoklu kayıt yazma işlev koduyla Modbus/TCP protokolünü gösteren paket yakalama
Kaynak değerleri eklemek için bir ADD fonksiyon bloğu içeren bir merdiven mantık diyagramının ekran görüntüsü

Micro Logix 1400'de çoğu matematik talimatı üç parametre kullanır: Kaynak A, Kaynak B ve Hedef

Kaynak A ve Kaynak B için değerler N13:3 ve N13:4 adlı iki 16 bitlik kayıttan gelebilir. Ayrıca, N13:3 ve N13:4 gibi bu 16 bitlik kayıtlardaki değerler -32,768 ila +32,767 aralığında sınırlandırılmıştır. N13:3 ve N13:4 değerleri büyükse, eşleştirme komutunun sonucu veri tipinin maksimum aralığını aşarak PLC'nin çökmesine neden olabilir. Sonuç olarak, PLC'de bir çökmeye neden olmak için, N13:3 ve N13:4 dahil olmak üzere tüm kayıtlara büyük rastgele değerler yazmak gerekir. Bunu başarmak için Python betiğimizi aşağıdaki gibi değiştirdik: 

Birden fazla kayıt defteri yazmak için bir Modbus TCP yükünün oluşturulmasını gösteren Python betiği

Saldırıyı Simüle Edin

Gerçek dünyadan bir saldırıyı simüle etmek için, OPSWAT Mezun Bursiyerlerimiz, hem saldırganın hem de PLC'nin aynı ağ üzerinde olduğu ve birbirleriyle iletişim kurabildiği varsayımı altında, OPSWAT CIP Laboratuvarlarında bulunan MicroLogix 1400 PLC'de bir çökmeye neden olmaya çalıştılar. 

OPSWAT Laboratuvarlarındaki MicroLogix 1400 PLC'nin normal çalışma durumunda, PLC UZAKTAN ÇALIŞTIRMA modundayken, tüm kayıt değerleri geçerlidir ve veri türleri için belirlenen aralıkta yer alır, bu da kullanıcı programının doğru çalıştığını gösterir. 

N13 veri değerlerini ondalık biçimde gösteren RSLogix 500 veri dosyasının ekran görüntüsü

Python betiğimizin çalıştırılmasının ardından, PLC'ye çok sayıda Modbus TCP paketi gönderilecek ve kimlik doğrulaması olmadan tüm kayıtlara büyük rastgele değerlerin yazılması istenecektir:

Tekrarlanan Modbus TCP yazma çoklu kayıt isteklerini gösteren paket yakalama

Bu kötü niyetli paket istekleri alındıktan sonra, N13:3 ve N13:4 dahil olmak üzere tüm kayıtların değerleri 16,990'a ayarlanır. N13:3 ve N13:4 kayıtlarındaki ADD işleminin sonucu 16 bitlik bir kaydın geçerli aralığını aşar. Bu sorun bir tamsayı taşmasına neden olarak bir hataya yol açar ve PLC'nin çalışmasını FAULTED (ARIZALI) durumuyla gösterildiği gibi kesintiye uğratır.

RSLogix 500, N13 adresleri için bir hata durumunu ve veri değerlerini gösterir

OPSWAT Mezun Arkadaşlarımız CVE-2021-22659'dan yararlanarak MicroLogix 1400 PLC'yi başarılı bir şekilde çökerttiler.

İyileştirme

Rockwell Automation MicroLogix için CVE ayrıntılarını ve kritik güvenlik açıklarını gösteren bir PLC güvenlik açığı panosunun ekran görüntüsü

CVE-2021-22659 gibi güvenlik açıkları karşısında, OT ve siber-fiziksel sistemlerin korunması için kapsamlı iyileştirme çok önemlidir. Aşağıda, saldırıların yayılmasını önlemek için kullanılabilecek bazı temel stratejiler verilmiştir:

  1. Bilinen CVE'leri tespit etme: CVE-2021-22659 gibi güvenlik açıkları için ağları düzenli olarak taramak.
  2. Anormal davranışlar için izleme: Micrologix 1400 PLC'ye iletişim sıklığındaki olağandışı artışların işaretlenmesi, bu da devam eden bir yetkisiz veri aktarımı saldırısına işaret edebilir.
  3. Yeni cihaz bağlantılarını tanımlama: Sistem, PLC'ye yeni bir cihaz bağlandığında bunu algılamalıdır. 
  4. Ağ segmentasyonu: Etkilenen cihazların izole edilmesi, saldırıların yanal olarak yayılmasını önlemeye yardımcı olabilir ve böylece etkiyi en aza indirir.

OPSWAT'ın MetaDefender OT Security , CVE'leri tespit ederek, olağandışı davranışlar için ağı sürekli izleyerek ve yetkisiz bağlantıları belirleyerek bu ihtiyaçları karşılar. Yapay zeka kullanarak normal trafik modellerini öğrenir, temel davranışları belirler ve anormallikleri uyarmak için politikalar uygular. Bu, potansiyel tehditlere anında ve bilinçli yanıtlar verilmesini sağlar. 

CVE-2021-22659'dan yararlanan bir saldırı durumunda MetaDefender OT Security , belirlenen kurallara göre şüpheli iletişimleri engellemek için MetaDefender Industrial Firewall ile entegre olur. Güvenlik duvarı, düzenli trafik modellerini öğrenmek ve yetkisiz bağlantıları önlemek için politikaları uygulamak için yapay zeka kullanır. 

Bu algılama, uyarı ve ağ segmentasyonu özelliklerini bir araya getiren MetaDefender OT Security , endüstriyel ortamlar için ideal bir savunma mekanizması haline gelerek operasyonel teknoloji ortamlarındaki siber tehditlerin riskini ve etkisini önemli ölçüde azaltır.

OPSWAT'ın derinlemesine savunma siber güvenlik platformunun duruşunuzu nasıl geliştirebileceğini ve olgunlaştırabileceğini keşfedin. Ücretsiz demo için bugün bir uzmanla konuşun.

OPSWAT ile Güncel Kalın!

En son şirket güncellemelerini almak için bugün kaydolun, hikayeler, etkinlik bilgileri ve daha fazlası.