Geleceğin teknolojisi akıllı otomobiller (Elektrikli, Hibrit vb.), sahiplerine tüm kontrolleri internet üzerinden yapabilme ve diğer akıllı araçlarla yoldayken iletişim kurabilme imkanı tanıyor. Bu özellikleri kullanabilmek için araçlar internete bağlanıyorlar ve bu durum büyük siber güvenlik risklerini beraberinde getiriyor. Bağlantılarda açık arayan siber saldırganlar bu sayede araca erişim sağlayarak aracın kontrollerini ele geçirebiliyorlar.
Yazılım sızma testleri dünyasından geliyorsanız, muhtemelen saldırı yüzeylerini zaten biliyorsunuzdur. Bilmeyenler için, saldırı yüzeyi (attack surface); bir hedefe saldırmak için her bir bileşenin zafiyetinden, tüm aracı etkileyebilecek tüm yollara işaret eder.
Saldırı yüzeyini tartışırken, bir hedefi nasıl kullanacağımızı düşünmüyoruz; Sadece giriş noktaları ile ilgileniriz. Saldırı yüzeyini, bir nesnenin hacmine karşı yüzey alanı gibi düşünebilirsiniz. İki nesne aynı hacme sahip olabilir, ancak radikal olarak farklı yüzey alanlarına sahip olabilir. Yüzey alanı ne kadar büyük olursa riske daha fazla maruz kalır.
Saldırı yüzeyleri nasıl bulunur ?
Bir aracın saldırı yüzeyini değerlendirirken, kendinizi bir araca kötü şeyler yapmaya çalışan kötü bir casus olarak düşünün. Aracın güvenliğini zayıflatmak için, aracın oluştuğu iç ve dış bileşenleri değerlendirin ve bunları dokümante edin. Örneğin; Bir aracın bir araca ulaşabileceği tüm yolları göz önünde bulundurun, bir aracın dış dünya ile iletişim kurduğu tüm yollar.
Aracın dışını incelerken, kendinize şu soruları sorun:
- Hangi sinyaller alınır? Radyo dalgaları? Anahtarlık? Mesafe sensörleri?
- Fiziksel tuş takımı erişimi var mı?
- Dokunma veya hareket sensörü var mı?
- Araç elektrikli ise, nasıl şarj olur? Şarj üntesinin Araçla Haberleşmesi var mı ?
Araç içini incelerken aşağıdakileri durumları dikkate alın:
- Ses girişi seçenekleri nelerdir: CD? USB? Bluetooth?
- Diyagnostik portu var mı?
- Gösterge panosunun özellikleri nelerdir? GPS var mı? Bluetooth? İnternet?
Bunları düşündüğünüzde, araca girmek için birçok veri yolu var. Bu verilerden herhangi biri yanlış biçimlendirilmiş veya kasıtlı olarak kusurlu ise, ne olur? İşte tam da tehdit modellemesinin işimize yarayacağı yer burası.
Tehdit modelleme hakkında bir çok materyali internet ortamında bulabilirsiniz, ancak size sadece pratik bir bilgi vereceğim ve böylece kendi tehdit modellerinizi oluşturabilirsiniz. Bir aracın tehdit modellemesini yaparken, hedefinizin mimarisi hakkında bilgi toplar ve aracın parçalarının nasıl iletişim kurduğunu gösteren bir diyagram oluşturursunuz. Daha sonra, yüksek riskli girdileri tespit etmek ve kontrol edilecek şeylerin kontrol listesini tutmak için bu haritaları kullanırsınız; bu, en çok geri dönüşü sağlayabilecek giriş noktalarına öncelik vermenize yardımcı olacaktır.
Tehdit modelleri genellikle ürün geliştirme ve tasarım sürecinde yapılır, eğer bir sızma testi yapacaksanız tehdit methodolojisini belirlemeniz faydalı olacaktır. Belirli bir ürünü üreten şirketin iyi bir gelişim yaşam döngüsü varsa, ürün geliştirme başladığında tehdit modelini oluşturur ve ürün geliştirme yaşam döngüsü boyunca hareket ettikçe modeli sürekli olarak günceller. Tehdit modelleri, hedef değiştikçe ve bir hedefle ilgili daha fazla şey öğrendikçe değişen canlı belgelerdir, bu yüzden tehdit modellerinin sık sık güncellenmesi gerekmektedir. Akıllı Araçların tasarım sürecine entegre edildiğinde, tehdit modellemesi, bir uygulama için güvenlik sağlamanın yaşam döngüsü maliyetini azaltacaktır.
Etkili bir tehdit modelinde neler olmalı ?
- Potansiyel bir saldırı için etki yaratması gereken potansiyel tehditleri ve koşulların tanımlanması
- Mevcut koruma tedbirlerinin saldırının sonucunu nasıl etkileyeceğine dair bilgi sağlanması
- Hedef alanlardaki etkilerin azaltılmasına yardımcı olacak bilgilerin sağlaması
- Saldırıların sınıflandırılmasına izin verilmesi ve tehditleri birden çok tehdidin azaltılmasına olanak verecek şekilde geliştirilmesine izin verecek şekilde gruplandırmayı sağlaması gerekir.
Tehdit modeliniz farklı seviyelerden oluşabilir; Modelinizdeki bir işlem karmaşıksa, diyagramlarınıza daha fazla seviye ekleyerek daha fazla parçalamayı düşünmelisiniz. Şimdi bu seviyeleri birer örnek ile daha iyi anlayalım.
Seviye 0: Kuş Bakışı İnceleme
Bu seviyede, saldırı yüzeylerini göz önünde bulundurarak oluşturduğumuz kontrol listesini kullanırız. Verilerin araca nasıl girebileceğini düşünürüz. Aracı merkezde çizin ve ardından harici ve dahili alanları etiketleyin. Şekil 1 örnek bir Seviye 0 diyagramını göstermektedir.
Şekil 1
Dikdörtgen kutular girişlerdir ve merkezdeki daire tüm aracı temsil eder. Araca giden yolda, girişler harici ve dahili tehditleri temsil eden iki noktalı çizgiyi geçiyor. Taşıt çemberi bir girişi değil, karmaşık bir süreci – yani, daha fazla parçalanabilecek bir dizi görevi temsil etmemektedir. Süreçler numaralandırılmış ve görebildiğiniz gibi bu sayı 1.0’dır. Tehdit modelinizde birden fazla karmaşık parça varsa, bunları arka arkaya sıralayabilirsiniz.
Örneğin, ikinci bir işlem 2.0 etiketlersiniz; üçüncü, 3.0; ve bunun gibi. Aracınızın özelliklerini öğrendikçe bu şemayı güncellersiniz.
Seviye 1: Alıcılar
Diyagramımızdaki sadece bir süreç olduğu için, araç sürecine girelim ve her bir girdinin nasıl konuştuğuna odaklanalım. Şekil 2’de gösterilen Seviye 1 haritası, Seviye 0’daki ile hemen hemen aynıdır. Tek fark, burada Seviye 0 girişini alan araç bağlantılarını belirtmemizdir. Seviye 1’de henüz alıcılara derinlemesine bakmayacağız; Sadece girdinin konuştuğu temel cihaz veya alana bakıyoruz.
Şekil 2
Hücresel İletişim
Bir saldırgan, araçtaki hücresel bağlantıdan yararlanarak:
- Dahili araç ağına her yerden erişim sağlayabilir.
- Araç içi Bilgi-Eğlence sistemindeki gelen aramaları yönetebilir.
- Abone kimlik modülüne (SIM) araç içi bilgi-eğlence sistemi üzerinden erişim sağlanabilir.
- Uzaktan Diyagnostik sistemine (OnStar) bağlanmak için hücresel ağ kullanılabilir.
- Hücresel haberleşme gizlice dinlenebilir.
- Gelen çağrıları manupüle ederek bastırabilir. (Jammer)
- Aracın hareketlerini takip edebilir.
- Mobil İletişim (GSM) baz istasyonu için sahte bir iletişim ağı kurabilir.
Kablosuz internet (Wi-Fi)
Bir saldırgan, Wi-Fi bağlantısını şu amaçlarla kullanabilir:
- Araç ağına en fazla 300 metre uzaklıkta bir yerden erişim sağlayabilir.
- İnternet erişimi ile gelen bağlantıları dinleyen istismar yazılımı kurabilir.
- Aracın Eğlence sistemine kötü amaçlı kod yükleyebilir.
- Wi-Fi şifresini kırabilir.
- Araca servis verme bahanesiyle kandırmak için sahte bir bayi erişim noktası kurabilir.
- Wi-Fi ağından geçen iletişimi engelleyebilir.
- Araç takibi yapılabilir.
Anahtarlık
Bir saldırgan anahtarlık bağlantısından yararlanarak şu amaçlar için kullanabilir:
- Aracın immobilizer’ını bilinmeyen bir duruma getiren hatalı biçimlendirilmiş sinyal istekleri gönderebilir.
- Araç aküsünü boşaltmak için bir immobilizer’i aktif olarak çalıştırabilir.
- Aracı kitleyebilir ve açılmasını önleyebilir.
- El sıkışma işlemi sırasında immobilizerden sızan kriptografik bilgileri yakalayarak analiz edebilir.
- Anahtar sinyalini bastırarak anahtarlık fonksiyonlarını devre dışı bırakabilir.
- Anahtarlık algoritmasını brute-force atak yöntemlerini kullanarak kırabilir.
- Anahtarı klonlayabilir.
Lastik Basıncı Monitörü Sensörü
Bir saldırgan Lastik Basıncı Monitörü Sensörü bağlantısını kullanarak aşağıdakilerden yararlanabilir:
- Motor kontrol ünitesine (ECU) imkansız bir durum göndererek, büyük bir arızaya neden olabilir.
- ECU’ya giden Lastik Basıncı verilerini manipüle edebilir.
- Dahili alarmları kapatmak için Lastik Basıncı Sensör sinyallerini taklit edebilir.
Bilgi-Eğlence Konsolu
Bir saldırgan, bilgi-eğlence konsolu bağlantısını kullanarak aşağıdakilerden yararlanabilir:
- Konsolu hata ayıklama moduna geçirebilir.
- Diyagnostik ayarlarını değiştirebilir.
- Beklenmeyen sonuçlara neden olan bir girdi hatası oluşturabilir.
- Kötü amaçlı yazılımları konsola yükleyebilir.
- Dahili CAN Bus ağına erişmek için kötü amaçlı bir uygulama yükleyebilir.
- Aracın yolcuları tarafından gerçekleştirilen konuşmalara kulak misafiri olmak için kötü amaçlı bir uygulama yükleyebilir ve araç içi konuşmaları dinleyebilir.
- Araç konumu gibi kullanıcıya görüntülenen verileri kötü amaçlı bir uygulama üzerinden dışarıya taşıyabilir.
USB
Bir saldırgan bir USB bağlantı noktası kullanarak aşağıdakilerden yararlanabilir:
- Bilgi-Eğlence Konsoluna kötü amaçlı yazılım yükleyebilir.
- Bilgi ve eğlence biriminin USB yığınında bir hata oluşturabilir.
- Adres defteri ve MP3 kod çözücüler gibi bilgi-eğlence sistemini kırmak için özel hazırlanmış fiyonklara sahip kötü niyetli bir uygulama yükleyebilir.
- Araca değiştirilmiş zararlı kod içeren güncelleme yazılımı yükleyebilir.
- USB portunu kısa devre yaparak bilgi-eğlence sistemine zarar verebilir.
Bluetooth
Bir saldırgan, Bluetooth bağlantısını kullanarak aşağıdakilerden yararlanabilir:
- Bilgi-eğlence konsolunda zararlı kod çalıştırabilir.
- Bilgi ve eğlence konsolunda önemli bir hata oluşturabilir.
- Kodu yürütmek üzere tasarlanmış bozuk adres defteri gibi hatalı biçimlendirilmiş bilgiler yükleyebilir.
- Araca yakın mesafelerden erişim sağlayabilir. (En fazla 300 metre)
- Bluetooth sinyallerini bastırabilir ve iletişimi engelleyebilir.
CAN-BUS
Bir saldırgan CAN veri yolu bağlantısını şu amaçlarla kullanabilir:
- Paketleri CAN veri yoluna göndermek için kötü amaçlı bir yazılım yükleyebilir.
- Anahtarsız bir aracı çalıştırmak için doğrudan CAN yoluna bağlanabilir.
- Kötü amaçlı yazılım yüklemek için doğrudan CAN veri yoluna takabilir.
- Aracı takip etmek için kötü amaçlı yazılım kurabilir.
- Uzaktan iletişimi doğrudan CAN veriyoluna sağlamak için kötü amaçlı bir yazılım yükleyerek, bu sayede dahili bir saldırıyı harici bir tehdit haline getirebilir.
Seviye 2: Alıcı Kırılımları
Hangi uygulamanın hangi bağlantıyı kullandığını incelediğimizde, olası tehditlere dayanarak doğrulama gerçekleştirebiliriz. Tehditleri beş gruba ayıracağız: Bluez (Bluetooth daemon), wpa_supplicant (Wi-Fi daemon), HSI (yüksek hızlı senkron arayüz hücresel çekirdek modülü), udev (çekirdek aygıt yöneticisi) ve Kvaser sürücüsü (CAN alıcı-verici sürücüsü). Aşağıdaki listelerde, her programa yönelik tehditleri görebilirsiniz.
bluez
Bluez daemon’un eski veya yamalanmamış versiyonları:
- Zafiyetli olabilir.
- Bozuk adres defterlerini işleyemeyebilir.
- Doğru şifrelemeyi sağlamak için konfigüre edilemeyebilir.
- Güvenli el sıkışmasının sağlamak için konfigüre edilmemiş olabilir.
- Varsayılan parolaları kullanabilir.
wpa_supplicant
- Eski versiyonları istismar edilebilir.
- WPA2 şifreleme methodunu kablosuz bağlantıda uygulayamayabilir.
- Kötü niyetli erişim noktalarına isteğimiz dışında bağlanabilir.
- Sürücüdeki bilgileri BSSID üzerinden sızdırabilir.
HSI
- Eski versiyonlar istismar edilebilir.
- Enjekte edilebilir seri iletişime karşı duyarlı olabilir (MiTM)
udev
- Daha eski, güncellenmemiş sürümler saldırıya karşı duyarlı olabilir.
- Bir aygıtın muhafaza edilmiş whitelistinin olmaması, bir saldırganın test edilmemiş veya kullanım amacı taşımayan ek sürücüler veya USB aygıtları yüklemesine izin verebilir.
- Bir saldırganın, bilgi ve eğlence sistemine erişmek için klavye gibi yabancı cihazları yüklemesine izin verebilir.
Kvaser Sürücüsü
- Daha eski, güncellenmemiş sürümler istismar edilebilir.
- Bir saldırganın Kvaser cihazına kötü amaçlı yazılım yüklemesine izin verebilir.
Bu olası güvenlik açıkları listeleri hiçbir şekilde kapsamlı değildir, sadece bu listelerin nasıl oluşturulduğuna dair fikir vermesi için sizlerle paylaştım. 3. seviyedeki bir aracın tehdidi haritasına gidecekseniz, HSI gibi süreçlerden birini seçer ve saldırıya karşı hassas olabilecek hassas yöntemleri ve bağımlılıkları belirlemek için çekirdek kaynağına bakmaya başlarsınız.
DREAD Derecelendirme Sistemi
DREAD derecelendirme sistemi; bir puanlama sistemi kullanarak, her potansiyel riski sıralayarak ve sınıflandırabilmemizi sağlar.
(Damage potential) – Hasar potansiyeli: Hasar ne kadar büyük?
(Reproducibility) – Tekrarlanabilirlik: Yeniden tekrarlanması ne kadar kolay?
(Exploitability) – Saldırılabilirlik derecesi: Saldırı ne kadar kolay?
(Affected users) – Etkilenen kullanıcılar: Kaç kullanıcı etkileniyor?
(Discoverabilty)- Keşfedilebilirlik: Güvenlik açığını bulmak ne kadar kolay?
Bu bölümde, güvenlik tedbirlerini almak için tehdit modellerini kullanmanın önemini, teknik ve teknik olmayan kişilerin olası saldırı senaryoları üzerinde beyin fırtınalarını nasıl yaptıldığını ve zafiyet test adımlarının nasıl yazılı hale getirildiğini öğrendiniz. Daha sonra tüm potansiyel riskleri tanımlamak için zafiyet senaryolarını belirledik. Bir puanlama sistemi kullanarak, her potansiyel riski sıraladık ve sınıflandırdık. Akıllı Araçların zafiyet testlerine geçmeden önce bu çalışmayı mutlaka yapmamız gerekiyor, bu methodolojiyi farklı sistemlerin zafiyet testlerini yapmak içinde bir methodoloji olarak kullanabilirsiniz. Daha sonraki yazılarımda bu testlerin nasıl yapılacağı ile ilgili detaylara gireceğim.