Sunday 17 May 2015

2. Host-based IDS

Tugas Pendahuluan - Host Based IDS

A.    TUJUAN PEMBELAJARAN
1.        Mahasiswa memahami konsep aplikasi client server di jaringan.
2.        Mahasiswa memahami konsep pemprograman socket dasar.
3.        Mahasiswa mampu membangun program socket sederhana dengan single thread
           B.   DASAR TEORI
Pemasangan program intrusion detector sebenarnya ditujukan untuk mendeteksi, memantau keadaan anomali jaringan yang disebabkan salah satunya oleh penyusup (intruder). Setelah tahap pendeteksian, biasanya IDS dapat diset untuk dapat memberikan peringatan bagi network administrator.
Type IDS dibagi 2, yaitu host-based dan network-based IDS. Pada praktikum kali ini, akan membahas salah satu contoh aplikasi dari host-based IDS, yaitu tripwire. Program tripwire berfungsi untuk menjaga integritas file sistem dan direktori, dengan mencatat setiap perubahan yang terjadi pada file dan direktori. Penggunaan tripwire biasanya digunakan untuk mempermudah pekerjaan yang dilakukan oleh System Administrator dalam mengamankan System.
Cara kerja tripwire adalah dengan melakukan perbandingan file dan direktori yang ada dengan database system yang dibuat pada saat tripwire diinstall. Perbandingan tersebut meliputi perubahan tanggal, ukuran file, penghapusan dan lain-lain. Setelah tripwire dijalankan, secara otomatis akan melakukan pembuatan database sistem. Kemudian secara periodik akan selalu melaporkan setiap perubahan pada file dan direktori.
Pada waktu pertama kali digunakan, tripwire harus digunakan untuk membuat database mengenai berkas-berkas atau direktori yang ingin kita amati beserta “signature” dari berkas tersebut. Signature berisi informasi mengenai besarnya berkas, kapan dibuatnya, pemiliknya, hasil checksum atau hash (misalnya dengan menggunakan program MD5), dan sebagainya. Apabila ada perubahan pada berkastersebut, maka keluaran dari hash function akan berbeda dengan yang ada di database sehingga ketahuan adanya perubahan. Selain Tripwire, tool yang yang digunakan utuk melakukan pengecekan integritas sistem antara lain: TAMU (Texas A&M University), ATP (The Anti-Tampering Program), dan sXid (men-tracks file-file suid dan sgid, bisa mendeteksi jika ada kit root yang terinstal).
Tripwire yang merupakan salah satu pilhan utilitas yang dapat digunakan oleh user dan administrator untuk memeriksa perubahan yang terjadi pada file atau direktori. Hal itu untuk menghindari adanya backdoor (pintu belakang untuk mendapatkan akses illegal lagi), penyusupan karena adanya bug pada perangkat lunak, adanya malicious code dan perubahan terhadap sistem oleh oramg lain yang sebenarnya tidak mempunyai hak untuk itu. Dalam pemeriksaan keutuhan dan keaslian file ini, tripwire perlu mengetahui file mana saja yang akan diperiksa baru setelah itu membandingkan file yang akan diperiksa tersebut dengan informasi (database) yang telah disimpan sebelumnya. Dan jika terjadi perubahan atau penambahan file baru Tripwire akan melaporkannya sehingga administrator dapat segera memeriksa apakah pengubahan atau penambahan file baru tersebut legal atau tidak.
Daftar file atau direktori yang akan diperiksa Tripwire terdapat dalam file konfigurasi Tripwire yang default-nya bernama tw.config. Sedangkan keadaan asli file tersebut terdapat di dalam file database Tripwire yang default-nya bernama tw.db_@. Karakter @ diganti dengan hostname komputer yang diinstal Tripwire. Yang menjadi file inti dalam program Tripwire ini sebenarnya adalah kedua file tersebut yaitu file konfigurasi tw.config dan file database tw.db_@. Karena itu sangat disarankan pada saat menginstalasi program Tripwire agar kedua file ini diletakkan pada tempat yang hanya di-mount read-only atau di media eksternal (seperti disket atau NFS) sehingga tidak ada intruder yang dapat mengubahnya. Sebab jika hal ini tidak dilakukan akan sangat mungkin menyebabkan kita tidak dapat mengetahui seorang intruder yang telah berhasil masuk ke dalam sistem dan telah menyiapkan backdoor. Hal ini dikarenakan pada saat intruder itu telah membuat file baru atau mengubah suatu file untuk digunakan sebagai backdoor, ia sekaligus dapat mengubah file database Tripwire sehingga jejaknya tidak akan terdeteksi oleh Tripwire. Jika hal seperti ini terjadi, berarti program Tripwire yang telah diinstalasi sama sekali tidak berguna. Contoh file yang membahayakankeamanan sistem jika diubah: password user, group user, pengubahan UID/GID sebuah file atau penambahan file yang memiliki setuid root, inetd, service, dan lain-lain.
C.    MENGGUNAKAN TRIPWIRE
1.        Menginstal Tripwire dengan perintah “apt-get install tripwire”,
2.        Mengikuti langkah-langkah instalasai yang ada,
3.        Setelah terinstal, yang perlu diperhatikan adalah dua file tripwire, yaitu file tripwire policy “twpol.txt” beserta programnya “tw.pol”, dan file konfigurasi “twcfg.txt” beserta programnya “tw.cfg”,
4.        Menjalankan tripwire dengan perintah “twadmin [kode seterusnya]”,
5.        Untuk menjalankan testing email dengan perintah “tripwire –test –email root@localhost”,
6.        Untuk mengecek email dengan perintah “mail”.

