RPL Tabanlı IOT Cihazları Zafiyetinin Tespiti İçin Makine Öğrenmesi Algoritmalarının Karşılaştırılması

İçerik Tablosu

6LoWPAN ve RPL

6LoWPAN

6LoWPAN, 802.15.4 cihazlarla iletişimi desteklemek için IETF tarafından oluşturulan açık bir standarttır. Düşük güçlü kablosuz kişisel alan ağı üzerinden IPv6 protokolü ile çalışır. Bu protokol BLE, düşük güçlü RD, düşük güçlü Wi-Fi, vb. bir dizi WPAN (Wireless Personal Area Network- Kablosuz Kişisel Alan Ağı) cihazını destekler.WPAN cihazlarının değişken adres uzunlukları, sınırlı paket boyutu ve düşük bant genişliği vs., IPv6 özelliklerini barındırmak için bir uyum katmanına ihtiyaç duymaktadır. 6LoWPAN protokol uygulaması, başlık sıkıştırması ile bu problem sahasına çözüm sunar. Bu başlık sıkıştırma özelliği, çeşitli ek yükleri (yani parçalanma ek yükünü ve iletim ek yükünü) azaltır ve IoT cihazlarının IP iletişimi için tatminkâr bir destek sağlar. (Shelby & Bormann, 2009 1)6LoWPAN örgü ağının mimarisi Şekil 2.4’de gösterilmiştir. 6LoWPAN ağı, yönlendiricilerden (R) ve ana bilgisayarlardan (H) oluşur. Ana bilgisayarlar, uç nokta cihazlarıdır ve verileri, nihayetinde alınan verileri hedef düğümlere yönlendiren yönlendiricilere gönderir. Hedef cihaz, ağ içindeki bir 6LoWPAN cihazı veya WPAN ağı dışındaki herhangi bir IP tabanlı cihaz olabilir. 6LoWPAN ağı, 6LoWPAN uç yönlendiricinin uygulanması yoluyla IPv6 ağına bağlanır. İnternet ağ geçidi cihazı, farklı IP tabanlı cihazların, yani PC’lerin ve sunucuların bağlandığı IPv6 yönlendiricidir. İnternette WPAN cihazları ile IP tabanlı cihazlar arasında veri alışverişi, 6LoWPAN uç yönlendiricinin uygulanmasıyla mümkündür. (Raj & Raman, 2017 2)
Şekil 2.4 6LoWPAN Ağ Mimarisi

RPL (Düşük Güçlü ve Kayıplı Ağlar için Yönlendirme)

Bu tez çalışmasının konusu, “RPL tabanlı nesnelerin interneti cihazlarına yapılan saldırıların tespiti için kullanılabileceBu tez çalışmasının konusu, “RPL tabanlı nesnelerin interneti cihazlarına yapılan saldırıların tespiti için kullanılabilecek makine öğrenmesi yöntemlerinin karşılaştırılması” olduğu için RPL protokolü üzerinde biraz daha fazla durulacaktır.k makine öğrenmesi yöntemlerinin karşılaştırılması” olduğu için RPL protokolü üzerinde biraz daha fazla durulacaktır.RPL, “Routing Protocol for Low-Power and Lossy Networks” yani “Düşük Güçlü ve Kayıplı Ağlar için Yönlendirme” cümlesinin kısaltılmışıdır. RPL protokolü, IETF tarafından cihazların düşük güçlü ve kayıplı ağlarda çalışabilmesi maksadı ile Mart 2012’de oluşturulmuş bir ağ katmanı protokolüdür. (Winter, ve diğerleri, Mart 2012 3)IoT cihazları doğası gereği sınırlı işlem gücüne, belleğe ve genellikle pille çalıştıkları için sınırlı enerjiye sahiptirler. Bu yüzden bu cihazların maliyet etkin bir şekilde birbirlerine bağlanmaları ve sahip oldukları kısıtlı kaynakları en etkin biçimde kullanılması kaçınılmazdır. Daha fazlası, ortamda, birden çok IoT cihazı varsa, bu cihazların kısıtlı kaynakları etkin bir biçimde kullanabilmeleri için birbirlerine noktadan noktaya (point to point) değil, birçok durumda noktadan çok noktaya (point to multipoint) veya çok noktadan noktaya (multi point to point) bağlanarak modellenmeleri gerekmektedir. Ayrıca bu ağlar binlerce düğüm içerebilir. RPL protokolünün çıkış noktası bu düşünceden doğar.RPL protokolünün anlaşılması için, terimlerin anlaşılması gereklidir.

