top of page
  • Writer's pictureYusuf Yılmaz Akdemir

Use cryptographic and / or checksum integrity checks for PLC code

Gizlilik, bütünlük ve erişilebilirlik bilgi güvenliğinin çokça bahsedilen ve sıklıkla duyduğunuz temel bileşenleridir. Endüstriyel kontrol sistemlerinin güvenliğinden bahsederken erişilebilirliğin yani bilginin yetkili kişilerce ulaşılabilir ve kullanılabilir durumda olması diğer iki parametreye göre ön plana çıktığı değerlendirilmektedir. Bununla birlikte bütünleşik bir güvenlik yaklaşımından bahsederken diğer iki parametrenin de göz ardı edilmemesi önem arz etmektedir. Bu yüzden özellikle PLC tarafında oluşturulacak yazılımının bütünlüğünün korunması ve ilgili yazılımın sadece yetkili kişiler tarafından değiştirilmesinin garanti altına alınması sağlanmalıdır.

PLC (Programmable Logic Controller) kod bütünlüğünü korumak ve herhangi bir değişiklikte alarm üretmek için “hash” veya “chechsum” kullanılmalıdır. Genel itibarıyla “hash” mekanizması yazılımın harici olarak okunamaz ve tahmin edilemez hale gelmesini sağlayabilir ancak PLC CPU’ları normal işlem döngüsü sırasında bu hash’in oluşmasını ve kontrol edilmesini sağlarsa ciddi operasyonel kayıplara sebep olabilir. Bunun yerine mühendislik bilgisayarı veya başka bir alan içerisinde ilgili yazılımın hash’lenmesi fayda sağlayacaktır. PLC yazılımları bütünlük kontrolü için daha uygun olan ve bazı PLC üreticileri tarafından da desteklenen yöntem checksum kullanılmasıdır. Oluşturulan yazılım PLC tarafına yüklendiğinde bu yazılıma özgün bir checksum değeri üretilir. Yazılım içerisinde yapılacak herhangi bir değişiklikte checksum değeri de değişecektir.


Cheksum SAT(Site Acceptance Test) sonrasında dökümante edilip saklanmalı ve garanti koşullarının bir parçası olmalıdır. Ayrıca checksum değeri PLC değişkenlerinde saklanmalı ve değiştiğinde HMI tarafında bir alarm üretilmelidir. Bunun yanı sıra historian sunucularında da bu değer saklanmalıdır. Üretici tarafından checksum özelliği desteklenmiyorsa harici yazılımlar kullanılarak bu ihtiyaç giderilebilir.

Siemens S7-1500 ailesinde “GetChecksum” fonksiyonu kullanılarak checksum değeri okunabilir. Rockwell ControlLogix PLC ailesinde ise aşağıda tarif edildiği gibi checksum değeri okunabilir:


· “Controller Properties Dialog” kutusu altında, “Change to Detect” butonunu seçilir.


· Açılacak ekran üzerinden izlenecek bütün ögeler seçilir.



· “LINT” veya “DINT” türünde bilgileri alacak bir tag oluşturulur.



· Durum bilgisini bellekten almak, lojikte kullanmak ve HMI tarafında gösterecek bir tag e atamak için “Get System Values” komutu kullanılır.



Yaşanmış saldırılar incelendiğinde saldırganların sadece network, yazılım ve uygulama alanlarındaki yetkinliklerinin dışında endüstriyel kontrol sistemlerine hakimiyetleri de görülecektir. Özellikle odaklı ve devlet destekli saldırılar gösteriyor ki saldırganlar en az üreticiler kadar PLC yazılımlarına ve uygulamalarına hakimlerdir. Siemens PLC’ler üzerinde koşan PLC-Blaster zararlı yazılımı bulaştığı PLC üzerinden ağdaki diğer PLC’lere de sıçrama yapabileceğini diğer yazılarımızda ele almıştık. Aynı zamanda bu zararlı yazılım kendi kodunu OB9999 üzerinde saklar, orijinal koda dokunmaz ve PLC tarafından otomatik olarak algılanarak yürütülmeye devam eder. Stuxnet ise PLC – Blaster ‘in aksine orijinal koda etki ederek OB1 ve OB35 bloklarına bulaşır. Her iki örnekte de yazılım değişimi gerçekleşeceğinden checksum değeri de değişecektir. Bu değerin takip edilmesi ve değiştiğinde alarm olarak üretilmesi için yapılacak konfigürasyonlar endüstriyel kontrol sistemleri için kritik öneme sahiptir.


PLC kodunun değiştirilip değiştirilmediğini bilmek olası bir tehlike veya arızadan sonra PLC’nin çalışmasının güvenli olup olmadığını doğrulamak için de önemlidir. Ayrıca PLC’nin hala kabul sırasında yapılan bütün saha ve senaryo testleri sonrası yazılım ile çalıştığını bilmek güvenilirlik açısından önemli olacaktır. Sonuç olarak; fiziksel dünyaya çok fazla etkisi olan sistemlerin devreye alınmasında kodlama alışkanlıklarının değişmesi ve kodlama yapılırken siber güvenlik bakış açısının kazanılması bir zorunluluk haline gelmiştir.



23 views

Recent Posts

See All
bottom of page