7.        Untuk melakukan pengecekan perubahan yang terjadi pada sebuah file yang dijaga oleh tripwire dengan perintah “tripwire --check”.

B. PERCOBAAN

I.  Proses Instalasi

1.      Login sebagai root

2.   Lakukan sinkronisasi terkini index paket software lokal dengan repository  #apt-get update 
3.    Lakukan installasi tripwire
# apt-get install tripwire
Lalu akan muncul dialog seperti dibawah. Perhatikan pesan yang muncul pada setiap dialog, lalu jawab dengan “Yes”.
·         Do you wish to create/use your site key passphrase during installation ? <Yes>
·         Do you wish to create/use your local key passphrase during installation ? <Yes>
·         Rebuild Tripwire configuration file ? <Yes>
·         Rebuild Tripwire policy file? <Yes>

4.  Masukkan site key passphrase dan local key passphrase, setelah muncul dialog seperti dibawah. Ulangi sekali lagi !
·         Enter site key passphrase
·         Repeat the site-key passphrase
·         Enter local key passphrase 
5.  Kemudian akan mucul dialog bahwa trip wire telah terinstal. Perhatikan pesan pada dialog tersebut !
Tripwire has been installed                                              
The Tripwire binaries are located in /usr/sbin and the database is located in  /var/lib/tripwire. It is strongly advised that these  locations be stored on write  protected media (e.g. mounted RO floppy). See  /usr/share/doc/tripwire/README.Debian for details.     
6.    Ubah mode dari 2 buah file dari tripwire : tw.cfg dan tw.pol.  
#cd /etc/tripwire
#chmod 0600 tw.cfg tw.pol à mengubah hak menjadi – rw- --- ---
II. Melakukan modifikasi pada file “Policy” dan file konfigurasi 
Setelah proses instalasi berakhir, lakukan langkah-langkah dibawah ini :
1.      Modifikasi file twpol.txt. Perhatikan setiap baris pada file tersebut. Lalu  Enkripsi file tersebut.
# vi /etc/tripwire/twpol.txt
# cd /etc/tripwire 
# twadmin --create-polfile --polfile ./tw.pol 
   --site-keyfile ./site.key ./twpol.txt 
2.  Modifikasi file tw.cfg. Perhatikan setiap baris pada file tersebut. Lalu  Enkripsi file tersebut.
                #  vi /etc/tripwire/twcfg.txt
                  #  cd /etc/tripwire
                     #  twadmin --create-cfgfile --cfgfile ./tw.cfg 
                        --site-keyfile ./site.key ./twcfg.txt  

III. Inisialisasi Database

