Güvenlik Öncelikli Tasarım
(Security by Design)
- 19 Ağustos 2020
- Yayınlayan: Uzerteknoloji Mirza
- Kategori: Haberler
Yeni ürün ve cihazların birçoğunun doğrudan internete bağlı olduğunu ve hatta internetten şirketin yerel ağına bir köprü yardımıyla bağlanılabileceğini kolayca tahmin edebiliriz. Ayrıca yerel ağların bağlantı noktalarının oldukça hassas olduğu da iyi bilinmektedir. Bu yüzden, sadece güvenilir cihazların kullanılması son derece önemlidir. Ancak bu güvenilir cihazlar tanımı, herhangi bir güvenlik kılavuzu veya güvenlik yapısı kullanılmadan yalnızca işlevselliğe göre oluşturulmuş cihazlar için uygun mudur? İşlevsel güvenlik açısından da muhakkak bir değerlendirme yapmak gerekmektedir. Günümüzde, güvenlik risk analizi yapılmayan veya ilgili sertifikası olmayan sözde güvenli elemanlar kullanılarak yeni bir cihazın geliştirilebileceğini düşünmek güç. Aslında, standartlar ve normlar güvenlik bileşenlerinin nasıl tasarlanması ve uygulanması gerektiğini belirtiyor olsa da bilgi teknolojisi alanında henüz bazı düzenlemeler mevcut değil. Tasarımda Güvenlik yaklaşımıyla karşılaştırılabilir yöntemler bilinse de hala denemelerin yapılması gerekmektedir.
Evrensel Çare Pentest
Sızma testleri, güvenlik seviyesi incelemesi için kullanılan bir yöntemdir. Sistem saldırılarına karşı güvenlik açıklarını keşfetmek için kullanılır. Manuel ve otomatik testler vardır ve çoğunlukla kombinasyonlarıyla kullanılır. Bu testler güvenlik seviyesini belirlemek için iyi bir yoldur. Çoğunlukla düzeltilmesi gereken tek bir açık değil, çok sayıda açık olduğu ortaya çıkar ve her zaman iyi bir uzlaşma yolu olan yamalar kullanılarak sorun çözülmeye çalışılır. Tasarımda Güvenlik yaklaşımında olduğu gibi cihazın temeline bilgi güvenliği yerleştirilmediği takdirde zayıf noktalar kalıcı olarak kalmaya devam edecektir. Bu nedenle pentestlerin sistem üreticisi ve operatörü tarafından periyodik olarak yapılması gerekmektedir. Bu tür testler servis sağlayıcıları veya özelleştirilmiş bir yazılım parçası tarafından yapılabilir.
Geliştirme Sürecinin Başından İtibaren Güvenliğin Dikkate Alınması
“Security by Design” tanımı gereği tasarım aşamasından itibaren güvenlik anlamına gelir. Bu ifade için farklı yorumlar yapılmaktadır. Çoğu zaman her şeyin güvenli yazılım tasarımı ile ilgili olduğu söylenir. Bence, güvenli yazılım bazı güvenlik donanım öğeleri de gerektirir. Temel konsept, bir ürünün tasarım sürecinde de bilgi güvenliğinin dikkate alınmasıyla ilgilidir. Güvenlik sektöründeki birçok üretici uzun zamandır iyi bilinen bu konsepti uygulamaktadır. Hatta makine yönergelerine de temel olan bu prosedür çoğu makine üreticisi tarafından da bilinmektedir.
Sürecin başında, otomasyonla ilgili çoğu kullanıcıya tanıdık gelen bir risk analizi yapılır. Bu her yeni tasarlanmış kurulumda yaşanır. Makinenin nasıl çalışması gerektiği ve nasıl güvenli hale getirileceği üzerine düşünülür. İlk olarak ürünün amacını ve işlevlerini belirlersiniz.
Endüstriyel Yönlendirici Kullanarak Tasarımda Güvenlik Örneği
Örneğin, bilgi teknolojisi ofisi ile üretim bölümü arasında bir arayüz olarak bulunan endüstriyel yönlendirici var. Tabii ki bu tanım olarak yeterli değil. Bizim durumumuzda tam olarak yönlendirici üzerinden erişilecek hangi hizmetlerin ve uygulamaların (web sunucusu ve VPN gibi) kullanılacağı tanımlanmalıdır. Risk değerlendirmesi dış arayüzlerde başlar. Bunlar; Ethernet ve USB gibi donanım ve yazılım arayüzlerinin yanı sıra kullanıcı arayüzü ve web sunucularını da kapsar. Bu arabirimlerin her biri bağımsız olarak ele alınıp değerlendirilmeli ve güvenlik için minimum gereksinimleri tanımlayan siber güvenlik standarttı ISA/IEC-62443’ e göre düzenlenmelidir. Sonraki adımda, zayıf bir bilgisayar korsanından hükümet tarafından yönetilen ve büyük bütçeli bir bilgisayar korsanına kadar potansiyel saldırganların motivasyon kaynaklarına ve hedeflerine bakılır. Hedeflenen koruma düzeyine bağlı olarak güvenlik harcamaları için gereken bütçe artar. Bu bölüm başarıyla tamamlanırsa yönlendirici gereksinimlerinin çerçevesi çizilmiş olur. Yönlendirici güvenlik konsepti; Secure Boot, Secure Element ve Secure Firmware olmak üzere üç bileşenden oluşur.
Secure Boot
İlk gereksinim, güvenli önyükleme konseptini oluşturmaktır. Yalnızca üretici onayı bulunan yazılımın yönlendirici tarafından başlatılmasını sağlamak; bu emin olunması gereken önemli bir noktadır. Bu konuda bize Trusted Root Chain prensibi yardımcı oluyor. Güvenilir kaynak zinciri olarak ifade edebileceğimiz bu prensip, boot ROM (Read Only Memory) belleğinde konumlanır. Sertifika, firmadaki üretim sırasında boot loader ile sadece bir kez yazılabilir. Yalnızca kendisine karşılık gelen bir sertifika ile tanımlanan uygulama yazılımı başlatılabilir. Bir saldırgan yönlendiriciye tam sistem erişimi elde etse bile manipüle ettiği ürün yazılımını başlatmak için sertifikayı veya önyükleyiciyi asla değiştiremez. İkinci adım olarak önyükleyici FLASH belleğindeki sertifikaya göre tekrar kontrolünü yapar ve böylece gerçekten MB Connect Line tarafından imzalanıp imzalanmadığını belirler. Sertifika doğruysa, işletim sistemi başlar. Aksi takdirde sistem durur. Bu sayede işlem sırasında gerçekleşecek saldırı senaryoları ve manipülasyonlar asla kalıcı olmaz. Yönlendiricinin her yeniden başlatılmasıyla orijinal aygıt yazılımı başlatılacaktır. Manipüle edilmiş firmware yazılımının yönlendiriciye ulaşmasını engellemenin en önemli noktası budur. Bu nedenle bir saldırganın sistemi kalıcı olarak ele geçirmesi imkansızdır.

