Gömülü sistemlerde siber güvenlik Gömülü sistemlerde siber güvenlik

Gömülü sistemlerde siber güvenlik

Gömülü sistemlerde siber güvenlik


12/01/2023 17:42

TÜBİTAK araştırmacıları Mahmut Ortaboz ve Süleyman Muhammed Arıkan, TÜBİTAK BİLGEM Teknoloji dergisinin 11. sayısı için kaleme aldı: “Gömülü Sistemlerde Siber Güvenlik”
BU HABERİ
PAYLAŞ

Belirli bir görevi yerine getirmek amacıyla özel olarak tasarlanmış sabit işlevli cihazlar olarak tanımlanan gömülü sistemler; merkezi işlem birimi, hafıza birimi, giriş-çıkış ve haberleşme arayüzleri, işletim sistemi ve yazılım gibi farklı bileşenlerden oluşabilir. Gün geçtikçe hayatımızda daha geniş yer bulan gömülü sistemler; banka ATM sistemlerinden güvenlik duvarlarına, fotokopi makinelerinden mikro dalga fırınlara, tıbbi ekipmanlardan oyun konsollarına kadar hemen hemen her alanda hizmet vermektedir. Böylesine yaygın uygulama alanı bulan ve insanlar için kritik önem kazanmış gömülü sistemleri, günden güne internete daha fazla bağımlı hale geldiğimiz bir çağda, çeşitli siber saldırılardan ve kötü niyetli kullanıcılardan korumanın önemi artmaktadır. Bu sistemlerin güvenliği, ancak tüm bileşenlerinde uygun tedbirlerin alınmasıyla mümkündür.

Bir zincirin gücü en zayıf halkasının gücü kadardır. Gömülü cihazların bazı açılardan standart bilgisayarla benzerlik göstermesi, siber dünyada bilgisayarlar için alınmakta olan önlemlerin, gömülü sistemlere uygulandığında yeterli güvenliği sağlayacağı düşünülmemelidir. Kişisel bilgisayarlarda yaygın olarak kullanılan işletim sistemleri yerine, bu cihazlara özel geliştirilmiş ticari işletim sistemleri kullanılmaktadır. Bu ticari işletim sistemlerine ek olarak da Android ve OpenWrt benzeri Linux tabanlı gömülü işletim sistemleriyle FreeRTOS ve BareMetal gibi açık kaynaklı işletim sistemleri tercih edilmektedir. Ayrıca tasarımlarında ARM, MIPS ve x86 gibi işlemci mimarisi kullanıldığından ve yaklaşık 16KB-1GB aralığında değişen bir hafızaya (RAM) sahip olduklarından, işlem yükünü ve hafıza kullanımını en aza indirmek amacıyla, optimize edilmeleri gerekmektedir.

Enerji nakil hatları, barajlar, doğalgaz şebekeleri, haberleşme sistemleri gibi kritik altyapılarda kullanılan birçok gömülü cihaz, kritik öneme sahip görevleri yerine getirmektedir. Bu sebeple, bu cihazlarda yaşanacak olası bir hizmet kesintisi birçok felakete yol açabilir.

Seri üretim sebebiyle, bir sistemin içerebileceği güvenlik zafiyetinden faydalanarak hedefine ulaşan saldırgan, aynı yöntemle diğerlerini de kolaylıkla ele geçirebilir. Çoğunlukla geliştirilmeleri aşamasında güvenliğin öncelikli bir gereksinim olarak ele alınmaması, kurumsal önlemlerde gömülü cihazlara ait protokollerin göz ardı ediliyor olması, kolaylıkla güncellenememeleri, uzun yaşam ve hizmet süreleri, gömülü sistemlerde siber güvenliğin sağlanmasını oldukça güç duruma getiren etkenlere örnek verilebilir.

