IoT cihazlarına yönelik artan sayıda ağ saldırısına rağmen, sabit yazılım güvenliği genellikle ikincil bir konuma getirilir.Saldırganlar sistem yığınına nüfuz ederken, önyükleme işlemini ve altta yatan donanım yapılandırmasını hedef alırlar., bellek mimarisinin seçimi, doğrulanabilir bir güven zincirinin kurulmasında kilit bir karar haline geldi.
Bu nedenle, sabit yazılım güvenliğinin sağlanması, her bileşenin çalıştırılmadan önce şifreleme doğrulama işleminden geçmesini gerektirir.ana yazılım yazılımının yüklenmesi ve doğrulanmasından sorumlu olanBununla birlikte, her adımda kullanılan bellek teknolojisi, izinsiz değişikliklere karşı firmware savunmasızlığına neden olabilir.
İç ve dış flaş bellek
Firmwareyi depolamak için kullanılan uçucu olmayan belleğin fiziksel konumu, cihaz tehdit modellerinde en kritik faktörlerden biridir.Firmware mühendisleri, çip içi gömülü flaş (eFlash) ve SPI veya QSPI gibi seri arayüzler aracılığıyla bağlı harici flaş modülleri arasında bir seçim yapmalıdır.
Gömülü flaş bellek genellikle doğrudan mikro denetleyiciye veya SoC yongalarına entegre edilir.Bu mimari, saldırganların manipüle edebileceği hiçbir dış otobüs olmadığı için en yüksek fiziksel güvenlik seviyesini sağlar.İç flaş belleğe erişim bile özel kayıtlar ve kilit parçaları ile kontrol ediliyor.
Ek olarak, yerleşik flash bellek kalıcı okuma korumasını destekler.Geliştiriciler, bilgisayar korsanlarının sabit yazılım görüntülerini değiştirmesini önlemek için JTAG veya SWD hata ayıklama arayüzlerini devre dışı bırakabilirBununla birlikte, SoC'ler daha küçük düğümlere doğru ilerledikçe, bu teknoloji önemli ölçeklendirme zorluklarıyla karşı karşıya.
Buna karşılık, harici flash bellek ana işlemcinin dışında yerleştirilir ve yüksek hızlı bir seri arayüzü üzerinden iletişim kurar.Ama aynı zamanda sistemin saldırı yüzeyini de genişletiyor.İşlemci ve dış flaş bellek arasında aktarılan herhangi bir veri, dinleme, orta saldırı ve fiziksel müdahale gibi tehditlere karşı doğal olarak savunmasızdır.
Bu riskleri gidermek için, sabit yazılım mühendisleri sağlam donanım ve yazılım koruma önlemleri uygulamalıdır.Pin belirli bir gerilimde yerleştirildiğinde, çipin iç mantığı herhangi bir silme ya da yazma komutlarının yürütülmesini engeller.
Şekil 1: Winbond Electronics'in W77Q32JWSSIR TR güvenli seri NOR flash belleği karmaşık iletişim kanalı şifreleme yeteneklerine sahiptir.
Bununla birlikte, veriler okunabilirse, sadece flash belleği kilitlemek yeterli değildir.Bu güvenlik açığı özel güvenli flash cihazların geliştirilmesine neden oldu., donanım tabanlı root of trust mekanizmaları, şifreli iletişim kanalları ve rollback saldırılarını önlemek için monoton sayaçlar dahil.
Bununla birlikte, yanlış depolama mimarisi seçilirse, cihaz, yazılım yamalarıyla tamamen düzeltilemeyen temel kusurlar bırakacaktır.Şifreleme veya doğrulama yapmadan dış EEPROM'da sabit yazılım depolayan tasarımlar her zaman donanım saldırganlarına karşı savunmasızdırAksine, aşırı kısıtlamalar ile bir bellek seçmek işlevselliğini etkileyebilir.
Bu nedenle, mühendisler bellek mimarisi yoluyla sabit yazılım güvenliğini en üst düzeye çıkarmak için en iyi uygulamaları ve tasarım tekniklerini anlamalıdır.
Güvenli Firmware Depolama Tasarımı için En İyi Uygulamalar
Başlangıçtan çalıştırma süresine kadar güvenli bir sabit yazılım depolama yolunu tasarlarken, sabit yazılım mühendisleri aşağıdaki ilkeleri takip etmelidir:
1. Donanım tabanlı güven kökü
Çalışma her zaman değişmez bellek alanlarından başlamalıdır. Örneğin, önyükleme ROM'u veya kalıcı olarak güvenli flash sektörü, diğer tüm firmware'ları doğrulamak için kod içermelidir.Bu, saldırganların orijinal şifreyi değiştirerek doğrulama işlemini atlayamayacaklarını sağlar..
2Şifreli imzaları kullanın.
Güvenli başlatma yükleyicisini yalnızca güvenilir özel anahtarlarla imzalanan sabit yazılım görüntülerini çalıştırmak için yapılandırın. Bu şekilde, saldırganlar belleğe erişebilir ve bitleri değiştirebilirlerse bile yetkisiz kodu engelleyebilirler.Gizlilik gerekirse, depolanan yazılım şifrelenebilir.
3. Donanım güvenlik özelliklerini kullanın
Sistem mimarisi harici depolama alanını kullanırsa, mühendisler, dahili şifre koruması veya basit şifreleme gibi donanım güvenliğini destekleyen cihazları seçmelidir.Bu cihazlar tam güvenlik bileşenleri kadar sağlam olmasa da, başka bir koruma katmanı eklerler.
Şekil 2: Macronix, MX25L3233FM2I-08Q 32 Mb seri NOR flash belleğini seri çevresel arayüzle destekler. (Süret kaynağı: Macronix)
4Firmware ve verileri izole edin.
MCU'da, kritik rutin talimatları güvenli bir bellek alanına yerleştirin.Bazı flash bellek bankalarını sadece çalıştırılabilir veya sadece okunur olarak işaretleyebilir.
5Güvenlik yazılım güncelleme planı
Güncelleme sürecinin kendisinin onaylandığından emin olun (örneğin güncelleme paketinin imzalanmasını gerektirir).Ana yazılım depolaması ile aynı güvenlik önlemleri alınmalıdır..