Secure Element
Sistem başarıyla ve güvenli bir şekilde başlatıldıktan sonra, okuma / yazma belleğine ihtiyaç duyar. Şifreler ve VPN sertifikaları gibi kullanıcıya özel ayarların bir yerde saklanması gerekir. Bunun için, FLASH’a şifrelenmiş bir alan atanır. Bu prensip office sector kullanıcılarının aşina olduğu bir durumdur. PC başlatılırken BIOS’a bir parola girilmiş olmalıdır. Parola sabit disk sürücüsünün şifresini çözmek için kullanılır. Eğer birisi tarafından bu bilgisayar bulunur veya çalınırsa sabit sürücü verilerine erişemez. Yönlendirici deki prensip de buna benzer. Birisi yönlendiricinin flash belleğine erişse bile herhangi bir veriyi okuyamaz.
Yine de yönlendiriciyi her başlattığınızda bir parola girmek pek pratik olmaz. Secure Element bu noktada bize yardımcı olur. Bu güvenli öğe tüm parolaları, anahtarları ve sertifikaları depolayan ayrı bir donanım bileşenidir (IC). Kontroller sırasında yalnızca “evet” veya “hayır” olarak yanıt verir. Bir karma parola ile bir talep oluşturulur ve cihaz bunun doğru olup olmadığına göre yanıt verir. Böylece, kullanıcı depolama alanına yalnızca güvenli öğenin anahtarı ile erişilir.

