Klasifikasi trafik malware pake CNN


Saya lagi baca paper Wei Wang dkk tentang klasifikasi trafik malware pake CNN. Judul lengkapnya malware traffic classification using CNN for representation learning. Jadi dia bikin taksonomi klasifikasi trafik dengan AI, kemudian mengajukan metode klasifikasi trafik malware pake CNN dengan mengubah data trafik jadi image. Jadi dia ngambil trafik jaringan (raw) sebagai input trus diklasifikasikan dengan CNN. Dia melakukan 8 eksperimen dan berpendapat representasi trafik yang terbaik dalam bentuk sessionpada semua layer. Pengujiannya ada 2 skenario, dengan 3 klasifer berbeda. Akurasi rata-rata 99,41%

Dari hasil review yang mereka lakukan, metode klasifikasi trafik mereka bagi 4: 1) berbasis port, 2) dpi (deep-packet instection), 3) statistik dan 4) behavior. Port based dan DPI itu menggunakan pendekatan rule-based yaitu melakukan klasifikasi dengan mengunakan hard-coded rules. Sementara statistik dan behavior menggunakan pendekatan mesin learning. Kelebihan pendekatan mesin learning dapat menangani beberapa masalah di metode rule based, seperti klasifikasi encrypted traffic, dan kebutuhan komputasi tinggi.

Terus dia cerita tentang representation learning, yaitu ekstrak fitur langsung dari data secara otomatis. Mereka bikin dataset trafik USTC-TFC2016, dan bikin tools pemrosesan data USTC-TK2016.

Daftar related work:

Finterbusch dkk tentang klasifikasi trafik berbasis DPI

https://ieeexplore.ieee.org/document/6644335/

dhote dkk tentang teknik pemilihan fitur pada klasifikasi trafik internet

https://ieeexplore.ieee.org/document/7546323/

Gao dkk tentang klasifikasi trafik malware pake deep belief network

https://ieeexplore.ieee.org/document/7176101

Javaid klasifikasi trafik malware pake sparse auto encoder

https://eudl.eu/doi/10.4108/eai.3-12-2015.2262516

Gao sama javaid fiturnya menurut wei wang dibikin manual, gak diekstrak otomatis.

Wang pake stacked auto encoder (SAE) berbasis identifikasi protokol network

Di papernya mereka juga bilang dataset buat klasifikasi trafik masih dikit. Yang sering dipake KDD CUP1999 dan NSL-KDD. Dataset ini pake 41 fitur yang udah diekstrak dari trafik.

Jadinya mereka bikin dataset sendiri USTC-TFC2016. Dataset ini dibagi 2, bagian 1 isinya 10 jenis trafik malware dari web publik yang dikumpulkan dari peneliti CTU dari jaringan pada tahun 2011 – 2015. Malwarenya: cridex, geodo, Htbot, Miuref, Neris, Nsis-ay, shifu, Tinba, Virut dan Zeus. Kalo trafiknya terlalu besar, mereka cuman pake bagian tertentu. Sementara kalo trafiknya terlalu kecil digabungin.

Bagian 2 isinya 10 jenis trafik normal yang dikumpulkan pake IXIA BPS (simulator). Trafik ini memiliki 8 kelas aplikasi yang umum digunakan,(BitTorent, Facetime,FTP, GMail, MySQL, Outlook, Skype, SMB, Weibo, WorldOfWarcraft). Ukuran dataset USTC-TFC2016 dataset adalah 3,71GB, dengan format pcap.

Klasifikasi trafik berbasis ML harus membagi data kontinu jadi banyak unit diskret berdasarkan aturan tertentu. Selain itu model OSI maupun layer TCP/IP bisa dipilih untuk setiap paket.

Contoh pembagiannya misalnya berdasarkan granularity seperti: koneksi TCP, flow, session, service, dan host. Perbedaan pembagian akan menghasilkan unit trafik yang berbeda. Mereka menggunakan flow dan session.

Flow itu memiliki 5-tuple yang sama misalnya:

  1. source IP
  2. source port
  3. destination IP
  4. destination port
  5. transport-level protocol

Session adalah flow dua arah termasuk 2 arah dari trafik.

Semua paket didefinisikan sebagai set P={p1 ,…, p|P| }.

Dan setiap paket didefinisikan sebagai pi=(xi,bi,ti) ; i=1,2,…,|P|

Elemen pertama dari xi adalah 5-tuple diatas, elemen kedua adalah ukuran paket bi elemen [0, tak hingga) dalam byte. Elemen terakhir adalah waktu awal transmisi ti elemen [0, tak hingga] dalam detik.

Flow: adalah kumpulan trafik P yang dapat dibagi menjadi banyak subset. Semua paket dalam sebuah subset diatur berurutan waktu: {p1 = (x1,b1,t1),…,pn =(xn,bn,tn)}, t1 <t2 <…<tn

Sebuah subset adalah sebuah flow f = (x,b,dt ,t).

Elemen pertama adalah 5 tuple yang sama, contohnya x = x1 =..= xn . 

Elemen kedua adalah jumlah ukuran semua paket dalam flow.

Elemen ketiga adalah durasi flowdt = t^n- t^1.

Elemen terakhir adalah waktu awal transmisi dari paket pertama. Keseluruhan trafik raw bisa dikonvert jadi flow F={f^1,…,f^n}

Session isinya dua arah flow misalnya source and destination IP / port.

Flows maupun sessions yang berbeda bisa memiliki ukuran yang berbeda. Sementara ukuran input CNN harus sama, sehingga mereka cuman pake n=784 bute pertama pada setiap flow/session. Alasannya karena bagian depan dari flow/session biasanya mengandung koneksi data dan sedikit konten.

Sampai disini, insyaAllah besok saya lanjutkan.

Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/7899588


Satu tanggapan untuk “Klasifikasi trafik malware pake CNN”

Silahkan tuliskan tanggapan, kritik maupun saran