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].
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.
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]
8
Gambar 3 PF_PACKET dan PF_RING [6]
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
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]
11 4. Hasil dan Pembahasan
Snort
Frame Size Packet Receive Packet Drop (%) 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
(%)
Tabel 5 Snort dengan PF_RING driver
12
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 (%)
64 128 256 512 768 1024 1280 1518
snort
snort + PF_RING
CPU usage (%)
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.