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.
Taşma saldırısı veya diğer bir adıyla “Hello Flood” saldırısına ait oluşturulan veri seti toplam 428 satırdır. Aynı veri seti, farklı makine öğrenmesi algoritmaları ile eğitildiğinde ve aynı değerler teste tabi tutulduğunda en fazla doğruluk oranına sahip algoritma %97,2 doğruluk oranı ile Derin Öğrenme algoritmasıdır. Bu algoritmayı sırasıyla %95,7 doğruluk oranı ile Lojistik Regresyon ve K En Yakın Komşu, %95 doğruluk oranı ile Rastgele Orman, %93,6 doğruluk oranı ile Karar Ağaçları, %69,7 doğruluk oranı ile Navie Bayes algoritmaları izlemektedir. Eğitim süreleri göz önüne alındığında, Karar Ağaçları sınıflandırma algoritması 1 milisaniyenin altında işlemi gerçekleştirmiştir. Bu algoritmayı sırasıyla 4 milisaniye ile K En Yakın Komşu, 168 milisaniye ile Rastgele Orman, 363 milisaniye ile Lojistik Regresyon ve 1847 milisaniye ile Yapay Sinir Ağları takip etmektedir.
Taşma saldırılarında ağ paketleri anormal davranışlar sergiler. Taşma saldırıları büyük miktarda trafik oluşturur ve düğümleri ve bağlantıları kullanılamaz hale getirir. Bu saldırı zafiyetli bir düğümün gereksiz DIS mesajları göndermesi ile oluşur. Bu farklılık şekil 3.10’da açıkça görülmektedir. Saldırı olan bir ağın paketlerindeki DIS oranı normal bir ağdaki DIS oranları ile farklılık gösterir. Bu nedenle bu saldırı kolaylıkla tespit edilebilmiştir. Ayrıca istatistiksel metotların karşılaştırılması bölümünde de anomali fark edilmektedir.
Yapay sinir ağları, gelişmiş bir algoritmadır. Bu algoritma, Taşma Saldırıları için oluşturulmuş elimizdeki veri setindeki anomaliyi yüksek doğrulukla tespit etmiştir.
DIS oranlarının farklılık göstermesi, sonucun olup olmamasını doğrudan etkilediği için etkiliyorsa doğrusal bir denklemle ifade edilebilir. Bu yüzden Lojistik Regresyon algoritması da %95’in üzerinde bir sonuç vermiştir.
Taşma saldırılarında, veri paketlerindeki “kategorik” veri niteliğindeki DIS oranlarının farklılık göstermesi, özellikle Karar Ağaçları algoritmalarının bu saldırıyı kolay tespit edebilmesini sağlar. Çünkü DIS oranlarındaki “bilgi kazancı” diğer girdilere göre daha yüksektir. Eğitim süresinin kısa olması, hızlı çalışmasından kaynaklanır.
KNN algoritmasının, yüksek doğrulukla saldırıyı tespit edebilmesinin nedeni, yine DIS mesajlarının anomaliliğinden kaynaklanır.
Sürüm Numarası Artırma Saldırısına ait oluşturulan veri seti toplam 336 satırdır. Aynı veri seti, farklı makine öğrenmesi algoritmaları ile eğitildiğinde ve aynı değerler teste tabi tutulduğunda en fazla doğruluk oranına sahip algoritma %81 doğruluk oranı ile K En Yakın Komşu algoritmasıdır. Bu algoritmayı sırası ile %74,8 doğruluk oranı ile Lojistik Regresyon, 74,8 doğruluk oranı ile Karar Ağaçları, 74,8 Navie Bayes doğruluk oranı ile, %72,9 doğruluk oranı ile Rastgele Orman, %72 doğruluk oranı ile Yapay Sinir Ağları izlemektedir. Eğitim süreleri göz önüne alındığında 2 milisaniye ile KNN ve Karar Ağaçları makine öğrenmesi algoritmaları en kısa sürede eğitilmiştir. Bu algoritmayı, 5 milisaniye Navie Bayes, 185 milisaniye ile Lojistik Regresyon, 253 milisaniye ile Rastgele Orman, 1688 milisaniye ile Yapay Sinir Ağları takip etmektedir.
Versiyon Numarası artırma Saldırısı, zafiyetli bir düğümün, versiyon numarasını değiştirip komşularına iletmesi ile gerçekleşir. Bu gerçekleştiğinde, diğer düğümler normal DODAG yapısının değiştiğini anlar ve DODAG yeniden oluşturulmak istenir. DODAG’ın art arda gereksiz yeniden yapılandırılması, mesaj ek yükünü önemli ölçüde artırır, düğüm kaynaklarını tüketir ve ağı tıkar. Versiyon Numarası Artırma Saldırısına ait görüntüler Şekil-3.11’’de yer almaktadır. Özellikle 22 düğümle yapılan deneyde, DODAG yapısının oluşmadığı Şekil-3.11’de görülmektedir.
DODAG’ın her defasında yeniden oluşması DAO, DIA ve DAO-ACK mesajlarının ve veri paketi uzunluklarının artmasına neden olur.
KNN algoritmasının, yüksek doğrulukla saldırıyı tespit edebilmesinin nedeni, yine DAO, DIA ve DAO-ACK mesajlarının ve veri paketi uzunluklarının anomaliliğinden kaynaklanır.
DAO, DIA ve DAO-ACK mesajlarının ve veri paketi uzunluklarının normal düğümlerle yapılan simülasyondan elde edilen değerler göre farklılık göstermesi, yine doğrusal bir denklemle ifade edilebilmeyi kolaylaştırdığı için Lojistik Regresyon algoritması da saldırıyı tespit edebilmiştir.
Yapay sinir ağları, gelişmiş bir algoritmadır. Bu algoritma da bu saldırı için oluşturulmuş elimizdeki veri setindeki anomaliyi yüksek doğrulukla tespit edebilir.
Azaltılmış Rank Saldırısına ait oluşturulan veri seti toplam 302 satırdır. Aynı veri seti, farklı makine öğrenmesi algoritmaları ile eğitildiğinde ve aynı değerler teste tabi tutulduğunda en fazla doğruluk oranına sahip algoritma %58 doğruluk oranı ile Rastgele Orman ve Yapay Sinir Ağları algoritmasıdır. Bu algoritmayı sırası ile %57 doğruluk oranı ile Karar Ağaçları, %56 doğruluk oranı ile K En Yakın Komşu, %54 doğruluk oranı ile Lojistik Regresyon ve Navie Bayes algoritmaları izlemektedir. Eğitim süreleri göz önüne alındığında K En Yakın Komşu makine öğrenmesi algoritması 1 milisaniyenin altında eğitilmiştir. Bu algoritmayı, 1 milisaniye ile Navie Bayes, 2 milisaniye ile Karar Ağaçları, 5 milisaniye ile Lojistik Regresyon, 10 milisaniye ile Rastgele Orman ve 1720 milisaniye ile Yapay Sinir Ağları takip etmektedir.
Diğer saldırılarla karşılaştırıldığında, Azaltılmış Rank saldırısının tespit edilme oranı oldukça düşüktür. Bunun nedeni, bu saldırının amacının hizmeti engellemesi veya sistemin çalışmasını aksatması olmamasıdır. Azaltılmış rank saldırısı, gizliliği ihlal eden saldırılardandır. Bu saldırıda, zafiyetli düğüm, anormal bir şekilde daha düşük bir rank duyurduğunda, birçok normal düğüm saldırgan aracılığıyla DODAG grafiğine bağlanır. Bu saldırı ağa zarar vermediği için tespit edilmesi diğerlerine nispeten daha zordur çünkü normal ve zafiyetli veri paketleri benzer özellikler gösterir.
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.