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 di
capture
. 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].
Gambar 1 Arsitektur Snort
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;
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 di
copy
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].
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].
9
3. Metode Penelitian