Secure Firmware
Üçüncü bileşenimiz Secure Firmware. Peki, kalıcı aygıt yazılımı nasıl güvenli olabilir? Bu noktada şunu belirtmek gerekir: Yüzde yüz güvenlik yoktur, ancak bunun için her şey yapılmalıdır. İlk olarak geliştiriciye güvenli yazılım geliştirme hakkında temel bilgileri sağlamak önemlidir. Ve bu süreç bir günde bitmez. Birçok atölye çalışması ve eğitim gerektirir. Güvenlik bileşenleri ve çözümleri üreticisi olarak, bu konuyla uzun yıllardır ilgileniyoruz. Bunu geliştiricilerimiz ve çalışanlarımızla sunmaya devam ediyoruz. Gömülü yazılım geliştiricilerimizin olduğu alanlardan biri de buna göre sertifikalandırılmıştır. Bu kişisel sertifikaya T.P.S.S.E adı verilir ve her üç yılda bir tekrarlanır. Bu sertifikalandırma işlemi güvenli geliştirme sürecimizin temelini oluşturuyor. Atölye çalışmalarıyla ve eğitimlerle edinilen bu bilgilerin ışığında, ilk önce hangi uygulamaların firmware yazılımına entegre edilmesi gerektiğine karar verilen klasik bir seçim süreci yaşanır. Özellikle gömülü Linux ortamının userland olarak isimlendirilen kullanıcı alanıyla ilgili bir konudur. Gömülü Linux’un standart dağıtımında, çoğunlukla donanımla birlikte gelen, uygulamaya bağlı olarak bazen sadece %20’si kullanılan birçok program bulunmaktadır. Kalan %80 kullanılmaz ancak ek bir potansiyel ağ geçidi saldırısına neden olabilir. Bu yüzden userland yani kullanıcı alanımız yalnızca gerçekten ihtiyaç duyulan programları içermelidir. Dolayısıyla bir sonraki adımımız, uygulama özelliklerinin detaylı bir şekilde incelenmesi olmalıdır. Örneğin; web sunucusu kimlik doğrulamasının nasıl çalıştığı veya web sayfalarının nasıl oluşturulması gerektiği gibi. Elbette bu çok kapsamlı ve her uygulama için detaylı olarak incelenmesi gereken bir süreçtir. Ayrıca bu uygulamaların konfigürasyonu da kontrol edilmelidir.
Özellikle bir uygulamayı oluştururken her zaman “Varsayılan olarak Güvenlik” yaklaşımı baz alınmalı, bu da güvenlik özelliklerinin varsayılan olarak açık olması gerektiği anlamına gelmektedir. Örneğin; web arayüzlerinde HTTP yerine HTTPS etkinleştirilmelidir. Varsayılan parolalar kullanmak yerine daha iyi bir yol olan, her cihaza rastgele oluşturulmuş bir parola sağlanmalıdır.
Yama Yönetimi
Son konumuz yama yönetimi; ortaya çıkan güvenlik açıklarının hızla tespit edilmesi, kapatılması ve uygun yamanın dağıtılması ile ilgilidir. Bunun için açık kaynak yazılımı, birçok kişi tarafından kullanılması ve topluluk tarafından düzenli olarak sürdürülmesi ile birçok avantaja sahiptir. Daha fazla kullanıcı ile güvenlik açıkları daha hızlı tespit edilir. Bizde bu sebeple en güncel Linux çekirdeğini kullanmaya karar verdik ve mainline kernel olarak isimlendirilen çekirdeğe göre ayarlamalarımızı yaptık. İdeal olan, güncel bir yapı oluşturmaktır; bu her güncel uygulamanın topluluktaki değişiklikler ile kontrol edildiği anlamına gelir. Bir değişiklik varsa, hemen yeni bir firmware yazılımına entegre edilir. Bu güncel yapı otomatiktir ve neredeyse bir günden daha kısa bir sürede çalışır hale gelir. Değişiklik tespitinin ardından, cihaz yazılımı ile otomatik testler gerçekleştirilir. Sonunda cihaz yazılımı otomatik olarak değil manuel olarak yayınlanacak şekilde hazır hale gelir. En son karar yetkili kişi tarafından verilir. Dağıtım noktasına gelene kadar tüm bu sürecin gerçekçi öngörülerle yaşanması önemlidir..
Sonuç
Geliştiriciler öncelikle kendi sektörlerinde ve uygulama alanlarında uzmandır. Bu yüzden geliştirme süreçlerinde çoğunlukla, güvenlik konusu ya hiç dikkate alınmıyor ya da sadece marjinal bir konu olarak kalıyor. Bu bir suçlama değil fakat, olayın iç yüzünün daha iyi anlaşılması için bir eleştiridir. Bu sebeple ve kaçınılmaz olarak, yazılımda veya ürünlerde güvenlik açıkları oluşmuş ve bilgisayar korsanları, bu güvenlik açıklarından sistemlere erişmeyi tekrar tekrar denemektedirler. Diğer bir taraftan bu makale; otomasyon endüstrisinin, politikalar ve uygulamalar ile ilgili olarak hali hazırda çok fazla deneyime sahip olduğunu ortaya koymuştur. Örneğin; güvenlik konusunun temel noktasının uygulamadan önceki analiz süreci olduğu gibi. Bu olumlu bir şey. IEC62443 gibi planlanan normlar ve standartlar gelecek cihazlar ve çözümler için uluslararası artan öneme ve etkiye sahip olmasına rağmen, güvenlik hala bir ürün değildir ama bu süreç devam etmelidir.
Yazar:Siegfried Müller, MB Connect Line GmbH Kurucusu ve Sahibi
IT Güvenliğinde Federal Dernek Üyesi ve ECSO* Almanya Temsilcisi
*ESCO: European Cyber Security Organisation (Avrupa Siber Güvenlik Örgütü)