Güvenli modüller: yazılım mimarisindeki anahtarlar ve sertifikalar

Adanali

Member
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 kötü amaçlı kodlar ekleyerek bütünlüğünden taviz vermemesi için öncelikle uygulamanın kendisini koruyabilir ve ardından örneğin verileri doğrudan kaynaktan ele geçirebilir veya manipüle edebilir.

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
Koruma hedefleri

En son teknolojiye sahip mekanizmalar kullanılarak şifreleme yoluyla veri gizliliğinin korunması, Verilerin, komutların, programların ve konfigürasyonların bütünlüğünün manipülasyona karşı korunması, Kimlik doğrulama, kimlik veya erişim yönetimi sistemlerini kullanarak yetkisiz erişime karşı koruma, Aşağıdakiler dahil temel işlevlerin kullanılabilirliği: Savunma kapasitesi ve hizmet reddi saldırılarının azaltılması.​
Varsayılan olarak güvenlik

Bu yapılandırmayı geri yükleme seçeneğiyle birlikte, güvenli bir varsayılan yapılandırmayla birlikte gelir. İşleme amacına uygun ve amaca uygun verilerle sınırlı olmalıdır.​
Tasarım gereği güvenlik

Diğer cihazların veya ağların hizmetlerinin kullanılabilirliği üzerindeki olumsuz etkinizi en aza indirin, harici arayüzler dahil saldırı yüzeylerini en aza indirin, bir olayın olası etkisini en aza indirmek için yeterli mekanizmaları uygulayın.​
İzleme

Güvenlikle ilgili bilgilerin ve ilgili dahili operasyonların (verilere, hizmetlere veya işlevlere erişim ve değişiklikler gibi) günlüğe kaydedilmesi.​
Güvenlik güncellemeleri

Gerekirse otomatik güncellemeler de dahil olmak üzere, güvenlik açıklarını gidermek için düzenli güvenlik güncellemeleri.​

App Store'daki mobil uygulamalar tıpkı Linux dağıtımları gibi bir güncelleme seçeneği sunarken, yazılım üreticilerinin bunu başka bir yerde kendilerinin halletmeleri gerekiyor. Yazılım güncellemelerini (otomatik olarak) dağıtmak için bir süreç sağlamalı ve bu sürecin güvenli olduğundan emin olmalısınız. Aksi takdirde güncellemeler mükemmel hedeftir. Burada esas olan güncellemeleri üretici firmaya imzalatarak ve güncelleme işlemi sırasında bu imzayı kontrol ederek bütünlüğün sağlanmasıdır.

Birçok kütüphane yazılım geliştirmede sıklıkla kullanılır. Bu nedenle geliştirme ekibi aynı zamanda içeriğin tüketicisidir ve güvenli entegrasyonu sağlamalıdır. Yalnızca bir Docker Hub kapsayıcısını veya herhangi bir kayıt defteri modülünü entegre edemez, aynı zamanda özgünlüğü (kütüphane nereden geliyor?) ve bütünlüğü (kurcalanmadı mı?) sağlamalıdır.

Siber Dayanıklılık Yasası, şifrelemenin yanı sıra, tasarımı güvenli hale getirmek ve yazılımı bilinen güvenlik açıklarına karşı test etmek için hangi bileşenlerin bir yazılıma girdiğini belirtmek için gerekli olan Yazılım Malzeme Listelerini (SBOM) gerektirir. Sonuçta, güvenli bir yükseltme yolu sağlamaktan yazılım üreticisi sorumludur. Üzerinde kontrolü bulunmayan kamu kayıtlarına güvenemez.

Yazılım mimarisinin görevi, güvenlik açıklarını kontrol etmek ve güvenilir genel depolarda imzalı biçimde bulunmadığı sürece ikili dosyaları, konteynerleri ve modülleri imzalamaktır. Öncelikle sistemin yalnızca imzası önceden doğrulanmış bileşenleri çalıştırdığından emin olmalıyız.



Auchmacher dergisinin ön sayfası



(Resim: iX)


Bu makale ayrıca iX/Developer'ın yazılım mimarlarına yönelik özel sayısında da bulunabilir. Yöntem ve modellere ilişkin klasik mimari içeriğin yanı sıra sosyoteknik sistemler, kalite güvencesi veya mimarlık ve toplum üzerine makaleler bulunmaktadır. Etki alanı odaklı tasarım, takım topolojileri ve Green Scrum kadar önemlidir.

Yazarlar olarak, bilgilerini pek çok ilginç makaleyle – buradaki gibi – hem yeni başlayanlara hem de mimarlık uzmanlarına aktaran tanınmış uzmanları işe alabildik.
 
Üst