Kritik Altyapı Güvenliği
Siemens Simatic Enerji Yöneticisi Güvenli Olmayan Bir BinaryFormatter Yöntemi Kullandı
Prajeet Nair (@prajeetspeaks) •
30 Nisan 2024
Araştırmacılar, endüstriyel ortamlarda enerji tüketimini izlemek için kullanılan Siemens yazılımındaki seri durumdan çıkarma güvenlik açığını ayrıntılı olarak açıkladılar ve bu kusuru, Alman holdinginin güvenlik riskleri olduğu bilinen bir programlama yöntemini kullanma kararına bağladılar.
Ayrıca bakınız: İsteğe Bağlı | Tehditlerle Mücadele Edin, Direnç Oluşturun ve Verimli Bir Şekilde Uyun: Hindistan’ın Güvenli Siber Gelecek Mantrası
Siemens, CVE-2022-23450 olarak takip edilen güvenlik açığını iki yıl önce yamaladı; geçen hafta Claroty’deki araştırmacılar, Siemens müşterilerinin keşfettikleri kusurun ayrıntılı bir açıklamasından önce yamaları uygulamaları için yeterli bir zaman olduğunu söyledi.
Claroty, “Birçok kişi seri durumdan çıkarma güvenlik açıklarının geçmişte kaldığını düşünse de, bunların hala ara sıra ortaya çıktığını görüyoruz.” dedi. Programlar, yapılandırılmış verileri bir ağ üzerinden taşırken serileştirir ve seri durumdan çıkarır. Bilgisayar korsanları, serileştirmeden önce bir veri nesnesine kötü amaçlı talimatlar eklerse, karşı önlemlerin mevcut olmadığını varsayarak, bayt akışını seri durumdan çıkaran bilgisayar üzerinden uzaktan kod yürütme elde edebilirler.
Tesisin enerji kullanımına ilişkin verileri bir web sunucusundan kullanıcı uygulamasına iletmek için özel bir mesajlaşma protokolü kullanan yazılım olan Siemens Simatic Energy Manager’da karşı önlemler mevcut değildi.
Claroty araştırmacıları mesajlaşma protokolünü tersine tasarladılar ve şu ifadeyi içeren bir mesaj türü buldular: BinaryFormatter
. Simatic Energy Manager perde arkasında bir Microsoft .NET uygulamasıdır. Programcıları nesne serileştirme ve seri durumdan çıkarma için .NET BinaryFormatter sınıfını kullandı. Microsoft 2020’de geliştiricileri bu sınıfı kullanmamaları konusunda uyardı ve 2023’te şirket “güvenilmeyen girdiyle kullanıldığında yöntemin asla güvenli olmadığı” konusunda uyardı.
Microsoft ve siber savunucular, bir araştırmacının Black Hat konferansında bu konu hakkında bir makale sunduğu 2012 yılından beri BinaryFormatter’daki seri durumdan çıkarma risklerini biliyorlar. Microsoft, 2016 yılında BinaryFormatter’ı .NET platformundan kaldırdı, ancak net bir alternatifin olmaması nedeniyle onu iade etti. Microsoft, geçen Kasım ayında bu formatı kullanımdan kaldırdı.
BinaryFormatter’ı bu kadar popüler yapan şey aynı zamanda Microsoft’un onu kapatmak zorunda kalmasının nedenidir. Claroty, sınıfın “seri durumdan çıkardığı sınıf türlerini sterilize etmediğini, bunun yerine keyfi sınıflar oluşturma yeteneğine sahip olduğunu” söyledi. Şirket araştırmacıları, Simatic Energy Manager’ı “kimlik doğrulamadan önce bile” kodu seri durumdan çıkarmaya zorlayan kötü amaçlı bir serileştirilmiş sınıf oluşturdu; bu, uzaktan kod yürütme güvenlik açığının kimlik doğrulama kontrollerini atlamamızı gerektirmediği anlamına geliyor.
Energy Manager’ın V.73 Güncelleme 1’in altında numaralandırılmış bir sürümünü çalıştıran herhangi bir Siemens müşterisi, saldırıya karşı hâlâ savunmasızdır. Güvenlik açığı CVSS ölçeğinde 10 puan (mümkün olan maksimum puan) taşıyor.