Praktikum 5 Keamanan Data (INTRUSION DETECTION SYSTEM (SNORT)) di PENS (Politeknik Elektronika Negeri Surabaya)

Kukuh Adi Prasetyo // Jumat, 17 Juni 2016

A. Dasar Teori
Deteksi Penyusupan (Intrusion Detection)
Deteksi penyusupan adalah aktivitas untuk mendeteksi penyusupan secara cepat dengan menggunakan program khusus yang otomatis. Program yang dipergunakan biasanya disebut sebagai Intrusion Detection System (IDS).

Tipe dasar dari IDS adalah:
Rule-based systems - berdasarkan atas database dari tanda penyusupan atau serangan yang telah dikenal. Jika IDS mencatat lalulintas yang sesuai dengan database yang ada, maka langsung dikategorikan sebagai penyusupan.
Adaptive systems - mempergunakan metode yang lebih canggih. Tidak hanya berdasarkan database yang ada, tapi juga membuka kemungkinan untuk mendeteksi terhadap bentuk bentuk penyusupan yang baru.

Bentuk yang sering dipergunakan untuk komputer secara umum adalah rule-based systems. Pendekatan yang dipergunakan dalam rule-based systems ada dua, yakni pendekatan pencegahan (preemptory) dan pendekatan reaksi (reactionary). Perbedaannya hanya masalah waktu saja. Pendekatan pencegahan, program pendeteksi penyusupan akan memperhatikan semua lalu lintas jaringan. Jika ditemukan paket yang mencurigakan, maka program akan melakukan tindakan yang perlu. Pendekatan reaksi, program pendeteksi penyusupan hanya mengamati file log. Jika ditemukan paket yang mencurigakan, program juga akan melakukan tindakan yang perlu.

Snort
Mengoperasikan Snort Tiga (3) buah mode, yaitu
Sniffer mode, untuk melihat paket yang lewat di jaringan.
Packet logger mode, untuk mencatat semua paket yang lewat di jaringan untuk di analisa di kemudian hari.
Intrusion Detection mode, pada mode ini snort akan berfungsi untuk mendeteksi serangan yang dilakukan melalui jaringan komputer. Untuk menggunakan mode IDS ini di perlukan setup dari berbagai rules / aturan yang akan membedakan sebuah paket normal dengan paket yang membawa   serangan.

Sniffer Mode
Untuk menjalankan snort pada sniffer mode tidaklah sukar, beberapa contoh perintah nya terdapat di bawah ini,
#snort –v
#snort –vd
#snort –vde
#snort –v –d –e
dengan menambahkan beberapa switch –v, -d, -e akan menghasilkan beberapa keluaran yang berbeda, yaitu
-v, untuk melihat header TCP/IP paket yang lewat.
-d, untuk melihat isi paket.
-e, untuk melihat header link layer paket seperti ethernet header.

Packet Logger Mode
Tentunya cukup melelahkan untuk melihat paket yang lewat sedemikian cepat di layar terutama jika kita menggunakan ethernet berkecepatan 100Mbps, layar anda akan scrolling dengan cepat sekali susah untuk melihat paket yang di inginkan. Cara paling sederhana untuk mengatasi hal ini adalah menyimpan dulu semua paket yang lewat ke sebuah file untuk di lihat kemudian,  sambil

santai … Beberapa perintah yang mungkin dapat digunakan untuk mencatat paket yang ada adalah
./snort –dev –l ./log
./snort –dev –l ./log –h 192.168.0.0/24
./snort –dev –l ./log –b
perintah yang paling penting untuk me-log paket yang lewat adalah
-l ./log
yang menentukan bahwa paket yang lewat akan di log / di catat ke file ./log. Beberapa perintah tambahan dapat digunakan seperti –h 192.168.0.0/24 yang menunjukan bahwa yang di catat hanya packet dari host mana saja, dan –b yang memberitahukan agar file yang di log dalam format binary, bukan ASCII

Untuk membaca file log dapat dilakukan dengan menjalankan snort dengan di tambahkan perintah –r nama file log-nya, seperti,
./snort –dv –r packet.log
./snort –dvr packet.log icmp

Intrusion Detection Mode
Mode operasi snort yang paling rumit adalah sebagai pendeteksi penyusup (intrusion detection) di jaringan yang kita gunakan. Ciri khas mode operasi untuk pendeteksi penyusup adaah dengan menambahkan perintah ke snort untuk membaca file konfigurasi –c nama-file-konfigurasi.conf. Isi file konfigurasi ini lumayan banyak, tapi sebagian besar telah di set secara baik dalam contoh snort.conf yang dibawa oleh source snort.

