SHARE
Snort Sebagai Network Intrusion Detection System
sumber gambar: freecode.com

Pada artikel sebelumnya telah dijelaskan mengenai IDS (Intrusion Detection System), kali ini saya akan membahas mengenai Snort Sebagai Network Intrusion Detection System (NIDS).

Snort merupakan sebuah perangkat lunak yang berfungsi untuk mengamati aktivitas dalam suatu jaringan komputer. Snort ini disebut juga sebagai NIDS yang berskala ringan (lightweight). Snort pertama kali dikenalkan pada tahun 1998 oleh Marty Roesch.

Snort menjadi sangat terkenal dan mempunyai reputasi yang baik dikarenakan memiliki beberapa karakteristik sebgai berikut:
1. Berukuran kecil – Baik source code dan rules yang dirilis hanya berukuran sekitar 2256kb.

2. Mendukung banyak Sistem Operasi – Sekarang ini Snort telah di porting ke Linux, Windows, OSX, Solaris, BSD, dan lain-lain.

3. Kemampuan yang cepat – Snort mampu mendeteksi serangan pada jaringan 100Mbps.

4. Mudah dikonfigurasi – Snort dapat dikonfigurasi sesuai dengan kebutuhan pada jaringan kita, bahkan kita dapat membuat rule sendiri untuk mendeteksi serangan baru.

5. Free – Snort ini bersifat open source dan menggunakan lisensi GPL, jadi kita tidak perlu membayar untuk dapat menggunakan snort.

Komponen Pada Snort

Snort merupakan packet sniffing yang sangat ringan. Sniffing interface yang digunakan berbasis libcap. Terdapat hubungan antara snort dan tcpdump, yaitu snort memanfaatkan tcpdump untuk mengambil (capture) paket pada jaringan. Salah satu keunggulan snort adalah snor memiliki sistem plugin yang sangat fleksibel untuk dimodifikasi.

Adapun komponen penyusun Snort itu sendiri yang mana setiap komponen memiliki fungsi masing-masing, sebagai berikut:

  • Packet capture library (libcap)
    Komponen ini yang akan memisahkan paket data yang melalui ethernet card yang selanjutnya akan digunakan oleh snort.
  • Packet Decoder
    Komponen ini mengambil data di layer 2 yang dikirim oleh komponen sebelumnya (Packet Capture Library). Untuk proses pertama yaitu dengan memisahkan Data Link (ethernet, tokenring, 802.11) kemudian protokol IP, dan yang terakhir adalah jenis paket TCP dan UDP. Hasil dari proses ini adalah adanya informasi mengenai protokol yang digunakan proses selanjutnya.
  • Preprocessor
    Selanjutnya dilakukan analisis terhadap paket sebelum diproses oleh komponen berikutnya. Adapun proses analisis yang dilakukan dapat berupa ditandai, dikelompokkan atau dihentikan karena paket yang diterima tidak lengkap.
  • Detection Engine
    Detection Engine ini bisa dikatakan sebagai jantung dari Snort. Paket yang diterima disini setelah melalui beberapa tahapan proses akan dibandingkan dengan rule yang ada atau telah ditetapkan sebelumnya. Rule disni berisi signature yang merupakan kategori serangan.
  • Output
    Setelah proses Detection Engine dilakukan maka hasilnya adalah berupa report dan alert. Snort mendukung variasi dari output yang dihasilkan, yaitu teks(ASCII), syslog, XML, binary, atau database (MySql, MsSql, PostgreSql, dan sebagainya).

Menulis Rule Snort

Seperti yang sudah disebutkan bahwa Snort memberikan fasililtas untuk penggunanya untuk dapat membuat rule sendiri yang sesuai dengan kondisi dan kebutuhan user. Namun Snort juga telah menyediakan banyak rule secara default yang mana user tidak perlu melakukan konfigurasi apapun.

Membuat rule Snort ini sangat sederhana namun dapat lebih efisien untuk trafik-trafik atau serangan tertentu. Ada beberapa hal yang harus diperhatikan saat membuat custom rule Snort.

Pass – yaitu membiarkan paket yang melewati Snort dan tidak tindakan (action) apapun.

Log – opsi ini memungkinkan untuk melakukan tindakan (log) ke lokasi direktori tertentu yang sudah ditentukan dalam file konfigurasi Snort (snort.conf)

Alert – Opsi ini memungkinkan untuk mengirimkan Alert ke sentral syslog server, popup windows melalui SMB. Dapat menggunakan tools Swatch untuk membaca file alert ini yang mana untuk memberitahukan kepada analyst bahwa ada aktivitas intrusi.

Active – Opsi ini digunakan Snort untuk mengirimkan Alert sekaligus mengerjakan/mengaktifkan rule yang lain. Sebagai contoh, ketika ada serangan maka snort akan mendeteksi melalui rule yang sudah ada kemudian mengirimkan alert dan langsung melakukan tindakan blok port tertentu sebagai tindakan preventif dari dynamic rule yang lain.

Dynamic – Opsi ini dalam kondisi idle dan akan aktif ketika rule yang bersangkutan telah aktif, seperti contoh diatas.

Mode Pengoperasian Pada Snort

Ada 3 mode operasi pada Snort, yaitu

1. Sniffer Mode – Pada mode operasi ini snort bertindak sebagai sniffer, yaitu snort dapat menangkap atau melihat semua paket yang lewat dalam jaringan dimana Snort diletakkan. Snort menampilkan hasil dari sniffing ini secara real time.
Adapun command dasar untuk menjalankan Snort ini sebagai sniffer:

