Günlük hayattta saldırıların çoğu son kullanıcının bir e-postayı açmasını veya kötü niyetli bir bağlantıyı tıklatmasını sağlamakla başarıya ulaşabiliyor fakat IoT dünyasında bu durum biraz daha farklı. Bu nedenle, gömülü cihazlara girmek diğer sızma testlerine göre daha zordur ve daha fazla emek ister. Geleneksel ve geleneksel olmayan sızma testi arasındaki temel fark, IoT’deki çeşitliliktir. Geleneksel sızma testinde genellikle Windows veya Linux x86/x64-bit işletim sistemleri, bilinen TCP/UDP protokolleri ve uygulamaları ile karşılaşmaktasınız. Ancak, IoT dünyasına geçtiğinizde, sızma testlerinde (ARM, MIPS, SuperH, PowerPC, vb.) yaygın olmayan yeni mimarilere sahip cihazlarla karşı karşıya kalmaktasınız. ZigBee, SDR (Yazılım Tanımlı Radyo), BLE (Düşük Enerjili Bluetooth), NFC (Yakın Alan İletişimi) gibi farklı iletişim protokollerini test etmek için yeni uzmanlıklara ve araçlara sahip olmanız gerekir. Bu sebeple geleneksel sızma testi cihazları ve araçları, gömülü cihazların ve bu protokollerin güvenlik açıklarını tespit etmede tamamen kaybolabilir.
Ayrıca birçok insan IoT’yi üç bileşen olarak düşünür. donanım, sunucu ve kullanıcı. Neredeyse güvenlik açığı bulunan yayınlanmış araştırmaların tamamı donanıma odaklanıyor. Gördüğüm mevcut eğitimlerin çoğu, donanıma saldırmaya odaklanır. Ama bana göre bu resmin sadece küçük bir kısmıdır. Sadece bunlara odaklanırsanız, sisteminizin geri kalanını riske maruz bırakırsınız. IoT sistemleri bu kadar basite alınmamalıdır ve daha karmaşık bileşenlere sahip olduğu gerçeği kabullenilmelidir.
Daha önceki yazılarımda saldırı yüzeylerinin ne kadar önemli olduğunu sizlerle paylaşmıştım. Saldırı yüzeyini değerlendirmek için bir IoT ortamının hangi bileşenlerden oluştuğununa hep birlikte bakalım:
- Ağ (Network): Bir IoT ortamı, Internet, BLE, 4G, LTE, Zigbee, LoRA, WiFi, MQTT, 802.11.15.4 vb. bir haberleşme ağına sahiptir.
- Uygulamalar (Applications): IoT uygulamaları cihaz-Web Uygulamasını, Mobil Uygulamayı yönetir ve bunlar web uygulamaları, mobil uygulamalar veya API’ler (SOAP, REST) olabilir.
- Firmware: Bu, aygıtın yazılımı ve işletim sistemidir.
- Şifreleme (Encryption): Şifreleme, cihazda depolanan verileri ve onların iletişimlerini korur.
- Donanım (Hardware): IoT sistemlerin aygıt bileşenleridir. (Yonga seti, Storagestorage, JTAG, UART bağlantı noktaları, Sensörler, Kamera, bağlantı noktası, algılayıcı, kamera veya diğer aygıtlar gibi)
IoT cihazlarının sızma testlerini gerçekleştirmek için diğer tüm güvenlik testi uygulamalarında iyi bir beceriye sahip olmanızın yanı sıra gömülü cihazlara özgü bir kaç özelliğe de sahip olmanız gerekmektedir. Sızma Testini uygulayacak olan kişinin sahip olması gerektiği niteliklere bakalım;
- Bir protokolün hangi protokollerin kullanıldığını ve hangi bilgilerin risk altında olabileceğini belirlemek için ağ güvenliğinde iyi bir bilgiye sahip olması gerekiyor.
- Herhangi bir web tabanlı konfigürasyon arayüzü ile herhangi bir zayıflık olup olmadığını görmek için normal web testlerinde olduğu gibi iyi bir bilgiye sahip olması gerekiyor.
- Gömülü mühendislikte iyi olması ve arka-kapı (backdoor) test arayüzlerini bulmak için mühendislik araçlarını kullanması gerekiyor.
- Belirsiz İşletim sistemi örneklerini test etmede iyi bir bilgiye sahip olması gerekiyor. Bu cihazların büyük bir kısmı Linux’un bazı versiyonlarını çalıştıracak olsa da, birçok çalışan QNX, VXworks, gömülü Windows olan veya bazen cihaza özel işletim sistemleri bulunmaktadır.
- Tersine mühendislik ve çıkarılan ürün yazılımından uygulamaların derlenmesine kadar iyi bir bilgiye sahip olması gerekiyor. Bazı cihazlar, bir işletim sistemine sahip olmayabilir, bu tarz süprizlere hazırlıklı olmak gerekiyor. Bu durumda cihazının saldırıya açık olup olmadığını belirlemek için uygulama üzerinde tamamen tersine mühendislik yapması gerekecektir.
Mikro düzeyde, her bileşenin derinliğini ve potansiyel zayıflıklarını anlamak gerekmektedi. Ne tür bir donanım, ne tür yazılım, ne tür iletişim, hangi yazılım dili, içerisinde hangi eklentileri barındırıyor, bu konuları detaylı bir şekilde irdelemek gerekiyor. Bireysel bileşenlerin zayıflıklarının yanı sıra bileşenlerin etkileşimindeki zayıflıkları da iyi anlamak ve analiz etmek gerekiyor.
Genel hatlarıyla, en sade şekliyle IoT sızma testi methodolojisini 4 grupta özetleyebiliriz.
– Kurumsal IoT: Kontrol Sistemleri, Araç Filo Yönetimi, Medikal Cihazlar vb.
– ICS/SCADA: Enerji SCADA’sı, Trafik Kontrol SCADA’sı, Process SCADA’sı vb.
– Cihaz Belleği
– Cihaz Fiziksel Arayüzleri
– Cihaz Web Arayüzü
– Cihaz Yazılımı (Firmware)
– Cihaz Ağ Sevisleri
– Yönetici Arayüzü
– Yerel Veri Depolama
– Bulut Web Arayüzü
– 3. Parti Backhand API’leri
– Güncelleme Mekanizması
– Mobil Uygulama
– Üretici Backhand API’leri
– Ortamdaki Cihazlarla Haberleşme Altyapısı
– Ağ Trafiği
– Kimlik Doğrulama ve Yetkilendirme Gizliliği
– Donanım (Sensörler)
1. OWASP Top 10 – Mobil Uygulama Arayüzü
– Hatalı Platform Kullanımı
– Güvensiz Veri Saklama
– Güvenli Olmayan İletişim
– Güvensiz Doğrulama
– Yetersiz Şifreleme
– Güvensiz Yetki
– İstemci Kod Kalite Problemleri
– Kod Kurcalama (Tampering)
– Tersine Mühendislik
– Gereksiz İşlevsellik
2. OWASP Top 10 – IoT
– Güvensiz Web Arayüzleri
– Yetersiz Kimlik doğrulama/Yetkilendirme
– Güvensiz Ağ Servisleri
– Şifreli iletişimden kaynaklanan zafiyetler
– Gizlilik problemleri
– Güvensiz Bulut Hizmeti
– Güvensiz Mobil Arayüzü
– Yetersiz Güvenlik Yapılandırması
– Güvensiz Yazılımlar/Firmware
– Zayıf Fiziksel Güvenlik
3. OWASP Top 10 – Web Arayüzü
– Enjeksiyon (Injection)
– Kırık Kimlik Doğrulama ve Oturum Yönetimi
– Siteler Arası Betik Çalıştırma
– Güvensiz Doğrudan Nesne Başvurusu
– Güvenliğin Yanlış Yapılandırılması
– Hassas Veriyi Açıkta Bırakma
– İşlev Seviyesi Erişim Kontrolü Eksikliği
– Siteler Arası İstek Sahteciliği
– Bilinen Açıklık Bileşenlerini Kullanma
– Doğrulanmayan Yönlendirme ve İletme
– Olasılığın tahmin edilmesi için faktörlerin belirlenmesi
– Yaratabileceği tahmini etkiler için faktörlerinin belirlenmesi
– Riskin ciddiyetinin belirlenmesi
– Bu zafiyetin nasıl giderilebileceğinin belirlenmesi
– Risk derecelendirme modelinin oluşturulması
- IoT Platformunun Tanımlanması: Son kullanıcıların kullandığı bir IoT cihazı
- Atak Yüzeylerinin Tanımlanması: Diğer cihazlarla ekosistemi, Cihaz Hafızası, Cihaz Fiziksel Arayüzü, Cihaz Yazılımı, Yerel Veri Depolaması, Güncelleme Mekanizması, Mobil Uygulama, Diğer Cihazlarla Haberleşmesi, Ağ trafiği, Kimlik Doğrulama ve Yetkilendirme Gizliliği
- Zafiyet Testlerinin Gerçekleştirilmesi: Yeniden gönderme (Re-play) atağı (Komutların dinlenerek (Sniffing) Lambanın açıp kapatılması ve ışık renginin değiştirilmesi), Cihaz hafızasına fiziksel erişim izni (WPA2 clear text şifreleme)
- Elde Edilen Bulguların Değerlendirilmesi: Replay atağı için riski ve Cihaz hafızasına fiziksek erişim izini riskimiz düşük olarak belirlenmiştir.
Bu kadar genel bilgi verdikten ve örnek uygulama ile pekiştirdikten sonra IoT sızma testi aşamalarını 6 bölüme ayırarak neleri analiz edeceğimize hep birlikte bir bakalım. Ben IoT sızma testi aşamalarını 6 bölüme ayırarak incelemenin daha doğru olduğuna inanıyorum.
1. Kara kutu (Black Box) testi
Testi gerçekleştirecek olan kişi sistemi gerçek dünyadaki bir saldırgan olarak ele aldığı test methodolojisidir. Sahip oldukları tek bilgi, halka açık olan bilgidir. Gerçek bir saldırı için tek fark, testi gerçekleştirecek olan kişilerin sunuculara ve servislere saldırmaya yetkili olmasıdır.
Çoğu zaman, bu testin büyük bir kısmı, ürün yazılımının kurtarılmasına veya cihazın rootlanmasına odaklanacaktır. Bununla, API’ler dahil sistemin nasıl çalıştığı hakkında bilgi toplarsınız. Bu ciddi sistematik sorunları bulmak için çok önemlidir.
Kara kutu testi genellikle görev odaklı değil, zaman odaklıdır. Testi gerçekleştirecek kişi prosedürleri takip etmesine rağmen, testler, güvenlik açıkları vermesi muhtemel olan yolları izleyerek organik bir şekilde akış içerisinde bulunacaktır.
Avantajları
En düşük müşteri çabası – kapsam netleştirilir ve kabul edilir, üretim cihazları size gönderilir, sonrasında test başlar.
Neredeyse tüm sistemlerle mümkün – yasal, teknik ve hatta iç politika bazen dış tarafların beyaz kutu testi yapmasını engeller.
Gerçek dünyayı simüle eder – herhangi bir saldırganın sisteme nasıl yaklaşacağıdır. Bu aşamada tersine mühendislik çok eğlencelidir.
Dezavantajları
Kullanım süresini en üst düzeye çıkarmaz – kısıtlı erişim veri sayfalarını elde etme, gizlenmiş parçalardan parça numaralarını belirleme ve tersine mühendislik çok katmanlı kartlar gibi görevler için harcanan zaman, güvenliğinizi artırmaz.
Potansiyel olarak düşük kapsama alanı – zamanın tersine mühendislik yaparak ve sistemi keşfederken, güvenlik testinin kendisi için daha az zaman harcanır.
Çoğu zaman, derinlemesine savunmayı göz ardı eder – bir aygıtın yazılımı test sırasında kurtarılamazsa, ancak ürün yazılımı gizli güvenlik açıkları ile doluysa, güvenli bir sistemi korumak için gereken çoklu koruma katmanlarına sahip olmazsınız.
Beyaz kutu (White Box) testi
Testi gerçekleştirecek olan kişi tasarım dokümantasyonuna, özelliklerine, veri sayfalarına, şemalara, mimari şemalara, ürün yazılımına ve hatta potansiyel olarak kaynak koduna erişebilir. Bu bilgileri kullanarak, sisteme saldırırlar. Belgeye açık erişim, Testi gerçekleştirecek kişi test başlamadan önce test için bir plan geliştirmesini sağladığından, beyaz kutu testi görev odaklıdır.
Avantajları
Zamanın kullanımını en üst düzeye çıkarır – test kullanıcıları doğrudan güvenlik testlerine geçebilir.
Tam kapsama – belgelenen her şey uygun şekilde test edilebilir.
Savunma derinlemesinedir – sistemin birçok katmanı, derleme zamanı güvenlik korumaları gibi yönlerden, ana bilgisayarlarda saldırı tespitine kadar incelenebilir.
Dezavantajları
En yüksek müşteri çabası – belgelerin ve diğer bilgilerin sağlanması zaman alıcı olabilir.
Gerçek dünya değil – çalışmalarının çok zayıf bir şekilde yayılmasına neden olabilir ve istismar edilmeyecek kadar derin gizlenmiş güvenlik açıklarına odaklanabilir.
Satın almak zor – birçok satıcı, belgelerine, sistemlerine, fikri mülkiyetlerine veya kodlarına bu erişim düzeyine izin vermek için hala isteksizdir.
Üçüncü taraflar – test edilen sistem birden fazla üçüncü tarafın içeriyorsa, bunların hepsinde beyaz kutu erişim düzeyi elde etmek son derece zor olabilir.
Gri kutu (Grey Box) testi
Bu siyah-beyaz kutu testi arasındaki orta yoldur. Bazı bilgiler açıktır, ancak hepsi değil. Bu, gerçekleştirilen en yaygın test türüdür. Genel anlamda hem siyah hem de beyaz kutu testinin bazı avantaj ve dezavantajlarını birlikte taşır.
Bugünkü yazımı özetlemek gerekirse; Nesnelerin interneti sızma testinin farklılıklarından bahsettik, sonrasında detaylı bir sızma testi methodolojisini oluşturduk ve son olarak 3 farklı genel test yöntemi metodolojisiden bahsettik. Umarım sizlerle paylaştığım bilgiler faydalı olmuştur. Bir başka yazıda görüşmek dileğiyle şimdilik hoşçakalın…
Benim cihazimda armv7l armeabi var number of cpu cores yaziyor nedir bu uzun zamandir buyuk sorunlar yasiyorum lutfen yardjm edin
Tam olarak yaşadığınız sorunu anlamadım ama aşağıdaki bilgiler umarım size yardımcı olur.
Cihazınızda uzun zamandır büyük sorunlar yaşıyorsanız, bunun birkaç sebebi olabilir:
Yetersiz RAM: Cihazınızdaki RAM miktarı, aynı anda kaç tane uygulamayı çalıştırabileceğinizi ve ne kadar hızlı çalışabileceklerini belirler. Yetersiz RAM, uygulamaların kapanmasına, donmasına veya yavaşlamasına neden olabilir.
Yetersiz depolama alanı: Cihazınızdaki depolama alanı, uygulamaları, fotoğrafları, videoları ve diğer dosyaları saklamak için kullanılır. Yetersiz depolama alanı, uygulamaların yüklenememesine veya dosyaların kaydedilememesine neden olabilir.
Eski veya bozuk yazılım: Cihazınızdaki işletim sistemi veya uygulamalar eski veya bozuksa, bu da sorunlara neden olabilir.
Sorunlara çözüm önerileri:
RAM’i artırmak: Cihazınızdaki RAM’i artırmak için yapabileceğiniz pek bir şey yok. Ancak, kullanmadığınız uygulamaları kapatarak veya kaldırarak RAM kullanımını azaltabilirsiniz.
Depolama alanını artırmak: Depolama alanınızı artırmak için bir microSD kart kullanabilir veya kullanmadığınız dosyaları silebilirsiniz.
Yazılımı güncellemek: Cihazınızdaki işletim sistemini ve uygulamaları en son sürüme güncellemek, birçok sorunu çözebilir.
Diğer çözüm önerileri:
Cihazınızı yeniden başlatmak: Cihazınızı yeniden başlatmak, birçok sorunu geçici olarak çözebilir.
Cihazınızı fabrika ayarlarına sıfırlamak: Cihazınızdaki tüm verileri silerek fabrika ayarlarına sıfırlamak, son çare olarak kullanılabilir.