Beberapa contoh perintah untuk mengaktifkan snort untuk melakukan pendeteksian penyusup, seperti
./snort –dev –l ./log –h 192.168.0.0/24 –c snort.conf
./snort –d –h 192.168.0.0/24 –l ./log –c snort.conf
Untuk melakukan deteksi penyusup secara prinsip snort harus melakukan logging paket yang lewat dapat menggunakan perintah –l nama-file-logging, atau membiarkan snort menggunakan default file logging-nya di directory /var/log/snort. Kemudian menganalisa catatan / logging paket yang ada sesuai dengan isi perintah snort.conf.

Ada beberapa tambahan perintah yang akan membuat proses deteksi menjadi lebih effisien, mekanisme pemberitahuan alert di Linux dapat di set dengan perintah –A sebagai berikut,
-A fast, mode alert yang cepat berisi waktu, berita, IP & port tujuan.
-A full, mode alert dengan informasi lengkap.
-A unsock, mode alert ke unix socket.
-A none, mematikan mode alert.

Untuk mengirimkan alert ke syslog UNIX kita bisa menambahkan switch –s, seperti tampak pada beberapa contoh di bawah ini.
./snort –c snort.conf –l ./log –s –h 192.168.0.0/24
./snort –c snort.conf –s –h 192.168.0.0/24
Untuk mengirimkan alert binary ke workstation windows, dapat digunakan perintah di bawah ini,
./snort –c snort.conf –b –M WORKSTATIONS
Agar snort beroperasi secara langsung setiap kali workstation / server di boot, kita dapat menambahkan ke file /etc/rc.d/rc.local perintah di bawah ini
/usr/local/bin/snort –d –h 192.168.0.0/24 –c /root/snort/snort.conf –A full –s –D
atau
/usr/local/bin/snort –d –c /root/snort/snort.conf –A full –s –D
dimana –D adalah switch yang menset agar snort bekerja sebagai Daemon (bekerja dibelakang layar).

B. Tugas Pendahuluan

1.   Sebutkan dan jelaskan dengan singkat apa yang disebut dengan konsep IDS ?
IDS (Intrusion Detection System) adalah sebuah sistem yang melakukan pengawasan terhadap traffic jaringan dan pengawasan terhadap kegiatan-kegiatan yang mencurigakan didalam  sebuah  sistem  jaringan.  Jika  ditemukan  kegiatankegiatan  yang    mencurigakan

berhubungan dengan traffic jaringan maka IDS akan memberikan peringatan kepada sistem atau administrator jaringan. Dalam banyak kasus IDS juga merespon terhadap traffic yang tidak normal/ anomali melalui aksi pemblokiran seorang user atau alamat IP (Internet Protocol) sumber dari usaha pengaksesan jaringan.

Konsep IDS.
Dalam konsep keamanan jaringan kita mengenal istilah false positif dan false negatif.
1. False positif – adalah peringatan yang dihasilkan oleh IDS karena telah mendeteksi adanya serangan yang valid terhadap sistem yang kita monitor, tetapi serangan itu sendiri tidak valid. Atau dengan kata lain, kita mendapat laporan serangan, padahal itu bukan serangan. Ini adalah masalah bagi kita karena banyaknya peringatan yang dibuat oleh IDS padahal serangan yang sebenarnya tidak terjadi. False positif bisa saja terjadi karena adanya serangan pada sistem yang tidak di monitor.
2. False negatif – adalah serangan yang benar-benar terjadi tetapi tidak terdeteksi oleh IDS. IDS bisa melewatkan serangan karena menganggap serangan yang dilakukan tidak sesuai dengan aturan yang ada (rule), atau karena terlalu banyak serangan, atau bisa juga karena penyerang berhasil melumpuhkan IDS. Dampak dari false negatif ini artinya penyerang berhasil melewati IDS, sama artinya dengan ada yang menyerang kita, tapi kita tidak menyadarinya!

Ada dua cara IDS bisa mendeteksi serangan:
1. Signature detection – IDS yang bekerja menggunakan signature (rule/peraturan) akan mendeteksi serangan jika ada traffic network yang masuk ke dalam daftar serangan. Signature – lah yang menentukan paket yang masuk ke network tersebut merupakan serangan atau biasa disebut “bad traffic”. Kekurangan dari metode ini adalah bahwa IDS hanya bisa mendeteksi suatu serangan yang telah terdaftar sebelumnya di dalam signature. Oleh karena itu, metode ini akan kesulitan menghadapi daftar serangan jenis baru. Bila kita menggunakan signature detection mungkin akan berdampak sedikitnya peringatan false positif tetapi banyak false negatif.
2. Anomaly detection – IDS yang menggunakan anomaly detection bekerja menggunakan cara yang berbeda. IDS akan mengenal traffic “normal” jaringan kita dan akan mulai mengingatkan kita bila ternyata ada traffic yang “abnormal”. Masalahnya adalah, sesuatu yang baru atau berbeda juga bisa dianggap abnormal. Jadi jika kita menggunakan metode ini IDS akan memberikan sedikit false negatif tetapi banyak false positif.