Terimler

DAG (Directed Acyclic Graph-Yönlendirilmiş Asiklik Grafik): Yönlendirilmiş asiklik grafik. Kapalı bir döngü oluşturmayacak şekilde n adet düğümün birbirine yönlendirilmesidir. Örnek bir DAG Şekil 2.5’te gösterilmiştir.

Şekil 2.5: Örnek Bir DAG.

DAG Kökü (DAG Root): DAG’daki düğümlerin hedefidir. Bir diğer düğüme gitmez. Şekil 2.5’deki örnekte “E” düğümü DAG köküdür.

DODAG (Destination Oriented DAG-Hedefe Yönlendirilmiş DAG): Her düğümün tek bir hedefe ulaşmak istediği özel bir çeşit DAG türüdür. DODAG ve diğer tanımlar Şekil 2.6’da görülmektedir.

Şekil 2.6: DODAG ve Diğer Terimler.

DODAG Kökü (DODAG Root): Oluşan her bir DODAG’ın düğümlerinin bağlandığı köktür.

Sanal DODAG kökü: Bir Sanal DODAG kökü, iki veya daha fazla RPL yönlendiricinin sonucudur, Örneğin, 6LoWPAN Sınır Yönlendiricileri (routers), düşük güçlü ve kayıplı ağlarda DODAG durumunu senkronize etmek ve tek bir DODAG kökü gibi (birden çok arayüzle) birlikte hareket etmek için koordinasyon kurarlar.

Yukarı: Köke doğru yönlendirilen herhangi bir kenardır.

Aşağı: Kökten uzağa yönlendirilen herhangi bir kenardır.

Rank:Bir düğümün DODAG köküne olan uzaklığıdır. Rank aşağı doğru artar ve yukarı yönlü düşer. Rank, DODAG’ın Hedef Fonksiyonuna bağlı olarak hesaplanır.

Hedef Fonksiyonu: Bir düğümün köke ne kadar uzaklıkta olduğunu belirleyen fonksiyondur. Burada uzaklık kavramı programcı veya tasarımcı tarafından belirlenir. Burada “uzaklık” kavrama en aza indirgememiz gereken parametredir. Bu parametre enerji veya gecikme olabilir.

Amaç Kod Noktası (OCP): (Objective Code Point) Bir OCP, DODAG’ın hangi Hedef Fonksiyonunu kullandığını belirten bir tanımlayıcıdır.

RPL Olay Kimliği: Bir RPL olay kimliği (RPL Instance ID), bir ağ içindeki benzersiz bir tanımlayıcıdır. Aynı RPL olay kimliğine sahip DODAG’lar aynı hedef fonksiyonunu paylaşır.

RPL Örneği: Bir RPL Örneği, bir RPL olay kimliği paylaşan bir veya daha fazla DODAG kümesidir. En fazla, bir RPL düğümü, bir RPL Örneğinde bir DODAG’a ait olabilir. Her RPL olayı, diğer RPL olaylarından bağımsız olarak çalışır.

DODAGID: DODAG kimliği, bir DODAG kökünün tanımlayıcısıdır. DODAGID, LLN’deki (Low-Power and Lossy Networks- Düşük Güçlü ve Kayıplı Ağlar) bir RPL Örneği kapsamında benzersizdir. Her DODAG’ın bir IPv6 Kimliği (128 bit) vardır. Bu kimlik yalnızca DODAG köküne verilir ve kök kimliği değiştirmediği sürece de değişmez.

