BAB II LANDASAN TEORI 2.1 Kajian Tentang Fast Fluxeprints.umm.ac.id/42296/3/BAB 2.pdf · 2018. 12....
Transcript of BAB II LANDASAN TEORI 2.1 Kajian Tentang Fast Fluxeprints.umm.ac.id/42296/3/BAB 2.pdf · 2018. 12....
7
BAB II
LANDASAN TEORI
2.1 Kajian Tentang Fast Flux
Teknik fast flux sudah ditemukan sejak tahun 2006 dan ditahun 2007 kasus
fast flux menjadi hot topic di laman pencarian botnet [3]. Fast flux adalah teknik
penghindaran yang digunakan untuk menghindari pengidentifikasian oleh pelaku
kriminal dunia maya maupun penjahat internet. Pemilik botnet sering menggunakan
teknik fast flux untuk melakukan aksinya seperti menghosting ilegal conten atau
konten yang tidak diinginkan didalam botnet.[5]
Fast flux adalah sebuah mekanisme yang memiliki domain name yang unik
sesuai dengan IP adress yang selalu berubah [3] . fast flux merupakan suatu teknik
serangan yang digunakan oleh BotMaster dalam menyamarkan aksinya dengan
menyembunyikan pusat Comand and Control dan menggunakan bots mereka untuk
memproxykan permintaan. Pusat CnC ini dikaitkan dengan domain name yang
mana terlibat dalam perubahan IP Address setiap waktu [2].
Fast flux merupakan suatu cara yang digunakan oleh Botmaster untuk
menyembunyikan server CnC agar tidak mudah di Take down oleh pihak berwajib
atau polisi internet sehingga proses pemberian perintah pada botnet melalui pusat
komando ini dapat terus berjalan. Ciri khas teknik ini adalah dengan merubah
alamat IP Adress CnC dengan cepat dan terpola namun pola tersebut hanya dapat
dikenali oleh botslave yang berada dibawah kendali botmaster tersebut. serangan
fast-flux biasanya terdapat pada bot yang bersekala besar dan digunakan untuk
mempermudah pengiriman perintah dari command and control ke Botnet. Dengan
menggunakan Fast Flux dipastikan serangan botnet akan sulit dideteksi jika
pengelola jaringan tidak benar-benar mengamati tiap struktur paket data yang lalu-
lalang di jaringannya [2].
Dalam praktiknya, teknik fast flux digunakan untuk aksi kejahatan phising
dan operasi hosting malware. Phising dan operasi hosting malware ini sangat
dikenal didalam jaringan service fast flux yaitu jaringan Storm Worm [6]. Kadang-
kadang menggunakan webstite berbasis DNS untuk menstribusikan malware
8
melalui via spam lures, jaringan phising rock yang memiliki riwayat yang panjang
dalam penggunaan fast flux hosting untuk situs phising itu sendiri.[7]
2.1.1 Pola Kerja Fast Flux
Pada gambar di bawah ini adalah pola kerja fast flux dengan berupa tampilan
yang berisi ilustrasi kerja fast flux dalam mengirimkan konten yang berbahaya
secara rahasia kepada client :
Gambar 2. 1 Kerja fast flux mengirimkan konten
Sumber : [8]
Client mengirim request ke fast flux bot, lalu request dari client akan di
alihkan ke node mothership seperti yang terlihat di gambar atas. Kemudian node
memproses request tadi dan mengirim respon ke bot. Bot itu adalah sebagai proxy,
dan meneruskan respon tadi ke client jika request tadi sudah ditangani. Setelah
beberapa waktu, jika client mengunjungi laman atau fast flux bot lagi, maka DNS
memetakan domain itu dengan alamat IP yang berbeda [8].
Fast flux itu tidak memproses request pengguna itu sendiri, akan tetapi fast
flux bertindak sebagai proxy dengan mewakilkan request dari client ke mothership
dan kemudian meneruskan respon dari mothership ke client. Sehingga tujuan dari
desain ini adalah pertama, untuk melindungi mothership dari perihal ditemukan
atau terdeteksi. Kedua, untuk menghindari mereplikasi layanan dan konten yang
berbahaya ke setiap bot yang dapat meningkatkan resiko terdeteksi dan juga
memperlambat pengumpulan informasi yang palsu misalnya mendapatkan data
rahasia melalui via phising [8].
2.1.2 Teknik Deteksi Fast Flux
Ada beberapa teknik yang dipaparkan dari beberapa penelitian dalam
mendeteksi fast flux, yaitu sebagai berikut :
9
1. Caglayan et al.
Mereka menggunakan database dari FFSN yang dikumpulkan selama 9 bulan
untuk analisis perilaku fas flux service networks (FFSNs). Database fast flux
yang berupa domain dan IP dikumpulkan dari monitor fast flux (FFM) yang di
design untuk mendeteksi fast flux atau double fast flux dan pendeteksian
algoritma real time fast flux. Hasil analisa ini menggambarkan jaringan seperti
ini membentuk pengelompokkan dan membagi karakteristik dari kehidupan
siklusnya. Karakteristik ini adalah pertumbuhan, ukuran, dan perilaku yang
berbahaya dari tipe yang berbeda-beda [9].
2. 2009 Perdisci et al.
Tujuan pendekatan ini adalah untuk mendeteksi dan melacak layanan jaringan
flux yang berbahaya. Mereka mengumpulkan rekursif DNS (RDNS) jejak lalu
lintas dari jbeberapa jaringan besar untuk analisis pasif dalam deteksi sistem.
Dalam prakteknya, depan server rekursif DNS dari jaringan yang berbeda
menyebarkan sebuah sensor. Perminataan DNS dan pengguna masuk ke RDNS
akan dipantau secara pasif. Informasi domain fast flux yang potensial akan
disimpan secara selektif ke dalam pusat pengumpulan data DNS. Domain fast
flux dikarakteristikkan berdasar fitur utama yaitu : time to live (TTL) .
Sekumpulan IP resolved (contoh : agen flux) kemudian dikembalikan ke setiap
query yang berubah dengan cepat, biasanya setelah TTL. Keseluruahan IP
resolved diperoleh dari penanyaan nama domain yang sama sering kali berakhir
sangat besar. IP resolved tersebar ke banyak jaringan yang berbeda. Penelitian
ini menunjukkan bahwa tujuan pendekatan ini mampu mendeteksi dengan akurat
[10].
3. Hsu et al.
Mengusulkan cara untuk mendeteksi fast flux secara real time dengan host web
service. Cara mendeteksinya cukup unik karena karakteristik fast flux, berikut
ini diantaranya : model perwakilan permintaan, bots yag tidak didedikasikan
untuk layanan yang berbahaya, perangkat kerasnya digunakan oleh bots yang
biasanya lebih rendah daripada server yang terdedikasi. Hasil menunjukkan
bahwa beberapa detik, deteksi fast flux memiliki akurasi lebih dari 96%, lebih
rendah 5% false positive/negative [8].
10
4. Stalmans et al
Penelitian ini memeriksa distribusi geografi domain server berdasarkan teknik
spasial autokorelasi untuk mendeteksi fast flux. Mereka menghasilkan
pengklasifikasian menggunakan beberapa sistem koordinasi geografi untuk
nendapatkan hasil yang efisien dan akurat [11].
5. Yu et al
Dalam penelitian ini, mereka menganalisis pola permintaan DNS dari fast flux
dan untuk mendeteksi fast flux ini dengan menggunakan teknik data mining.
Mereka mengembangkan support vector machine (SVM) untuk mengekstraksi
fitur dari fast flux dan domain yang terindentifikasi normal. Mereka mengekstrak
6 fitur dan mengklasifikasikan mereka menjadi 3 kategori yaitu : properti dari
domain, properti jaringan, dan distribusi IP dari agen flux. Hasil menunjukkan
bahwa SVM lebih efisien dan akurat. Menghasilkan false positf rendah [12].
6. Caglayan et al
Mereka menggunakan kedua pengawasan aktif dan passive DNS untuk
mendeteksi layanan jaringan fast flux real time. Hasilnya menunjukkan bahwa
monitoring fast flux dapat mendeteksi fast flux. Tiga aktif sensor untuk
pengawasan fast flux adalah FF akitivitas index, footprint index, dan time to live
(TTL) [9].
2.2 Passive DNS
Passive DNS adalah sebuah teknik replikasi pasif dari capture DNS messages
dan menungkinkan penyimpanan data tersebut. Passive DNS ini memiliki atribut
passive dns data sebagai berikut : timestamp, DNS-Client (Awal IP address), DNS-
Server (perespon IP address), query class, query(domain name), query type(RR),
answer(tergantung pada RR), TTL[2].
Passive DNS record sendiri merupakan data yang terdiri dari beberapa jenis
dengan fungsi yang berbeda yang dikumpulkan selama kurun waktu tertentu yang
bertujuan untuk data yang dapat dianalisa demi kebutuhan tertentu
Dalam pengumpulan data, peneliti mendapatkan data yang didapat dalam
penelitian ini adalah bersumber dari CTU-13. Data yang bersumber dari CTU-13-
11
Capture-Botnet-54 adalah data yang sudah terklasifikasi sebagai data normal dan
fastflux.
2.3 Data Mining
Data mining merupakan sebuah teknik dalam pengolahan data dengan ukuran
yang besar dan multi dimensional. Informasi yang diperoleh dari pola data yang
sudah ada dapat digunakan untuk membantu pengambilan sebuah keputusan[13].
Data mining adalah proses untuk menemukan suatu pola dari data. Tujuan dari
proses ini adalah menyusun data yang berjumlah besar untuk mendapatkan
informasi yang baru. Data mining juga dapat berarti eksplorasi dan analisis data
secara otomatis atau semi otomatis dari data yang jumlahnya besar untuk
mendapatkan pola dan aturan yang bermakna bagi pengguna[14].
Data mining menjadi sebuah alat yang penting untuk mengubah data menjadi
informasi yang penting sehingga banyak dipraktikkan ke beberapa praktik profil
seperti pemasaran, pengawasan, penipuan deteksi dan penemuan ilmiah[13]. Data
mining adalah proses mengekstraksi data dan mengidentifikasi informasi yang
bermanfaat dan pengetahuan dengan menggunakan teknik statistik, matematika,
kecerdasan buatan, dan machine learning.
2.3.1 Tahapan proses data mining
Berikut ini adalah tahapan proses data mining menurut [14] yaitu seperti gambar
dibawah ini:
Gambar 2. 2 Tahapan proses data mining
Sumber : [14]
1. Seleksi Data
Tahapan ini termasuk dalam menyeleksi kumpulan data atau memilih data yang
berfokus ke dalam data yang cocok untuk penelitian.[14]
2. Preprocessing
12
Termasuk operasi dasar, tahap ini merupakan tahap cleaning data. Proses ini
mencakup antara lain membersihkan data dengan menghapus atribut-atribut
yang tidak penting di dalam data, memperbaiki kesalahan dalam data,
membuang duplikasi pada data. Data preprocessing bertujuan untuk mengubah
data mentah menjadi data yang sesuai di dalam format data yang siap untuk
dianalisis. [15]
3. Transformasi
Tahap ini merupakan tahapan memilih algoritma data mining termasuk dalam
memilih metode yang digunakan untuk mencari pola pada data seperti
memutuskan model dan parameter apa saja yang sesuai untuk kategori data.[14]
Ini adalah tahap proses perubahan dari data mentah menjadi data yang berguna
sehingga dapat ditelusuri[15]. Proses coding adalah proses transformasi data
yang sesuai untuk proses data mining[16].
4. Data mining
Tahap ini termasuk tahapan dalam mencari pola dalam bentuk representasi
tertentu atau memilih metode seperti yang termasuk dalam klasifikasi, rules of
tree, regresi, clusterisasi, dependency, model yang berurutan dan analisis
garis[14]. Tahapan ini berfokus pada ekstraksi pola pada data. [15]. Metode yang
dipilih memang dipengaruhi oleh tujuan dan proses knowledge discovery of
database (KDD) secara menyeluruh.[16]
5. Evaluasi
Pada tahap evaluasi dilakukan tahap pemeriksaan pola, apakah pola atau
informasi yang dihasilkan sesuai dengan tujuan yang ingin dicapai. Jika hasil
tidak sesuai dengan apa yang ingin di capai maka seorang analisis mungkin saja
kembali ke tahap sebelumnya untuk memeriksa apakah sudah terjadi kesalahan
dalam proses cleaning ataupun proses coding.[15]
2.3.2 Metode Data Mining
Berikut ini beberapa metode data mining secara umum berdasarkan fungsinya :
1. Classification : teknik yang digunakan untuk memetakan atau memisahkan data
menjadi beberapa kategori yang ditetapkan[14]. seperti contoh berikut ini :
sebuah program deteksi malware yang dapat mendeteksi malware melalui
metode klasifikasi untuk membedakan pola serangan, apakah didalam data
13
tersebut mengandung malware atau tidak. Dalam metode klasifikasi ada
beberapa algoritma yang sering dijumpai antara lain k-nearest neighbor, support
vector machine, naïve bayes, neural network, dan decision tree.
2. Regression : Regresi adalah teknik yang tertua dalam dunia statistik dan paling
terkenal dalam kelompok data mining. Pada dasarnya, regresi mengambil dataset
numerik dan mengembangkan rumus matematika untuk menyesuaikan data[17].
Regresi ini adalah metode yang mengusahakan dalam menemukan fungsi dari
model data dengan sedikit kesalahan.Genetic programming adalah metode
umum yang digunakan dalam regression[13].
3. Clustering : Pengelompokkan, clustering ini sama halnya dengan klasifikasi. Hal
yang membedakan antara klasifikasi dan clusterisasi adalah di strandarisasinya.
Dalam clusterisasi, proses pemisahan data tidak berdasarkan para ahli atau tidak
terstandarisasi. Proses pengelompokan data dilakukan dengan mencoba
mengelompokkan data yang serupa secara bersama-sama.[13]
4. Association rule learning
Association rules sering disebut juga dengan “market basket analysis”. Fungsi
association ini sering banyak digunakan dalam menganalisa data guna keperluan
strategi pemasaran, proses pembuatan keputusan bisnis, dan desain katalog.
Proses dalam association rules ini adalah untuk menemukan relasi atau korelasi
diantara himpunan item yang ada.[16]
2.4 Classification
Klasifikasi adalah salah satu metode data mining berdasarkan fungsinya.
Tujuan utama klasifikasi ini adalah untuk memprediksi sebuah kategori dari input
data. Pada proses prediksi, sebelumnya dilakukan proses pembelajaran data. Data
yang diperlukan untuk proses pembelajaran adalah data training atau data latih.
Selanjutnya, untuk proses prediksi diperlukan data uji atau disebut juga data testing.
Didalam klasifikasi terbagi menjadi tiga tipe secara umum yang sering
ditemukan, yaitu : klasifikasi 1 class, klasifikasi 2 class, dan klasifikasi multiclass.
(Faisal, 4 Januari 2017)
14
2.5 Kajian Tentang Support Vector Machine
Boser, Guyom dan Vapnik memperkenalkan support vector machine learning
pada tahun 1992 di Annual Workshop on Computational Learning Theory, usia
SVM terbilang masih relatif muda. Evaluasi kemampuannya dalam berbagai
aplikasinya menempatkannya sebagi state of art dalam pattern recognation dan ini
merupakan salah satu tema yang berkembang pesat [18]. Konsep dasar SVM adalah
kombinasi harmonis dari teori komputasi yang telah ada sebelumnya seperti margin
hyperplane. Kernel diperkenalkan oleh Aronszajin pada tahun 1950.
Secara sederhana, SVM ini sebagai usaha mencari hyperplane terbaik yang
berfungsi sebagai pemisah dua buah class pada input space. Pada prinsip dasarnya
SVM itu merupakan linier classifier, kemudian dikembangkan dari suatu
permasalahan pada dunia nyata apakah cara kerja svm linier classifier ini menjadi
mampu bekerja pada masalah non-linier dengan memasukkan konsep kernel trick
pada ruang kerja berdimensi tinggi. Hasilnya, secara teoritis dan dari segi aplikasi,
SVM telah mampu mengaplikasikan problema dunia nyata. Dapat memberikan
solusi yang lebih baik dibandingkan dengan metode yang dulu atau konvensional
seperti artificial network neural [19].
2.5.1 Konsep SVM
Support vector machine atau SVM adalah metode yang bekerja atas prinsip
structural risk minimization (SRM) yaitu mencari nilai resiko terkecil dalam
menentukan vektor tertentu menjadi bagian dari sebuah kelas dengan tujuan
menemukan hyperplane terbaik yang memisahkan dua buah class pada input space
[19].
Dalam memisahkan data terhadap kelasnya, maka dibuatlah hyperplane.
Hyperplane merupakan bidang pemisah. Jenis hyperplane yang baik adalah
hyperplane yang memiliki margin yang lebar. Margin adalah jarak dari hyperplane
dengan pattern terdekat dari masing-masing kelas. Pattern merupakan anggota dari
dua buah kelas -1 dan +1 dan berbagai garis pemisah. [20]
Usaha pencarian lokasi hyperplane adalah inti proses pembelajaran SVM.
Dalam proses pencarian hyperplane tersebut, dapat terjadi permasalahan
diantaranya yaitu kesulitan dalam memecahkan pada sebuah formula.
Permasalahan ini disebut juga Quadrating programming. [20]
15
Konsep SVM dapat dijelaskan secara sederhana sebagai usaha mencari
hyperplane yang terbaik yang mana berfungsi sebagai pemisah dua buah kelas
pada input space. Pada gambar dibawah ini adalah contoh permasalahan dalam
mencari hyperplane yang terbaik dengan memisahkan kedua class -1 dan+1 [19]:
Gambar 2. 3 Pemisahan kelas -1 dan +1 dalam menemukan hyperplane
Sumber : [19]
Pada gambar 2.3a menunjukkan beberapa pattern yang anggotanya dari dua
buah class : +1 dan -1. Pada class -1 disimbolkan dengan warna merah kotak
sedangkan class -1 disimbolkan dengan warna kuning lingkaran. Problemasinya
adalah mencari hyperplane yang memisahkan antar kedua kelas. Dalam gambar
2.3a ini, terdapat berbagai macam garis pemisah (discrimination boundaries) [19].
Pada gambar 1b menunjukkan gambar yang solid, hyperplane inilah yang
terbaik. Garis ini terletak tepat pada tengah tengah kedua class, titik merah dan
kuning yang ada pada lingkaran hitam merupakan support vector.
Data yang ada dinotasikan sebagai x i ∈ ℜd sedangkan label masing-masing
dinotasikan yi ∈ {-1, +1 } untuk i = 1,2,… ,l , yang mana l adalah banyaknya data.
Diasumsikan kedua kelas -1 dan +1 dapat terpisah secara sempurna oleh hyperplane
berdimensi d, yang didefinisikan :
.w x + b = 0 (a)
16
Pattern x i yang termasuk class –1 (sampel negatif) dapat dirumuskan sebagai
pattern yang memenuhi pertidaksamaan :
.w x + b ≤ −1 (b)
Sedangkan pattern x i yang termasuk class +1 (sampel positif)
.w x + b ≥ +1 (c)
Margin terbesar dapat ditemukan dengan memaksimalkan nilai jarak antara
hyperplane dan titik terdekatnya, yaitu 1/ w . Hal ini dapat dirumuskan sebagai
Quadratic Programming (QP) problem, yaitu mencari titik minimal persamaan (d),
dengan memperhatikan constraint persamann (e).
wmin τ(w) = 1/2 w 2 (d)
iy ( x i . w + b ) −1 ≥ 0, ∀i (e)
masalah ini dapat di pecahkan dengan berbagai teknik kmputasi, di antaranya
Lagrange Multiplier.
L (. w , b, α) = 1/2 w 2 -
i
i 1i ( iy (( x i . w + b ) – 1))
( i = 1,2,…., l ) (f)
i adalah Lagrange multipliers, yang bernilai nol atau positif ( i ≥ 0). Nilai α .
Nilai optimal dari persamaan (f) dapat dihitung dengan meminimalkan L terhadap
w rdan b , dan memaksimalkan L terhadap i α. Dengan memperhatikan sifat bahwa
pada titik optimal gradient L =0, persamaan (f) dapat dimodifikasi sebagai
maksimalisasi problem yang hanya mengandung saja i α , sebagaimana
persamaan (g) di bawah.
Maximize :
17
i
i 1
i - 1/2
i
i 1i j iy jy ix jx (g)
Subject to :
i ≥ 0 ( i = 1,2,…., l ) (h)
Hasil perhitungan didapatkan i memiliki banyak nilai positif. Data yang
berkolerasi dengan i yang positif inilah yang disebut dengan support vector [19].
Problematika yangs sering di hadapi dalam metode ini adalah permasalahan
yang bersifat non linier, jarang permasalahannya ini bersifat linier separable. Oleh
karena itu untuk menyelesaikan problematika itu diperlukkan funngsi kernel. Hal
ini dipaparkan dari teori Cover yang mengatakan : Jika suatu transformasi bersifat
non linier dan dimensi dari feature space cukup tinggi, maka data pada input space
dapat dipetakan ke feature space yang baru, dimana pattern-pattern tersebut pada
probabilitas tinggi dapat dipisahkan secara linier. [19]
Gambar 2. 4 Pemetaan data ke ruang vektor yg dimensi tinggi
Sumber : [19]
Pada gambar diatas menggambarkan dari ilustrasi diatas, pada gambar 2
(Input space) menunjukkan data pada class kuning dan data pada class yang merah
yang berada pada input space berdimensi dua tidak dapat dipisahkan secara linier.
Pada gambar (high dimensional) menggambarkan bahwa fungsi Φmemetakan tiap
data pada input space tersebut ke ruang vector baru yang berdimensi lebih tinggi,
dimana kedua class dipisahkan secara linier oleh hyperplane[19].
18
2.5.2 Karakteristik SVM
Secara prinsip SVM adalah linier classifier, dalam prinsip kerjanya SVM
hanya mampu menangani klasifikasi dua class. Menerapkan strategi Structural Risk
Minimization (SRM), pattern recognition dilakukan dengan mentrasformasikan
data pada input space ke ruang yang berdimensi lebih tinggi dan optimasi dilakukan
pada ruang vector yang baru tersebut. Hal ini membedakan SVM dari solusi pattern
recogantion pada umumnya, yang melakukan optimasi parameter pada ruang hasil
transformasi yang berdimensi lebih rendah daripada dimensi input space. [19]
2.6 Kajian Tentang Bahasa Pemrograman Python
Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi
perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai
bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang
sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta
komprehensif.
Python mendukung multi paradigma pemrograman pada pemrograman
berorientasi objek, pemrograman imperatif, dan pemrograman fungsional. Salah
satu fitur yang tersedia pada python adalah sebagai bahasa pemrograman dinamis
yang dilengkapi dengan manajemen memori otomatis. Seperti halnya pada bahasa
pemrograman dinamis lainnya, python umumnya digunakan sebagai bahasa skrip
meski pada praktiknya penggunaan bahasa ini lebih luas mencakup konteks
pemanfaatan yang umumnya tidak dilakukan dengan menggunakan bahasa skrip.
Python dapat digunakan untuk berbagai keperluan pengembangan perangkat lunak
dan dapat berjalan di berbagai platform sistem operasi.
Python didistribusikan dengan beberapa lisensi yang berbeda dari beberapa
versi. Namun pada prinsipnya Python dapat diperoleh dan dipergunakan secara
bebas, bahkan untuk kepentingan komersial. lisensi Python tidak bertentangan baik
menurut definisi Open Source maupun General Public License.