Skip to content

xcodephile/university-final-project

Repository files navigation

university-final-project a.k.a. Skripsi

Perancangan adaptive Intrusion Prevention System (IPS) untuk pencegahan penyerangan di jaringan Software-Defined Network (SDN) menggunakan logika fuzzy.

Pengembangan sistem ini melibatkan:

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

Daftar Isi

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.

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.

Adapun topologi yang digunakan adalah sebagai berikut.

Instalasi dan Konfigurasi

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

  1. Jalankan Ryu.

    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.

    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.

    bash ~/flowEntry.sh

  4. Jalankan Snort dengan interface menggunakan s1-eth1 (switch 1 port eth-1).

    snort -i s1-eth1 -c /etc/snort/snort.conf -l /var/log/snort

  5. Jalankan file hostInspector.sh.

    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.

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

Sedangkan untuk DoS dapat memanfaatkan tools hping3.

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

Hasil

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

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

Host Discovery

DoS

Tautan Eksternal

About

Perancangan adaptive Intrusion Prevention System (IPS) untuk pencegahan penyerangan pada jaringan Software-Defined Network (SDN) menggunakan fuzzy logic.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published