DEPAN | Flyer | Login | Register

kustomisasi konfigurasi IDS (snort)

January 14th, 2010 | KATEGORI : Administrasi
Penulis : Wilfridus Bambang

tulisan ini diangkat dari pengalaman setelah memasang ids pada suatu mesin debian versi etch menggunakan snort dan engine ke tampilan berbasis web menggunakan base, pada suatu area dmz yang super sibuk.

meski cukup telat, tentu lebih baik dibanding tidak sama sekali. penggunaan sistem IDS menjadi sesuatu yang cukup perlu dipertimbangkan untuk diinstal pada suatu jaringan komputer yang sibuk. apalagi untuk mesin-mesin yang berinteraksi 24/7 kepada customer, sehingga monitoring paket dan berbagai tindakan lain yang mengarah terhadap pengamanan menjadi bagian yang seharusnya tidak terpisahkan.

untuk tulisan ini, hanya menggunakan 1 sensor, dengan posisi berada pada area dmz, yang memonitor pergerakan antara lan ke dmz (internet). pada area tersebut juga terdapat suatu proxy menggunakan berbasis windows, sehingga inilah juga yang membuka tabir dari konfigurasi yang tidak optimal setelah melakukan instalasi dan implementasi secara standar dari suatu snort. secara kebetulan, anomali yang dimunculkan tersebut dideteksi pada malam hari setelah ids terpasang, dan menjadi catatan yang sangat banyak di dalam log, yang secara simultan dari satu titik ke titik yang lain. setelah berkoordinasi dengan admin network, berdasarkan skema yang ada akhirnya dapat diketahui dari mana asal dan ke arah mana tujuan data yang tertangkap oleh sensor.