Setelah melakukan langkah-langkah pada point II, anda akan melakukan inisialisasi database dengan menjalankan perintah :
              #tripwire --init --cfgfile /etc/tripwire/tw.cfg \ 
               --polfile /etc/tripwire/tw.pol --site-keyfile /etc/tripwire/site.key \
               --local-keyfile /etc/tripwire/HOSTNAME-local.key
HOSTNAME adalah nama host komputer kami, yaitu debian. Langkah ini membutuhkan waktu yang relatif lama.

IV. Melakukan cek system

Pada tahap ini tripwire menyimpan informasi awal dari file-file yang akan dimonitor perubahannya :
      # tripwire --check 

             V.  Melakukan update  file “Policy”
Apabila ada perubahan pada file twpol.txt, misalnya kita akan menambahkan atau mengurangi folder yang akan dimonitor maka kita harus melakukan update dengan menjalankan perintah :
# cd /
             # tripwire --update-policy --cfgfile ./tw.cfg    --polfile ./tw.pol \
                 --site-keyfile ./site.key  --local-keyfile ./HOSTNAME-local.key ./twpol.txt 
VI. Melakukan update database dari system file 
Database dari file system perlu di update secara berkala. Proses update dapat menggunakan perintah 
      # tripwire --update -Z low --twrfile /var/lib/tripwire/report/host-yyyymmdd-    tttttt.twr
Perintah tersebut berarti bahwa tripwire akan membandingkan antara database yang ada dengan file yang ada di system, kemudian akan menjalankan editor untuk memilih perubahan di database. Opsi dari twrfile adalah file report yang dibangkitkan dan disimpan pada folder /var/lib/tripwire/report. Format penamaan file adalah berdasarkan tahun (yyyy), bulan (mm), tanggal(dd) dan jam dalam format (HH-MM-SS). Ekstensi file report adalah .twr.

D. TUGAS PERCOBAAN

1.      Jalankan perintah :
# tripwire –check
Catat dan analisa hasilnya.
2.      Kerjakan langkah-langkah dibawah dan analisa setiap langkahnya
a.       Ubah file policy twpol.txt
      # vim /etc/tripwire/twpol.txt
b.      Tambahkan di baris paling bawah
(
  rulename = "Kirim Notifikasi ke email",
  severity = $(SIG_HI),
  emailto = root@localhost
)
Email akan dikirimkan ke akun email dari root dari system yang anda monitor.

Biasanya, email akan ditujukan ke akun user yang dapat bertindak sebagai root. 
c.    Lakukan enkripsi terhadap file anda
     #  cd /etc/tripwire
     # twadmin --create-polfile --cfgfile ./tw.cfg \
         --site-keyfile ./site.key ./twpol.txt 
d.    Ubah file konfigurasi untuk memasukkan informasi smtp :
             # vi /etc/tripwire/twcfg.txt
MAILMETHOD   =SMTP
SMTPHOST      =localhost    
SMTPHOST      =localhost
SMTPPORT      =25
             
e.     Lakukan enkripsi terhadap file tersebut
             # cd /etc/tripwire
             # twadmin --create-cfgfile --cfgfile ./tw.cfg 
                 --site-keyfile ./site.key ./twcfg.txt 
f.   Jalankan test dengan menggunakan perintah :
           # tripwire –test –email root@localhost 
g.   Check email di akun user  anda
$  mail
3.   Buat  sebuah file kosong . Kemudian salinlah ke dalam direktori /bin
# touch newfile.sh
# cp newfile.sh /root 
4.    Lakukan cek konsistensi dengan menjalankan perintah :
# tripwire –check

E. LATIHAN 

