5
BAB II
TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka
Sebelum melakukan penelitian ini, peneliti melakukan studi literatur terhadap penelitian yang sudah dilakukan serta memiliki beberapa keterkaitan dengan penelitian yang lain.
Pada penelitian sebelumnya, Wulandari meneliti tentang Profiling serangan DDoS yang mengambil data dari sebuah Honeypot log dan digunakan Algortima K-Mean clustering. Dalam Penelitian yang dilakukanterdapat serangkaian log yang didapat dari honeypot dan peneliti mengubah log tersebut menjadi file bertipe CSV. Pada Penelitian yang dilakukan tersebut menggunakan analisa serangan dari serangan yang direkam oleh Honeypot dan akan dikrimkan kepada seuah server tersendiri, dan server tersebut akan melakukan analisa dari log tersebut dan akan dipetakan dari hasil mengolah data log tersebut, server akan menjalankan pekerjaan secara realtime dalam menganalisa log dari Honeypot tersebut. [7].
Penelitian sebelumnya yang lain, membahas tentang serangan DDoS pada
SDN dilakukan oleh Nishanth Devarajan Moreno Ambrosin, Fabio De Gaspari,
Mauro Conti mereka membahas mengenai CPSA. CSPA adalah Control Plane
Saturation, pada penelitian tersebut merka membahas tentang bagaimana CSPA
bisa di serang dan bagaimana penyerang melakukan serangan terhadap jaringan SDN. Dan Hasil yang didapatkan yaitu, serangan DDoS sangat berdampak pada jaringan SDN khususnya pada Controllernya, pada Controller penggunaan CPU akan naik secara tajam jika terjadi serangan DDoS. Dari tingkat penggunaan
CPU pun bisa disimpulkan dengan serangan yang relatif rendah, penggunaan CPU di Controller akan bisa mempengaruhi Controller dalam menangani
melayani jaringan yang normal [8].1
Lalu Pada penelitian yang lain yaitu DDoS Detection and Analysis in
SDN-based Environment Using Suport Vektor Machine Classifier yang
dilakukan oleh Kokila yaitu melakukan penelitian tentang deteksi dan analisis serangan DDoS pada lingkungan SDN mengggunakan algoritma klasifikasi SVM
(Support Vektor Machine). Kebutuhan penelitian dilakukan dalam ruang
6
Openflow, dan menggunakan data training dari DARPA 2000 untuk membentuk
pola klasifikasi. Hasil dari penelitian tersebut. Menemukan bahwa akurasi dari pendeteksian serangan lebih dari 90% dan ini sudah cukup membuktikan jika algoritma dalam machine learning lainnya dapat diterapkan dalam penelitian yang akan dilakukan[5]. Dari penelitian sebelumnya sudah dibuat Mapping yang bisa dilihat di tabel 1.1.
Tabel 1.1. Mapping Penelitian
Judul Tahun Author Metode Kontribusi
Implementasi Virtual Low-Interaction Honeypot dengan Dionaea untuk Mendukung Keamanan Jaringan 2014 Ahmad Fikri Nurrahman Menggunakan Honeypot - Honeypot Dionaea - Jaringan Tradisional DDoS detection and analysis in SDN-based environment using support vector machine classifier 2014 Kokila, R. T., Thamarai Selvi, S., & Govindarajan, K Algoritma Support Vector Machine Classifier - Jaringan Software Defined Network - Algoritma SVM - Deteksi DDoS - Menggunakan DARPA dataset - Menghitung Akurasi dan Training Time
7 Detection of distributed denial of service attacks in software defined networks 2017 N. Meti, D. G. Narayan, and V. P. Baligar Algoritma Naive Bayes, SVM, dan Neural Network - Jaringan SDN - Algoritma Naive Bayes, SVM, dan Neural Network - Deteksi DDoS - Menghitung Akurasi, Precision, dan Recall Penggunaan Algoritma K-Means pada Datalog Honeynet untuk Mengetahui Cyber Profiling Serangan DDoS 2018 Wulandari W. A Algoritma K-Means digunakan untuk Profiling Serang DDoS - Menggunakan Honeypot - Algoritma K-Means - Deteksi DDoS
Tabel 1.2. Penelitian yang dilakukan
Judul Tahun Metode Kontribusi
Analisa Perbandingan Deteksi Serangan DDos pada Jaringan SDN-Honeypot Menggunakan Supervised Learning 2020 Menggunakan Algoritma Machine Learning: KNN, Decision Tree, dan Random Forest - Jaringan SDN-Honeypot - Algoritma KNN, Decision
Tree, dan Random Forest - Deteksi dan Mitigasi Serangan
DDoS
- Menghitung Precision, Recal dan F1 Score
- Menghitung Cpu Usage - Menghitung Waktu Mitigasi
8
Perbedaan penelitian ini dan penelitian sebelumnya adalah penelitian ini berfokus pada Analisa Deteksi serangan DDoS ICMP flood pada arsitektur SDN yang menggunakan MHN sebagai perekam paket di dalam jaringan SDN, deteksi dilakukan dengan Algoritma K Nearest-Neigboars, Decision Tree
(CERT) dan Random Forest dan , dan memitigasi dengan mengirimkan flow rule
pada semua switch yang terhubung pada jaringan SDN.
2.2 Software Defined Network
SDN adalah jenis jaringan yang baru dalam merancang, memanajemen dan membuat jaringan luas yang semakin banyak [7][8]. Konsep dasar dari jaringan SDN adalah jaringan SDN itu memisahkan antara control plane dan
data/forwarding plane. Pada jaringan tradisional,control plane dan data plane
berada pada satu perangkat yang sama. Control Plane berfungsi mengatur atau mengontrol aliran data pada suatu perangkat jaringan, sedangkan
Data/forwarding Plane berfungsi untuk mengiriman paket aliran datanya.
Dengan adanya pengaturan yang terpisah seperti itu maka kita dapat manajemen jaringan dengan mudahnya, karena kita hanya mengontrol perangkat controller saja.
2.2.1 Arsitektur Jaringan SDN
9
Pada dasarnya jaringan SDN itu memiliki 3 lapisan layer , yaitu yang pertama adalah layer aplikasi, layer aplikasi adalah layer yang paling atas. Layer aplikasi ini adalah layer yang bertugas untuk menghubungkan antara end user dengan aplikasi yang bekerja pada jaringan. Seperti contohnya HTTP, POP3,FTP,SMTP dan lain sebagainya. Ada sebuah terdapat sebuah aplikasi yang bernama application Programming Interface atau disingkat dengan (API) , API ini berfungsi sebagai penghubung komunikasi antar kedua layer tersebut API berada pada layer aplikasi dan layer kontrol ,.
Layer yang kedua disebut dengan layer control, layer control merupakan tempat adanya controller di jaringan SDN. Pada layer ini bertugas untuk mengelola dan memprogram data plane atau forwarding plane.
Dan yang terakhir adalah layer Infrastruktur. Pada layer ini adalah layer fisik dari perangkat jaringan sdn yang sudah suport protokol Openflow dan pada
layer ini merupakan data plnae yang di atu oleh controller atau control plane
yang ada pada controller. Pada layer ini bertugas untuk mengirimkan informasi atau memforward paket paket yang yang ada sesuai dengan apa yang diperintahkan controller atau control plane. Pada data plane merupakan alat alat fisik seperti ethernet, switch,router dan lain sebagainya.
2.3 RYU Controller
Ryu Controller adalah salah satu software controller pada jaringan SDN
yang bersifat Open source, dibuat untuk tujuan memudahkan dalam mengelola jaringan, memanajemen jaringan yang lebih efisien, dan menangani lalu lintas jaringan. Kata Ryu berasal dari bahasa jepang yaitu “flow” yang artinya adalah aliran. Lalu bahasa yang di gunakan untuk mendevelope adalah basa Python.
Didalam Ryu disediakan Aplication Programming Interface atau bisa disebut API yang bisa mempermudah dalam hal pengembangan kontrol jaringan dan memanajemen jaringan. Didalam Ryu juga didukung oleh banyak macam protokol yang suport, salah satunya adalah Netconf, Openflow, Ofconfig dan lain sebagainya. Kemudian Ryu juga Mendukung Openflow versi 1.0 sampai dengan 1.5 dan Nicira Extensions[9].
Controller Ryu bisa menghandel semua detail koneksi yang terhubung
10
lebih mudah digunakan. Didalam controller Ryu terdapat 3 bagian yang utama yaitu:
1. Registration dan inisialization dari controller aplication.
Dalam registrasi yang digunakan adalah untuk menginisialisasi data yang ada supaya dapat digunakan pada perangkat dibawahnya. Seperti menginisialisasikan MAC address menjadi port yang mudah dipahami[10].
2. Initialization on a switch connecting Ryu
Pada tahap ini, Controller Ryu dan switch sudah terhubung dengan baik dan secara langsung semua switch yang terkoneksi dengan ryu akan dapat mngeneali controller yang ada dan bisa mengirim respon terhadap ryu controller agar dapat dikenali. Pada aplikasi
Simpleswitch, ada yang namaya flow table-miss, yang berfungsi untuk
mengfilter setiap paket yang akan dikirimkan kepada controller[10]. 3. Handling Incoming Packets
Pada tahap ini switch mengirimkan paket kepada controller ryu dan
controller ryu menerima dengan tahu bahwa itu adalah respon
OFPT_PACKET_IN. Lalu controller menambahkan flow entry. Dan pada saat itu juga switch akan melakukan fowarding paket sesuai dengan apa yang diperintahkan oleh Controller [10].
2.4 OpenFlow
OpenFlow adalah, salah satu jenis dari APIs (Aplication Protocol Interfaces) dalam jaringan SDN yang digunakan untuk mengontrol/mengatur traffic flows pada switch dalam sebuah jaringan, control plane berkomunikasi
dengan data plane melalui OpenFlow. OpenFlow dapat bekerja pada switch dari berbagai vendor[11].
OpenFlow sendiri adalah southbound interface, dimana interface yang
memungkinkan terjadinya komunikasi antara layer controller dan data plane pada arsitektur SDN[11].
Agar OpenFlow dapat bekerja sesuai dengan tujuan dan fungsinya,
11
OpenFlow Switch. gambar dibawah yang mengambarkan bagian- bagian dari OpenFlow[11].
Gambar 2.4. Arsitektur Open Flow [26]
1) OpenFlow Controller
OpenFlow Controller bertugas mengontrol path,
memformulasikan flow dan mengatur kerja dari OpenFlow switch. Terdapat beberapa OpenFlow controller yang dapat digunakan seperti NOX (C base), RYU (phyton base), dan Floodlight (java base) .
2) OpenFlow Switch
OpenFlow mendefinisikan protokol open source untuk
memantau atau mengubah flow table di berbagai switch dan router.
2.5 Moders Honey Network
Modern Honey Network (MHN). MHN adalah sistem manajemen honeypot yang biasanya digunakan untu kberbagai keperluan keamanan jaringan
yang siap untuk perusahaan yang memudahkan mengorganisir keamanan jaringan aktif yang berfungsi secara realtime[12].
MHN merupakan software yang sifatnya Opensource dan jenis dari honeypotnya adalah low-interaction Honeypot. Low-interaction Honeypot merupakan honeypot yang memiliki sedikit port dan service yang umum, lain halnya dengan High-Interaction Honeypot, High-Interaction Honeypot
12
merupakan Honeypot yang untuk resourcenya menggunakan keseluruh apa yang ada pada komputer atau server. Jadi bisa disimpulkan bahwa
low-interaction Honeypot itu mempunyai resiko keamanan yang relatif lebih rendah
dibanding High-Interaction Honeypot. MHN bisa digunakan untuk penggunaan crowdsourcing. Crowdsourcing artinya yaitu semua data serangan yang ada pada Honeypot dapat analisis dari sumbernya, jenis serangannya, dan lain sebagainya. Dan dapat ditampilkan dalam sebuah Peta digital dunia yang dapat mengetahui dari mana serangan itu berasal [12].
2.6 Suricata
Suricata adalah alat deteksi monitoring serangan jaringan yang sifatnya
Open Source. Suricata menggunakan rule untuk mendeteksi serangan dalam lalu
lintas jaringan. Suricata juga mendukung bahasa scripting Lua yang digunakan untuk mendeteksi serangan yang sangat kompleks dalam lalu lintas jaringan. Suricata adalah software yang dikembangkan oleh Open Information Security Foundation[13].
Pada penelitian ini Suricata menjadi sensor Honeypot di dalam MHN yang terinstall di dalam MHN itu sendiri dengan menggunakan deploy sensor maka suricata dapat dipasang di MHN.
2.7 DDoS
DDoS adalah salah satu jenis kejahatan komputer yang dilakukan terhadap sebuah komputer atau server dengan cara menghabiskan sumber daya yang dimiliki komputer atau server tersebut sehingga pengguna lain tidak dapat mengakses layanan yang disediakan oleh komputer atau server tersebut. Serangan DDoS pada SDN ditunjukkan dengan cara mengeksploitasi logika pemisahan jalur data terhadap kontrol SDN atau penyerang akan terus mengirimkan paket IP dengan header acak untuk menempatkan Controller dalam keadaan tidak responsif. Contohnya, attack traffic ini dapat dihasilkan dengan mengirimkan paket UDP bervolume tinggi yang mengambil seluruh bandwidth sehingga traffic yang sah tidak dapat mencapai tujuannya[3].
13 2.7.1 ICMP Flood
Packet ICMP membutuhkan server untuk memproses permintaan dan menanggapinya, sehingga dibutuhkan sumber daya CPU. Serangan pada protokol ICMP salah satunya adalah ICMP Flood, cara kerja ICMP Flood adalah dengan membanjiri server dengan permintaan ICMP tanpa menunggu tanggapan. Sehingga resource yang harusnya digunakan untuk menanggapi packet normal akan kekurangan resource cpu dan mengakibatkan konektivitas dari paket normal akan terganggu[14].
2.8 Mikrotik
Mikrotik merupakan salah satu perangkat keras yang diproduksi oleh perusahaan Mikrotik dari Latavia. Perusahan ini bukan hanya memproduksi perangkat keras tetapi juga perangkat lunak. Perangkat berupa router, switch dan sistem wireless digunakan untuk membangun sebuah jaringan baik itu skala besar maupun kecil [15]. Pada penelitian ini mikrotik yang digunakan adalah RB941 2nd yang diinstall openflow switch pada alat tersebut dan berfungsi sebgai switch yang menghubungkan antar host dan Controller.
2.9 Python
Python adalah bahasa pemrograman yang populer. Bahasa pemrograman python merupakan bahasa tingkat tinggi, bahasa ini dibuat oleh Guido van Rossum. Bahasa python adlah bahasa yang mudah untuk mempelajarinya dikarenakan dengan kemudahannya, bahasa ini sering digunakan di berbagai macam program seperti Mobile, web, IOT, GUI, hacking, dan lain sebagainya.
Python termasuk bahasa pemrograman yang mudah untuk dipelajari.
Sampai saat ini bahasa pemrograman Python hampir dipakai di segala bidang seperti game, sistem berbasis web, dan bahkan dapat membuat mesin pencari sendiri. Jadi secara umum, bahasa pemrograman ini dipakai dalam pengembangan website, pengembangan software, matematika, dan system
scripting [16].
2.10 Scapy
Scapy merupakan suatu software yang digunakan untuk memanipulasi
14
pemrograman python. Scapy bisa membangun dan memecah paket menjadi paket yang diinginkan, contoh nya membuat paket dengan protokol UDP ataupun TCP yang umum digunakan dan bisa juga untuk membuat paket dengan ketentuan yang berfariasi dengan apa yang diinginkan.. dalam penggunaannya Scapy dapat digunakan untuk membantu kegiatan yang berhubungan dengan keamanan jaringan, seperti kegiatan "attack", "scanning", " tracerouting " "network discovery" dan lain sebagainya. Scapy diciptakan oleh Philippe Biondi dan Scapy bmemberikan informasi tahap bagaimana membuat paket dan memanipulasinya. [17].
2.11 Tcpreplay
TCPreplay adalah alat yang biasanya digunakan oleh admisintrator
jaringan dalam skenarion menguji jaringan yang ada. Dengan menggunakan
Tcpreplay ini kita dapat megirim serangkaian paket yang telah dibuat
sebelumnya atau paket yang sudah di rekam sebelumnya. Tcpreplay bisa mengirim kan paket yang disimpan dengan format PCAP dan mengirimkannya dengan urut sesuai dengan urutan pada file PCAP tersebut, kecepatan dalam mengirim file tersebut juga bisa diatur dengan menggunakan pps atau packet per
second. Dalam tugas membuat paket pcap, biasanya Scapy adalah tools yang
mudah digunakan untuk itu[18].
2.12 Machine Learning
Machine learning merupakan cabang dari ilmu kecerdasan buatan(Artificial intellegence) . Pada dasarnya Machine Learning adalah proses komputer dalam mempelajari data yang ada. Jadi mesin tidak akan bisa belajar jika tidak ada data yang dipelajari. Pada machine learning ada tiga bagian utama [19], yaitu:
1) Model 2) Parameter 3) Pembelajaran
Pada Machine Learning terdapat dua jenis teknik yaitu : Supervised
Learning dan Unsupervised Learning, dimana Supervice Learning tujuannya
15
Unsupervised Learning mengelompokan data dengan tidak ada datatrain
sebelumnya [19].
Supervised Learning
Supervised learning merupakan jenis teknik Machine Learning yang
biasanya digunakan untuk mengkategorikan suatu data dengan menggunakan sebuah dataset yaitu data yang sudah ada sebelumnya dan digunakan untuk mesin pelajari sebalum mengkategorikan suatu data baru.
Unsupervised learning
Unsupervised learning merupakan teknik Machine Learning yang
digunakan untuk mengelompokkan data dengan tidak memiliki dataset atau data latih sebelumnya, jadi mesin disuruh mengelompokkan data berdasarkan parameter yang ada pada data tersebut.
2.12.1 K-Nearest Neigboars
K-Nearest Neighbor (KNN) adalah salah satu algoritma Supervised Learning dimana dalam mengkategorikan suatu data dengan menggunakan
sebuah dataset yaitu data yang sudah ada sebelumnya dan digunakan untuk mesin pelajari sebelum mengkategorikan suatu data baru. Dalam menggunaannya, algoritma KNN menggunakan pengklasifikasiannya dengan ditentukannya banyak ruang berdimensi banyak. Dan setiap data yang akan di klasifikasi akan merepresentasikan titik-titik c di dalam ruang tersebut. Lalu dalam proses klasifikasinya, Algoritma KNN mencari titik c terdekat dari c yang baru. Dalam algoritma KNN ini perlu parameter k yaitu adalah banyaknya titik c terdekat yang digunakan untuk pengklasifikasian data yang baru masuk[20].
2.12.2 Decision Tree
Decision Tree merupakan salat satu metode klasifikasi yang populer.
Karena mudah dipelajari oleh manusia, Decision tree berarti pohon keputusan adalah model klasifikasi data menggunakan struktur pohon hirarki. Decision
Tree merupakan salah satu Machine learning yang bisa digunakan untuk Supervised Learning dan Unsupervised Learning. Yang memudahkan Decision Tree untuk dipelajari adalah konsep daro pohon keputusan yang mengubah data
16
menjadi aturan aturan keputusan , jadi selama proses pengambilan keputusan
decision Tree menjadikan yang kompleks menjadi lebih simpel.
Ada Banyak algoritma yang dapat digunakan dalam pembentukan pohon keputusan seperti ID3, C4.5, CART, dan GUIDE. Pada penelitian ini menggunakan CART[21].
2.12.3 Random Forest
Random forest merupakan salah satu metode dalam ensemble learning. Ensemble Learning adalah sebuah tipe dari supervised learning technique yang
ide dasarnya adalah untuk menghasilkan banyak model pada data training dan kemudian mengkombinasikannya untuk mendapatkan strong model dimana memiliki performa baik dan tidak overfitting[22].
2.13 Jupyter Notebook
Jupyter Notebook adalah lingkungan komputasi interaktif berbasis web
untuk membuat dokumen notebook Jupyter. Ini mendukung beberapa bahasa seperti Python (IPython), Julia, R dll dan sebagian besar digunakan untuk analisis data, visualisasi data dan lebih lanjut, komputasi eksplorasi yang interaktif. Jupyter Notebook merupakan tool yang populer untuk mengolah data di python. Jupyter Notebook memungkinkan untuk mengintegrasikan antara kode dengan output di dalam satu dokumen secara interaktif. Pada penelitian ini jupyter notebook digunakan untuk penggunaan machine learning pada deteksi
DDoS[23].
2.14 Wireshark
Wireshark adalah software yang banyak digunakan untuk melakukan analisis terhadap jaringan. Wireshark merupakan analyzer jaringan yang bsia melihat atau merekeam semua trafik yang lewat pada jaringan yang terkoneksi pada komputer tersebut, dan wireshark bisa memfilter paket-paket tersebut berdasarkan ciri-ciri jenis paket dalam jaringan. Wireshark biasanya digunakan oleh Administrator jaringan untuk menganalisis semua trafik yang lewat di jaringan tersebut dan memonitoringnya, setelah direkam, fungsi lainnya wireshark bisa menyimpan paket-paket tersebut ke dalam format tertentu, misalnya JSON, CSV dan Plain Text[24].