MODUL 6 INTRUSION DETECTION SYSTEM [PORTSENTRY & HONEYPOT] TUJUAN PEMBELAJARAN: 1. 2. 3. 4.
Mengenalkan pada mahasiswa tentang konsep portsentry dan honeypot di linux Mahasiswa memahami sistem blocking portsentry di linux Mahasiswa memahami sistem pendeteksian serangan dengan honeypot Mahasiswa mampu melakukan analisa terhadap portsentry yang ada di linux
DASAR TEORI A. Portsentry Dari sekian banyak hal yang paling banyak di takuti orang pada saat mengkaitkan diri ke Internet adalah serangan virus & hacker. Penggunaan Software Firewall akan membantu menahan serangan dari luar. Pada kenyataan di lapangan, menahan serangan saja tidak cukup, kita harus dapat mendeteksi adanya serangan bahkan jika mungkin secara otomatis menangkal serangan tersebut sedini mungkin. Proses ini biasa disebut dengan istilah Intrusion Detection. PortSentry adalah sebuah perangkat lunak yang di rancang untuk mendeteksi adanya port scanning & meresponds secara aktif jika ada port scanning. Port scan adalah proses scanning berbagai aplikasi servis yang dijalankan di server Internet. Port scan adalah langkah paling awal sebelum sebuah serangan di lakukan. Cara kerja port sentry dengan melakukan melihat komputer yang melakukan scan dan secara aktif akan memblokir mesin penyerang agar tidak dapat masuk & melakukan transaksi dengan Server kita. PortSentry dapat di download secara pada http://www.psionic.com. Beberapa fitur utama dari PortSentry: Berjalan di atas soket TCP & UDP untuk mendeteksi scan port ke sistem kita. Mendeteksi stealth scan, seperti SYN/half-open, FIN, NULL, X-MAS. PortSentry akan bereaksi secara real-time (langsung) dengan cara memblokir IP address si penyerang. Hal ini dilakukan dengan menggunakan ipchains/ipfwadm dan memasukan ke file /etc/host.deny secara otomatis oleh TCP Wrapper. PortSentry mempunyai mekanisme untuk mengingat mesin / host mana yang pernah connect ke dia. Dengan cara itu, hanya mesin / host yang terlalu sering melakukan sambungan (karena melakukan scanning) yang akan di blokir. PortSentry akan melaporkan semua pelanggaran melalui syslog dan mengindikasikan nama system, waktu serangan, IP mesin penyerang, TCP / UDP port tempat serangan dilakukan. Jika hal ini di integrasikan dengan Logcheck maka administrator system akan memperoleh laporan melalui e-mail.
Dengan adanya berbagai fitur di atas maka system yang kita gunakan tampaknya seperti hilang dari pandangan penyerang. Hal ini biasanya cukup membuat kecut nyali penyerang. Penggunaan PortSentry sendiri sangat mudah sekali, bahkan untuk penggunaan biasa saja praktis semua instalasi default tidak perlu di ubah apa-apa dapat langsung digunakan. Yang mungkin perlu di tune-up sedikit adalah file konfigurasi portsentry yang semuanya berlokasi di /etc/portsentry secara default. Untuk mengedit file konfigurasi tersebut anda membutuhkan privilige sebagai root. Beberapa hal yang mungkin perlu di set adalah: file /etc/portsentry/portsentry.conf merupakan konfigurasi utama portsentry. Disini secara bertahap diset port mana saja yang perlu di monitor, responds apa yang harus di lakukan ke mesin yang melakukan portscan, mekanisme menghilangkan mesin dari routing table, masukan ke host.deny. Proses setting sangat mudah hanya dengan membuka / menutup tanda pagar (#) saja. pada file /etc/portsentry/portsentry.ignore.static masukan semua IP address di LAN yang harus selalu di abaikan oleh portsentry. Artinya memasukan IP address ke sini, agar tidak terblokir secara tidak sengaja. Pada file /etc/default/portsentry kita dapat menset mode deteksi yang dilakukan portsentry. Semakin baik mode deteksi yang dipilih (advanced stealth TCP/UP scanning), biasanya PortSentry akan semakin sensitif & semakin rewel karena sedikit-sedikit akan memblokir mesin. B.
Honeypot
Honeypot merupakan sumber sistem informasi yang bersifat terbuka (opensif) yang memfocuskan pada proses pemgumpulan informasi tentang aktifitas ilegal si Attacker yang mencoba menyusup dan mengeksplorasi authorisasi system komputer (server). Dengan Honeypot kita bisa mengetahui tingkah laku si Attacker diantaranya : port yang diserang, perintah-perintah yang dipergunakan, dan jenis aktifitas lainnya yang bisa direkam. Honeypot akan melindungi server asli yang kita miliki karena kita mendirikan server palsu yang tanpa disadari sebenarnya si Attacker sedang menyerang sistem yang bukan sebenarnya sehingga terperangkap. Macam-Macam Honeypot Honeypot sendiri dibagi menjadi dua kategori yaitu : High Interaction Honeypot adalah sistem yang mengoperasikan Sistem Operasi penuh sehingga penyerang akan melihatnya sebagai sebuah sistem operasi/host yang siap untuk dieksploitasi (dan memang seperti itu lah keadaannya). Inti dari High Interaction adalah sistem ini nantinya akandiserang oleh penyerang. Yang perlu dipahami dari High Interaction Honeypot adalah sistem ini bukan sebuah software ataupun daemon yang siap diinstall pada komputer Host namun lebih kepada sebuah paradigma,sebuah arsitektur jaringan, dengan kata lain High Interaction Honeypot adalah sekumpulan komputer yang dirancang sedemikian rupa dalam sebuah jaringan agar terlihat dari sisi penyerang dan tentunya sekumpulan komputer
ini akan terus dimonitor dengan berbagai tools networking. Komputer-komputer ini bisa dikatakan adalah komputer secara fisik (komputer yang benar-benar ada) atau komputer secara virtual (Virtual Operating System seperti VMware dan XEN). Low Interaction Honeypot mensimulasikan sebuah sistem operasi dengan service-service tertentu(misalnya SSH,HTTP,FTP) atau dengan kata lain sistem yang bukan merupakan sistem operasi secara keseluruhan, service yang berjalan tidak bisa dieksploitasi untuk mendapatkan akses penuh terhadap honeypot. Low interaction akan melakukan analisa terhadap jaringan dan aktifitas worm. Sayangnya perkembangan dari Honeypot (Honeyd Low Interaction Honeypot) sendiri tidak terlalu cepat bahkan update terbaru terjadi pada tahun 2007.
TUGAS PENDAHULUAN 1. Sebutkan dan jelaskan dengan singkat apa yang disebut dengan konsep portsentry ? 2. Sebutkan fasilitas portsentry yang ada di linux !
PERCOBAAN Bangunlah jaringan sebagai berikut :
Gambar 5 Jaringan Percobaan NB: Gunakan dhclient di masing-masing PC untuk mendapatkan IP dari router. 192.168.50.x & y : IP dari router Misal : 192.168.50.10 sebagai PC Server yang dipasangi portsentry & honeypot (Target) 192.168.50.20 sebagai PC Client sebagai penyerang A. Percobaan dengan portsentry 1. Jalankan perintah berikut untuk installasi di PC Server # apt-get install portsentry 2. Edit file konfigurasi untuk bloking serangan dengan TCPWrapper:
# vim /etc/portsentry/portsentry.conf
Edit bagian berikut #Edit bagian HISTORY_FILE dan BLOCKED_FILE menjadi: # IGNORE_FILE=”/etc/portsentry/portsentry.ignore” HISTORY_FILE="/var/lib/portsentry/portsentry.history" BLOCKED_FILE="/var/lib/portsentry/portsentry.blocked" # #Daftar port TCP dan UDP yang dibuka dan dicek oleh portsentry #tetapi ini tidak berlaku untuk advanced mode TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12 346,20034,27665,31337,32771,32772,32773,32774,40421,49724,54320" UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,327 71,32772,32773,32774,31337,54321" ######################Ini diperlukan utk memblok TCP dan UDP BLOCK_UDP=”1” BLOCK_TCP=”1” ###################### #Blok dari table routing KILL_ROUTE=”/sbin/route add –host $TARGET$ reject” #Blok dari TCP Wrapper ###################### Perintah ini untuk memblok ip di /etc/hosts.deny KILL_HOSTS_DENY=”ALL: $TARGET$ : DENY” ###################### #EOF 3. Edit File /etc/portsentry/portsentry.ignore.static, isi dengan IP yang tidak terblokir,
misal : # Format :
/ # Misalnya: Konfigurasi Ip di Router [email protected] # eth0 : 202.212.77.99/30 # eth1 : 192.168.1.1/24 # # Maka Daftar Hosts-nya menjadi : # # Exclude all local interface 192.168.50.1/32 192.168.50.10 192.168.50.30 127.0.0.1 # # Exclude nameserver 202.9.85.3 # # Catatan: jika kita tidak mencantumkan nilai mask_length-nya # maka diasumsikan bernilai 32 bits. # Jadi 192.168.1.1 sama dengan 192.168.1.1/32
4. File /etc/default/portsentry TCP_MODE=”tcp” UDP_MODE=”udp”
NB: Pilihan TCP_MODE dan UDP_MODE : tcp : deteksi portscan sesuai yang ditentukan di TCP_PORT di portsentry.conf atcp : advanced tcp / udp port stcp : adanya tambahan deteksi stealth scan 5. Insialisasi Daemon #/etc/init.d/portsentry restart
6. Jika sudah jalan, jalankan # tail -f /var/log/syslog, akan keluar hasil spt berikut : Nov 20 08:35:27 localhost portsentry[2192]: adminalert: PortSentry is now active and listening. 7. Dari PC Server, lakukan scanning ke dirinya sendiri untuk mengetahui port yang dibuka dan dicek oleh portsentry # nmap localhost
8. Pada PC Client (attacker) jalankan nmap ke komputer yang diinstal portsentry (PC target) apa yang terjadi. Lakukan berulang selama 2x, karena yang pertama masih bisa melakukan scanning. a. Scanning dengan type stealth, apakah scanning masih bisa dijalankan # nmap –sS no_IP_PC_Server b. Gantilah dengan type scanning yang ditolak oleh poin 4, apakah scanning ini ditolak oleh Server # nmap –sT no_IP_PC_Server 9. Cek ip yang terblokir di PC Server (Target) # vim /etc/hosts.deny # route -n Hapuslah rule diatas: a. Hapus ip yang diblok (uncomment) pada file /etc/hosts.deny : # vim /etc/hosts.deny #ALL: ip_penyerang : DENY
b. Untuk menghapus di table routing (route –n), lakukan : # route del –host no_IP_attacker reject 10. Ulangi langkah 4 - 9, tetapi pilihlah mode advanced # vim /etc/default/portsentry TCP_MODE=”atcp” UDP_MODE=”audp” 11. Blocking menggunakan iptables a. Hapuslah rule seperti langkah no 9.
b. Edit file konfigurasi : # vim /etc/portsentry/portsentry.conf Uncomment pada perintah tcpwrapper berikut # KILL_HOSTS_DENY=”ALL: $TARGET$ : DENY” Buka comment pada perintah berikut untuk iptables KILL_ROUTE=”/sbin/iptables –I INPUT –s $TARGET$ -j DROP” c. Jalankan lagi portsentry #/etc/init.d/portsentry restart d. Lakukan lagi scanning 12. Cek informasi pada IGNORE_FILE, HISTORY_FILE, BLOCKED_FILE. # vim /var/lib/portsentry/portsentry.blocked.atcp # vim /var/lib/portsentry/portsentry.history 13. Uninstall aplikasi portsentry agar tidak mengganggu praktikum kelas lainnya: # apt-get remove --purge portsentry
B. Percobaan dengan honeypot B.1. Lakukan setting pada PC Server 1. Instalasi honeyd # apt-get install honeyd honeyd-common 2. Matikan proses ip forward # echo 0 > /proc/sys/net/ipv4/ip_forward 3. Buat file untuk menentukan virtual honeypot #vim /home/tes.conf create routerone set routerone personality "Cisco 7206 running IOS 11.1(24)" set routerone default tcp action reset add routerone tcp port 23 "/usr/share/honeyd/scripts/router-telnet.pl" create windows set windows personality "Microsoft Windows 2000 SP3" set windows default tcp action reset set windows default udp action reset add windows tcp port 80 "/usr/share/honeyd/scripts/win32/web.sh" add windows tcp port 139 open add windows tcp port 137 open add windows udp port 137 open add windows tcp port 21 "/usr/share/honeyd/scripts/win32/win2k/msftp.sh" bind 192.168.50.120 windows bind 192.168.50.122 routerone
# no ip bayangan (palsu) # no ip bayangan (palsu)
NB: Untuk nama di personality bisa dilihat di /usr/share/honeyd/nmap.prints. Nama yang ada di personality harus sama persis dengan di nmap.prints.
Pada setting diatas, no 192.168.50.120 diberi aplikasi virtual windows berupa web (80), ftp (21), 139 dan 137. Sedangkan IP 192.168.50.122 dibuat seolah-olah sebagai router dengan aplikasi telnet (23). Keterangan setting: perintah create berfungsi untuk inisialisasi pembuatan virtual honeypot. perintah set berfungsi untuk pemberian personality untuk virtual honeypot perintah add berfungsi untuk mendefinisikan perlakuan default untuk protokol jaringan bind digunakan untuk melakukan pemberian IP untuk setiap virtual Honeypot.
4. Setting konfigurasi untuk honed # vim /etc/default/honeyd # Defaults for honeyd initscript # Master system-wide honeyd switch. The initscript # will not run if it is not set to yes. RUN="yes" # Default options. # Interface to listen on (if unset honeyd will select # an interface himself) # Note: Use only one! if you wish to use # more than one use multiple -i in OPTIONS INTERFACE="eth0" # interface pada PC Server # Network Honeyd will listen for. IF this is not set # Honeyd will claim _all_ IP addresses set on the configured # interface (which is probably _not_ what you want) # This "sane" default will prevent you from doing it. #NETWORK=10.0.0.0/8 NETWORK=192.168.50.10 # no ip pc yang dipasangi honeyd 5. Lakukan peracunan arp terhadap ip yang diberi honeypot, agar dikenali oleh attacker # apt-get install farpd => fake arp # farpd -i eth0 192.168.50.120 # farpd -i eth2 192.168.50.122 6. Jalankan honeyd # honeyd -d -i eth2 -f /home/tes.conf 192.168.50.0/24
B.2. Lakukan setting pada PC Client (Attacker) 1. Ping ke virtual honeypot # ping 192.168.50.120 # ping 192.168.50.122
2. Nmap # nmap -sT -P0 192.168.50.120 3. Buka web browser, dan akseslah ke server honeypot : http://192.168.50.120 4. telnet ke server: # telnet 192.168.50.120 5. ftp ke server : # ftp 192.168.50.122
LAPORAN RESMI Daftar Pertanyaan 1. Berikan kesimpulan hasil praktikum yang anda lakukan. 2. Dengan bekerja hanya mendeteksi port dimana sebaiknya portsentry ditempatkan ? 3. Apa perbedaan yang mendasar dari honeypot dan portsentry sebagai pendeteksi serangan.
LEMBAR ANALISA Praktikum Network Security (IDS - portsentry) Tanggal Praktikum : Kelas : Nama dan NRP : A. Gambar topologi jaringan beserta dengan IP Addressnya B. Catat ip yang tidak terblokir pada poin 3 C. Catat hasil log pada poin 6 D. Catat hasil nmap pada PC Server poin 7 E. Catat hasil nmap pada PC attacker poin 8 F. Catat IP yang terblokir pada poin 9 G. Ulangi proses dengan mode advanced (poin 10) dan bandingkan hasilnya H. Catat proses scanning dari PC penyerang ke PC target menggunakan iptables (poin 11) G. Catat informasi pada BLOCKED_FILE DAN HISTORY_FILE (poin 12) H. Catat proses yang terjadi pada honeypot