DODAG Sürümü: Bir DODAG Sürümü, belirli bir DODAGID ile bir DODAG’ın belirli bir yinelemesidir. DODAG’ın her yeni şekli, yeni bir sürüm anlamına gelir.

DODAG Sürüm Numarası: DODAG Sürüm Numarası, bir DODAG’ın yeni bir Sürümünü oluşturmak için kök tarafından artırılan sıralı bir sayaçtır. Bir DODAG Sürümü benzersiz bir şekilde (RPL Olay Kimliğinde, DODAG kimliğinde, DODAG Sürüm Numarasında) başlıkla tanımlanır.

Hedef: Hedef, Bir DODAG’ın ulaşmak istediği yerdir. Kablolu veya kablosuz bir ağ olabilir. Hedef, Amaç işlevinden farklıdır. Amaç işlevinde amacımız en aza indirmektir. Ancak Hedef, gitmek istediğimiz yerdir.

Topraklanmış (Grounded): DODAG hedefine ulaştığında topraklanmıştır.

Yüzen (Floating): DODAG, topraklanmamışsa yüzer. Yüzen bir DODAG’ın hedefi karşılamak için gerekli özelliklere sahip olması beklenmez. Bununla birlikte, DODAG içindeki diğer düğümlere bağlantı sağlayabilir.

DODAG ebeveyni (DODAG Parent): Ebeveyn, okların işaret ettiği yerdir. Bir çocuk ise, okun geldiği yerdir. Ebeveynlerin birden fazla çocuğu olabilir, Benzer şekilde bir çocuğun birden fazla ebeveyni olabilir.

Alt DODAG (Sub-DODAG): Belirli bir DODAG’ın alt ağacıdır.

Yerel DODAG (Local DODAG): Yerel DODAG’lar yalnızca bir kök düğümü içerir ve bu tek kök düğümün, yerel bir RPL Olay Kimliği ile tanımlanan bir RPL Örneğini diğer düğümlerle koordinasyon olmadan tahsis etmesine ve yönetmesine izin verir. Tipik olarak bu, LLN içindeki bir varış noktasına giden rotaları optimize etmek için yapılır.

Evrensel DODAG (Global DODAG): Evrensel DODAG, diğer birçok düğüm arasında koordine edilebilen RPL Olay Kimliğine sahip DODAG’tır.

Saklanan (Stored): Saklanan düğümleri bütün yönlendirme tablosu bilgisini kaydeder. Bu düğümler sadece kendi ebeveyn düğümlerini bilirler.

Saklanmayan (Non-Stored): Basittirler, herhangi bir yönlendirme tablosunu saklamazlar, sadece ebeveynlerini bilirler.

Aşağıda düğümler arasında gönderilen mesajlara ait terimler yer almaktadır.

DIO:(DODAG Information Object- DODAG Bilgi Nesnesi): Bu mesaj, aşağı doğru çok noktaya yayınlanır. Bir DODAG’daki belirli bir düğüm, bu mesajı çok noktaya yayınlayarak diğer düğümlerin topraklanmış olup olmadığını veya saklanan olup olmadığı bilgisini iletir.

DIS (DODAG Information Solicitation-DODAG Bilgi İsteme): Duyuru duyulmadığında ve bir düğüm bir DODAG’a katılmak isterse bir kontrol mesajı gönderir, Bunun için herhangi bir DODAG olup olmadığını bilmek ister.

DAO (DODAG Advertisement Object-DODAG Duyuru Nesnesi): Bir çocuk düğüm tarafından ebeveyn düğüme veya köke gönderilen bir istektir. Bu mesaj ile, bir düğüm, çocuk düğüm olarak bir DODAG’a katılmak için izin ister.

