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.
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.
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.
İstatistiksel Analiz
“RPL Tabanlı IOT Cihazları Zafiyetinin Tespiti İçin Makine Öğrenmesi Algoritmalarının Karşılaştırılması” isimli yüksek lisans tezimi bu blog sayfasını kullanarak açıkladım. Ş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. Bu bölümde, zafiyetli düğümlerle yapılan deney sonuçları ile, iyicil düğümlerle yapılan deney sonuçlarını istatistiksel metotlarla karşılaştıracağım. İstatistiksel metotlar bizlere makine öğrenmesi metotlarının düzgün çalışıp çalışmadığı hakkında bilgi verecektir.
Deneylerin Yapılması ve Deney Sonuçları
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.
Saldırı Tespitinde Kullanılan Makine Öğrenmesi Algoritmaları
Ham verileri, anlamlı hale getirirken, zafiyetli düğümle yapılan simülasyondan elde edilen veri seti 1 ile, normal düğümlerle yapılan simülasyon 0 ile etiketlendikten sonra bu iki veri seti birleştirilmiştir. Elde edilen bu yeni veri seti ile “sınıflandırma” algoritmaları karşılaştırılacaktır. Karşılaştırılacak makine öğrenmesi algoritmalarının tanımları bu sayfada açıklanmıştır.
Ham Verilerin Anlamlı Hale Getirilmesi
Ham veri kümesinden elde edilen bilgiler, makine öğrenimini uygulamak için yeterli olmayacaktır. Zayıf düğümler içeren simülasyonlardan elde edilen ham veriler, normal düğümler içeren simülasyonlardan elde edilen ham verilerden tamamen farklıdır. Bu farkın paket sayısı, mesaj türleri, toplam paket uzunlukları ve oranları olduğu gözlemlenmiştir. Bu anormalliği algılamak için, ham veriler 1 saniyelik karelere bölünmüştür. Her saniyenin çerçeveleri içinde aşağıdaki değerler hesaplanmış ve yeni bir veri kümesi oluşturulmuştur.
Simülasyon ve Ham Veri
Önceki makalede, D’Hondt ve diğerlerinin yapmış olduğu RPL Saldırıları İş Çerçevesinden (Framework) Taşma Saldırıları, Azaltılmış Rank Saldırıları ve Sürüm Numarası Artırma Saldırıları için oluşturulan düğümlerin nasıl elde edildiğini açıklamıştım.
Bu makalede ise, bu düğümlerle Cooja’yı kullanarak simülasyon yapacak ve ağ verilerini elde edeceğim.
Makine öğrenmesi için iki adet sınıflandırılmış veri setine ihtiyacımız olacaktır. Bunlardan bir tanesi, içerisinde zafiyetli düğüm barındırmayan ve tamamen normal IoT düğümleri ile yapılan simülasyondan oluşturulan verilerdir. Diğeri ise çerisinde zafiyetli düğüm barındıran normal IoT düğümleri ile yapılan simülasyondan oluşturulan verilerdir. Böylece, bu iki veri setini sınıflandırıp, sınıflandırma algoritmaları ile anomaliyi tespit edeceğiz.
Düğümlerin Elde Edilmesi
Önceki yazımda, Contiki ve Cooja ile, Ubuntu 18.04 işletim sistemine sahip sanal bir bilgisayarda IoT cihazlarının simülasyonunu yapabilmek için Contiki ve Cooja’yı nasıl kurduğumuzu anlatmıştım. Bu sanal bilgisayar ile normal ve zafiyetli IoT cihazlarının veri transferi simülasyonunu yapıp ağ bilgisini alacağız. Elbette bu simülasyonu yapabilmemiz için “normal” ve “zafiyetli” düğümlere ihtiyacımız var. Bu zafiyetli ne normal düğümleri elde etmek için D’Hondt’s RPL Framework başlığı altında D’Hondt ve diğerlerinin (2015) yapmış oldukları iş çerçevesinin (framework) kurulumunun nasıl yapıldığını anlattım.
Bu yazımda ise, D’Hondt ve diğerlerinin (2015) yapmış olduğu çalışmadan “Hello Flood”, “Decreased Rank” ve “Version Number Increase” saldırılarının yapılacağı zafiyetli düğümler ile normal düğümleri nasıl elde ettiğimizi anlatacağım.
D’Hondt’un RPL Saldırı Çerçevesi
D’Hondt ve diğerlerinin (2015) hazırladıkları akademik rapor ile Cooja IoT simülatörünü kullanarak RPL protokolüne yönelik saldırılardan Taşma Saldırılarını, Sürüm Numarası Artırma Saldırılarını ve Azaltılmış Rank Saldırılarını (Decreased Rank) simüle etmeyi başarmışlardır.
Bu yazıda D’Hondt’s RPL Saldırı Çerçevesinin nasıl kurulduğu ile ilgili bilgi bulabilirsiniz.