snort -v (Melihat header TCP/IP paket yang lewat)
snort -vd (opsi d ini untuk menampilkan isi paket yang lewat)
snort -vde (opsi e ini untuk melihat header link layer, seperti ethernet)

2. Packet Logger Mode – Pada mode ini selain dapat melihat semua paket yang lewat, Snort juga dapat mencatat atau logging menyimpannya pada storage. Berikut ini command yang dapat dilakukan:

snort -vde -l /home/log-snort (opsi -l ini digunakan agar paket yang lewat disimpan ke file yang berada pada /home/log-snort)
snort -vde -h 192.168.14.2 -l /home/log-snort (opsi tambahan -h ini merupakan opsi yang digunakan untuk mencatat paket dari host tertentu misal pada host IP 192.168.14.2)

3. Network Intrusion Detection Mode – Dan yang ketiga adalah mode Network Intrusion Detection. Ciri khas dari mode ini adalah dengan menjalankan snort beserta file konfigurasi yang telah ditentukan (secara default file snort.conf). File snort.conf ini sudah banyak mencakup konfigurasi-konfigurasi yang dibutuhkan dalam mode ini. Berikut adalah command untuk menjalankan mode ini:

snort -vde -l /home/snort-log -c snort.conf (opsi -c ini adalah untuk membaca file config)

Snort ini merupakan IDS, dan IDS ini tidak selalu benar dan terkadang dapat membuat keputusan yang salah dalam melihat paket pada jaringan yang melewatinya. Maka diperlukan peran seorang Analyst untuk membantu mengambil tindakan pada alert yang ditampilkan oleh IDS ini. Dan seorang Analyst perlu mengetahui klasifikasi dari event yang muncul dari IDS, sebagai berikut:

  • True Positive – merupakan indikator bahwa IDS berjalan dan berfungsi dengan baik, dimana IDS mendeteksi adanya serangan dan memberikan alert kepada Analyst untuk dilakukan identifikasi lebih lanjut.
  • False Positive – merupakan tipe alert yang dihasilkan oleh IDS karena telah mendeteksi serangan yang mana cocok dengan rule dan signature pada IDS, namun serangan tersebut tidak valid.
  • True Negative – merupakan indikator dari IDS bahwa IDS melihat semua paket yang melewatinya dan untuk kasus ini paket yang lewat bukan merupakan paket yang bersifat malicious dan oleh karena itu IDS tidak memberikan alert.
  • False Negative – indikator ini menyatakan bahwa terjadi serangan pada sistem yang kita monitor namun tidak terdeteksi oleh IDS (dengan kata lain tidak ada alert), dengan kata lain serangan tersebut tidak ada yang cocok dalam kategori yang ada rule/signature dari IDS.

Mengatasi False Positive

Ketika kita membahas mengenai Alert yang dihasilkan oleh IDS maka masalah yang paling sering muncul adalah alert yang bersifat False Positive. Hal ini merupakan tantangan pada saat mengimplementasikan IDS yang dijadikan sebagai perangkat perimeter.

Diatas kita membahas sedikit mengenai Snort sebagai NIDS. False positive yang terjadi pada alert yang dihasilkan oleh Snort biasanya merupakan aktifitas percobaan serangan (intrusi), padahal aktifitas tersebut merupakan aktifitas yang sah dan dapat diabaikan.

Secara umum yang dapat menjadi indikasi bahwa alert tersebut merupakan false positive adalah adanya alert yang dihasilkan dari rule yang sama dengan jumlah yang sangat banyak melebihi biasanya. Maka dari itu tindakan pertama yang diambil adalah melakukan pengecekan sumber dan tujuan IP Address terlebih dahulu. Apabila kedua IP tersebut berasal dari dalam jaringan sendiri maka bisa dikatakan hal ini adalah false positive.

Langkah selanjutnya adalah dengan melihat rule pada Snort yang menghasilkan dan diperkirakan sebagai false positive. Dalam hal ini kita dapat mengatur ulang rule yang ada dan lebih memfokuskan lagi rule tersebut agar tidak menghasilkan alert yang salah. Bahkan apabila menurut kita rule tersebut tidak perlu diaktifkan, kita dapat menonaktifkan atau mendefinisikan rule tersebut aktif untuk beberapa sistem saja yang memang memerlukan.

Setelah langkah-langkah diatas dilakukan, maka ada kalanya perlu melakukan pengecekan pada sistem kita secara fisik apabila alert yang dihasilkan dari jaringan lokal. Karena mungkin saja terdapat kesalahan konfigurasi pada mesin sehingga menhasilkan alert-alert yang salah. Selain itu juga perlu dilakukan pengecekan pada login ke sistem dan melakukan pengecekan bahwa tidak ada orang lain yang dapat mengakses mesin tersebbut tanpa ijin yang sah.

Namun apabila alert yang dihasilkan dari jaringan luar maka kita juga perlu melakukan pengecekan terhadap mesin yang dijadikan target. Misalnya adanya percobaan login ke mesin tersebut dengan user “root” dan menghasilkan alert yang sangat banyak oleh IDS. Yang mana alert tersebut hanya merupakan feedback dari mesin bahwa tidak dapat login menggunakan user tersebut, dan pada mesin itu sendiri sudah dikonfigurasi user root sudah dinonaktifkan. Maka hal ini bisa dikategorikan sebagai false positive.

Sekian yang dapat saya tuliskan mengenai Snort Sebagai Network Intrusion Detection System (NIDS) pada kesempatan ini, semoga bermanfaat.

 

Referensi:

Pengertian Snort | False Positive | Mode Pengoperasian Snort

Berikan komentar

This site uses Akismet to reduce spam. Learn how your comment data is processed.