Uzaktan Kontrol ve gözlem sistemi olan
bilgisayarlardan, haberleşme cihazlarından, algılayıcılardan veya diğer
cihazlardan oluşturulmuş denetlenebilen ve kontrol edilen bir sistemin genel adıdır.
SCADA sistemi,
hidroelektrik, nükleer güç üretimi, doğalgaz üretim ve işleme tesislerinde,
gaz, yağ, kimyasal madde ve su boru hatlarında pompaların, valflerin ve akış
ölçüm ekipmanlarının işletilmesinde, kilometrelerce uzunluktaki elektrik aktarım
hatlarındaki açma kapama düğmelerinin kontrolü ve hatlardaki ani yük
değişimlerinin dengelenmesi gibi çok farklı alanlarda kullanılabilmektedir.
SCADA sistemleri
hem donanım hem de yazılımdan oluşur. Tipik donanım, bir kontrol merkezine
yerleştirilen bir MTU, iletişim ekipmanı (örneğin, radyo, telefon hattı, kablo
veya uydu) ve aktüatörleri veya monitörleri kontrol eden bir RTU veya PLC' den
oluşan bir veya daha fazla coğrafi olarak dağıtılmış alan alanını içeri. MTU,
RTU veya PLC yerel işlemi kontrol ederken, bilgileri RTU giriş ve çıkışlarından
saklar ve işler. İletişim donanımı, bilgi ve verilerin MTU ve RTU lar veya
PLC'ler arasında ileri geri aktarılmasına izin verir. Yazılım, sisteme ne zaman
izleneceğini, hangi parametre aralıklarının kabul edilebilir olduğunu ve
parametrelerin kabul edilebilir değerler dışında değiştiğinde hangi yanıtı
başlatacağını söylemek için programlanmıştır.
Büyük endüstriyel
sistemleri uzaktan izleme ve kontrol etme kabiliyetine sahip olma, şirketlerin
ve endüstrilerin daha fazla hizmet sunabilmek için yeteneklerini
genişletmelerine izin verirken, aynı zamanda teknolojilerin işletilmesinden ve
mühendisliğinden sorumlu personelin erişebileceği verileri erişilebilir kılar.
Süreçler için
gözetleyici denetim ve veri toplama işlemlerini yapan sistemler için kullanılan
SCADA sistemleri, fabrikadaki süreçlerin (hammadde, üretim ve mamul madde
takibi vb.) denetiminde kullanılan çeşitli araçlarla (RTU, PLC vb.) birlikte
fabrikanın üretim kontrolü ve takibine yönelik bir alt yapı oluştururlar. Bu
altyapının imkan verdiği ölçüde üretim kaynakları planlaması (MRPII) ve işletme
kaynakları planlama (ERP) sistemleriyle gerekli bağlaşımlar kurularak ideal bir
yapıya erişilebilir.
SCADA sistemlerine
yönelik literatürde bilinen siber saldırılar analiz edilmiştir. Ayrıca EKS’de
kullanılan endüstriyel haberleşme protokollerinin istatistikleri çıkarılarak
bunlar içerisinde en sık kullanılan protokolün Modbus TCP olduğu tespit
edilmiştir. Ayrıca, Modbus TCP protokolünde kaynak IP adresi kontrolünün
yapılmadığı ve bunun da istimar edilebilecek bir güvenlik riski oluşturduğu
gözlenmiştir. SCADA sistemlerini oluşturan bileşenlerin ve bu sistemlerin
haberleşmesinde kullanılan endüstriyel protokollerin zafiyetleri açıklanarak
Modbus TCP protokolünün güvenliğinin iyileştirilmesi hedeflenmiştir.
SİMGELER VE KISALTMALAR
Bu çalışmada kullanılmış simgeler ve
kısaltmalar, açıklamaları ile birlikte aşağıda sunulmuştur.
AGA :
Amerika Gaz Birliği
API :
Amerikan Petrol Enstitüsü
ARP : Adres Çözümleme Protokolü
CIP :
Kritik Altyapı Koruma
CPNI
: Ulusal Altyapıları Koruma
Merkezi
DDOS : Dağıtık Hizmet Engelleme
DHS :
Ulusal Güvenlik Dairesi
DNP3
: Dağıtık Ağ Protokolü 3
DOS :
Hizmetin Engellemesi
EKS :
Endüstriyel Kontrol Sistemi
GRI : Gaz Araştırmaları Enstitüsü
HMI :
İnsan-Makina Arayüzü
IED :
Akıllı Elektronik Cihaz
IGT :
Gaz Teknolojileri Enstitüsü
ISO :
Uluslararası Standartlar Teşkilatı
MITM
: Araya Girme Saldırısı
MTU :
Merkezi Terminal Birimi
NERC
: Kuzey Amerika Elektrik
Emniyeti Kuruluşu
NIST :
Amerika Ulusal Standartlar ve Teknoloji Enstitüsü
NSTB :
Ulusal SCADA Deney Düzeneği
OSI :
Açık Sistem Ara Bağlantısı
PLC :
Programlanabilir Mantıksal Denetleyici
RINSE
: Gerçek Zaman Kapsamlı Ağ
Simülasyon Ortamı
RTU : Uzak Terminal Birimi
SCADA :
Danışmalı Kontrol ve Veri Toplama Sistemi
SQL :
Yapılandırılmış Sorgu Dili
STS :
Saldırı Tespit Sistemi
SCADA SİSTEMLER VE ALTYAPILAR
Elektrik
güç sistemlerinin kullanımında enerji, bankacılık, iletişim, üretim gibi kritik
altyapılarda SCADA sistemleri kullanılır. SCADA sistemleri kritik altyapı
endüstrisinde yaygın olarak kullanılan ve uzaktan denetleme ve kontrol sağlayan
sistemlerdir. SCADA sisteminin temel fonksiyonu, elektrik dağıtımından sorumlu
olan cihazları izlemek ve denetlemektir. Ek fonksiyon olarak hata tespiti,
ekipman izolasyonu ve restorasyonu, yük ve enerji yönetimi, otomatik sayaç
okuma ve trafo kontrolüdür.
SCADA,
gerçek zamanlı olarak yerel ve coğrafi olarak dağıtık işlemleri ölçen ve
raporlayan birbirinden bağımsız sistemler topluluğudur. Kullanıcıya uzaktaki
tesislere komut göndermeye ve oradan verileri çekmeye olanak sağlayan telemetri
ve veri toplama kombinasyonudur.
SCADA genel olarak aşağıda
bölümlerden oluşur:
Saha
tarafı:
● RTU (Remote Terminal Unit)
veya PLC ler
● İletişim sistemi
● Merkezi sunucular
Yazılım
tarafı:
● Kullanıcı arayüzü (Grafik
arayüz)
● İzleme sistemi
● Alarm Sistemi
● Veri analiz ve raporlama
sistemi
SCADA
sistemleri haberleşme sistemi olarak EIA standartları olan RS-232, RS-422 ve
RS-485 standartlarını kullanmaktadır. Bu protokollere ek olarak daha bir çok
standart protokol de kullanılmaktadır.
Kullanım
alanları:
● Bir prosesin olduğu
endüstriyel tesisler (Çimento, Şeker, İlaç, Boya vb. fabrikalar)
● Enerji nakil hatları
● Barajlar, Temiz – atıksu
arıtma tesisleri
● Raylı sistemler
● Trafik sistemleri
● Tüneller
● Doğalgaz tesisleri
● Gıda fabrikaları
● Nükleer tesisler
SCADA
kontrol sisteminin temel bileşenleri MTU (Master Terminal Unit), RTU (Remote
Terminal Unit) ve haberleşme ağıdır.
Merkezi Terminal Birimi (MTU) :
Merkezi
denetleyici veya merkezi terminal birimi olarak isimlendirilen MTU, yerel bir
ağ (LAN) ile veya geniş alan ağı (WAN) ile bir sunucu veya bir grup
bilgisayarın ana sunucuyla bağlanma formudur.
Görevleri:
● SCADA bileşenlerinin
haberleşmesini izlemek ve denetlemek
● HMI yazılımı kullanarak SCADA
haberleşmesi ile ilgili bilgi ve verileri grafiksel bir arayüz ile
görüntülemek.
● Saha cihazlarına komut
göndermek ve almak.
Uzak Terminal Birimi (RTU):
SCADA
mimarisinde Slave istasyonları olarak davranırlar. SCADA tarafından kontrol
edilen ve izlenen ekipman veya makinalara bağlı olan saha cihazlarından oluşur.
Bu cihazlar parametreleri izlemek için sensörleri ve sistemin modüllerini
kontrol etmek amacıyla aktüatörü veya uyarıcıyı bünyesinde bulundurur. RTU
lar, MTU istasyonuna geri göndermek
üzere sensörlerden gerçek zamanlı bilgileri gönderir ve ana istasyondan gelen
bilgileri alır. RTU cihazları coğrafi olarak farklı birçok konumda
konuşlandırılarak dağıtık bir şekilde gerçek zamanlı bilgileri merkezi
istasyona LAN/WAN bağlantılarını kullanarak gönderir.
Programlanabilir mantıksal
denetleyici (PLC):
işlemleri
ve kontrol mekanizmasını uygulamak için girilen talimatları depolamak ve
sıralama, zamanlama ve sayma gibi fonksiyonları uygulamak için programlanabilir
hafızayı kullanabilen mikroişlemci tabanlı denetleyicilerin özel bir formudur.
Mantıksal ve anahtarlama işlemlerinin uygulanması bu cihazlardaki öncelikli
işlevdir ve içerisinde yazılımsal olarak çok sayıda röle, saymaç, zamanlayıcı
ve veri depolama ünitesi mevcuttur.
SCADA haberleşme protokolleri
SCADA
sistemleri, MTU ve bir veya daha fazla RTU’lar arasında iletişim kurmak için
kullanılan açık veya özel haberleşme protokollerini kullanarak tasarlanmıştır.
SCADA protokolleri alt istasyon bilgisayarlarının, RTU’ların, IED’lerin ve
MTU’ların birbiriyle haberleşmesi için transmisyon özelliklerini sağlar.
En
çok kullanılan SCADA haberleşme protokolleri:
● DNP3
● Modbus
● Profinet
Modbus protokolü
Modbus
protokolü SCADA ya özel geliştirilmiş ve endüstriyel bir protokoldür. Modbus
farklı tip ağlarda bağlı cihazlar arasındaki server/client haberleşmesi için
uygulama katmanı mesajlaşma protokolüdür. Modbus iletişimi bir Master ve çoklu
Slave arasındadır. Master, genellikle çalışan bir PC veya HMI cihazıdır, Slave
ise genellikle bir PLC veya PID kontrolörleri veya sayaçları gibi akıllı
cihazlardır. Slave ler ICS verilerini toplamak ve ICS parametrelerini
değiştirmek için Master ile iletişim kurarlar. Slave ler, Master'ın sorgusuna
veri bildirme yanıtını verir ve Master komutunun altındaki parametreleri
değiştirir.
ModBus
‘ın üç iletişim modu vardır: ASCII, RTU ve TCP / IP. Modbus / TCP modunda, tüm
ana ve Slave lerin kendi IP adresleri vardır, ISS ‘ler tarafından
tanımlanabilir ve Ethernet, HUB veya Switch ile birbirine bağlanabilir. ASCII
ve RTU modunda, Slave ler Slave kimliği ile tanımlanır ve seri hatlarla (RS232,
RS485 veya RS422) Master ’ a bağlanır.
Resim
: ModBus RTU protokolünün mesaj yapısı
Resim : ModBus TCP Mesaj yapısı
|
ModBus
TCP Server Çalışma Döngüsü
- Client sorgu (MODBUS
sorgusu)
gönderdiğinde, TCP/IP yığın veriyi alır
- Sorgu bir bağlantı isteği veya ModBus sorgusu olabilir
Sorgu bir bağlantı isteği ise;
● Erişim kontrolü kontrol edilir ve kabul
edilir.
● Bağlantı nesnesini ve ModBus çerçevesi için
bellekte yer tahsis edilir.
● Sorgu bir ModBus isteği ise, tüm ModBus
Sorgusu okunabilir.
3.
Alınan MBAP çerçevesi analiz edilmek için ServerTask a gönderilir. Bir
hata
oluşursa Exception çerçevesi oluşturulur, aksi
takdirde yanıt oluşturulur.
4.
Yanıt ağ üzerinden gönderilir. Bağlantı nesnesindeki işlem ağ üzerinden
alınan
verilerle yapılır.
ModBus
TCP Client Çalışma Döngüsü
- Sorgu kullanıcı uygulamasından
gelir.
- Client ın görevi ModBus
sorgusunu alır, Sorgu alındığında
sorguya karşılık gelen yanıtla ilişkilendirir.
- MODBUS sorgusu, TCP_Management
öğesine gönderilir.
- Server ile bağlantı kurulmuşsa,
mesaj ağ üzerinden gönderilebilir. Aksi takdirde, mesaj ağ üzerinden
gönderilmeden önce bir bağlantı açılır.
- Ağdan bir yanıt alındığında,
veri TCP/IP
yığınına yazılır. Bağlantı kurulmuşsa, MBAP okunur. Client ModBus onayını alır.
- Yanıt kullanıcı uygulamasına yazılır ve işlem kaynağı serbest bırakılır.
Modbus
protokolünün temel fonksiyonları:
● Okuma için kontrol sargısı
komutları ve tekli veya grup sargı ayarlamaları
● Girdi gruplarının giriş
durumlarını okumak için girdi kontrol komutları
● Bekleyen yazmaçları okumak ve
ayarlamak için yazmaç kontrol komutları
● Hata bulma testi ve fonksiyon
raporu
● Program fonksiyonları
● Sorgulama kontrol
fonksiyonları
● Sıfırlama
SCADA Sistemi Güvenlik Açıkları
Modbus
iletişimi bir Master (veya istemci olarak adlandırılır) ve çoklu Slave (veya
sunucu olarak adlandırılır) arasındadır. Master, genellikle çalışan bir PC veya
HMI cihazıdır, Slave ise genellikle bir PLC veya PID kontrolörleri veya
sayaçları gibi akıllı cihazlardır. Slave ’ler, Master ’ın sorgusuna veri
bildirme yanıtını verir ve Master komutunun altındaki parametreleri değiştirir.
Modbus açıklıkları ve saldırıları:
Modbus
sistemlerine ve ağlarına yönelik saldırılar bu protokolün özelliklerine,
uygulamalarına ve altyapısına göre istismar edilir. Modbus Seri Protokolüne
yapılan saldırılar Master ve Slave cihazlarına ve seri haberleşme ağına yönelik
gerçekleşirken, Modbus TCP ye yapılan saldırılar IP ağına, Master ve Slave
cihazlarına gerçekleştirilir. Bu saldırılarda mesajın içeriğine erişilmesinden
dolayı taşınan bilginin gizliliğinin ifşa olmasına sebep olabilir.
SCADA Sızma Testi
Modbus
protokolü açık metin olarak iletişim kurar; ve hiçbir kimlik doğrulama yoktur.
Bu, bir saldırganın Modbus HMI ’ye (insan makine arayüzü) veya Modbus
cihazlarına doğrudan ağ bağlantısı kurduktan sonra Modbus tabanlı ICS'yi
kolayca kontrol edebilmesi anlamına gelir.
Lab
ortamının hazırlanması:
ModBus
Client Modbus Master ve Saldırgan olarak lab ortamı hazırlandı Aşağıda Resim 1
de gösterilmiştir.
Resim
1 : Lab ortamı
|
Slave Master iletişimi için simulasyon arçları olarak ModbusPal.jar ve QModMaster uygulamaları kullanılmıştır.
ModbusPal.jar
uygulaması ile Slave ler oluşturulabilir ve uzaktaki bir Modbus Master
uygulamsının ModbusPal uygulamasındaki
oluşturulan sanal Slave ‘e erişimine izin vermektedir. Aşağıda Slave
oluşturulmuş ve Bu slave için Holding Register ‘lar ve Coil ler tanımlanmıştır.
Gerekli ayarlamalar yapıldıktan sonra Run komutu vererek Slave hazır
hale getirilir. Aşağıda Resim 2 de bu yapı gösterilmektedir.
Resim
2: ModbusPal.jar uygulaması
|
Master
Uygulaması olarak kullanılan QModMaster
ile ModbusPal.jar uygulaması üzerindeki slave ile bağlantı kurulmuş ve
okunan değerler aşağıdaki Resim 3 te gösterilmiştir.
Resim
3 : QModMaster uygulaması
|
QModMaster
uygulaması ile Fonksiyon kodu 0x06 ile 3 değer olan 0 değeri hexadecimal 16
decimal 22 ile değiştirilmiş ve Wireshark paket analizi Resim 4 te
gösterilmişti.
Resim
4 : Wireshark paket analizi
|
Bu
aşamadan sonra Ağda dahil olan saldırgan gözünden Modbus ların tespiti Slave
ler üzerindeki Register üzerindeki dataların okunması ve bu Register üzerindeki
dataların değerlerinin değiştirilmesi gösterilecektir.
Pentest
aşamalarında öncelikle sistemlerin tespiti ve ağın haritalanması
gerçekleştirilir. Bu aşamaların ilk adımı nmap ile tüm ağı taramaktır. Modbus
TCP protokolü 502 ve 503 numaralı port üzerinde çalışmaktadır. Basit bir nmap
taraması, örneğin: nmap -sT
<network_adresi> -p502,503 ile Ağda bulunan modbus lar tespit
edilebilir. Bu çalışmada biz, tüm tespit Register okuma, Register a değer
yazma, Sarmal okuma ve yazma adımlarını da içinde barındıran smod aracı ile
testimizi gerçekleştireceğiz.
Smod
aracı, modbus protokolünde test yapmak için ihtiyaç duyabileceğiniz her türlü
tanısal ve manipüle etme özelliğe sahip modüler bir araçtır. Python ve Scapy
kullanarak tam bir Modbus protokol uygulamasıdır. Bu yazılım Linux ve Mac OS
X'te python 2.7.x altında çalıştırılabilir. Resim 5 bu aracın içinde
barındırdığı modülleri göstermektedir.
Resim
5 : Smod aracı modülleri.
|
1.
Adım modbus ların tespiti için modbus/scanner/discover modülünün kullanılması
Aşağıda Resim 6 da gösterilmiştir. Resim 7 de bulunan modbus Protokolü
gösterilmiştir.
Resim
6: Smod Discover modülü.
|
Resim
7 : Tespit edilen Modbus Protokolü.
|
3.
Aşama da Modbus üzerinde bulunan Register değerleri readHoldingRegister modülü
ile okunmuştur Resim 9.
Resim
9: Register Değerlerinin okunması.
|
4.
Aşama Register Değerlerinin değiştirilmesi writeSingleRegister modülü ile
gerçekleştirilmiştir ve register 3 adresindeki 0 değeri hexadecimal 16 decimal
22 olarak slave e yazılmıştır Resim 10.
Resim
10 : Register değerinin reğiştirilmesi.
|
Aşağıda
Resim 11 de son adıma(Register değerinin
değiştirilmesi) ait wireshark ile saldırı anında yakalanan paket ve içeriği
gösterilmiştir.
Resim
11 : Saldırı anında yakalanan paket.
|
SONUÇ VE DEĞERLENDİRMELER
Modbus
Master, Modbus Slave ve saldırgan makinaları arasında akan Modbus TCP paketleri
Wireshark aracı kullanılarak yakalanıp analiz edilmiştir. İlk etapta Modbus
Master ve Modbus Slave makinaları arasında akan normal Modbus TCP paketleri
yakalanmış ve daha sonrasında saldırgan makinasıyla smod aracı modülleri
kullanılarak manipüle edilmiş Modbus TCP paketleri yakalanmıştır. Böylece
normal Modbus TCP paketleriyle manipüle edilmiş Modbus TCP paketleri
karşılaştırılarak analiz edilmiştir.
Yapılan
analiz sonucunda Modbus TCP protokolünün kaynak IP kontrolünü yapmadığı, akan
paketlerin şifrelenmeden açık metin şekilde gönderildiği, araya girerek iki
cihaz arasında akan bütün paketlerin okunabildiği ve Smod aracı kullanılarak
paketler üzerinde manipülasyon işlemlerinin gerçekleştirilebildiği analiz
edilmiştir.
İçerik sahibi: Erhan YAZAN
Hiç yorum yok:
Yorum Gönder