Akıllı telefon ve akıllı saat gibi gömülü sistem cihazlarının günümüzde mobil ödeme yöntemlerini yaygın olarak kullanması, içerisinde elektronik cüzdan ya da kredi kartı bilgilerini bulundurması, saldırganların ilgisini çekmektedir. Neredeyse herkesin sahip olduğu kimlik kartı, kredi kartı, sim kart ve personel kartı gibi çip bulunduran bu kartlar da aslında birer gömülü sistem olup barındırdıkları bilgiler ve sağladıkları ayrıcalıklar/faydalar sebebiyle saldırganların hedefi haline gelmektedir.

Gömülü sistemlere yapılan saldırı kategorilerinin geniş bir çeşitliliğe sahip olduğu söylenebilir. Bu kategoriler; yan kanal atakları, yazılım atakları, hata ekleme (hata enjeksiyonu), komponent bazında inceleme (mikro problama) ve tersine mühendislik saldırıları olarak özetlenebilir. Bu saldırı yöntemlerinin birçoğu pahalı cihazlar kullanılarak uzman kişiler tarafından yapılmaktadır.

Bu denli geniş yelpazede bulunan saldırılar için güvenlik katmanlarının artırılması, üretim ve işletim maliyetini doğrudan etkileyecektir. Bu sebeple, tasarımı yapılan cihazın kritikliği, içerdiği bilgilerin gizliliği ve önemi doğru analiz edilerek güvenlik tedbirleri bu ölçüde uygulanmalıdır. Örneğin, pil/batarya kullanan ve güç tasarrufunun önem arz ettiği taşınabilir bir gömülü cihazda, ihtiyaç analizi yapılmadan alınmış güvenlik önlemleri, cihazın güç tüketimini önemli ölçüde artıracak ve batarya/pil kapasitesinin daha hızlı tüketilmesine sebep olacaktır.

Donanım Seviyesi-Tedbirler

Saat işaretinin maskelenmesi, zamanlama ve güç tüketiminin rastgeleleştirilmesi, çalışmasının rastgele durdurulması gibi önlemler için mikroişlemcinin tasarımı aşamasında bir sayıcı devrenin kullanılmasıyla, çeşitli yan kanal saldırılarına karşı koruma sağlanabilir. Gömülü sistem içinde saklanacak veriler ROM, RAM, Flash gibi veri saklayan hafıza birimlerinde şifrelenerek saklanabilir ve tek saat darbesinde şifreleme veya şifre çözme işlemi gerçekleştirilebilir.

Kritik veriler, bellek üzerinde rastgele adreslerde saklanabilir. Sıralı olarak saklanan veriler tersine mühendislik saldırılarında saldırganın işini kolaylaştıracağından, özel bir donanım bloğu tasarlanarak adres karıştırma işlemi uygulanabilir.

Veri ve adres yollarının, sabit ya da LFSR (Linear Feedback Shift Register) yardımıyla üretilen bir sayıyla özel fonksiyona (örneğin, XOR) tabi tutulmasıyla da güvenlik artırılabilir. Ayrıca gömülü sistemi oluşturan tümdevrelerde, iki birim arasında iletilen veriler üzerinde bütünlük karşılaştırması (checksum) yardımıyla veri doğrulaması da yapılabilir. Cihazda, bekleme konumunda da veri ve adres yollarına LFSR gibi bir donanım yardımıyla gürültü basılarak saldırgan yanıltılabilir. Ek olarak, bir gömülü sistem donanımına ait kritik veri kütükleri ya da mikroişlemci gibi donanımlar çift olarak tasarlanıp, bazen eş zamanlı bazen gecikmeli çalışma sağlanarak ve/veya tümleşik devre üzerinde farklı konumlara yerleştirilerek de saldırganlar yanıltılabilir.