log dalam snort mencatat pergerakan yang sangat kencang, ups… i`m getting a bunch… sehingga akhirnya dipastikan dari berbagai sumber resmi bahwa log2 tersebut memang akan diciptakan secara otomatis (terutama pada penggunaan konfigurasi standar setelah instalasi) tersebut, dan dimungkinkan untuk admin dapat mematikan alert jikalau memang dianggap bahwa alert tersebut tidak mencerminkan suatu kondisi yang berbahaya. salah satunya adalah alert mengenai Bare Byte Encoding. dari hasil browsing (http://lists.virus.org/focus-ids-0406/msg00038.html) diperoleh keterangan berikut:

Bare byte encoding is an IIS trick that uses non-ASCII chars as valid values in decoding UTF-8 values. This is NOT in the HTTP standard, as all non-ASCII values have to be encoded with a %. Bare byte encoding allows the user to emulate an IIS server and interpret non-standard encodings correctly.

dari log juga memang tidak 100% mempunyai pola yang sama, tetapi secara garis besar dari 6 klasifikasi yang ada, diperoleh hasil berikut (tercatat dalam 5 hari pengaktifan sensor ids):

[snort] (http_inspect) DOUBLE DECODING ATTACK unclassified 2316(4%)

[snort] (http_inspect) BARE BYTE UNICODE ENCODING unclassified 5486(9%)

[snort] (http_inspect) OVERSIZE REQUEST-URI DIRECTORY unclassified 18023(30%)

[snort] WEB-MISC http directory traversal attempted-recon 23992(40%)

[snort] WEB-MISC Invalid HTTP Version String non-standard-protocol 6299(10%)

[snort] WEB-MISC Invalid HTTP Version String unclassified 2219(4%)

————-

total: 58335 (97%)

pastikan anda melihat total dari log yang mencapai lebih dari 58 ribu catatan atau mencakup 97% dari log ids secara keseluruhan. sungguh mencengangkan, apalagi beberapa mesin pada dmz tersebut adalah “favorit” untuk diakses, baik dari internal maupun eksternal. akhirnya penulis berusaha melakukan optimalisasi pada konfigurasi snort yang ada, tentu saja dengan resiko bahwa dengan melakukan perubahan-perubahan di bawah ini membuat paket data yang sebenarnya masuk dalam kategori “dicurigai” akan tidak tercatat. tentu semua ada baik dan buruknya, disesuaikan dengan kebutuhan.

aktifitas yang kemudian dilakukan adalah mengecek keberadaan berkas konfigurasi dari snort yang berada secara standar pada lokasi /etc/snort/. berkas konfigurasi utama dari snort tersebut adalah snort.conf. selanjutnya dengan menggunakan editor favorit, lakukan pengecekan isi dari berkas tersebut dan pastikan di baris paling bawah terdapat tulisan sebagai berikut: include threshold.conf. artinya ids tersebut juga mengenal berkas threshold.conf sehingga apabila dilakukan perubahan konfigurasi maka dapat dikenal oleh ids.

langkah selanjutnya adalah melakukan pengecekan nomor dari tabel ID yang berisi prepocessor alerts yang berada pada lokasi yang sama dengan snort.conf yaitu /etc/snort/. Nama berkas yang mengandung informasi lengkap tersebut bernama gen-msg.map. ketika dibuka menggunakan editor, akan terlihat tampilan seperti berikut:

# $Id: gen-msg.map,v 1.16.2.3 2005/04/22 19:03:55 jhewlett Exp $

# GENERATORS -> msg map

# Format: generatorid || signatureid || MSG

1 || 1 || snort general alert

2 || 1 || tag: Tagged Packet

100 || 1 || spp_portscan: Portscan Detected

100 || 2 || spp_portscan: Portscan Status

……………………………………………….

……………………………………………….

potongan dari isi berkas gen-msg.map di atas dapat dilihat bahwa di bagian sebelah kiri, terdapat 2 kolom yang menunjukkan id dari suatu prepocessor alerts. untuk cara membacanya adalah dimulai dari sebelah kiri, yaitu generatorid || signatureid || message. sebagai contoh, untuk genid=100 dan sigid=1, message yang akan ditampilkan adalah spp_portscan: Portscan Detected.

untuk langkah selanjutnya, maka anda harus mencari message yang sesuai dengan yang akan dinonaktifkan alertnya. misalkan dari 6 contoh alert di atas yang akan dimatikan, terdapat 3 informasi yang diperoleh dari berkas gen-msg.map adalah sebagai berikut:

119 || 2 || http_inspect: DOUBLE DECODING ATTACK

119 || 4 || http_inspect: BARE BYTE UNICODE ENCODING

119 || 11 || http_inspect: DIRECTORY TRAVERSAL

langkah selanjutnya adalah melakukan penambahan rule pada berkas threshold.conf yang bertujuan untuk menonaktifkan alert 3 http_inspect yang terdapat pada contoh tersebut. rule-rule tersebut adalah:

suppress gen_id 119, sig_id 2, track by_src, ip 192.168.x.x #disable http_inspect: DOUBLE DECODING ATTACK alerts

suppress gen_id 119, sig_id 4, track by_src, ip 192.168.x.x #disable http_inspect: Bare Byte Unicode Encoding

suppress gen_id 119, sig_id 11, track by_src, ip 192.168.x.x #disable http_inspect: Directory Traversal

maksud dari rule di atas adalah menonaktifkan alerts secara spesifik, yang berasal dari sumber dengan nomor IP 192.168.x.x. sebagai catatan, sistem yang menggunakan alamat IP 192.168.x.x tersebut adalah mesin proxy.

kemudian untuk mengenal alert dengan signature awal WEB-MISC, anda dapat membaca berkas pada lokasi /etc/snort/ yang bernama sid-msg.map. dari hasil pencarian dari isi di dalamnya, diperoleh keterangan dari 3 alerts tersebut sebagai :

1112 || WEB-MISC http directory traversal || arachnids,298

1113 || WEB-MISC http directory traversal || arachnids,297

2570 || WEB-MISC Invalid HTTP Version String || bugtraq,9809 || nessus,11593

kemudian tambahkan 3 baris berikut pada berkas threshold.conf untuk menonaktifkan secara spesifik alerts tersebut dari log:

suppress gen_id 1, sig_id 1112, track by_src, ip 192.168.x.x #disable WEB-MISC http directory traversal

suppress gen_id 1, sig_id 1113, track by_src, ip 192.168.x.x #disable WEB-MISC http directory traversal

suppress gen_id 1, sig_id 2570, track by_src, ip 192.168.x.x #disable WEB-MISC Invalid HTTP Version String

(catatan: pada alerts yang berasal dari berkas sid-msg.map, tidak memiki data gen_id sendiri, tetapi termasuk pada general alert -> lihat berkas gen-msg.map, dimana semua generap alerts memiliki identitas “gen_id 1″)

setelah selesai, segera simpan perubahan tersebut. selanjutnya adalah melakukan pengetesan konfigurasi dari berkas snort.conf apakah mengandung kesalahan atau tidak. perintah yang digunakan adalah sebagai berikut: snort -c /etc/snort/snort.conf. jika muncul gambar babi di bagian bawah dari layar setelah mengeksekusi perintah sebelumnya, seperti yang terlihat di bawah ini:

–== Initialization Complete ==–
,,_ -*> Snort! <*-
o" )~ Version 2.3.3 (Build 14)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/team.html
(C) Copyright 1998-2004 Sourcefire Inc., et al.

menandakan bahwa konfigurasi dari snort dapat berjalan dengan baik. untuk keluar kembali ke console, dapat dengan menekan CTRL+J.

kemudian dari console, jalankan perintah untuk melakukan restart layanan server dari snort, dengan menggunakan perintah: /etc/init.d/snort restart

hasil visualisasi dari log ids, seperti yang telah disebutkan di bagian awal tulisan ini, dapat terbaca menggunakan aplikasi berbasis PHP yaitu BASE. selamat mencoba…

bukit.sariwangi, 140110, 00:14

solusi error pada mysql server (OS Debian)

January 7th, 2010 | KATEGORI : Administrasi
Penulis : Wilfridus Bambang

Compiz di Intel Atom, ubuntu 8.04.

December 30th, 2009 | KATEGORI : Aplikasi, Distro, Umum
Penulis : aspansyahbudin

Yang Lokal, Saatnya Bersinar

December 19th, 2009 | KATEGORI : Situs, Umum
Penulis : toni

Karmic release Party Ubuntu 9.10

October 29th, 2009 | KATEGORI : Pengumuman
Penulis : frendy

UKDW NUTZ! 2.0

September 12th, 2009 | KATEGORI : Kegiatan, Pengumuman, Umum
Penulis : willy

Situs KPLI Magelang (MaNux) sudah Diluncurkan

July 27th, 2009 | KATEGORI : Berita, KPLI, Situs
Penulis : Okto Silaban

INFO: Lomba Blog dijaminmurah.com 2009

July 23rd, 2009 | KATEGORI : Pengumuman
Penulis : risal

OCS Inventory NG

June 29th, 2009 | KATEGORI : Ulasan
Penulis : Wilfridus Bambang

berinteraksi dengan linux bersama mahasiswa/i

June 28th, 2009 | KATEGORI : Testimonial
Penulis : Wilfridus Bambang