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

Secure PLC Coding | Validate timers and counters


PLC(Programmable Logic Controller)’ler enerji koruma sistemleri, üretim süreçleri ve makinaları kontrol etmek için kullanılan mikro işlemci tabanlı endüstriyel cihazlardır. Bu tarz karmaşık sistemlerde yer alan tüm koşulları kontrol etmek için sensörler tek başına yeterli olmamaktadır. Bu tarz koşullar için timer(zamanlayıcı) ve counter(sayıcı) fonksiyonları PLC lojiğinde sıkça kullanılmaktadır. Timer PLC’lerde zaman kontrolü gerektiren lojik işlemlerde kullanılırken counterlar sayma işlemlerinde kullanılmaktadır.

Timer fonksiyonları üretici bağımsız olarak PLC programında birçok farklı şekilde kullanılmaktadır. İlgili giriş aktif olduğunda verilen değere kadar sayan zamanlayıcılar veya verilen değer dolduğunda ilgili girişi aktif eden zamanlayıcılar PLC lojiklerinde sıklıkla kullanılmaktadır. Örnek olması açısından kullanılabilecek farklı timer fonksiyonları SIEMENS PLC’ler içinde aşağıda gösterildiği şekildedir.


Şekil 1 Tia Portal Timer Fonksiyonları


Counter fonksiyonları zamanlayıcılara benzer olarak PLC programlarında sıklıkla kullanılmaktadır. Verilen değere kadar sayan veya verilen değerden geriye doğru sayan counter fonksiyonları üretici bağımsız bütün PLC lojiklerinde kullanılabilmektedir. SIEMENS PLC’ler için kullanılabilecek counter fonksiyonları aşağıda gösterildiği şekildedir.


Şekil 2 Tia Portal Counter Fonksiyonları


Timer ve counter değerleri HMI üzerinden PLC lojiğine yazıldığı durumlarda bu değerler için uygunluk kontrolü yapılmalı ve doğrulama lojiğinden geçirilmelidir. Ayrıca bu değerlerin operasyonel gereksinimleri karşılaması için sınırlandırılması da gerekmektedir. Bu çapraz kontroller ve sınırlandırma işlemleri PLC tarafında yapılmalıdır. Örneğin bir alarmı tetiklemesi için 2 saniye olarak ayarlanması gereken zamanlayıcı ayarı kötü niyetli olarak 5 saniye olarak ayarlandığında alarmlar tetiklenmeyecektir veya 10000 değerine ulaştığında prosesi durduran bir counter değeri 11000 değerine çekildiğinde durmayacaktır. Bu yüzden PLC doğrulaması olmadan doğrudan yazılan değerler için HMI veya diğer ağ cihazlarına gereksiz bir güven düzeyi atanmış olacaktır. Bir saldırgan için HMI manipülasyonu PLC’ye göre daha kolay olmaktadır.


Timer(zamanlayıcı) ve counter(sayıcı) değerlerinin lojik tarafında çapraz kontrollerinin yapılmasının sadece güvenlik açısından değil proses güvenilirliği ve bakım açısından da kazanımları olmaktadır. Operatör tarafından yanlışlıkla girilen değerler PLC tarafında doğrulanacağı için bu yanlış değerlerin operasyona herhangi bir etkisi olmayacaktır. Ayrıca bakım veya proje ekiplerinin yapacağı lojik güncellemelerinde timer ve counter değer aralıklarının dökümante edilmesi kolaylık sağlayacaktır.


Saldırganlar hedef ortamda kontrol edilen prosesler üzerinde belirli etkilere neden olmak için bazı teknikler kullanmaktadır. Kullanılan bu teknikler operatörün ya da doğrudan alt kullanıcıların güvenliğini tehdit edebilir. Bu teknikler lojik değiştirmeyi, yeni bir program etkinleştirmeyi, yeni bir proses tarifiği yüklemeyi, mesaj göndermek ve yeni özellikler aktif etmek için lojik eklemeyi içermektedir. Önceki yazılarımızda bahsettiğimiz “INCONTROLLER” ve “Stuxnet” saldırıları bu tekniklerin kullanıldığı saldırılardır.


Timer ve counter değerlerinin manipüle edilmesi ile oluşturulan, bilinen bir saldırı henüz kayıt altına alınmamıştır ancak yukarıda bahsedilen teknikler ve yaşanılan saldırılar dikkate alındığında güvenli PLC lojiğinin oluşturulmasında timer ve counter değerlerinin çapraz kontrolünün yapılması güvenli tarafta kalmamızı sağlayacaktır. Bu bağlamda sistemlerin test ve devreye alınmasında PLC yazılımcıları için 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.


26 views

Recent Posts

See All
bottom of page