Güç harcamasının dengelenmesi için iki kat fazla RAM kullanılabilir ya da özel RAM tasarımı yapılabilir. Mantıksal devre elemanları ve aralarındaki bağlantılar, aynı kapasiteye sahip olacak şekilde çift olarak tasarlanabilir. Sürekli çalışması gereken cihazlar tasarlanırken, aynı işi yapan birden fazla blok kullanılarak işlem sırasında yapılacak oylamayla birinin rastgele çalışması sağlanabilir. Cihazın güç beslemesi tasarlanırken, kullanacağı saat darbesini kendisinin üretmesi sağlanarak, sistemin dışından gelebilecek ataklara karşı güvenliği artırılabilir. Dinleme, lazer atışı ve iyon demeti gibi saldırılara karşı devre bloklarının yerinin tespit edilememesi için, bu blokların üretimde rastgele yerleştirilmesiyle ekstra güvenlik sağlanacaktır.

Pasif kalkan, alt tabakaların görüntülenmesini engellediği gibi lazer saldırılarına karşı koruma sağlar. Metal bir kafes olan pasif kalkanın boşluklu yapıda olması ve bu boşlukların olabildiğince sık bulunması, düşük maliyetle koruma sağlamaktadır. Aktif kalkan ise üzerinden akım geçirilen çok sıkı konumlandırılmış birçok iletken hatla sarılmış bütünleşmiş (entegre) devre bloğu üzerinde bulunan metal bir kafestir. Bu hatlar üzerinde sürekli açık/kapalı devre kontrolü yapılarak gömülü sistem devresine dışarıdan yapılacak kötü niyetli saldırılar engellenmeye çalışılır. Pasif kalkana nazaran maliyetli olmasına karşın daha fazla güvenlik sağlar. Bu bağlantıların, birden fazla noktadan kontrol edilmesi daha iyi bir koruma sağlayacaktır.

Gömülü sistem devresi tasarlanırken belirlenen sıcaklık, frekans aralığı, besleme gerilimi gibi çalışma koşullarını denetleyecek analog sensörler, ya da kullanılabiliyorsa daha yeni bir yaklaşım olan dijital sensörler kullanılmalıdır. Analog ve dijital sensörlerden gelen veriler gömülü sistem tümleşik devresi içinde değerlendirilerek cihaza harici müdahale olup olmadığı tespit edilebilir. Bu sayede, çalışma koşullarının değiştirilmesiyle yapılan saldırılar sonucunda meydana gelebilecek zafiyetlerin önüne geçilebilir.

Burada bahsedilen önlemlerin ihlali fark edildiğinde kesme ve silme sinyali üretilerek, gerektiğinde derhal kritik bilginin silinmesi ve donanımın durdurulmasını sağlayacak bir yapı tasarlanmalıdır. Bu sayede, saldırganların kötü niyetli girişimlerinin önüne geçilebilir.

Uygulama Seviyesi-Tedbirler

Gömülü sistem yazılımları incelendiğinde, bilişim sistemlerinde yazılım geliştirmek için yaygın olarak tercih edilen Assembly, C/C++, Python, Perl, Lua ve Rust gibi programlama dillerinin kullanıldığı görülmektedir. Kullanılan programlama dillerinin yaygınlığı, işletilen yazılım geliştirme süreçlerinin benzerliği ve sürdürülen faaliyetlerin kritikliği dolayısıyla güvenli yazılım geliştirme süreçlerinin uygulanması, gömülü sistemlerde siber güvenliğin sağlanmasında önem arz etmektedir.

Gömülü sistemlere sıklıkla gerçekleştirilen uygulama seviyesi saldırıların başında Ekleme (Enjeksiyon) Saldırıları gelmektedir. Çoğunlukla Komut Enjeksiyonu olarak karşımıza çıkan bu saldırıları engellemek için güvenilmeyen tüm verilerin ve kullanıcı girişlerinin doğrulandığından, temizlendiğinden ve/veya çıktıların kodlandığından emin olunmalıdır. Ayrıca, bilinen açıklara karşı koruma sağlamak için çekirdeğin, yazılım paketlerinin ve üçüncü taraf kütüphanelerin zafiyet içermediğinden emin olunmalıdır.