Beberapa IDS ada yang menggunakan signature detection, tapi ada juga yang menggunakan anomaly detection, dan ada juga yang menggunakan keduanya.

2. Sebutkan fasilitas kemampuan yang dimiliki snort !
Snort ini mempunyai kemampuan untuk mengexport log ke bentuk database, ada beberapa database yang dapat digunakan, kayak MySQL, PostgreSQL, oracle, MSSQL dan odbc.
Snort yang berbasis jaringan intrusion detection system (NIDS) memiliki kemampuan untuk melakukan real-time analisis lalu lintas dan paket logging pada Internet Protocol (IP) jaringan. Snort melakukan analisis protokol, pencarian isi, dan pencocokan konten. Program ini juga dapat digunakan untuk mendeteksi probe atau serangan, termasuk, namun tidak terbatas pada, upaya sistem operasi sidik jari, antarmuka gateway umum, buffer overflows, probe server pesan blok, dan port scan siluman.

Snort log adalah kemampuan untuk memotong dan menyisipkan berbagai mendeteksi ke dalam pesan e-mail yang akan dikirim ke analis lain, CIRT Anda, atau pihak yang bersalah.

Snort memiliki karakteristik, sebagai berikut:
1. Berukuran kecil – Source code dan rules untuk rilis 2.1.1 hanya 2256k.
2. Portable untuk banyak OS – Telah diporting ke Linux, Windows, OSX, Solaris, BSD,dll.
3. Cepat – Snort mampu mendeteksi serangan pada network 100Mbps.
4. Mudah dikonfigurasi – Snort sangat mudah dikonfigurasi sesuai dengan kebutuhan network kita. Bahkan kita juga dapat membuat rule sendiri untuk mendeteksi adanya serangan baru.

5. Free – Kita tidak perlu membayar sepeser pun untuk menggunakan snort. Snort bersifat open source dan menggunakan lisensi GPL.

3.Jelaskan cara installasi dan konfigurasi snort !
•Untuk menginstall snort gunakan perintah
#apt-get install snort

•Setelah instalasi selesai, lakukan konfigurasi pada file snort.conf. Ketikkan perintah berikut
:
#nano /etc/snort/snort.conf

•Tekan CTRL-W cari kata kunci HOME_NET any. Setelah ketemu baris HOME_any, edit menjadi seperti ini :
var HOME_NET 172.16.100.0/24

•Kemudian edit juga baris :
#Set up the external network address as well. A good start may be “any” var EXTERNAL_NET any
#var EXTERNAL_NET !$HOME_NET

•Menjadi seperti ini :
#Set up the external network address as well. A good start may be “any”
#var EXTERNAL_NET any
var EXTERNAL_NET !$HOME_NET

•Restart Service
#service snort restart

4. Jelaskan cara membuat rule baru di snort !
Untuk membuat rule baru, edit file alltcp.rules yang tersimpan pada direktori /etc/snort/rules dengan menggunakan perintah #nano /etc/snort/rules/alltcp.rules kemudian restart service snort.

C. Hasil Percobaan

PERCOBAAN 1 : Instalasi Snort
Pertama kita perlu menginstal semua prasyarat dari repositori Ubuntu :
sudo apt-get install -y build-essential libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-dev liblzma-dev openssl libssl-dev

Rincian dari paket yang diinstal:
build-essential: menyediakan alat membangun (GCC dan sejenisnya) untuk mengkompilasi software.
bison, flex: parser yang dibutuhkan oleh DAQ (DAQ diinstal kemudian di bawah).
libpcap-dev: Perpustakaan untuk menangkap lalu lintas jaringan yang dibutuhkan oleh Snort.
libpcre3-dev: Perpustakaan fungsi untuk mendukung ekspresi reguler yang dibutuhkan oleh Snort.
libdumbnet-dev: perpustakaan libdnet menyediakan disederhanakan, antarmuka portabel untuk beberapa rutinitas jaringan tingkat rendah. Banyak panduan untuk menginstal Snort menginstal perpustakaan ini dari sumber, meskipun itu tidak diperlukan.
zlib1g-dev: Sebuah perpustakaan kompresi yang diperlukan oleh Snort.
liblzma-dev: Menyediakan dekompresi file swf (adobe flash)
openssl dan libssl-dev: Menyediakan SHA dan MD5 berkas tanda tangan

Selanjutnya, kita perlu memastikan bahwa kartu jaringan tidak memotong paket besar. Dari Snort Manual.

Install ethtool:
sudo apt-get install -y ethtool

Edit file /etc/network/interfaces sebagai admin:
sudo vi /etc/network/interfaces

