Her şeyin bir uygulamasının olduğu ve evden her şeyin uzaktan kontrol edilebildiği bir dönemde, sistemleri yalnızca fiziksel olarak korumak ve dış dünyayla iletişimi engellemek düşünülemez. Şirketler verileri merkezi olarak toplar veya tüm yazılımları buluta aktarır. Bu hem klasik BT hem de OT (Operasyonel Teknoloji) ve IoT ortamında geçerlidir. Pek çok cihaz ve hatta nesnenin internet bağlantısı vardır, üretim sistemleri verileri örneğin dijital ikiz olarak merkezi olarak kullanılabilir hale getirir ve hatta tedarikçilerin, üreticilerin ve müşterilerin ağ oluşturması yeni bir ilgi görmeye başladığından öldüğü düşünülen Endüstri 4.0 bile Üretim-X. Avrupa Birliği, AB Siber Dayanıklılık Yasası ile üye devletlerdeki yazılımların güvenliğini öngören ve tasarım gereği güvenlik gerektiren bir yasal düzenleme oluşturdu.
Duyuru
(Resim:
Gerald Richter
)
25 yıldır PKI ve uzaktan erişim sektöründe BT güvenliği ile ilgilenen ECOS Technology GmbH'nin CTO'su ve kurucusudur. Çok çeşitli programlama dillerinde siber güvenlik yazılımı geliştirme konusunda geniş deneyime sahip ve hâlâ kodla doğrudan temas kurmaktan hoşlanıyor.
Güvenlik, yazılım tasarım sürecinin başında yer almalıdır. Arabellek taşmalarından, yanlış parametre doğrulamasından veya eşzamanlılık güvenlik açıklarından yararlanan saldırılar hala yaygındır. Ekipler, yazılım tasarlarken hem araç ve programlama dili seçiminde hem de mimaride bu potansiyel güvenlik açıklarını dikkate almalıdır.
Bu makale temel olarak mimarinin güvenlik açısından önemli olan bir yönünü vurgulamaktadır: şifrelemenin doğru kullanımı. Koddaki güvenlik açıklarını engellemez ancak hem yazılımın çalıştığı verileri hem de programı korur. Bu nedenle olağan siber güvenlik koruma hedeflerini hedefler: gizlilik, bütünlük, özgünlük.
Gizlilik, verilerin yalnızca onu görmesi gereken kişiler tarafından görülebilmesi anlamına gelir. Gizlilik geleneksel olarak şifreleme yoluyla oluşturulur. İkinci koruma hedefi olan bütünlük, verilerin manipüle edilemeyeceğini garanti eder: verileri alan kişi, bu süreçte gönderen tarafından değiştirilmediğini garanti edebilmelidir. Dijital imzalar burada yardımcı olur. Özgünlük, iletişimdeki diğer tarafın söylediği kişi olmasını sağlar. Bu, birisinin ortadaki adam saldırısı kullanarak müdahale etmesini önler. Bu güvenlik hedefi kriptografik olarak doğrulanabilir kimliklerle uygulanabilir.
Manipülasyona karşı kod tasarımı
Şifreleme, yazılım geliştirmenin birçok alanında yukarıda belirtilen güvenlik hedeflerinin uygulanmasına yardımcı olur. Saldırganların, işlevleri yeniden programlayarak veya verilere doğrudan kaynakta müdahale ederek veya verileri manipüle ederek kötü amaçlı kodlar ekleyerek bütünlüğünden ödün vermemesi için öncelikle uygulamanın kendisini koruyabilir.
Dijital imzaların amacı, hiç kimsenin yazılımı manipüle etmemesini sağlamaktır. Bu amaçla, ikili dosya, genel anahtarın karşıt olarak kullanılmasıyla doğrulanabilen özel bir anahtara sahip bir imza alır. İmzayı kontrol eden yazılımın bütünlüğünün de korunması önemlidir. Bu amaç için genellikle bir test zinciri kullanılır. Yazılımın ilk bölümünün, bellenimin, BIOS'un veya UEFI'nin bütünlüğü donanımın kendisi tarafından kontrol edilir.
Firmware daha sonra, çekirdeğin imzasını inceleyen önyükleyicinin imzasını doğrulayabilir ve bu da uygulamanın doğru şekilde imzalanmasını sağlar. Test zincirinde herhangi bir boşluk olmamalıdır, zira bu bir saldırı için geçit teşkil edecektir. Gömülü sistemler gibi tamamen kontrol edebildiğiniz sistemlerde zincirin tam olarak uygulanmasını sağlayabilir ve sağlamalısınız. Tek zorluk sınırlı donanım kaynaklarıdır.
Sertifikalar genellikle tam olarak kontrol altında olmayan sistemlerde kod tasarlamak için kullanılır. İşletim sisteminin, imzalama için kullanılan özel anahtarın karşılığı olarak genel anahtarı bilmesine gerek yoktur. Ortak anahtar sertifikanın bir parçası olduğundan, yalnızca sertifikanın orijinalliğini doğrulayabilmesi gerekir. Bu doğrulama bir sertifika yetkilisi (CA) kullanılarak gerçekleştirilir. Bu, sertifikaları imzalayan güvenilir bir üçüncü taraf gibi davranır, böylece sertifikaların geçerliliği CA'nın genel anahtarı kullanılarak doğrulanabilir.
Windows, macOS, iOS ve Android'de imzasız ikili dosyalar açık onay olmadan yürütülemez. Geliştiricilerin kod tasarımını geliştirme iş akışına kolayca entegre edebilmeleri için uygun araçlar da burada mevcuttur. Ancak başka yerlerde, örneğin gömülü alanda ve aynı zamanda Linux altında da işler farklı görünüyor. İmzasız ikili dosyalar burada sıklıkla kullanılır çünkü işletim sistemindeki veya geliştirme ortamındaki ekosistem eksik olabilir. Çoğu zaman donanım gerekli bilgi işlem gücüne sahip değildir veya ürün yazılımını kontrol etmenin bir yolu yoktur. Bu, yazılım mimarisi söz konusu olduğunda, donanım mimarisinin güvenli yazılım geliştirmede de kritik öneme sahip olduğu anlamına gelir.
Güvenli güncellemeler
Yazılımı tasarlarken tüm noktaları dikkate alırsanız yine de kendinize güvenemezsiniz. Hatalar genellikle daha sonra keşfedilir veya şifreleme prosedürleri bozulur. Ayrıca birisinin daha önce güvenli olduğu düşünülen protokollerin zayıf noktalarını keşfetmesi de olur. Bu nedenle güvenli yazılım için güncellemelerin gerçekleştirilebilmesi önemlidir. AB'nin Siber Dayanıklılık Yasası (CRA), Avrupa Birliği'nde pazarlanan tüm ürünler için, ürünün kullanım ömrünün daha kısa olduğu kanıtlanmadıkça en az beş yıl süreyle kalıcı yazılım güncellemeleri gerektirir.
Duyuru
(Resim:
Gerald Richter
)
25 yıldır PKI ve uzaktan erişim sektöründe BT güvenliği ile ilgilenen ECOS Technology GmbH'nin CTO'su ve kurucusudur. Çok çeşitli programlama dillerinde siber güvenlik yazılımı geliştirme konusunda geniş deneyime sahip ve hâlâ kodla doğrudan temas kurmaktan hoşlanıyor.
Güvenlik, yazılım tasarım sürecinin başında yer almalıdır. Arabellek taşmalarından, yanlış parametre doğrulamasından veya eşzamanlılık güvenlik açıklarından yararlanan saldırılar hala yaygındır. Ekipler, yazılım tasarlarken hem araç ve programlama dili seçiminde hem de mimaride bu potansiyel güvenlik açıklarını dikkate almalıdır.
Bu makale temel olarak mimarinin güvenlik açısından önemli olan bir yönünü vurgulamaktadır: şifrelemenin doğru kullanımı. Koddaki güvenlik açıklarını engellemez ancak hem yazılımın çalıştığı verileri hem de programı korur. Bu nedenle olağan siber güvenlik koruma hedeflerini hedefler: gizlilik, bütünlük, özgünlük.
Gizlilik, verilerin yalnızca onu görmesi gereken kişiler tarafından görülebilmesi anlamına gelir. Gizlilik geleneksel olarak şifreleme yoluyla oluşturulur. İkinci koruma hedefi olan bütünlük, verilerin manipüle edilemeyeceğini garanti eder: verileri alan kişi, bu süreçte gönderen tarafından değiştirilmediğini garanti edebilmelidir. Dijital imzalar burada yardımcı olur. Özgünlük, iletişimdeki diğer tarafın söylediği kişi olmasını sağlar. Bu, birisinin ortadaki adam saldırısı kullanarak müdahale etmesini önler. Bu güvenlik hedefi kriptografik olarak doğrulanabilir kimliklerle uygulanabilir.
Manipülasyona karşı kod tasarımı
Şifreleme, yazılım geliştirmenin birçok alanında yukarıda belirtilen güvenlik hedeflerinin uygulanmasına yardımcı olur. Saldırganların, işlevleri yeniden programlayarak veya verilere doğrudan kaynakta müdahale ederek veya verileri manipüle ederek kötü amaçlı kodlar ekleyerek bütünlüğünden ödün vermemesi için öncelikle uygulamanın kendisini koruyabilir.
Dijital imzaların amacı, hiç kimsenin yazılımı manipüle etmemesini sağlamaktır. Bu amaçla, ikili dosya, genel anahtarın karşıt olarak kullanılmasıyla doğrulanabilen özel bir anahtara sahip bir imza alır. İmzayı kontrol eden yazılımın bütünlüğünün de korunması önemlidir. Bu amaç için genellikle bir test zinciri kullanılır. Yazılımın ilk bölümünün, bellenimin, BIOS'un veya UEFI'nin bütünlüğü donanımın kendisi tarafından kontrol edilir.
Firmware daha sonra, çekirdeğin imzasını inceleyen önyükleyicinin imzasını doğrulayabilir ve bu da uygulamanın doğru şekilde imzalanmasını sağlar. Test zincirinde herhangi bir boşluk olmamalıdır, zira bu bir saldırı için geçit teşkil edecektir. Gömülü sistemler gibi tamamen kontrol edebildiğiniz sistemlerde zincirin tam olarak uygulanmasını sağlayabilir ve sağlamalısınız. Tek zorluk sınırlı donanım kaynaklarıdır.
Sertifikalar genellikle tam olarak kontrol altında olmayan sistemlerde kod tasarlamak için kullanılır. İşletim sisteminin, imzalama için kullanılan özel anahtarın karşılığı olarak genel anahtarı bilmesine gerek yoktur. Ortak anahtar sertifikanın bir parçası olduğundan, yalnızca sertifikanın orijinalliğini doğrulayabilmesi gerekir. Bu doğrulama bir sertifika yetkilisi (CA) kullanılarak gerçekleştirilir. Bu, sertifikaları imzalayan güvenilir bir üçüncü taraf gibi davranır, böylece sertifikaların geçerliliği CA'nın genel anahtarı kullanılarak doğrulanabilir.
Windows, macOS, iOS ve Android'de imzasız ikili dosyalar açık onay olmadan yürütülemez. Geliştiricilerin kod tasarımını geliştirme iş akışına kolayca entegre edebilmeleri için uygun araçlar da burada mevcuttur. Ancak başka yerlerde, örneğin gömülü alanda ve aynı zamanda Linux altında da işler farklı görünüyor. İmzasız ikili dosyalar burada sıklıkla kullanılır çünkü işletim sistemindeki veya geliştirme ortamındaki ekosistem eksik olabilir. Çoğu zaman donanım gerekli bilgi işlem gücüne sahip değildir veya ürün yazılımını kontrol etmenin bir yolu yoktur. Bu, yazılım mimarisi söz konusu olduğunda, donanım mimarisinin güvenli yazılım geliştirmede de kritik öneme sahip olduğu anlamına gelir.
Güvenli güncellemeler
Yazılımı tasarlarken tüm noktaları dikkate alırsanız yine de kendinize güvenemezsiniz. Hatalar genellikle daha sonra keşfedilir veya şifreleme prosedürleri bozulur. Ayrıca birisinin daha önce güvenli olduğu düşünülen protokollerin zayıf noktalarını keşfetmesi de olur. Bu nedenle güvenli yazılım için güncellemelerin gerçekleştirilebilmesi önemlidir. AB'nin Siber Dayanıklılık Yasası (CRA), Avrupa Birliği'nde pazarlanan tüm ürünler için, ürünün kullanım ömrünün daha kısa olduğu kanıtlanmadıkça en az beş yıl süreyle kalıcı yazılım güncellemeleri gerektirir.
AB Siber Dayanıklılık Yasasında üreticilerin yükümlülükleri |