Bu kapsamda, maruz kalınması muhtemel başka bir saldırı olan arabellek ve yığın taşmasını engellemek adına, güvenli olmadığı bilinen fonksiyonlar ve Uygulama Programlama Arayüzleri (Application Programming Interface, API) kullanılmamalıdır. Bunlara örnek olarak, C dili için strcpy (Kopyalama komutu), strcat (Birleştirme komutu) ve scanf (Okuma komutu) gösterilebilir. Bunların tespiti, Buildroot ve Yocto gibi gömülü Linux derleme araçları tarafından yapılabilmektedir. Güvenli olmadığı bilinen kütüphanelerin ve protokollerin kullanılmaması yalnızca atak yüzeyini küçültmekle kalmayıp tasarım gereği güvenlik (secure-by-design) yaklaşımı açısından da uygun bir faaliyet olacaktır.

MIRAI ve BASHLITE gibi zararlı yazılımların, belirli araçlara (örneğin Busybox) sahip sistemleri hedef aldığı bilinmektedir. Bu kapsamda çeşitli zararlı yazılımlar tarafından kullanıldığı bilinen araçların, geliştirilecek sistemde kullanımları sınırlandırılmalıdır. Ayrıca, kötü niyetli saldırıları önlemek için sistem faaliyetleri (dahili konsol erişimi ve uzaktan web yönetimi gibi) için kullanılan hesapların, kullanıcı hesaplarından farklı olması sağlanmalıdır.

Sızması durumunda müşterileri tehlikeye atabilecek nitelikteki bilgilerin (T.C. kimlik numarası, adres, vb.) toplanması gerekiyorsa, tasarımda gizlilik (privacy-by-design) kavramına uyulmalıdır. Örneğin, kullanıcılarından gelen akıllı saat verilerini anonimleştirerek ısı haritası olarak internet üzerinden erişime açan bir uygulama, Afrika’da çölün ortasında bulunan gizli bir askeri üssün varlığının açığa çıkmasına sebep olmuştur. Yazılımın yayınlanmadan önce, gereksiz/kullanılmayan kodları ve/ veya yetkili kullanıcı hesaplarının kaldırıldığından emin olunmalıdır. Ayrıca, şifreleme (kriptografik) yöntemlerinden faydalanılarak güvenilir güncelleme mekanizmaları tasarlanmalıdır. Kriptografik uygulamada kullanılacak tüm iletişim yöntemlerinde, Taşıma Katmanı Güvenliği (Transport Layer Security, TLS) gibi endüstri standardı şifreleme yapılandırmaları tercih edilmelidir. Parola, kullanıcı adı ve özel anahtar gibi bilgiler, yazılım bünyesinde sabit olarak (hardcoded) tanımlanmamalıdır. Ayrıca, hassas verilerin depolanmasında mümkün olduğunca Güvenilir Yürütme Ortamı (Trusted Execution Environment, TEE) gibi özelliklerden faydalanılmalı ya da güçlü kriptografik yöntemlerle veriler korunmalıdır.

En iyi durum senaryosuna göre, açık metin halindeki tüm hassas veriler, bilgisayar yapısı gereği, geçici olmalı ve yalnızca geçici bir bellekte bulunmalıdır. Gömülü sistem bünyesinde üretilen rastgele sayılar ise canlılık ve/veya kalite testlerine tabi tutularak sistem güvenliği artırılabilir. İlgili testler, gömülü cihazının her açılışında gerçekleştirilebileceği gibi kritik işlem öncesinde de tekrarlanabilir.

Sonuç

Gömülü sistemler, saldırganlar tarafından sıklıkla hedef alındığından güvenlik, öncelikli bir gereksinim olarak kabul edilmelidir. Gömülü sistemlerde siber güvenlik, donanım katmanında alınan önlemlerin uygulama seviyesi önlemlerle desteklenmesiyle sağlanabilir. Bu sistemlerde bilginin; gizliliğini, bütünlüğünü ve erişilebilirliğini korumak yalnızca ilgili seviyeler için uygun tedbirlerin alınmasıyla mümkün olabilir.