Tambahkan dua baris berikut untuk setiap antarmuka jaringan yang akan memiliki Snort
post-up ethtool -K eth0 gro off post-up ethtool -K eth0 lro off

contoh bagaimana file /etc/network/interfaces harus mencari satu antarmuka:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/*
# The loopback network interface auto lo
iface lo inet loopback
# The primary network interface auto eth0
iface eth0 inet dhcp
post-up ethtool -K eth0 gro off post-up ethtool -K eth0 lro off

Selanjutnya membuat direktori untuk menyimpan file snort hasil download:
mkdir ~/snort_src cd ~/snort_src

Snort menggunakan Data Acquisition library (DAQ) untuk panggilan abstrak untuk packet capture perpustakaan. DAQ-download dan diinstal dari website Snort:
cd ~/snort_src
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz tar -xvzf daq-2.0.6.tar.gz
cd daq-2.0.6
./configure make
sudo make install




Menginstal  Snort   dari   sumber.   Ketika  mengkonfigurasi  membangun   dari  Snort    dengan
menggunakan bendera -enable-sourcefire, yang memungkinkan Packet Performance Monitoring (PPM) sesuai dengan cara tim Sourcefire membangun Snort.
cd ~/snort_src
wget https://www.snort.org/downloads/snort/snort-2.9.7.6.tar.gz tar -xvzf snort-2.9.7.6.tar.gz
cd snort-2.9.7.6
./configure --enable-sourcefire make
sudo make install

Jalankan perintah berikut untuk memperbarui shared library:
sudo ldconfig

Instalasi Snort menempatkan biner Snort di /usr/local/bin/snort, itu adalah kebijakan yang baik untuk membuat symlink ke /usr/sbin/snort::
sudo ln -s /usr/local/bin/snort /usr/sbin/snort

Langkah terakhir dari instalasi Snort kami adalah untuk menguji bahwa Snort Binary berjalan. Jalankan Snort dengan bendera -V, yang menyebabkan Snort untuk menunjukkan nomor versi:
/usr/sbin/snort –V

Output yang benar:
user@snortserver:~$ /usr/sbin/snort –V

,,_ -*> Snort! <*-o" )~ Version 2.9.8.0 GRE (Build 229)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al. Using libpcap version 1.5.3
Using PCRE version: 8.31 2012-07-06 Using ZLIB version: 1.2.8

user@snortserver:~$

PERCOBAAN 2 : Konfigurasi Snort Konfigurasi Basic
Membuat snort user dengan perintah:
sudo groupadd snort
sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort


Selanjutnya, membuat sejumlah file dan folder yang Snort harapkan ketika berjalan dalam modus NIDS. Kemudian akan mengubah kepemilikan file-file ke pengguna baru. Snort file konfigurasi pada /etc/snort, aturan pada /etc/snort/ aturan, /usr/local/lib/snort_dynamicrules, dan menyimpan log di /var/log/snort:

# Create the Snort directories: sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/rules/iplists sudo mkdir /etc/snort/preproc_rules
sudo mkdir /usr/local/lib/snort_dynamicrules sudo mkdir /etc/snort/so_rules

# Create some files that stores rules and ip lists sudo touch /etc/snort/rules/iplists/black_list.rules sudo touch /etc/snort/rules/iplists/white_list.rules sudo touch /etc/snort/rules/local.rules
sudo touch /etc/snort/sid-msg.map

# Create our logging directories: sudo mkdir /var/log/snort
sudo mkdir /var/log/snort/archived_logs

# Adjust permissions:
sudo chmod -R 5775 /etc/snort sudo chmod -R 5775 /var/log/snort
sudo chmod -R 5775 /var/log/snort/archived_logs sudo chmod -R 5775 /etc/snort/so_rules
sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules

# Change Ownership on folders:
sudo chown -R snort:snort /etc/snort sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules


Memindahkan file-file berikut dari Snort tarbal yang diekstrak ke folder konfigurasi:
classification.config menggambarkan jenis klasifikasi serangan yang Snort mengerti (pengelompokan aturan dalam jenis klasifikasi), seperti trojan-activity atau system-call-detect. Daftar klasifikasi dapat ditemukan dalam bagian 3.4.6 dari Manual Snort
file_magic.conf menjelaskan aturan untuk mengidentifikasi jenis file.
reference.config mengandung url yang dirujuk dalam aturan yang memberikan informasi lebih lanjut tentang peringatan.
snort.conf adalah file konfigurasi untuk Snort, ia memberitahu Snort mana sumber berada, dan bagaimana output alert, antara lain.
threshold.conf memungkinkan Anda untuk mengontrol jumlah peristiwa yang diperlukan untuk menghasilkan peringatan, yang dapat membantu menekan berisik alert. Informasi lebih lanjut di sini.
attribute table.dtd memungkinkan Snort menggunakan informasi luar untuk menentukan protokol dan kebijakan. Informasi lebih lanjut di sini.
gen-msg.map memberitahu Snort yang pra-prosesor yang digunakan oleh aturan mana. Informasi lebih lanjut di sini.
unicode.map menyediakan pemetaan antara bahasa Unicode dan pengenal. File ini diperlukan oleh Snort untuk memulai.

Jalankan  perintah  di  bawah  untuk  memindahkan  file   yang  tercantum  di  atas  ke      folder
/etc/snort:
cd ~/snort_src/snort-2.9.8.0/etc/ sudo cp *.conf* /etc/snort
sudo cp *.map /etc/snort sudo cp *.dtd /etc/snort

cd
~/snort_src/snort-2.9.8.0/src/dynamic-preprocessors/build/usr/local/lib/snort
_dynamicpreprocessor/
sudo cp * /usr/local/lib/snort_dynamicpreprocessor/

Folder konfigurasi dan struktur file Snort terlihat seperti berikut:
user@snortserver:~$ tree /etc/snort
/etc/snort
├── attribute_table.dtd
├── classification.config
├── file_magic.conf
├── gen-msg.map
├── preproc_rules
├── reference.config
├── rules
│.. ├── local.rules
│.. ├── iplists
│    .. ├── black_list.rules
│    .. ├── white_list.rules
├── snort.conf
├── so_rules
├── threshold.conf
└── unicode.map

Edit File Konfigurasi Snort
Snort file konfigurasi disimpan di /etc/snort/snort.conf, dan berisi semua pengaturan yang Snort akan digunakan ketika dijalankan dalam mode NIDS. Ini adalah file besar (lebih dari 500 baris), dan berisi sejumlah pilihan untuk konfigurasi Snort. Kami tertarik dalam hanya beberapa pengaturan saat ini.

Pertama, kita perlu komentar pada baris yang menyebabkan Snort untuk mengimpor set default file aturan. Kami melakukan ini karena kami akan menggunakan PulledPork untuk mengelola mengetahui aturan kami, yang menyimpan semua aturan ke dalam satu file. Cara mudah untuk komentar semua garis-garis ini adalah dengan menggunakan sed untuk menambahkan "#" (hash) karakter ke garis itu.

Hal ini dilakukan dengan menjalankan perintah berikut:
sudo     sed     -i     's/include     \$RULE\_PATH/#include  \$RULE\_PATH/'
/etc/snort/snort.conf


edit file /etc/snort/snort.conf sudo vi /etc/snort/snort.conf

Pertama, kita perlu membiarkan Snort mengetahui jangkauan jaringan dari jaringan rumah Anda (aset Anda mencoba untuk melindungi) dan semua jaringan eksternal lainnya. Kami melakukan ini dengan mengedit baris 45 dan 48 dari snort.conf untuk menceritakannya rentang IP dari dua jaringan tersebut.

Catatan: tidak disarankan untuk mengatur EXTERNAL_NET ke $HOME NET seperti yang direkomendasikan dalam beberapa panduan, karena dapat menyebabkan Snort salah alert!.

Selanjutnya kita perlu memberitahu Snort tentang lokasi dari semua folder yang kita buat sebelumnya. Pengaturan ini juga merupakan bagian dari file snort.conf. Saya telah menyertakan nomor baris setelah hash sehingga Anda dapat lebih mudah menemukan pengaturan (tidak menulis nomor baris, hanya mengubah path untuk mencocokkan apa yang di bawah):
var RULE_PATH /etc/snort/rules # line 104
var SO_RULE_PATH /etc/snort/so_rules # line 105 var PREPROC_RULE_PATH /etc/snort/preproc_rules # line 106

var WHITE_LIST_PATH /etc/snort/rules/iplists # line 113 var BLACK_LIST_PATH /etc/snort/rules/iplists # line 114


Untuk mengaktifkan IP whitelist dan black list lakukan perubahan pada baris 510 dan 511

Akhirnya,     kami     ingin     mengaktifkan     salah     satu     file     yang     disertakan    aturan:
/etc/snort/rules/local.rules. Kami akan menggunakan file ini untuk menyimpan aturan kita sendiri, termasuk satu aturan yang akan kita tulis di artikel berikutnya dalam seri ini yang akan memungkinkan kita untuk dengan mudah memeriksa bahwa Snort benar menghasilkan alert. Un-komentar baris berikut (baris 545) dengan menghapus hash dari awal baris:
include $RULE_PATH/local.rules dan $RULE_PATH/scan.rules


Testing Snort dengan File Konfigurasi
Snort memiliki kemampuan untuk memvalidasi file konfigurasi, dan Anda harus melakukan ini setiap kali Anda membuat modifikasi snort.conf. Jalankan perintah berikut untuk memiliki Snort tes file konfigurasi:
sudo snort -T -c /etc/snort/snort.conf

-T Memberitahu snort untuk menguji, dan -c mengatakan snort path ke file konfigurasi, dan Anda diminta untuk menentukan interface yang ingin Anda mendengarkan dengan -i (ini adalah persyaratan baru untuk versi 2.9.8.x snort). Anda harus melihat beberapa output, dengan baris berikut di akhir:
...
Snort successfully validated the configuration! Snort exiting

PERCOBAAN 3 : Penenulisan dan Pengujian Aturan Tunggal Dengan Snort
Edit local.rules
sudo vi /etc/snort/rules/local.rules

Simpan dan tambahkan perintah ini:
alert tcp any any -> any any (content:”www.facebook.com”; msg:”Someone is visiting Facebook”;sid:1000001;rev:1;)
alert tcp any any -> any any (msg:"TCP Traffic";sid:1000002;rev:0;)

Atur juga scan.rules menjadi seperti dibawah ini : 



Apa aturan ini mengatakan bahwa untuk setiap paket ICMP yang dilihatnya dari jaringan apapun untuk HOME_NET kami, menghasilkan peringatan dengan teks tes ICMP. Informasi lain di sini (GID, REV, classtype) digunakan kelompok aturan, dan akan membantu ketika Anda menginstal Snorby.

Test file konfigurasi:
sudo snort -T -c /etc/snort/snort.conf -i eth0

jika sukses akan menghasilkan output seperti dibawah ini:


Sekarang untuk menguji aturan. Kita perlu untuk memverifikasi bahwa Snort menghasilkan peringatan ketika memproses paket ICMP. Kami akan meluncurkan Snort dengan pilihan berikut:
-A console the console option prints fast mode alerts to stdout
-q Quiet. Don't show banner and status report.
-u snort run snort as the following user after startup
-g snort run snort as the following group after startup
-c /etc/snort/snort.conf      the path to our snort.conf file
-i eth0 the interface to listen on

Jalankan Snort dengan perintah di bawah ini, memodifikasi parameter yang diperlukan khusus untuk konfigurasi Anda:
sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf
-i eth0

Setelah Anda mulai Snort dengan perintah di atas, Anda perlu menggunakan komputer lain atau jendela terminal lain untuk ping antarmuka yang diarahkan Snort untuk mendengarkan pada. Anda akan melihat output yang mirip dengan di bawah ini pada terminal mesin Snort:




Lalu Cek dengan nmap seperti dibawah ini : 


PERCOBAAN 4 : Instalasi Barnyard2
Menginstal beberapa prasyarat:
sudo apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool



Anda akan diminta untuk password root MySQL. Kami memilih root untuk contoh di bawah. Selanjutnya, kita perlu mengedit snort.conf yang:
sudo vi /etc/snort/snort.conf

Kita perlu menambahkan baris yang memberitahu Snort untuk acara output dalam bentuk biner (sehingga Barnyard2 dapat membacanya). Setelah baris 520 di /etc/snort/snort.conf (garis yang merupakan contoh komentar-out), tambahkan baris berikut dan menyimpan file:
output unified2: filename snort.u2, limit 128


Baris ini memberitahu snort peristiwa output dalam format biner unified2 (yang lebih mudah untuk snort untuk keluaran bukan alert terbaca-manusia).

Selanjutnya kita perlu untuk mendapatkan, mengkonfigurasi, dan menginstal Barnyard2.
cd ~/snort_src wget
https://github.com/firnsy/barnyard2/archive/7254c24702392288fe6be948f88afb740 40f6dc9.tar.gz -O barnyard2-2-1.13.tar.gz
tar zxvf barnyard2-2-1.13.tar.gz
mv barnyard2-7254c24702392288fe6be948f88afb74040f6dc9 barnyard2-2-1.14-336 cd barnyard2-2-1.13
autoreconf -fvi -I ./m4




Tergantung pada arsitektur sistem anda (x86 atau x64), memilih untuk menjalankan salah satu jalur berikut untuk memberitahu Barnyard2 mana perpustakaan MySQL adalah:
./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu
./configure --with-mysql --with-mysql-libraries=/usr/lib/i386-linux-gnu




Selanjutnya install:
make
sudo make install




Barnyard2 sekarang diinstal ke /usr/local/bin/barnyard2. Untuk mengkonfigurasi Snort untuk menggunakan Barnyard2, kita perlu menyalin beberapa file dari paket source:
cd ~/snort_src/barnyard2-2-1.14-336 sudo cp etc/barnyard2.conf /etc/snort

# the /var/log/barnyard2 folder is never used or referenced
# but barnyard2 will error without it existing sudo mkdir /var/log/barnyard2
sudo chown snort.snort /var/log/barnyard2

sudo touch /var/log/snort/barnyard2.waldo
sudo chown snort.snort /var/log/snort/barnyard2.waldo sudo touch /etc/snort/sid-msg.map




Sejak Barnyard2 menghemat peringatan ke database MySQL kita, kita perlu menciptakan bahwa database, serta 'snort' MySQL pengguna untuk mengakses database tersebut. Jalankan perintah berikut untuk membuat database dan MySQL pengguna.

Ketika diminta untuk password, gunakan root tersebut. Anda juga akan menetapkan MySQL sandi mendengus pengguna dalam perintah mysql keempat (untuk MYSQLSNORTPASSWORD), sehingga mengubahnya sana juga.
$ mysql -u root -p
mysql> create database snort; mysql> use snort;
mysql> source ~/snort_src/barnyard2-2-1.13/schemas/create_mysql mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY 'root'; mysql> grant create, insert, select, delete, update on snort.* to 'snort'@'localhost';
mysql> exit


Sekarang bahwa database Snort telah dibuat, kita perlu memberitahu Barnyard2 tentang rincian database. Mengedit file konfigurasi Barnyard2:

sudo nano /etc/snort/barnyard2.conf

akhir dari file:
output database: log, mysql, user=snort password=MYSQLSNORTPASSWORD dbname=snort host=localhost


password pada file barnyard2.conf, kita harus mencegah pengguna lain dari membaca itu:
sudo chmod o-r /etc/snort/barnyard2.conf


Sekarang Barnyard2 dikonfigurasi untuk bekerja dengan Snort. Untuk menguji, mari kita jalankan Snort dan Barnyard2 dan menghasilkan beberapa peringatan. Pertama, kami menjalankan Snort sebagai daemon. Kami menggunakan parameter yang sama seperti sebelumnya, dengan penambahan bendera -D, yang memberitahu mendengus untuk menjalankan sebagai daemon, dan kami dihapus -A Console karena kita tidak ingin peringatan untuk ditampilkan di layar. Mencatat PID dari proses sehingga Anda dapat membunuh nanti jika diperlukan:
sudo /usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0
–D


Ping alamat IP dari antarmuka ditentukan di atas (eth0). Jika Anda memeriksa direktori log Snort, Anda harus melihat file bernama snort.u2.nnnnnnnnnn (n ini akan diganti dengan nomor). Ini adalah tanda biner yang mendengus telah ditulis untuk Barnyard2 untuk memproses.

Sekarang kami ingin memberitahu Barnyard2 untuk melihat peristiwa ini dan beban ke contoh database mendengus. Kami menjalankan Barnyard2 dengan bendera berikut:
-c /etc/snort/barnyard2.conf        the Barnyard2 configuration file
-d /var/log/snort the location to look for the snort binary output file
-f snort.u2 the name of the file to look for.
-w /var/log/snort/barnyard2.waldo   the path to the waldo file (checkpoint file).
-u snort run Barnyard2 as the following user after startup
-g snort run Barnyard2 as the following group after startup

Jalankan perintah dibwah ini:
sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w
/var/log/snort/barnyard2.waldo -g snort -u snort

output yang keluar jika berhasil:
--== Initialization Complete ==--

  -*> Barnyard2 <*-
/ ,,_ \ Version 2.1.14 (Build 336)
|o" )~| By Ian Firns (SecurixLive): http://www.securixlive.com/
+ '''' + (C) Copyright 2008-2013 Ian Firns <firnsy@securixlive.com>

Using waldo file '/var/log/snort/barnyard2.waldo': spool directory = /var/log/snort
spool filebase = snort.u2 time_stamp = 1412527313
record_idx = 16
Opened spool file '/var/log/snort/snort.u2.1412527313'
Closing spool file '/var/log/snort/snort.u2.1412527313'. Read 16 records Opened spool file '/var/log/snort/snort.u2.1412528990'
Waiting for new data




Gunakan ctrl-cps untuk menemukannya seperti dalam contoh di bawah:
user@snortserver:~$ ps aux | grep snort
snort 1296 0.0 2.1 297572 43988 ? Ssl 03:15 0:00
/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0 -D user 1314 0.0 0.0 4444 824 pts/0 S+ 03:17 0:00 grep
--color=auto snort
user@snortserver:~$ sudo kill 1296
 user@snortserver:~$

PERCOBAAN 5 : Instalasi Apache dan Base

Kita mulai dengan menginstal pra-syarat dari repositori Ubuntu
sudo apt-get install -y apache2 libapache2-mod-php5 php5 php5-mysql php5-common php5-gd php5-cli php-pear



Dan kemudian menginstal pear libwww-perl dan Image_graph ( mengabaikan peringatan di bawah ini )



Kita perlu menginstal 5.18 versi ADODB
cd ~/snort_src
wgethttp://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-518-for php5/adodb518a.tgz/download -O adodb518.tgz
tar -xvzf adodb518.tgz sudo mv adodb5 /var/adodb





Sekarang kita dapat men-download dan menginstal DASAR 1.4.5 cd ~/snort_src
wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz tar -zxvf base-1.4.5.tar.gz






Konfigurasi Base

 cd /var/www/html/base



membuat suntingan berikut untuk base_conf.php :
$BASE_urlpath = '/base'; # line 50
$DBlib_path = '/var/adodb/'; #line 80
$alert_dbname = 'snort'; # line 102
$alert_host = 'localhost';
$alert_port = '';
$alert_user = 'snort';
$alert_password = 'root'; # line 106



Sekarang kita perlu me-restart Apache :
sudo service apache2 restart


Langkah terakhir untuk mengkonfigurasi DASAR dilakukan melalui http :




  
5. Laporan Resmi
1. Berikan kesimpulan hasil praktikum yang anda lakukan.
Snort merupakan aplikasi system yang digunakan untuk melakukan deteksi terhadap gangguan yang mungkin dan akan terjadi. Gangguan tersebut datang dari sniffer. Banyak rule
/ aturan yang diterapkan oleh snort. Selain itu user dapat mendefinisikan sendiri rule yang akan diterapkan pada snort yang digunakan. Setiap gangguan yang dapat akan dideteksi oleh alert. Dan pada alert tersebut akan terdapat message alert sesuai dengan yang telah didefinisikan.
2. Download rule terbaru di snort dan bandingkan dengan rule yang lama, apa saja. perubahan yang ada !
Penerapan rule yang baru terlihat pada penambahan rules yang diterapkan. Namun untuk mendeteksi gangguan tergantung pada rule yang diterapkan.
3. Jelaskan rule apa saja yang bisa didekteksi oleh snort !
rule yang diterapkan oleh snort secara default : chat, ddos, dns, dos, ftp, icmp, mysql, netbios, oracle, dll.
4. Untuk mempermudah pembacaan data snort dimungkinkan dimasukkan dalam database, carilah artikel tentang konfigurasi snort menggunakan database?
Install database
#apt-get install mysql-server
#apt-get install php5 php5-mysql php5-gd php-pear
#apt-get install snort-mysql
Create database
Mysql –u root –p
>create database snort;
>grant all on snort * to snortuser@localhost identified by ‘snortpwd’;
>flush privillages
5. Jelaskan juga aplikasi yang bisa dipakai untuk membaca database snort!
Tripwire
6. Apa yang dimaksud promiscuous mode ?
promiscuous mode merupakan mode untuk NIC berkabel atau wireless NIC yang menyebabkan controller melewatkan semua traffic yang diterima oleh CPU. Promiscuous mode sering digunakan untuk mendiagnosa konektivitas network. Terdapat program menggunakan fitur ini untuk menampilkan semua data yang sedang dikirimkan melewati jaringan. beberapa protocol seperti FTP dan Telnet mengirimkan data dan password pada clear text, tanpa enkripsim dan scanner jaringan dapat melihat data ini. Promiscuous mode dapat digunakan untuk memantu jaringan. pada promiscuous mode, mungkin mengirimkan response kepada frame bahkan mespikun mereka dialamatkan pada mesin yang lain.


Pertanyaan tambahan :

1. Bagaimana cara update rule pada snort?

Pulled Prok
Install pulled pork + konfigurasi

Masuk ke snort.conf

Uncomment dynamic rules

Hapus semua rule

Tambahkan FILE_DATA_PORTS di snort.conf

Running pulled pork yang secara otomatis akan update rules

Outputnya akan menjadi 1 file yaitu snort.rules

Oink Master
Install oink master

Download community rules dengan oinkcode

Buat user oink master

Ubah permission agar user oink master bisa menggunakan software oink master

Jalankan perl script untuk menaruh rule baru di snort rule dan jika ada yang berbeda maka yang lama akan di back up

Outputnya menjadi banyak file di rules

2. Manakah yang lebih recommend antara Pulled Pork dengan Oink Master?
Lebih recommended Pulled Pork karena pulled pork bisa mengconvert sintax oinkmaster. Sedangkan Oinkmaster kurang update. Pulled Pork mengikuti perubahan dari snort dan tidak akan membiarkan kita mendisable rule yang dibutuhkan rule lain. Selain itu pulled pork bisa melakukan update otomatis sedangkan Oink Master tidak.

3. Jelaskan apa maksud id pada alert snort !


Ket : gambar di atas merupakan tampilan alert-alert snort pada BASE. Alert-alert pada gambar tersebut mendeteksi ancaman port scanning.


Ket: ID disini merupakan urutan penyerangan, pada setiap ID juga terdapat informasi waktu, alamat sensor, sumber ip penyerang, dan lain sebagainya.




1 komentar