DAO-ACK (DODAG Advertisement Object Acknowledgement- DODAG Duyuru Nesnesi Kabulü): Bir kök veya ebeveyn tarafından çocuğa gönderilen bir yanıttır, bu yanıt Evet veya Hayır olabilir. (Winter, ve diğerleri, Mart 2012 1)

RPL Protokolünün İşleyişi

Kök, DODAG’da özel bir düğümdür. Tüm düğümler DODAG’da kök olma özelliğine sahip değillerdir.

A, B, C, D, E, F, G düğümlerinden oluşan bir DODAG’ımız olsun. A düğümü ise kök düğümü olsun. Diğer düğümlerin uzaklıkları sırasıyla B=1, C=1, D=5, E=8, F=8, G=9 olsun. Bu durumda, aşağıdaki adımlar olacaktır.

  • Öncelikle kök düğümü olarak belirlenen A Düğümü Şekil 2.7’de görüldüğü gibi tüm düğümlere DIO mesajı yayınlar.
Şekil 2.7: DIO Mesajının Yayınlanması.
  • B, C, D, E, F, G düğümleri DIO’ları aldıktan sonra DODAG oluşturmaya başlayacaktır. Bu düğümler, DIO mesajı ile birlikte, A’dan mesafelerinin Sırasıyla 1,1,3,4,4,6 olduğunu da öğrenirler.
  • Sonrasında, B,C,D,E,F,G düğümleri A’ya DAO mesajını şekil 2.8’deki gibi iletirler.
Şekil 2.8: DAO Mesajının Yayınlanması.
  • A, DAO-ACK mesajını tüm düğümlere gönderir ve tüm düğümleri kabul eder. Böylece şekil 2.9’daki gibi bir DODAG oluşur.
Şekil 2.9: DAO-ACK Mesajı ve DODAG Oluşması.
  • Bu aşamadan sonra, rankı en düşük olan düğümler, kök gibi davranır ve yukarıdaki süreçler tekrarlanır. B ve C diğer düğümlere Şekil 2.10’da görüldüğü gibi DIO mesajı gönderir ve böylelikle kendilerine olan düğüm uzaklıkları da belirlenir.
Şekil 2.10: Yeni düğümlerin DIO Mesajı Göndermesi.

Yeni durumda, B düğümüne D,E,F,G düğümlerinin mesafesi sırası ile 2,3,5,6 olsun. C düğümüne de D,E,F,G düğümlerinin mesafesi sırası ile 3,5,4,7 olsun.

  • D,E,F,G düğümleri DIO mesajlarını aldığında DIO mesajlarını gönderen B ve C düğümlerinin kendilerine olan mesafesini anlar. D,E,G düğümleri B düğümüne C düğümünden daha yakın olduğu için B düğümüne DAO mesajı gönderir. F düğümü, C düğümüne B düğümünden daha yakın olduğu için C düğümüne DAO mesajı gönderir. Böylelikle B ve C düğümleri DAO-ACK mesajı gönderir ve yeni DODAG oluşur. Bu süreç döngü Şekil 2.11’de görüldüğü gibi DODAG tamamlanana kadar devam eder.
Şekil 2.11: Yeni DODAG Oluşumu.
  • Bir sonraki adımda en düşük ranka sahip olan D düğümü DIO mesajı gönderecek ve döngü en maliyet etlkin yol bulununcaya kadar devam edecektir. Son durum Şekil 2.12’de gösterilmiştir.
Şekil 2.12: DODAG’ın tamamlanması.
  • Eğer yeni bir düğüm, DODAG’a katılmak isterse, bu düğüm DODAG’a DIS mesajı gönderir. DODAG’ın bu mesajı almasından sonra, DIO mesajı gönderilir, mesafeler hesaplanır, Yeni düğüm DAO mesajı gönderir, DODAG yeni düğümü DAO-ACK mesajı ile kabul eder veya reddeder. Yeni düğüm tarafından DIS mesajının gönderilmesi Şekil 2.13’de ve DAO, DAO-ACK mesajlarının gönderilerek yeni DODAG’ın oluşturulması Şekil2.14’de gösterilmiştir. (Winter, ve diğerleri, Mart 2012)
