T1 672008219 Full text
5 1. Pendahuluan
Dalam dunia jaringan komputer diperlukan analisa dalam pertukaran paket data. Ada beberapa manfaat analisa tersebut antara lain, digunakan untuk troubleshooting masalah – masalah jaringan, untuk keamanan jaringan, pengembang software bisa menggunakannya untuk men-debug implementasi protokol jaringan, bisa juga untuk mempelajari protokol jaringan secara detail, dan masih banyak manfaat yang lainnya. Packet Capture adalah sebuah mekanisme menyalin packet yang diterima dalam jaringan dan membawa data yang disalin ke user untuk di analisa lebih lanjut.
Dikarenakan traffic data yang melintas dengan transfer rate tinggi di jaringan komputer, maka masalah yang muncul adalah packet loss atau packet data yang tidak sempat dicapture. Teknologi yang dapat mengatasi masalah tersebut adalah PF_RING. Teknologi PF_RING merupakan tipe baru dari network socket yang mampu meningkatkan kemampuan packet capture. Skripsi ini bertujuan untuk menganalisa packet capture performance dari Snort menggunakan PF_RING.
2. Tinjauan Pustaka
Packet Capture dan Libpcap
Packet Capture adalah tindakan menangkap packet yang melintasi jaringan dengan lalu lintas tinggi [1]. Sebagian besar packet capture dapat merekam header tanpa semua isi datagram.
Libpcap merupakan library yang digunakan dalam packet capture. Sebagian besar network tools (Snort, Tcpdump, Ethereal) berbasis pada libpcap, yang dimana menyediakan high-level interface untuk packet capture [2]. Jadi dengan kata lain libpcap merupakan library yang digunakan untuk packet capture.
Snort
Snort merupakan packet sniffer dan logger berbasis libpcap yang dapat digunakan di jaringan sederhana sebagai Network Intrusion Detection System (NIDS) [9].
(2)
6
Gambar 1 menunjukkan arsitektur dari Snort. Arsitektur terdiri dari tiga komponen, yaitu packet decoder, detection engine, dan logger / alerter.
Packet decoder : decoder packet Snort mendukung media Ethernet, SLIP, dan PPP. Packet decoder melakukan semua perkerjaan untuk mempersiapkan data dengan cara yang sifatnya membantu mesin deteksi [4].
Detection Engine : merupakan bagian paling penting dari Snort dikarenakan bertanggung jawab untuk menganalisa setiap paket berdasarkan aturan Snort / Snort Rules yang digunakan saat runtime. Detection engine bekerja dengan cara memisahkan Snort rules ke dalam apa yang disebut chain header dan chain options. Atribut umum seperti sumber / tujuan alamat IP dan port mengidentifikasikan chain header. Chain options ditentukan oleh rincian seperti TCP flags, ICMP, payload size, dan lain sebagainya [4].
Logger / Alerter : logger dan alerter merupakan dua hal yang terpisah. Logging memungkinkan user untuk mencatat informasi yang dikumpulkan oleh packet decoder dalam format yang mudah di baca. User dapat mengkonfigurasi alerts untuk dikirim ke syslog, flat file, UNIX sockets or a database [4].
Snort Rules [4]
Snort rules berbentuk file ASCII yang dapat dibuat oleh user. Isi dari peraturan memuat antara lain :
Variable Definitions : ini mendefenisikan variable yang mungkin dapat digunakan kembali untuk membuat aturan Snort.
Snort Rules : ini merupakan aturan sebenarnya yang mengaktifkan deteksi gangguan.
Preprocessor : ini identic dengan plugin dan berperan penting dalam memperluas kemampuan snort
Include Files : ini memungkinkan user untuk memasukkan Snort rules yang lainya.
Output Modules : ini memungkinkan Snort yang mengelola untuk menentukan output untuk logging dan alerting. Output modules berjalan ketika alert atau logging yang merupakan subsistem dari Snort berjalan.
Berikut contoh sederhana Snort rules, untuk memberikan pesan terhadap admin, bahwa seseorang sedang meremote komputer.
alert tcp $EXTERNAL_NET any -> $TELNET_SERVERS 22 (msg:"Seseorang Telnet Komputer Kita"; sid:1231214;)
(3)
7
snort rules terdiri dari 2 bagian
header : alert $EXTERNAL_NET any -> $TELNET_SERVERS 22
rule options : (msg:"Seseorang Telnet Komputer Kita"; sid:1231214;)
PF_RING
PF-RING adalah sebuah library untuk packet capture pada jaringan berkecepatan tinggi yang dapat mengubah sebuah PC menjadi sebuah network measurement box yang effisien dan murah yang cocok untuk packet dan active traffic analysis dan manipulasi [5].
Gambar 2 PF_RING arsitektur [5]
Gambar 2 menunjukkan arsitektur dari PF_RING. Packet yang masuk kemudian dicopy oleh kernel module ke ring, dan dibaca oleh aplikasi user-space. Tidak ada alokasi / dealokasi memori per-paket yang dilakukan. Ketika sebuah paket dibaca dari ring, ruangan yang digunakan di dalam ring untuk menyimpan packet yang baru saja dibaca akan digunakan untuk menampung packet selanjutnya[5].
(4)
8
Gambar 3 PF_PACKET dan PF_RING [6]
PF_RING merupakan alternatif dari PF_PACKET di sistem operasi Linux [6]. Gambar 3 menunjukkan bahwa proses PF_RING lebih sederhana dibandingkan dengan proses yang dilakukan oleh PF_PACKET. Salah satu fitur penting PF_RING adalah cara pertukaran packet antara userspace dan kernel [6]. PF_RING memungkinkan efisiensi penyalinan packet dari driver ke PF_RING tanpa m elalui struktur kernel data[5].
(5)
9 3. Metode Penelitian
Perancangan Pengujian
Dalam pengujian ini dilakukan dengan 2 kali tahapan, yaitu tahapan pertama melakukan pengujian dengan Snort tanpa menggunakan PF_RING driver, tahapan kedua melakukan pengujian dengan Snort menggunakan PF_RING driver.
Diperlukan 2 komputer dalam melakukan pengujian. Berikut rincian spesifikasi komputer yang digunakan dalam uji coba.
Tabel 1 Komputer Pengirim
Sistem Operasi Windows 7 Ultimate
Mainboard Gigabyte GA-MA74GM-S2H
Processor AMD Phenom(tm)8650Triple-Core Processor (3CPU)~2.35GHz
Memory 2048MB RAM
NIC Realtek PCIe GBE Family Controller
Generator Ostinato 0.5
Tabel 2 Komputer Penerima
Sistem Operasi Ubuntu 12.04
Mainboard DG 31PR Intel
Processor Intel(R) Pentium(R) Dual CPU E2200 @2.20Ghz
Memory 1048MB RAM
NIC Intel® PRO/1000 MT Server Adapter, PF_RING
v.5.4.4 Packet Capture Application Snort 2.9.2
Kemudian 2 komputer diatas dihubungkan menggunakan sistem peer to peer seperti pada gambar 4.
(6)
10
Gambar 4. Arsitektur Simulasi
Langkah Pengujian
Pengujian dilakukan dengan mengirim 1.000.000 packet dengan ukuran sta ndard frame size Ehernet sesuai Tabel 3.
F rame Size (byte) Ethernet (pps)
64 14880
128 8445
256 4526
512 2349
768 1586
1024 1197
1280 961
1518 812
Tabel 3 Standard Ethernet Frame Sizes [7]
Pengujian dilakukan untuk melihat kinerja dari Snort dan Snort dengan PF_RING driver, dalam uji coba ini akan dilihat dampak packet loss yang terjadi dan juga CPU usage.
(7)
11 4. Hasil dan Pembahasan
Snort
Frame Size Packet Receive Packet Drop (%)
Data Rate CPU usage (%)
(byte) Total Receive Drop pkst/s pkt/m
64 1000000 299322 700678 70.07% 2934 299322 31.00% 128 1000000 468012 531988 53.20% 2802 234006 31.00% 256 1000007 756951 243056 24.31% 2824 189237 31.00% 512 1000033 1000033 0 0.00% 2127 142861 29.00% 768 1000060 1000060 0 0.00% 1524 100006 25.00%
1024 996466 996466 0 0.00% 940 58615 20.00%
1280 997020 997020 0 0.00% 784 47477 20.00%
1518 1000054 1000054 0 0.00% 731 45457 16.00%
Tabel 4 Snort
Pada Tabel 4 dapat dilihat hasil dari pengujian, menggunakan Snort tanpa PF_RING terjadi packet drop / packet loss mencapai 70% dari packet yang dikirimkan, dan juga CPU usage pada saat Snort berjalan mengunakan sekitar 16% - 31%. Sebagai bahan perbandingan dapat melihat Tabel 5.
Snort + PF_RING
Frame Size Packet Packet Drop
(%)
Data Rate CPU Usage (%)
(byte) Total Receive Drop pkts/s pkt/m
64 1000007 543373 456634 45.66% 2985 181124 31.00% 128 1000000 616580 383420 38.34% 2936 205526 31.00% 256 1000009 797197 202812 20.28% 2720 199299 30.00% 512 1000000 1000000 0 0.00% 1630 98764 27.00% 768 1000035 1000035 0 0.00% 1483 90912 12.00% 1024 1000058 1000058 0 0.00% 1162 71432 9.00% 1280 1000094 1000094 0 0.00% 924 55560 9.00% 1518 1000302 1000302 0 0.00% 773 47633 7.00%
Tabel 5 Snort dengan PF_RING driver
Percobaan kedua dapat dilihat pada Tabel 5 menggunakan Snort dengan PF_RING driver, dimana pada pengujian kali ini packet drop kembali terjadi hampir mencapai 50% dari packet yang dikirimkan namun hasil ini lebih rendah bila kita bandingkan dengan hasil percobaan menggunakan Snort yang ada pada Tabel 4. PF_RING juga mampu menahan laju CPU usage sehingga CPU tidak terlalu dibebani pada saat melakukan packet capture. Percobaan ini membuktikan bahwa proses pertukaran packet yang dilakukan PF_RING antara userspace dan kernel mampu
(8)
12 0 10 20 30 40 50 60 70 80 90 100
64 128 256 512 768 1024 1280 1518
snort
snort + PF_RING
menghemat CPU usage tetapi tidak mengurangi kinerja packet capture itu sendiri, ini terbukti dari packet drop yang dihasilkan PF_RING lebih rendah dibandingkan Snort tanpa menggunakan PF_RING. Dari Hasil Simulasi maka dihasilkan grafik pada Gambar 5 dan 6.
Gambar 5 Packet Drop
Gambar 5 menunjukkan PF_RING mampu mengoptimalkan kinerja dari packet capture.
Gambar 6 CPU usage
Gambar 6 menunjukkan PF_RING mampu menghemat pengunaan CPU / CPU usage yang digunakan pada saat proses packet capture.
5. Simpulan
Berdasarkan hasil simulasi yang dilakukan menggunakan Snort dan Snort dengan PF_RING driver dengan tingkat pengiriman packet frame size dan jumlah packet yang sama, menunjukkan bahwa PF_RING mampu meningkatkan atau mengoptimalkan kinerja dari packet capture pada Snort. Selain itu PF_RING mampu menghemat pemakaian resource dari CPU yang digunakan untuk melakukan packet capture.
Packet drop (%)
Fr ame Size (byte)
0 10 20 30 40 50 60 70 80 90 100
64 128 256 512 768 1024 1280 1518
snort
snort + PF_RING
CPU usage (%)
(9)
13 6. Daftar Pustaka
[1] Kumar, P. Senthil, S., Arumugam, 2012, Establishing a valuable method of packet capture and packet analyzer tools in firewall, Nandha College of Technology, Erode, India.
[2] L.Deri, 2004, Improving Passive Packet Capture: Beyond Device Polling, Via del Brennero Km 4, Loc. La Figuretta 56123 Pisa, Italy
[3] Hery Seputro, Snort: Deskripsi, Fitur, dan Penggunaan, http://www.scribd.com/doc/2958707/Snort. [4] Nalneesh Gaur, 2001, Snort: Planning IDS for Your Enterprise,
http://www.linuxjournal.com/article/4668
[5] Anonim, 2012, PF_RING User Guide : Linux High Speed Packet Capture, https://svn.ntop.org/svn/ntop/trunk/PF_RING/doc/UsersGuide.pdf.
[6] Braun, L., Didebulidze, A., Kammenhuber, N., Carle, G., 2010, Comparing and improving current packet capturing solutions based on commodity hardware, Institute For Informatics, Munich, German.
[7] S. Bradner, J. McQuaid, 1999, Benchmarking Methodology for Network Interconnect Devices, Harvard University , NetScout Systems.
[8] Askari Azikin, 2011, Debian Gnu / Linux. Bandung : Informatika Bandung.
(1)
8
Gambar 3 PF_PACKET dan PF_RING [6]
PF_RING merupakan alternatif dari PF_PACKET di sistem operasi Linux [6]. Gambar 3 menunjukkan bahwa proses PF_RING lebih sederhana dibandingkan dengan proses yang dilakukan oleh PF_PACKET. Salah satu fitur penting PF_RING adalah cara pertukaran packet antara userspace dan kernel [6]. PF_RING memungkinkan efisiensi penyalinan packet dari driver ke PF_RING tanpa m elalui struktur kernel data[5].
(2)
9 3. Metode Penelitian
Perancangan Pengujian
Dalam pengujian ini dilakukan dengan 2 kali tahapan, yaitu tahapan pertama melakukan pengujian dengan Snort tanpa menggunakan PF_RING driver, tahapan kedua melakukan pengujian dengan Snort menggunakan PF_RING driver.
Diperlukan 2 komputer dalam melakukan pengujian. Berikut rincian spesifikasi komputer yang digunakan dalam uji coba.
Tabel 1 Komputer Pengirim Sistem Operasi Windows 7 Ultimate
Mainboard Gigabyte GA-MA74GM-S2H
Processor AMD Phenom(tm)8650Triple-Core Processor (3CPU)~2.35GHz
Memory 2048MB RAM
NIC Realtek PCIe GBE Family Controller
Generator Ostinato 0.5
Tabel 2 Komputer Penerima
Sistem Operasi Ubuntu 12.04
Mainboard DG 31PR Intel
Processor Intel(R) Pentium(R) Dual CPU E2200 @2.20Ghz
Memory 1048MB RAM
NIC Intel® PRO/1000 MT Server Adapter, PF_RING
v.5.4.4 Packet Capture Application Snort 2.9.2
Kemudian 2 komputer diatas dihubungkan menggunakan sistem peer to peer seperti pada gambar 4.
(3)
10
Gambar 4. Arsitektur Simulasi
Langkah Pengujian
Pengujian dilakukan dengan mengirim 1.000.000 packet dengan ukuran sta ndard frame size Ehernet sesuai Tabel 3.
F rame Size (byte) Ethernet (pps)
64 14880
128 8445
256 4526
512 2349
768 1586
1024 1197
1280 961
1518 812
Tabel 3 Standard Ethernet Frame Sizes [7]
Pengujian dilakukan untuk melihat kinerja dari Snort dan Snort dengan PF_RING driver, dalam uji coba ini akan dilihat dampak packet loss yang terjadi dan juga CPU usage.
(4)
11 4. Hasil dan Pembahasan
Snort
Frame Size Packet Receive Packet Drop (%)
Data Rate CPU usage (%)
(byte) Total Receive Drop pkst/s pkt/m
64 1000000 299322 700678 70.07% 2934 299322 31.00% 128 1000000 468012 531988 53.20% 2802 234006 31.00% 256 1000007 756951 243056 24.31% 2824 189237 31.00% 512 1000033 1000033 0 0.00% 2127 142861 29.00% 768 1000060 1000060 0 0.00% 1524 100006 25.00%
1024 996466 996466 0 0.00% 940 58615 20.00%
1280 997020 997020 0 0.00% 784 47477 20.00%
1518 1000054 1000054 0 0.00% 731 45457 16.00% Tabel 4 Snort
Pada Tabel 4 dapat dilihat hasil dari pengujian, menggunakan Snort tanpa PF_RING terjadi packet drop / packet loss mencapai 70% dari packet yang dikirimkan, dan juga CPU usage pada saat Snort berjalan mengunakan sekitar 16% - 31%. Sebagai bahan perbandingan dapat melihat Tabel 5.
Snort + PF_RING
Frame Size Packet Packet Drop
(%)
Data Rate CPU Usage (%)
(byte) Total Receive Drop pkts/s pkt/m
64 1000007 543373 456634 45.66% 2985 181124 31.00% 128 1000000 616580 383420 38.34% 2936 205526 31.00% 256 1000009 797197 202812 20.28% 2720 199299 30.00% 512 1000000 1000000 0 0.00% 1630 98764 27.00% 768 1000035 1000035 0 0.00% 1483 90912 12.00% 1024 1000058 1000058 0 0.00% 1162 71432 9.00% 1280 1000094 1000094 0 0.00% 924 55560 9.00% 1518 1000302 1000302 0 0.00% 773 47633 7.00%
Tabel 5 Snort dengan PF_RING driver
Percobaan kedua dapat dilihat pada Tabel 5 menggunakan Snort dengan PF_RING driver, dimana pada pengujian kali ini packet drop kembali terjadi hampir mencapai 50% dari packet yang dikirimkan namun hasil ini lebih rendah bila kita bandingkan dengan hasil percobaan menggunakan Snort yang ada pada Tabel 4. PF_RING juga mampu menahan laju CPU usage sehingga CPU tidak terlalu dibebani pada saat melakukan packet capture. Percobaan ini membuktikan bahwa proses pertukaran packet yang dilakukan PF_RING antara userspace dan kernel mampu
(5)
12 0 10 20 30 40 50 60 70 80 90 100
64 128 256 512 768 1024 1280 1518
snort
snort + PF_RING
menghemat CPU usage tetapi tidak mengurangi kinerja packet capture itu sendiri, ini terbukti dari packet drop yang dihasilkan PF_RING lebih rendah dibandingkan Snort tanpa menggunakan PF_RING. Dari Hasil Simulasi maka dihasilkan grafik pada Gambar 5 dan 6.
Gambar 5 Packet Drop
Gambar 5 menunjukkan PF_RING mampu mengoptimalkan kinerja dari packet capture.
Gambar 6 CPU usage
Gambar 6 menunjukkan PF_RING mampu menghemat pengunaan CPU / CPU usage yang digunakan pada saat proses packet capture.
5. Simpulan
Berdasarkan hasil simulasi yang dilakukan menggunakan Snort dan Snort dengan PF_RING driver dengan tingkat pengiriman packet frame size dan jumlah packet yang sama, menunjukkan bahwa PF_RING mampu meningkatkan atau mengoptimalkan kinerja dari packet capture pada Snort. Selain itu PF_RING mampu menghemat pemakaian resource dari CPU yang digunakan untuk melakukan packet capture.
Packet drop (%)
Fr ame Size (byte)
0 10 20 30 40 50 60 70 80 90 100
64 128 256 512 768 1024 1280 1518
snort
snort + PF_RING CPU usage (%)
(6)
13 6. Daftar Pustaka
[1] Kumar, P. Senthil, S., Arumugam, 2012, Establishing a valuable method of packet capture and packet analyzer tools in firewall, Nandha College of Technology, Erode, India.
[2] L.Deri, 2004, Improving Passive Packet Capture: Beyond Device Polling, Via del Brennero Km 4, Loc. La Figuretta 56123 Pisa, Italy
[3] Hery Seputro, Snort: Deskripsi, Fitur, dan Penggunaan, http://www.scribd.com/doc/2958707/Snort. [4] Nalneesh Gaur, 2001, Snort: Planning IDS for Your Enterprise,
http://www.linuxjournal.com/article/4668
[5] Anonim, 2012, PF_RING User Guide : Linux High Speed Packet Capture, https://svn.ntop.org/svn/ntop/trunk/PF_RING/doc/UsersGuide.pdf.
[6] Braun, L., Didebulidze, A., Kammenhuber, N., Carle, G., 2010, Comparing and improving current packet capturing solutions based on commodity hardware, Institute For Informatics, Munich, German.
[7] S. Bradner, J. McQuaid, 1999, Benchmarking Methodology for Network Interconnect Devices, Harvard University , NetScout Systems.
[8] Askari Azikin, 2011, Debian Gnu / Linux. Bandung : Informatika Bandung.