1.        Berikan kesimpulan hasil praktikum yang anda lakukan.
è Apapun yang dilakukan oleh seorang pengguna terhadap suatu sistem membutuhkan hak untuk melakukannya. Mulai dari menambah, mengubah, maupun menghapus, tidak semua orang boleh melakukannya. Apapun yang terjadi pada sebuah sistem dapat dengan tanpa disadari dilakukan oleh orang yang tak berhak. Untuk dapat mengawasi sistem, dapat dengan mengawasi segala perubahan yang terjadi pada sistem, dengan melihat log maupuan catatan-catatan lain pendukung yang mencatat semua kejadian mulai awal hingga akhir. Dari situ dapat dilihat apakah yang berhak merasa pernah melakukannya atau tidak. Jika tidak, maka dapat diduga sistem telah diubah orang lain yang tak berhak.
2.        Berdasarkan percobaan yang anda lakukan, jelaskan cara kerja tripwire dalam melakukan integrity checker ?
è Program tripwire diperlukan kunci site key dan local passphrase sebelum menjalankan file integrity checking. Sebelum menjalankan tripwire lakukan generate database terlebih dahulu. Setiap melakukan edit file konfigurasi yang tersimpan dalam twcfg.txt update file tersebut menjadi tw.cfg. Demikian juga pada pengeditan file policy yang tersimpan dalam twpol.txt lakukan update tw.pol.
File integrity checking dapat dilakukan sesuai dengan kebutuhan, file mana yang akan dilakukan integrity checking. Oleh karena itu perlu suatu pengaturan file policy yang baru. Lakukan update database. Sehingga perubahan-perubahan file tersebut dapat dipantau oleh tripwire
3.        Carilah referensi baik dari buku maupun Internet, aturan-aturan apa saja yang bisa dideteksi oleh tripwire ?
è Policy di tripwire adalah otak dari tripwire, konfigurasi ini menspesifikan, apa yang harus dilihat, untuk apa dilihat dan apa yang harus kita lakukan. Tripwire mempunyai default policy, dan jika diperlukan ini bisa diubah tentusaja. Kita juga harus bisa memilah-milah file-file mana saja yang harus dimonitor, apa hal-hal yang tidak boleh berubah, sehingga jika berubah maka jadi indikasi adanya penyusupan sistem. Hal ini menjadi penting karena jika kita salah mendefinisikan terlalu strict ataupun terlalu longgar, maka bisa terjadi false positive alarm atau jadi ada intruder yang tidak terdeteksi.
a. Struktur dan syntax dari policy
Disini dijelaskan struktur file dan sintax dari policy tripwire
Definisi variabel:
TWROOT=/usr/sbin;
TWBIN=/usr/sbin;
TWPOL=”/etc/tripwire”;
TWDB=”/var/lib/tripwire”;
TWSKEY=”/etc/tripwire”;
TWLKEY=”/etc/tripwire”;
TWREPORT=”/var/lib/tripwire/report”;
HOSTNAME=ssintraappdev01.sampoernastrategic.com;
Definisi variabel:
@@section FS
SEC_CRIT = $(IgnoreNone)-SHa ; # Critical files that cannot change
SEC_SUID = $(IgnoreNone)-SHa ; # Binaries with the SUID or SGID flags set
SEC_BIN = $(ReadOnly) ; # Binaries that should not change
SEC_CONFIG = $(Dynamic) ; # Config files that are changed infrequently but accessed often
SEC_LOG = $(Growing) ; # Files that grow, but that should never change ownership
SEC_INVARIANT = +tpug ; # Directories that should never change permission or ownership
SIG_LOW = 33 ; # Non-critical files that are of minimal security impact
SIG_MED = 66 ; # Non-critical files that are of significant security impact
SIG_HI = 100 ; # Critical files that are significant points of vulnerability
Contoh konfigurasi
(
rulename = “Invariant Directories”,
severity = $(SIG_MED)
)
{
/ -> $(SEC_INVARIANT) (recurse = 0) ;
/home -> $(SEC_INVARIANT) (recurse = 0) ;
/etc -> $(SEC_INVARIANT) (recurse = 0) ;
}
Hal yang harus kita perhatikan sewaktu membuat policy adalah pastikan file-file
ataupun folder yang dimonitor adalah yang memang benar-benar perlu dan memang ada di operating system

Daftar Pustaka

1.      “Modul 8 Instrussion Detection System (Tripwire)”, URL http://lecturer.eepisits.edu/~zenhadi/kuliah/NetworkSecurity/Prakt%20Modul%208%20Tripwire.pdf
2.      ”URL http://opensource.telkomspeedy.com/wiki/index.php/Tripwire:_Notifikasi_email
4.      http://ahmadrizkydoang.blogspot.com/2012_10_01_archive.html

No comments:

Post a Comment