Şekil 2.13: DIS ve DIO Mesajlarının İletilmesi.
Şekil 2.14: DAO, DAO-ACK Mesajları ve Yeni DODAG Oluşumu.

RPL Protokolü İle İlgili Diğer Bilgiler

DODAG’ın göze çarpan özelliği olarak, yalnızca tek bir kök düğüme sahip olduğu, diğer düğümlerin, üst düğüm hakkında bilgi içerdiği fakat hiçbir düğümün alt düğümler hakkında bilgi içermediğini söylemek mümkündür.

RPL protokolü IPv6 protokolünü kullanır.

Kaynakça

1. Shelby, Z., & Bormann, C. (2009). 6LoWPAN: The Wireless Embedded Internet. UK: WILEY. (Geri Dön)

2. Raj, P., & Raman, A. (2017). The Internet of Things: Enabling Technologies, Platforms, and Use Cases. New York: CRC Press. (Geri Dön)

3. Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., Levis, P., . . . Alexander, R. (Mart 2012). RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks. Internet Engineering Task Force. https://www.hjp.at/doc/rfc/rfc6550.html adresinden alındı (Geri Dön)

Blog özeti

Bu tez çalışmasının konusu, “RPL tabanlı nesnelerin interneti cihazlarına yapılan saldırıların tespiti için kullanılabilecek makine öğrenmesi yöntemlerinin karşılaştırılması” olduğu için RPL protokolü üzerinde biraz daha fazla durulacaktır.

Yazar Hakkında

Diğer Yazılar

Tezim
Murat Uğur KİRAZ

Sonuç

Bu bölümde, RPL protokolüne yapılan Taşma Saldırısı, Azaltılmış Rank Saldırısı ve Sürüm Numarası Artırma Saldırısı “Karar Ağacı”, “Lojistik Regresyon”, “Rasgele Orman”, “Naive Bayes”, “K En Yakın Komşu” ve “Yapay Sinir Ağları” algoritmaları ile eğitilmiş ve test edilmiştir.

Taşma Saldırılarının tespitinde %97,2 doğruluk oranı ile Yapay Sinir Ağları algoritması, Sürüm Numarası Artırma Saldırılarının tespitinde %81 doğruluk oranı ile K En Yakın Komşu algoritması, Azaltılmış Rank saldırılarının tespitinde %58 doğruluk oranı ile Yapay Sinir Ağları algoritması başarı gösterdiği tespit edilmiştir.

Daha Fazla oku >>
Tezim
Murat Uğur KİRAZ

Makine Öğrenmesi Değerlerinin Yorumlanması

RPL Tabanlı IOT Cihazları Zafiyetinin Tespiti İçin Makine Öğrenmesi Algoritmalarının Karşılaştırılması başlıklı yüksek lisans tezimi nasıl yaptığımı, bu süreçte elde ettiğim tecrübelerimi ve bu tezdeki kodları bir yazı dizisi halinde blog sayfamda paylaşmaya devam ediyorum.

Şimdiye kadar, RPL protokolü ve RPL protokolünde gerçekleşen saldırılarla ilgili detaylı bilgi verdim. Sonrasında, Taşma Saldırıları, Sürüm Numarası Artırma Saldırısı ve Azaltılmış Rank Saldırısı ile ilgili deneyler yapıp, ham verileri elde ettim ve bu ham verileri anlamlı hale getirdim. Zafiyetli düğümlerle yapılan deney sonuçları ile, iyicil düğümlerle yapılan deney sonuçlarını istatistiksel metotlarla karşılaştırdım.

Bu bölümde ise makine öğrenmesi algoritmaları ile tespit ettiğimiz saldırıların sayısal sonuçlarını yorumlayacağım.

Daha Fazla oku >>

Yazıyı paylaşın

LinkedIn
Twitter