Home [Skripsi] Merancang Adaptive-IPS untuk Mencegah Serangan Siber di Jaringan SDN Menggunakan Logika Fuzzy
Post
Cancel

[Skripsi] Merancang Adaptive-IPS untuk Mencegah Serangan Siber di Jaringan SDN Menggunakan Logika Fuzzy

Deskripsi

Semakin tinggi lalu lintas yang hilir mudik melewati suatu jaringan, semakin tinggi pula kemungkinan terjadinya ancaman keamanan siber. Salah satu solusi untuk mencegahnya yaitu menggunakan perangkat lunak bernama Snort yang dapat mendeteksi aktivitas mencurigakan dengan cara memindai lalu lintas yang masuk dan keluar. Jika terbukti berbahaya, maka Snort akan melakukan pemblokiran akses berdasarkan alamat IP selama beberapa saat.

Namun muncul satu masalah, Snort tidak dapat beradaptasi terhadap frekuensi dan jenis serangan. Ini berarti durasi waktu pemblokiran akan tetap statis dengan lama waktu yang telah ditentukan sebelumnya, meskipun host melakukan penyerangan dalam frekuensi tinggi dan severity tinggi.

Logika Fuzzy diimplementasikan untuk mengatasi masalah tersebut sehingga tercipta IPS yang dapat beradaptasi terhadap frekuensi serangan dan jenis serangan.

ilustrasiIlustrasi. Sumber: unsplash.com/speedoshots

Kode sumber dan semua file pendukung tersedia di repositori Github di xcodephile/university-final-project. Untuk informasi mengenai tautan publikasi IEEE dan referensi, silahkan gulir ke bagian Tautan Eksternal di paling bawah.

Komponen

Pengembangan sistem ini melibatkan:

  • Ryu sebagai SDN controller
  • Mininet sebagai emulator jaringan
  • Snort sebagai IPS signature-based

Cara Kerja

Snort diinstal di application plane dan Ryu ditempatkan di control plane. Semua lalu lintas akan terlebih dahulu melewati Ryu dan selanjutnya akan diperiksa oleh Snort berdasarkan pencocokan dengan basis data yang telah didefinisikan sebelumnya (lihat file myrules.rules di repositori). Jika dinyatakan aman, maka Ryu akan meneruskan ke tujuan. Namun jika terindikasi berbahaya, Snort akan mengirim peringatan serta mengatur lama waktu pemblokiran dengan durasi awal 10 menit. Jika host terus melakukan serangan dalam masa waktu kurang dari atau sama dengan 10 menit, maka waktu pemblokiran akan bertambah sesuai dengan frekuensi dan jenis serangan.

Proses dimulai dari file log alert.csv yang merupakan output dari Snort yang berisi informasi timestamp, alamat IP asal, alamat IP tujuan, protokol, dan pesan. File hostInspector.sh akan mengambil baris terakhir dari log tersebut dan mencari selisih waktu antara serangan terakhir dan serangan sebelumnya dari host yang sama. Fuzzy (semua file yang berekstensi *.py) hanya akan dieksekusi jika selisih waktu penyerangan lebih kecil atau sama dengan 10 menit. Output dari fuzzy adalah durasi waktu blokir dalam satuan detik yang nantinya akan berfungsi untuk menjeda proses. File block.sh berfungsi untuk mengirimkan flow entry pemblokiran ke Ryu via REST API. File unblock.sh akan dieksekusi setelah durasi telah mencapai 0 detik dan akan menghapus flow entry pemblokiran.

topologiTopologi Jaringan

Setup

Lakukan proses instalasi Ryu, Mininet, dan Snort terlebih dahulu yang dokumentasinya dapat dibaca di situs web mereka masing-masing.

  1. Jalankan Ryu.

    1
    
    ryu-manager ~/ryu/ryu/app/rest_firewall.py
    
  2. Jalankan Mininet dengan opsi controller remote (diarahkan ke Ryu yang telah running) serta custom topologi yang ada di file topologi.py.

    1
    
    mn --custom ~/mininet/custom/topologi.py --topo mytopo --controller remote --switch ovsk,protocols=OpenFlow13
    
  3. Secara default lalu lintas dari dan ke seluruh host akan diblokir oleh Ryu sehingga diperlukan penambahan flow entry dengan cara menjalankan file flowEntry.sh.

    1
    
    bash ~/flowEntry.sh
    
  4. Jalankan Snort menggunakan interface s1-eth1 (switch 1 port eth-1).

    1
    
    snort -i s1-eth1 -c /etc/snort/snort.conf -l /var/log/snort
    
  5. Jalankan file hostInspector.sh.

    1
    
    bash ~/hostInspector.sh
    

Pengujian

Untuk Pengujian, lakukan uji serangan yang sesuai dengan basis data serangan Snort di file myrules.rules yaitu host discovery (menggunakan metode port scanning) dan DoS agar peringatan bahwa telah terjadi serangan dapat tersimpan ke /var/log/snort/alert.csv.

1
attacker nmap -v -n -sP --send-ip 192.168.0.0/29

Sedangkan untuk DoS dapat memanfaatkan tools hping3.

1
attacker hping3 -c 100 -d 120 -S -w 64 -p 53 --flood server

Tangkapan layar potongan commandTangkapan layar selama pengujian berlangsung

Hasil

Berikut contoh tangkapan layar ketika mencoba ping ke host yang sedang diblokir.

Tangkapan layar hasil uji serangan

Dua gambar di bawah ini menjelaskan bagaimana hubungan antara interval waktu serangan suatu host dengan durasi blokir untuk masing-masing jenis serangan.

Host Discovery

Host Discovery

DoS

Host Discovery

Tautan Eksternal

Kode Sumber

Kode sumber dan semua file pendukung tersedia di github.com/xcodephile/university-final-project.

Publikasi

Penelitian ini telah dipublikasikan di IEEE dan web kampus.

Referensi Utama

This post is licensed under CC BY 4.0 by the author.