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

İçerik Tablosu

Deneylerin Yapılması ve Deney Sonuçları

Ham veri setleri anlamlı hale getirilip, normal ve zafiyetli olarak sınıflandırılmıştır. Makine öğrenmesi gerçekleştirilmeden önce de normal ve zafiyetli veri setlerinden eşit miktarda satır alınmıştır. Bunun için de 60’ıncı saniyeden itibaren elde edilen normal veya zafiyetli veri setlerinden en az satıra sahip olan veri setinin satır sayısı baz alınmış, diğer veri setinden de aynı miktarda satır sayısı alınmıştır. Böylelikle dengeli veri miktarının elde edilmesi hedeflenmiştir. Makinenin kaynak ve hedef IP adreslerine göre bir saldırı olup olmadığını öğrenmemesi için normalizasyon işleminden önce veri setlerinde kaynak ve hedef IP adresleri çıkarılmıştır. Akabinde veriler normalize edilmiştir. Test ve eğitim veri setleri normalizasyon işlemi denklem 3.18 ile yapılmıştır. Burada z, normalleştirilmiş değeri temsil eder, x normalize edilmemiş veridir, μ tüm x değerlerinin ortalamasıdır ve σ, x değerlerinin standart sapmasıdır. Bu işlem, pythondaki StandardScaler kütüphanesi ile gerçekleştirilmiştir. z=\frac{x-\mu}{\sigma}\ \ and\ \mu=\frac{1}{N}\sum_{i=1}^{N}\left(x_i\right)\ \sigma=\sqrt{\frac{1}{N}\sum_{i=1}^{N}\left(x-\mu\right)^2}

Denklem 3.18

Akabinde, veri kümesi 2/3 miktarında test ve eğitim veri kümelerine bölünmüştür. (2/3 eğitim, 1/3 test).Bu aşamadan sonra, veri setleri farklı makine öğrenmesi algoritmaları ile eğitilip, test edilerek RPL protokolünde gerçekleştirilecek Taşma, Sürüm Numarası Artırma ve Azaltılmış Rank saldırılarının tespitinde kullanılacak en uygun makine öğrenmesi algoritması belirlenecektir. Bu maksatla, altı tür makine öğrenimi algoritması test edilmiştir. Bunlar Lojistik Regresyon Sınıflandırması, Karar Ağaçları, Rastgele Orman, Navie Bayes, KNN Sınıflandırıcı ve Yapay Sinir Ağları algoritmalarıdır. Deneyler, 16 GB RAM, Intel(R) Core(TM) i7-8565U CPU  1.80GHz   1.99 GHz , özelliklerine sahip bilgisayar ile gerçekleştirilmiştir. Makine öğrenmesi algoritmalarının uygulaması Python 3 ile icra edilmiştir. Makine öğrenimi için uygulanan parametreler Tablo-3.4’de gösterilmektedir.

Tablo 3-4 Makine Öğrenmesi Algoritmalarında Kullanılan Parametreler

AlgoritmaParametre
Lojistik RegresyonKütüphane: sklearn.linear_model, LogisticRegressionKütüphanenin mevcut parametreleri kullanılmıştır.
Rastgele OrmanKütüphane: sklearn.ensemble, RandomForestClassifierParametreler: n_estimators=8, criterion=’entropy’
Karar AğaçlarıKütüphane: sklearn.tree, DecisionTreeClassifierParametreler: criterion=’entropy’
Navie BayesKütüphane: sklearn.naive_bayes, GaussianNBKütüphanenin mevcut parametreleri kullanılmıştır.
KNN SınıflandırıcıKütüphane: sklearn.neighbors, KNeighborsClassifierKütüphanenin mevcut parametreleri kullanılmıştır.
Yapay Sinir AğlarıKütüphane: tensorflow, keras6 Katmanlı bir yapı uygulanmıştır.Neron sayıları:26,52,56,13,7,1Optimizer:”Nadam”; Tekrar:60; Tahmin Eşiği:0,7
Deneylerin icra edilmesinden sonra doğruluk oranı ve eğitim süresi değerleri üzerinden karşılaştırılacaktır.Doğruluk oranı (DO), denklem 3.19’daki gibi hesaplanmış ve GP Gerçek Pozitif, GN Gerçek Negatif, YP Yanlış Pozitif ve YN yanlış negatiftir. DO=\frac{GP+GN}{GP+GN+YP+YN}

Denklem 3.19

Deneyler icra edildikten sonra, Taşma saldırısı, Sürüm Numarası Artırma Saldırısı, Azaltılmış Rank Saldırısına ait veri setlerinin kaç satırdan oluştuğu, doğruluk oranı ve eğitim süresi değerleri Tablo 3.5’te gösterilmiştir. Veri setinin makine öğrenmesi algoritmaları ile eğitilmesinden sonra, elbette hata oranının tespiti daha kısa zaman alacaktır. Ancak, bu tez çalışmasında, aynı saldırılara ait veri setleri farklı makine öğrenmesi algoritmaları ile analiz edilip bu algoritmalar arasındaki en hızlı, etkili, karmaşık olmayan ve güvenilir algoritmayı tespit etmek amaçlanmıştır. Dolayısıyla daha kısa sürede eğitimi gerçekleştiren ve yüksek doğrulukla saldırıyı tespit edebilen algoritma daha maliyet etkin olacaktır. Aşağıda saldırılara ait elde edilen sonuçlar yorumlanmıştır.Bu deneye ilişkin python kodlarına buradan erişebilirsiniz.

Tablo 3-5 Deney Sonuçları

Saldırı TürüVeri Seti Satır SayısıTest ve Eğitim Veri Seti Satır SayısıAlgoritmaDoğruluk Oranı(%)Eğitim Süresi (ms)
Taşma Saldırısı(Flooding Attack)N:214Z:1259T:1473N:214Z:214T:428Lojistik Regresyon95,7363
Karar Ağaçları93,60
Rastgele Orman95,0168
Navie Bayes69,713
K En Yakın Komşu95,74
Yapay Sinir Ağları97,21847
Sürüm Numarası Artırma SaldırısıN:168Z:1114T:1282N:168Z:168T:336Lojistik Regresyon74,8185
Karar Ağaçları74,82
Rastgele Orman72,9253
Navie Bayes74,85
K En Yakın Komşu81,02
Yapay Sinir Ağları72,01688
Azaltılmış Rank SaldırısıN:160Z:151T:311N:151Z:151T:302Lojistik Regresyon54,05
Karar Ağaçları57,02
Rastgele Orman58,010
Navie Bayes54,01
K En Yakın Komşu56,00
Yapay Sinir Ağları58,01720

Blog özeti

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.Bu yazımızda işlenen verileri eğitip RPL protokolünde saldırıyı makine öğrenmesi algoritmaları ile tespit edeceğiz.

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