Access’den PostgreSQL’e Tablo Aktarma
Bu yazıda, excel ve python aracılığıyla Access DB’deki, bir tablonun postgresql’e aktarılması anlatılmaktadır.
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.Algoritma | Parametre |
Lojistik Regresyon | Kütüphane: sklearn.linear_model, LogisticRegressionKütüphanenin mevcut parametreleri kullanılmıştır. |
Rastgele Orman | Kütüphane: sklearn.ensemble, RandomForestClassifierParametreler: n_estimators=8, criterion=’entropy’ |
Karar Ağaçları | Kütüphane: sklearn.tree, DecisionTreeClassifierParametreler: criterion=’entropy’ |
Navie Bayes | Kü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 |
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.Saldırı Türü | Veri Seti Satır Sayısı | Test ve Eğitim Veri Seti Satır Sayısı | Algoritma | Doğruluk Oranı(%) | Eğitim Süresi (ms) |
Taşma Saldırısı(Flooding Attack) | N:214Z:1259T:1473 | N:214Z:214T:428 | Lojistik Regresyon | 95,7 | 363 |
Karar Ağaçları | 93,6 | 0 | |||
Rastgele Orman | 95,0 | 168 | |||
Navie Bayes | 69,7 | 13 | |||
K En Yakın Komşu | 95,7 | 4 | |||
Yapay Sinir Ağları | 97,2 | 1847 | |||
Sürüm Numarası Artırma Saldırısı | N:168Z:1114T:1282 | N:168Z:168T:336 | Lojistik Regresyon | 74,8 | 185 |
Karar Ağaçları | 74,8 | 2 | |||
Rastgele Orman | 72,9 | 253 | |||
Navie Bayes | 74,8 | 5 | |||
K En Yakın Komşu | 81,0 | 2 | |||
Yapay Sinir Ağları | 72,0 | 1688 | |||
Azaltılmış Rank Saldırısı | N:160Z:151T:311 | N:151Z:151T:302 | Lojistik Regresyon | 54,0 | 5 |
Karar Ağaçları | 57,0 | 2 | |||
Rastgele Orman | 58,0 | 10 | |||
Navie Bayes | 54,0 | 1 | |||
K En Yakın Komşu | 56,0 | 0 | |||
Yapay Sinir Ağları | 58,0 | 1720 |
Bu yazıda, excel ve python aracılığıyla Access DB’deki, bir tablonun postgresql’e aktarılması anlatılmaktadır.
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.
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.