01. Modul Tambahan Aplikasi Data Sekuriti

Embed Size (px)

Citation preview

2009

NetworkSecurity[TeknikKomputerdanJaringan] ModuliniditulissebagaibahanpendukungmateriperkuliahanKeamanan JaringanKomputerdiFakultasTeknikUniversitasNegeriPadang

MuhammadAdri,S.Pd,MTTeknikElektronikaFTUNPPadang 2009

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

2

1. Gambaran Umum Keamanan Jaringan

Hacking Dan Keamanan Komputer Masalah keamanan merupakan salah satu aspek penting dari sebuah network. Sayang sekali masalah keamanan ini sering kali kurang mendapat perhatian dari para pemilik dan pengelola network. Seringkali masalah keamanan berada di urutan kedua, atau bahkan di urutan terakhir dalam daftar hal-hal yang dianggap penting. Apabila menggangu performansi dari sistem, seringkali keamanan dikurangi atau ditiadakan. Meningkatnya Kejahatan Komputer Jumlah kejahatan komputer (computer crime), terutama yang berhubungan dengan sistem informasi, akan terus meningkat dikarenakan beberapa hal, antara lain: Aplikasi bisnis yang menggunakan (berbasis) teknologi informasi dan jaringan komputer semakin meningkat. Sebagai contoh saat ini mulai bermunculan aplikasi bisnis seperti on-line banking, electronic commerce (e-commerce), Electronic Data Interchange (EDI), dan masih banyak lainnya Desentralisasi (dan distributed) server menyebabkan lebih banyak sistem yang harus ditangani. Hal ini membutuhkan lebih banyak operator dan administrator yang handal yang juga kemungkinan harus disebar di seluruh lokasi. Padahal mencari operator dan administrator yang handal adalah sangat sulit. Transisi dari single vendor ke multi-vendor sehingga lebih banyak sistem atau perangkat yang harus dimengerti dan masalah interoperability antar vendor yang lebih sulit ditangani. Untuk memahami satu jenis perangkat dari satu vendor saja sudah susah, apalagi harus menangani berjenis-jenis perangkat. Meningkatnya kemampuan pemakai di bidang komputer sehingga mulai banyak pemakai yang mencoba-coba bermain atau membongkar sistem yang digunakannya (atau sistem milik orang lain). Jika dahulu akses ke komputer sangat sukar, maka sekarang komputer sudah merupakan barang yang mudah diperoleh dan banyak dipasang di sekolah serta rumah-rumah. Mudahnya diperoleh software untuk menyerang komputer dan jaringan komputer. Banyak tempat di Internet yang menyediakan software yang langsung dapat diambil (download) dan langsung digunakan untuk menyerang dengan Graphical User Interface (GUI) yang mudah digunakan. Beberapa program, seperti SATAN, bahkan hanya membutuhkan sebuah web browser untuk menjalankannya. Sehingga, seseorang yang dapat menggunakan web browser dapat menjalankan program penyerang (attack).

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netMengenal Jenis-jenis Serangan Pada Jaringan 1. Denial of Service (DoS)

3

Denial of Service adalah aktifitas menghambat kerja sebuah layanan (servis) atau mematikan-nya, sehingga user yang berhak/berkepentingan tidak dapat menggunakan layanan tersebut. Dampak akhir dari aktifitas ini menjurus kepada tehambatnya aktifitas korban yang dapat berakibat sangat fatal (dalam kasus tertentu). Pada dasarnya Denial of Service merupakan serangan yang sulit diatasi, hal ini disebabkan oleh resiko layanan publik dimana admin akan berada pada kondisi yang membingungkan antara layanan dan kenyamanan terhadap keamanan. Seperti yang kita tahu, keyamanan berbanding terbalik dengan keamanan. Maka resiko yang mungkin timbul selalu mengikuti hukum ini. Beberapa aktifitas DoS adalah: 1. Aktifitas 'flooding' terhadap suatu server. 2. Memutuskan koneksi antara 2 mesin. 3. Mencegah korban untuk dapat menggunakan layanan. 4. Merusak sistem agar korban tidak dapat menggunakan layanan. Serangan DoS dapat dilakukan secara terdistribusi atau lebih dikenal dengan istilah 'distribute Denial of Service'. Beberapa kasus serangan virus semacam 'code-red' melakukan serangan DoS bahkan secara otomatis dengan memanfaatkan komputer yang terinfeksi, komputer ini disebut 'zombie' dalam jargon. Lebih relevan lagi, keisengan merupakan motif yang paling sering dijumpai. Bukanlah hal sulit untuk mendapatkan program-program DoS, seperti nestea, teardrop, land, boink, jolt dan vadim. Programprogram DoS dapat melakukan serangan Denial of Service dengan sangat tepat, dan yang terpenting sangat mudah untuk melakukannya. Cracker cukup mengetikkan satu baris perintah pada Linux Shell yang berupa ./nama_program argv argc ... Pada dasarnya, untuk melumpuhkan sebuah layanan dibutuhkan pemakaian resource yang besar, sehingga komputer/mesin yang diserang kehabisan resource dan menjadi hang. Beberapa jenis resource yang dihabiskan diantaranya: Swap Space - Hampir semua sistem menggunakan ratusan MBs spasi swap untuk melayani permintaan client. Spasi swap juga digunakan untuk mem-'forked' child process. Bagaimanapun spasi swap selalu berubah dan digunakan dengan sangat berat. Beberapa serangan Denial of Service mencoba untuk memenuhi spasi swap ini. Bandwidth - Beberapa serangan Denial of Service menghabiskan bandwidth. Kernel Tables - Serangan pada kernel tables, bisa berakibat sangat buruk pada sistem. Alokasi memori kepada kernel juga merupakan target serangan yang sensitif. Kernel memiliki kernelmap limit, jika sistem mencapai posisi ini, maka sistem tidak bisa lagi mengalokasikan memory untuk kernel dan sistem harus di reboot. RAM - Serangan Denial of Service banyak menghabiskan RAM sehingga sistem mautidak mau harus me-reboot sistem. Disk - Serangan klasik banyak dilakukan dengan memenuhi Disk. Caches Ada beberapa jenis serangan DoS, yaitu: 1. SYN-Flooding

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

4

SYN-Flooding merupakan network Denial ofService yang memanfaatkan 'loophole' pada saat koneksi TCP/IP terbentuk. Kernel Linux terbaru (2.0.30 dan yang lebih baru) telah mempunyai option konfigurasi untuk mencegah Denial of Service dengan mencegahmenolak cracker untuk mengakses sistem. 2. Pentium 'FOOF' Bug Merupakan serangan Denial of Service terhadap prosessor Pentium yang menyebabkan sistem menjadi reboot. Hal ini tidak bergantung terhadap jenis sistem operasi yang digunakan tetapi lebih spesifik lagi terhadap prosessor yang digunakan yaitu pentium. 3. Ping Flooding Ping Flooding adalah brute force Denial of Service sederhana. Jika serangan dilakukan oleh penyerang dengan bandwidth yang lebih baik dari korban, maka mesin korban tidak dapat mengirimkan paket data ke dalam jaringan (network). Hal ini terjadi karena mesin korban di banjiri (flood) oleh peket-paket ICMP. Varian dari serangan ini disebut "smurfing" Lalu bagaimana menanggulangi serangan Denial of Service? Sejujurnya, bagian inilah yang paling sulit. Namun Denial of service adalah masalah layanan publik. Sama halnya dengan anda memiliki memiliki rumah dengan banyak pintu, sekelompok orang jahat bisa saja masuk beramai-ramai sehingga rumah anda penuh. Secara umum Anda bisa mengatasi 'serangan' ini dengan 'menutup' pintu anda. Namun cara lain yang bisa diterapkan adalah: 1. Selalu mengupdate sistem. Seperti contoh serangan diatas, SYN Flooding sangat efektif untuk membekukan Linux kernel 2.0.*. Dalam hal ini Linux kernel 2.0.30 keatas cukup handal untuk mengatasi serangan tersebut dikarenakan versi 2.0.30 memiliki option untuk menolak cracker untuk mengakses system. 2. Ikuti perkembangan security Hal ini sangat efektif dalam mencegah pengerusakan sistem secara ilegal. Banyak admin malas untuk mengikuti issue-issue terbaru perkembangan dunia security. Dampak yang paling buruk, sistem cracker yang 'rajin', 'ulet' dan 'terlatih' akan sangat mudah untuk memasuki sistem dan merusak - tidak tertutup kemungkinan untuk melakukan Denial of Service -. Berhubungan dengan 'Selalu Up 2 Date', Denial of service secara langsung dengan Flooding dapat diatasi dengan menginstall patch terbaru dari vendor atau melakukan up-date. 3. Pencegahan serangan non elektronik. Serangan yang paling efektif pada dasarnya adalah local. Selain efektif juga sangat berbahaya. Jangan pernah berfikir sistem anda benar-benar aman, atau semua user adalah orang 'baik'. Pertimbangkan semua aspek. Anda bisa menerapkan peraturan tegas dan sanksi untuk mencegah user melakukan serangan dari dalam. Mungkin cukup efektif jika dibantu oleh kedewasaan berfikir dari admin dan user bersangkutan. 2. IP Spoofing IP Spoofing juga dikenal sebagai Source Address Spoofing, yaitu pemalsuan alamat IP attacker sehingga sasaran menganggap alamat IP attacker adalah alamat IP dari host di dalam network bukan dari luar network. Misalkan attacker mempunyai IP address type A 66.25.xx.xx ketika attacker melakukan serangan jenis ini maka Network yang diserang akan menganggap IP attacker adalah bagian dari Networknya misal 192.xx.xx.xx yaitu IP

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

5

type C. IP Spoofing terjadi ketika seorang attacker mengakali packet routing untuk mengubah arah dari data atau transmisi ke tujuan yang berbeda. Packet untuk routing biasanya di transmisikan secara transparan dan jelas sehingga membuat attacker dengan mudah untuk memodifikasi asal data ataupun tujuan dari data. Teknik ini bukan hanya dipakai oleh attacker tetapi juga dipakai oleh para security profesional untuk men tracing identitas dari para attacker. Protokol yang menangani komunikasi antar komputer kebanyakan berhasil di spoof. ICMP (Internet Control Message Protocol) adalah salah satunya(vulnerable) karena protokol ini dilewati oleh informasi dan pesan-pesan kesalahan diantara dua node dalam network. Internet Group Message Protocol (IGMP) dapat dieksploitasi dengan menggunakan serangan tipe ini karena IGMP melaporkan kondisi kesalahan pada level user datagram, selain itu juga protokol ini mengandung Informasi routing dan Informasi Network. (UDP) User Datagram Protocol juga dapat diminta untuk menampilkan identitas host sasaran. Solusi untuk mencegah IP spoofing adalah dengan cara mengamankan packet-packet yang ditransmisikan dan memasang screening policies. Enkripsi Point-to-point juga dapat mencegah user yang tidak mempunyai hak untuk membaca data/packet. Autentikasi dapat juga digunakan untuk menyaring source yang legal dan bukan source yang sudah di spoof oleh attacker. Dalam pencegahan yang lain, Admininistrator dapat menggunakan signature untuk paket-paket yang berkomunikasi dalam networknya sehingga meyakinkan bahwa paket tersebut tidak diubah dalam perjalanan. Anti Spoofing rules(peraturan anti spoof) yang pada dasarnya memberitahukan server untuk menolak packet yang datangnya dari luar yang terlihat datangnya dari dalam, umumnya hal ini akan mematahkan setiap serangan spoofing. 3. Flooding & Broadcasting Seorang attacker bisa menguarangi kecepatan network dan host-host yang berada di dalamnya secara significant dengan cara terus melakukan request/permintaan terhadap suatu informasi dari sever yang bisa menangani serangan classic Denial Of Service(Dos), mengirim request ke satu port secara berlebihan dinamakan flooding, kadang hal ini juga disebut spraying. Ketika permintaan flood ini dikirim ke semua station yang berada dalam network serangan ini dinamakn broadcasting. Tujuan dari kedua serangan ini adalah sama yaitu membuat network resource yang menyediakan informasi menjadi lemah dan akhirnya menyerah. Serangan dengan cara Flooding bergantung kepada dua faktor yaitu: ukuran dan/atau volume (size and/or volume). Seorang attacker dapat menyebabkan Denial Of Service dengan cara melempar file berkapasitas besar atau volume yang besar dari paket yang kecil kepada sebuah system. Dalam keadaan seperti itu network server akan menghadapi kemacetan: terlalu banyak informasi yang diminta dan tidak cukup power untuk mendorong data agar berjalan. Pada dasarnya paket yang besar membutuhkan kapasitas proses yang besar pula, tetapi secara tidak normal paket yang kecil dan sama dalam volume yang besar akan menghabiskan resource secara percuma, dan mengakibatkan kemacetan. Attacker sering kali menggunakan serangan flooding ini untuk mendapatkan akses ke system yang digunakan untuk menyerang network lainnya dalam satu serangan yang dinamakan Distributed Denial Of Service(DDOS). Serangan ini seringkali dipanggil smurf jika dikirim melaluli ICMP dan disebut fraggles ketika serangan ini dijalakan melewati UDP. Suatu node (dijadikan tools) yang menguatkan broadcast traffic sering disebut sebagai Smurf Amplifiers, tools ini sangat efektif untuk menjalankan serangan flooding. Dengan melakukan spoofing terhadap network sasaran, seorang attacker dapat mengirim sebuah request ke smurf amplifier, Network yang di amplifiying (dikuatkan) akan mengirim

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

6

respon kesetiap host di dalam network itu sendiri, yang berarti satu request yang dilakukan oleh attacker akan menghasilkan pekerjaan yang sama dan berulang-ulang pada network sasaran, hasil dari serangan ini adalah sebuah denial of service yang tidak meninggalkan jejak. Serangan ini dapat diantisipasi dengan cara menolak broadcast yang diarahkan pada router. TCP-level Flooding (kebanyakan SYN ATTACK) telah digunakan pada bulan februari tahun 2000 untuk menyerang Yahoo!, eBay dll yang menggunakan serangan DDOS(Distributed Denial Of Service). Network yang tidak menggunakan firewall untuk pengecekan paket-paket TCP biasanya bisa diserang dengan cara ini. Beberapa fungsi penyaringan pada firewall (Firewall Filtering Function) biasanya akan mampu untuk menahan satu serangan flooding dari sebuah alamat IP, tetapi serangan yang dilakukan melalui DDOS akan sulit di cegah karena serangan ini seperti kita ketahui datangnya dari berbagai alamat IP secara berkala. Sebenarnya salah satu cara untuk menghentikan serangan DDOS adalah dengan cara mengembalikan paket ke alamat asalnya atau juga dengan cara mematikan network(biasanya dilakukan oleh system yang sudah terkena serangan sangat parah). 4. E-mail Exploits Peng-exploitasian e-mail terjadi dalam lima bentuk yaitu: mail floods, manipulasi perintah (command manipulation), serangan tingkat transportasi(transport level attack), memasukkan berbagai macam kode (malicious code inserting) dan social engineering(memanfaatkan sosialisasi secara fisik). Penyerangan email bisa membuat system menjadi crash, membuka dan menulis ulang bahkan mengeksekusi file-file aplikasi atau juga membuat akses ke fungsi fungsi perintah (command function). Serangan mail flood terjadi ketika banyak sekali e-mail yang dikirimkan oleh attacker kepada sasaran yang mengakibatkan transfer agent kewalahan menanganinya, mengakibatkan komunikasi antar program lain menjadi tidak stabil dan dapat membuat system menjadi crash. Melakukan flooding merupakan cara yang sangat kasar namun efektif, maksudnya untuk membuat suatu mail server menjadi down. Salah satu jalan yang menarik dalam melakukan serangan mail-flooding adalah dengan mengexploitasi fungsi auto-responder (auto-responder function) yang terdapat dalam kebanyakan aplikasi email, ketika seorang attacker menemukan auto-responder yang sedang aktif dalam dua system yang berbeda, sang attacker bisa saja mengarahkan yang satu ke yang lainnya, karena kedua-duanya di set untuk merespond secara sacara otomatis untuk setiap pesan, maka kedua-duanya akan terus mengenarate lebih banyak e-mail secara loop(bolakbalik) dan akhirnya kedua-duanya akan kelelahan dan down. Serangan memanipulasi perintah (command manipulation attack) dapat mengakibatkan sebuah system menjadi crash dengan cara menggulingkan mail transfer agent dengan sebuah buffer overflow yang diakibatkan oleh perintah (fungsi) yang cacat (contoh: EXPN atau VRFY). Perbedaan antara mail flood dan command manipulation: command manipulation meng-exploit kekuasaan milik sendmail yaitu memperbolehkan attacker untuk mengakses system tanpa informasi otorisasi(menjadi network admin tanpa diketahui) dan membuat modifikasi pada penjalanan program lainnya. Mengaktifkan command yang cacat seperti diatas juga dapat mengakibatkan seorang attacker mendapatlan akses untuk memodifikasi file, menulis ulang, dan tentunya saja membuat trojan horses pada mail server. Penyerangan tingkat transport (transport level attack) dilakukan dengan cara mengexploit protokol perutean/pemetaan e-mail diseluruh internet: Simple Mail Tranport Protocol (SMTP). Seorang attacker dapat mengakibatkan kondisi kesalahan sementara (temporary error) di target system dengan cara mengoverload lebih banyak data pada SMTP buffer

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

7

sehingga SMTP buffer tidak bisa menanganinya, kejadian ini dapat mengakibatkan seorang attacker terlempar dari sendmail program dan masuk kedalam shell dengan kekuasaan adminitsrasi bahkan dapat mengambil alih root. Beberapa serangan exploitasi juga sering terjadi pada POP dan IMAP. Pada saat kerawanan SMTP sulit untuk di exploitasi, attacker mungkin saja berpindah ke serangan tranport level jika ia tidak berhasil menyerang dengan cara command manipulation ataupun mail-flood. Serangan ini lebih digunakan untuk membuat gangguan daripada untuk menjebol suatu system. Seorang attacker biasanya akan menggunakan serangan jenis untuk mem flood Exchange Server dan memotong lalu lintas e-mail (trafic e-mail). Serangan ini juga dapat digunakan untuk membuat reputasi suatu organisasi menjadi buruk dengan mengirimkan spam atau offensive e-mail ke organisasi lainnya dengan sumber dan alamat dari organisasi tersebut. Mail relaying, proses memalsukan asal/source email dengan cara meroutekannya ke arah mesin yang akan dibohongi, adalah type lain dari serangan transport-level. Teknik ini sangat berguna untuk membuat broadcasting spam secara anonymous. Berbagai macam isi(content) yang sering dikirim lewat e-mail dengan teknik ini biasanya adalah contentcontent yang merusak. Beberapa Virus dan Worms akan disertakan dalam e-mail sebagai file attachment yang sah, seperti variant Melissa yang nampak sebagai Ms Word Macro atau loveletter worm yang menginfeksi system dan mengemailkan dirinya sendiri ke users yang berada dalam address booknya outlook. Kebanyakan antivirus scanner akan menangkap attachment seperti ini, tetapi visrus dan worm baru serta variannya masih tetap berbahaya. Serangan yang terakhir yang dilakukan oleh seorang attacker selain serangan diatas adalah dengan cara melakukan social enginering, kadang sang attacker mengirim e-mail dengan source memakai alamat admin agar users mengirimkan passwordnya untuk mengupgrade system. 5. DNS and BIND Vulnerabilities Berita baru-baru ini tentang kerawanan (vulnerabilities) tentang aplikasi Barkeley Internet Name Domain (BIND) dalam berbagai versi mengilustrasikan kerapuhan dari Domain Name System (DNS), yaitu krisis yang diarahkan pada operasi dasar dari Internet (basic internet operation). Kesalahan pada BIND sebenarnya bukanlah sesuatu yang baru. Semenjak permulaanya, standar BIND merupakan target yang paling favorite untuk diserang oleh komunitas cracker karena beberapa kerawanannya. Empat kerawanan terhadap buffer overflow yang terjadi pada bulan Januari lalu hanya beberapa bagian dari kerawanan untuk diexploitasi oleh para cracker agar mendapat akses terhadap system dan melakukan perintah dengan hak penuh (command execution priviledge). Kerawanan pada BIND merupakan masalah yang sangat serius karena lebih dari 80 persen DNS yang berada di Jagat Internet dibangun menggunakan BIND. Tanpa adanya DNS dalam lingkungan Internet Modern, mungkin transmisi e-mail akan sulit, navigasi ke situs-situs web terasa rumit dan mungkin tidak ada hal mudah lainnya yang menyangkut internet. Kerawanan BIND bukan hanya terletak pada DNS. System penerjemah alamat (numberaddress translator) merupakan subject dari kebanyakan exploit, termasuk untuk melakukan penyerangan di tingkat informasi, penyerangan Denial Of Service, pengambil alihan kekuasaan dengan hijacking. Penyerangan di tingkat Informasi bertujuan untuk membuat server menjawab sesuatu yang lain dari jawaban yang benar. Salah satu cara untuk melakukan serangan jenis ini adalah melalui cache poisoning, yang mana akan mengelabui remote name server agar menyimpan jawaban dari third-party domain

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

8

dengan cara menyediakan berbagai macam informasi kepada domain server yang mempunyai autorisasi. Semua pengimplementasian serangan terhadap DNS akan mempunyai kemungkinan besar untuk berhasil dilakukan jika jawaban dari suatu pertanyaan yang spesisfik bisa dibohongi (spoof). DOS atau membuat Server tidak dapat beroperasi, bisa dilakukan dengan cara membuat DNS menyerang dirinya sendiri atau juga dengan cara mengirimkan traffic-flooding yang berlebihan dari luar, contohnya menggunakan Smurf ICMP flood. Jika suatu organisasi atau perusahaan memasang authoritathive name server dalam satu segment yang terletak dibelakang satu link atau dibelakang satu physical area, maka hal ini akan menyebabkan suatu kemungkinan untuk dilakukannya serangan Denial Of Service. Cracker akan mencoba untuk menyerang system melalui DNS dengan cara buffer overflow, yaitu salah satu exploit yang sangan berpotensi pada kerawanan BIND. Gangguan exploit terjadi karena adanya kelemahan dalam pengkodean/pemrograman BIND yang mengizinkan seorang attacker untuk memanfaatkan code-code yang dapat dieksekusi untuk masuk kedalam system. Beberapa system operasi telah menyediakan patch untuk stack agar tidak dapat dieksekusi, sebagaimana juga yang dilakukan compiler (menyediakan patch) yang melindungi stack dari overflow. Mekanisme perlindungan ini stidaknya membuat cracker akan sulit menggunakan exploit. Telah jelas bahwa mengupdate system secara berkala dan menggunakan patch adalah salah satu yang harus dilakukan untuk membangun security yang efektif, jika vendor dari DNS anda tidak menyediakan patch secara berkala, anda lebih baik mengganti software DNS anda yang menyediakan patch secara berkala, tentunya untuk menjaga kemanan system. Pada system Unix , BIND harus dijalankan sebagai root untuk mengatur port yang lebih rendah (kodekode mesin). Jika software DNS dapat dibodohi untuk menjalankan codecode berbahaya, atau membuka file-file milik root, user local mungkin saja bisa menaikan kekuasaannya sendiri didalam mesin. Organisasi atau perusahaan yang mengubah authoritative server juga harus waspada bahwa mengganti server mereka dalam waktu yang bersamaan akan mengakibatkan domain mereka di hijack melalui cache poisoning. Mengubah server seharusnya dilakukan sebagai proses transisi. Untuk mencegah domain hijacking sebaiknya network admin terlebih dahulu menambahkn server barunya kedalam network infrastucture sebelum mengganti server yang lama. 6. Password Attacks Password merupakan sesuatu yang umum jika kita bicara tentang kemanan. Kadang seorang user tidak perduli dengan nomor pin yang mereka miliki, seperti bertransaksi online di warnet, bahkan bertransaksi online dirumah pun sangat berbahaya jika tidak dilengkapi dengan software security seperti SSL dan PGP. Password adalah salah satu prosedur kemanan yang sangat sulit untuk diserang, seorang attacker mungkin saja mempunyai banyak tools (secara teknik maupun dalam kehidupan sosial) hanya untuk membuka sesuatu yang dilindungi oleh password. Ketika seorang attacker berhasil mendapatkan password yang dimiliki oleh seorang user, maka ia akan mempunyai kekuasaan yang sama dengan user tersebut. Melatih karyawan/user agar tetap waspada dalam menjaga passwordnya dari social engineering setidaknya dapat meminimalisir risiko, selain berjaga-jaga dari praktek social enginering organisasi pun harus mewaspadai hal ini dengan cara teknikal. Kebnayakan seranagn yang dilakukan terhadap password adalah menebak (guessing), brute force, cracking dan sniffing. Penebakan (guessing) password bisa dilakukan dengan cara memasukan password satu persatu secara manual ataupun dengan bantuin script yang telah diprogram. Kebanyakan

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

9

user menggunakan hal-hal yang umum untuk password mereka diantaranya tanggal lahir, dan biasanya user tidak menghawatirkan tentang aturan yang berlaku pada perusahaan untuk menggunakan kombinasi alphanumeric dan minimal 8 karakter. Jika saja user memakai tanggal lahirnya sebagai password maka hal penyerangan akan sangat mudah dilakukan, karena cracker tidak membutuhkan waktu yang lama hanya untuk menjebol 6 digit angka tanggal lahir. Beberapa user atau bahkan administrator dapat membuat pekerjaan cracker menjadi mudah andai saja mereka lupa untuk merubah password default dari sebuah software. Sebenarnya, password guessing merupakan sesuatu yang sangat tidak efektif, dan dapat menghabiskan waktu. Network admin bisa dengan mudah mendetect serangan jika seorang attacker mencoba login dengan menebak password berkali-kali. Brute-force merupakan serangan yang menggunakan logika yang sama dengan password guessing tetapi serangan brute-force lebih cepat dan lebih powerfull. Dalam tipe serangan ini seorang attacker menggunakan script (biasanya program cracking gratis) yang akan mencoba password-password umum(biasanya terdapat dalam dictionary). Tujuan dari serangan jenis ini adalah untuk mempercepat penemuan password sebelum network admin menyadari adanya serangan. Walaupun serangan Brute-force lebih efisien daripada password guessing, kedua teknik tersebut pada dasarnya sama. Attacker umumnya lebih sulit untuk berhasil dengan kedua metoda tersebut. Lebih jauh lagi, kedua teknik tersebut sangat mudah di lawan dengan memanfaatkan features blacklisting, yang akan mengunci sebuah account user jika seseorang(attacker) berkali-kali memasukkan password secara tidak tepat. Contohnya, default blacklist dalam system unix adalah tiga kali (kesempatan memasukkan password). Password cracking adalah metoda untuk melawan perlindungan password yang dienkripsi yang berada di dalam system. Dengan anggapan bahwa atacker telah masuk kedalam system, ia bisa saja mengubah kekuasaannya didalam system dengan cara meng crack password file menggunakan metode brute-force dictionary attack (mencocokan kata-kata yang berada dalam kamus dengan kata-kata yang dienkripsi dalam file password). Keberhasilan menggunakan cara ini bergantung pada kecepatan prosesor dan program yang dimiliki oleh attacker. Cara yang terbaik untuk menghindari serangan jenis ini adalah dengan memonitor kewenangan akses pada file. Dengan cara mengintip lalulintas pada port telnet(23) ataupun HTTPD (80), seorang attacker dapat mendapatkan password yang digunakan untuk internet dan koneksi secara remote melalui proses yang dinamakan password snifing. Cara inilah yang paling mudah dilakukan karena kedua koneksi tersebut tidak menggunakan enkripsi, kecuali koneksi yang menggunakan SSL (secure socket layer) pada HTTPD(biasanya ada tanda gembok terkunci dibawah browser, yang menandakan transaksi aman) atau juga menggunakan SSH (Secure SHell) untuk koneksi ke mesin lain secara remote. Untuk menghindari password attack, ada beberapa cara yang bisa Anda lakukan: 1. Minimal mempunyai panjang 6 karakter, lebih baik lagi jika panjangnya minimal 8 karakter dan terdapat sedikitnya 1 buah karakter angka atau karakter yang special. 2. Tidak memiliki maksud/makna, password yang memiliki makna atau maksud akan relatif lebih mudah untuk di tebak misalnya nama keluarga, telepon, alamat, tanggal lahir dsb. 3. Sebaiknya di beri periode berlaku, artinya sering seringlah mengganti password yang digunakan. 4. Jangan gunakan kata-kata yang umum dan terdapat dalam kamus. 5. Jangan pernah mencatat password yang anda pakai ditempat-tempat yang dapat diakses umum, atau berakibat fatal apabila hilang.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

10

6. Jangan gunakan password yang sulit dalam artian membuat anda kesulitan menghapalnya tetapi tetap tidak menggurangi kekuatannya. 7. Jangan pernah memberitahukan password anda kepada orang lain baik dengan berbagai alasan tertentu 8. Tidak ada salahnya mencoba mencrack password anda sendiri agar anda yakin. Anda bisa menggunakan John The Ripper. 9. Sedapat mungkin untuk menggunakan kombinasi karakter. 7. Port Scanning Melalui port scanning seorang attacker bisa melihat fungsi dan cara bertahan sebuah system dari berbagai macam port. Seorang atacker bisa mendapatkan akses kedalam sistem melalui port yang tidak dilindungi. Sebagai contoh, scaning bisa digunakan untuk menentukan dimana default SNMP string di buka untuk publik, yang artinya informasi bisa di extract untuk digunakan dalam remote command attack. 8. HTTPD Attacks Kerawanan yang terdapat dalam HTTPD ataupun webserver ada lima macam: buffer overflows, httpd bypasses, cross scripting, web code vulnerabilities, dan URL floods. HTTPD Buffer Overflow bisa terjadi karena attacker menambahkan errors pada port yang digunakan untuk web traffic dengan cara memasukan banyak carackter dan string untuk menemukan tempat overflow yang sesuai. Ketika tempat untuk overflow ditemukan, seorang attacker akan memasukkan string yang akan menjadi perintah yang dapat dieksekusi. Bufer-overflow dapat memberikan attacker akses ke command prompt. Beberapa feature dari HTTPD bisa digunakan untuk meciptakan HTTPD byapass, memberi akses ke server menggunakan fungsi logging. Dengan cara ini, sebuah halaman web bisa diakses dan diganti tanpa dicatat oleh web server. Cara ini sering digunakan oleh para cracker, hacktivis dan cyber vandals untuk mendeface website. Sedangkan kerawanan pada script-script web bisa terjadi pada semua bahasa pemrograman web dan semua ekstensi aplikasi. Termasuk VB, Visual C++, ASP, TCL, Perl, PHP, XML, CGI dan Coldfusion. Pada dasarnya, attacker akan mengexploitasi kelemahan dari sebuah aplikasi, seperti CGI script yang tidak memeriksa input atau kerawanan pada IIS RDS pada showcode.asp yang mengizinkan menjalankan perintah secara remote (remote command priviledges). Melalui cross scripting dan cross-site scripting seorang attacker bisa mengexploitasi pertukaran cookies antara browser dan webserver. Fasilitas ini dapat mengaktifkan script untuk merubah tampilan web dll. Script ini bisa menjalankan malware, membaca infomasi penting dan meng expose data sensitive seperti nomor credit card dan password. Pada akhirnya attacker dapat menjalankan denial of service dengan URL flood, yang dilakukan dengan cara mengulang dan terus mengulang permintaan terhadap port 80 httpd yang melalui batas TTL (time to live). Beberapa user ataupun manager mungkin benci mendengar serangan-serangan tersebut. Tapi pada kenyataanya memang tidak ada yang benar-benar fix untuk mengamankan network ataupun website. Keamanan adalah suatu proses, bukan produk. Jika anda memasang firewall, IDSes(instrusion detection system), routers dan honeypots (system untuk jebakan) mungkin dapat menyediakan lapisan-lapisan untuk bertahan, tetapi sekali lagi peralatan paling canggih di dunia tidak akan menolong suatu organisasi sampai organisasi tersebut mempunyai proses untuk mengupgrade system, memakai patch,

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

11

mengecek security pada system sendiri dan metode lain. Telah banyak perusahaan yang memakai IDSes tetapi tidak memonitor file log, mereka menginstall firewall, tetapi tidak mengupgradenya. Jalan terbaik untuk melindungi website maupun network dari serangan adalah mendekatkan keamanan sebagaimana tantangan yang sedang terjadi terhadap keamanan itu sendiri. 9. Backdoor Backdoor biasanya digunakan attacker untuk kembali masuk ke server target yg sudah pernah dikuasainya. Ada backdoor yg di access lewat shell dengan membuka port tertentu seperti shv4 dan ada backdoor yang di access lewat web "Backdooring web" dengan menumpang port 80 untuk menjalankan nya dan mengaksesnya pun melalui browser . Seperti kita ketahuan ada banyak sekali jenis web server dan setiap web server mempuyai bahasa yg berbeda pula. Backdoor disini dibuat dengan bahasa-bahasa web programing seperti ASP,PHP dan Perl dan dengan web server yang umum digunakan. Ada beberapa jenis backdoor menurut bahasa pemrograman yang digunakan: PHP Shell PHP shell merupakan backdoor dari script php yang fungsinya untuk menjalankan remote shell melalui web . ASP Shell ASP shell sama dengan PHP shell dan semua backdoor disini sistemnya sama aja. Dalam asp shell kita membuat backdoor dengan script asp dan membuat script tersebut bisa mengeksekusi cmd.exe yang ada di web server target .contoh asp shell sederhana CGI Telnet Cgi telnet sama seperti kedua backdoor diatas ,sama2 remote shell ,bisa digunakan di apache dan IIS. Backdoor ini dibuat dengan bahasa programing perl dan di save di dir cgi-bin umumnya. 10. Trojan Horse Trojan horse adalah sebuah program ilegal (unauthorized) yang ada di dalam program yang dipercaya (legitimate). Program ilegal ini menjalankan suatu aktivitas yang rahasia yang tidak diinginkan oleh user. Trojan biasa juga disebut RAT's atau Remote Administration Tools. Disamping worm, Trojan selalu menjadi masalah keamanan yang sering dibicarakan orang sampai hari ini. Banyak orang berpikir ketika mereka mempunyai virus scanner dengan definisi virus terbaru, mereka aman di internet dan mereka tidak akan terinfeksi oleh Trojan yang akan mengakses komputer mereka. Pendapat ini tidak benar. Tujuan dari program antivirus adalah mendeteksi virus bukan Trojan. Tapi ketika Trojan menjadi populer program antivirus ini mulai menambahkan definisi untuk Trojan. Program antivirus ini tidak bisa menemukan Trojan dan menganalisanya, itulah sebabnya mereka hanya bisa mendeteksi beberapa Trojan yang populer seperti Back Orifice dan NetBus dan juga beberapa Trojan yang lain. Seperti yang telah aku katakan diatas ada lebih dari 600. Lalu darimana Anda bisa terinfeksi trojan? Anda bisa terinfeksi dari mana saja ketika terhubung ke internet dan biasanya trojan masuk ke komputer Anda melalui: ICQ, IRC, file Attachment, dan disket.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

12

1. Mengamankan Server Linux

Setelah Anda mengetahui bahayanya mengabaikan keamanan jaringan, saat ini kita akan fokus pada usaha untuk membuat jaringan kita lebih aman. Sebenarnya Anda bisa mengurangi kerusakan akibat serangan dan vulnerability dengan mencurahkan sedikit waktu untuk memperbaiki topologi jaringan Anda. Dalam topik ini kita akan membahas bagaimana membangun jaringan linux yang aman. Setidaknya ada tiga hal yang harus diperhatikan yaitu: Topologi jaringan yang digunakan (fisik dan logical) Mengamankan router dan switch (interconection) Mengamankan server yang berjalan (aplication service) Sebelum memulai mendesain jaringan yang aman, perlu diingat bahwa kebijakan (policy) perusahaan Anda untuk menangani masalah keamanan merupakan faktor terpenting. Untuk membantu membuat policy keamanan, mungkin ada baiknya kita mengingat bagaimana keamanan komputer di perbankan. Untuk mencapai ke ruang komputer saja mungkin Anda akan mendapatkan pengawalan ekstra ketat. Tetapi ini contoh yang bagus. Selanjutnya kita akan melihat bagaimana membuat sistem jaringan yang aman. 2.1 Topologi Jaringan Perencanaan topologi yang benar merupakan fondasi awal dalam keamanan jaringan. Selain bisa mengurangi faktor serangan, hal ini juga dapat meminimalkan kerugian yang terjadi saat terjadi serangan nantinya. Kunci sukses dalam keamanan jaringan bukan hanya terletak pada mengamati sensor IDS, tetapi yang paling penting menyadari apa yang sebenarnya terjadi di sistem Anda. Maka sebaiknya Anda menentukan terlebih dahulu jalur network yang ada saat ini, mana yang Anda percayai dan mana yang tidak. Sebaiknya memang Anda memisahkan jalur internal perusahaan dengan jalur public. Perlu Anda ketahui juga apakah jaringan Anda perlu terhubung dengan remote computer di kota/negara lain. Jika memang demikian setidaknya Anda bisa menggunakan DMZ (De-militarized Zone) dan VPN (Virtual Private Network). Gambar berikut ini merupakan standar desain network dengan keamanannya:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

13

Gambar di atas mengilustrasikan koneksi dengan internet menggunakan router dan firewall, dan server public yang terkoneksi ke interface di firewall. Pada prinsipnya topologi jaringan dibuat dengan mengelompokkan fungsi yang sejenis, misalnya server public, user workstation, intranet server, dan wireless area (jika ada). Server public yang Anda kelompokkan menjadi satu biasa dikenal dengan de-militerized zone (DMZ). Tidak semua server perlu digabungkan ke dalam DMZ. Bila Anda menjalankan server file melalui SMB/NFS atau server intranet menggunakan apache misalnya, bisa Anda kelompokkan sendiri di dalam jaringan internal. Jangan menempatkan server intranet Anda di DMZ karena Anda tentu tidak ingin seluruh dunia mengaksesnya bukan? Hal penting lainnya adalah jangan menjalankan banyak service dalam satu server. Memang bagi beberapa perusahaan alasan finansial bisa menjadi masalah. Akan tetapi jika Anda menjalankan service DNS, web, dan email pada mesin yang sama, tentu akan berpengaruh pada resiko keamanan. Berarti Anda telah membuka banyak pintu bagi intruder untuk masuk ke sistem Anda. Jadi sebaiknya gunakanlah mesin yang terpisah untuk tiap service yang Anda jalankan. 2.2 Mengamankan Router dan Switch Untuk menghubungkan network dengan jaringan luar (internet), Anda memerlukan alat berupa router atau gateway. Salah satu tugas penting gateway adalah harus dapat menggabungkan beberapa network yang mempunyai protokol berbeda. Jika router yang Anda gunakan down, maka bisa dipastikan semua koneksi jaringan internal Anda dengan

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

14

luar juga akan down. Mengingat fungsi penting router ini, maka Anda sudah selayaknya menaruh perhatian penting di sini. Bagaimana mengatur keamanan di router? Setidaknya Anda harus memasang firewall di alat ini. Firewall membuat Anda bisa menyaring paket data yang masuk dan keluar jaringan. Di linux Anda bisa menggunakan IPTables sebagai aplikasi firewall. Masalah firewall akan dibahas pada pertemuan selanjutnya. 2.3 Mengamankan Server yang Berjalan Mengamankan server linux pada dasarnya dibagi menjadi dua bagian, yaitu standar keamanan umum server dan mengamankan server berdasarkan service yang berjalan. Ada beberapa cara yang bisa dilakukan untuk mengatur keamanan sistem linux yaitu dengan cara: Mengamankan Password Root Hal pertama untuk memulai mengamankan linux adalah dengan memilih password yang tepat. Semua informasi dan data di komputer Anda bisa dilindungi dari orang lain dengan menggunakan password. Bagaimana menulis password yang baik, berikut panduannya : Gunakan setidaknya delapan sampai duabelas karakter dengan menggunakan kombinasi huruf besar, kecil, angka dan karakter khusus lainnya. Jangan gunakan kata-kata umum yang berhubungan dengan nama Anda, keluarga, instansi pekerjaan atau yang berhubungan dengan karakter personal. Biasakan mengganti password pada periode waktu tertentu (misal setiap 30 hari). Buat kebijakan untuk menolak akses jika terjadi tiga atau lebih kesalahan dalam memasukkan password. Jika Anda telah membuat password yang baik, jangan langsung menggunakannnya untuk login ke sistem. Linux menganggap root adalah user tertingi yang telah mengetahui seluk beluk sistem. Anda tidak akan mendapatkan peringatan saat melakukan konfigurasi karena dianggap telah tahu sistem linux dan tidak ada kesalahan di dalamnya. Untuk menggantikan root, Anda bisa menggunakan su atau sudo. Jika Anda terpaksa login menggunakan root, maka tentukan berapa lama waktu timeout dari root. Untuk mengatasi masalah ini bisa dengan menambahkan perintah TMOUT di profile. Edit file profile (vi /etc/profile) dan tambahkan baris berikut setelah kata HISTSIZE :TMOUT=7200

Nilai variabel TMOUT adalah detik sehingga 7200 berarti 2 jam (60 x 60 = 3600 x 2 = 7200 detik). Dengan tambahan baris perintah tersebut akan membuat sistem keluar dari sistem jika tidak dipakai selama 2 jam. Untuk mengaktifkan perubahan ini, logout terlebih dahulu dan login kembali sebagai root.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netInstall Software yang Benar-benar Diperlukan

15

Anda tidak perlu menginstall semua program di server. Semakin banyak software yang tidak perlu akan menimbulkan peluang vulnerability yang semakin besar. Sebaiknya Anda menginstall software sesuai dengan service yang dijalankan server. Berikut panduan untuk mengetahui beberapa software yang diperlukan untuk tiap-tiap server:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

16

Menonaktifkan Program yang Tidak Perlu Jangan pernah menginstall software yang tidak Anda perlukan di sistem Anda. Jika Anda menginstall linux secara default biasanya banyak program yang tidak Anda perlukan tetapi ikut terinstall di dalamnya, seperti sendmail, NFS, atau BIND. Sendmail misalnya, telah diketahui mempunyai banyak exploit yang bisa dimanfaatkan oleh penyusup untuk melakukan serangan. Di tabel berikut bisa Anda lihat beberapa service yang sebenarnya tidak diperlukan (distro Redhat), tetapi ikut terinstall secara default:Red Hat Enterprise Linux AS 3.0 Services BaselineService freeWnn apmd arptables_jf atd autofs canna crond cups gpm hpoj ip6tables iptables irqbalance isdn kkeytable kudzu mdmonitor microcode_ctl On by Default? Turn Off? Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Run this by hand if hardware changes RAID Yes ISDN Yes Yes Yes Printing Cut and paste on the console An HP OfficeJet Yes Japanese Yes Yes Yes Leave On When Using Japanese A laptop Purpose Japanese conversion engine Monitors battery status for laptops Automates a packet filtering firewall with arptables AT batch job daemon autofs daemon Canna Japanese conversion engine Cron job service CUPS printer daemon Allows mouse on console HP OfficeJet support ip6tables firewall iptables firewall Distributed interrupts across CPU on multiprocessor systems ISDN drivers Keyboard settings Hardware probe for configuring new hardware Software RAID monitoring Applies CPU microcode

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netService netfs network nfslock pcmcia portmap random rawdevices rrhnsd sendmail sgi_fam sshd syslog xinetd On by Default? Turn Off? Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes A service contract E-mail server Yes Yes Yes NFS A laptop NFS Yes NFS Leave On When Using Purpose Mounts and unmounts NFS, SMB, and NCP file systems Configures network interfaces and routing NFS locking daemon PCMCIA card configuration database DARPA port to RPC program number mapper Random number generator Enables raw I/O Program for querying Red Hat network for updates SMTP server File monitoring daemon OpenSSH SSH daemon System logging daemon Internet daemon

17

Anda bisa langsung menguninstall program-program tersebut. Tetapi bisa juga dengan mematikan service program tersebut. Jika ingin menguninstall maka bisa dilakukan dengan cara:[root@core /]# rpm -e

Misalnya Anda akan menguninstall apmd, dhcp dan pump, cara yang dilakukan adalah:[root@core /]# rpm e nodeps apmd dhcpcd pump (-nodeps untuk mengabaikan dependencies)

Sedangkan untuk mematikan service secara default bisa dilakukan dengan cara melihat service yang berjalan menggunakan ntsysv (Redhat/Fedora), rcconf (Debian, dan YaST (SuSE) atau chkconfig (semua distro), kemudian pilih service yang tidak digunakan.[root@core /]# chkconfig --list atd 0:off 1:off 2:off 3:off rwhod 0:off 1:off 2:off 3:off keytable 0:off 1:on 2:on 3:on nscd 0:off 1:off 2:off 3:off syslog 0:off 1:off 2:on 3:on gpm 0:off 1:off 2:on 3:on kudzu 0:off 1:off 2:off 3:on kdcrotate 0:off 1:off 2:off 3:off lpd 0:off 1:off 2:on 3:on [.] 4:off 4:off 4:on 4:off 4:on 4:on 4:on 4:off 4:on 5:off 5:off 5:on 5:off 5:on 5:on 5:on 5:off 5:on 6:off 6:off 6:off 6:off 6:off 6:off 6:off 6:off 6:off

Misalnya Anda ingin mematikan service lpd, lakukan perintah berikut:[root@core /]# chkconfig --level 3 lpd off

Mengupdate software secara teratur Tidak cukup bagi Anda hanya sekedar menghapus software yang tidak diperlukan, tetapi Anda perlu menjaga program yang digunakan up-to-date. Apakah ini artinya Anda perlu mengupgrade seluruh sistem yang telah dipasang bertahun-tahun misalnya? Tidak demikian cukup beberapa program saja yang senantiasa diupdate.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

18

Darimana Anda mendapatkan update terbaru program-program linux? Sebaiknya memang seorang admin aktif mengikuti milis untuk mengetahui berita vulnerability sistem. Di internet banyak sekali situs yang menyediakan update bagi linux, tetapi jika ingin mudah sebenarnya tiap-tiap distro telah menyediakan paket versi terakhir yang bisa Anda download. Tetapi jika Anda ingin mendownload secara otomatis Anda bisa melakukan dari YaST2 (SuSE), apt-get upgrade (Debian), dan up2date (Redhat). Disable Default Account Sangat penting untuk menonaktifkan user account yang dibuat secara default saat Anda menginstall linux. Anda harus memeriksa ini setelah mengupgrade atau menginstall software baru. Linux membuat user ini untuk berbagai aktivitas yang sebenarnya tidak terlalu Anda butuhkan. Jika Anda merasa tidak memerlukan account ini, maka hapuslah. Semakin banyak user yang Anda buat akan semakin berbahaya bagi sistem Anda. Kami menganggap bahwa Anda menggunakan Shadow password di sistem linux. Untuk menghapus user di sistem Anda, perintah yang digunakan :[root@deep /]# userdel username

Untuk menghapus group di sistem Anda, perintah yang digunakan :[root@deep /]# groupdel username

Sekarang untuk daftar user yang ada di sistem Anda bisa dilihat di file /etc/passwd. Ketik perintah berikut untuk menghapus semua user default sistem:[root@deep [root@deep [root@deep [root@deep [root@deep [root@deep [root@deep [root@deep [root@deep [root@deep [root@deep /]# /]# /]# /]# /]# /]# /]# /]# /]# /]# /]# userdel userdel userdel userdel userdel userdel userdel userdel userdel userdel userdel adm lp shutdown halt news mail uucp operator games gopher ftp

Setelah Anda menghapus user di atas, isi dari file /etc/passwd menjadi seperti berikut ini:root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: sync:x:5:0:sync:/sbin:/bin/sync nobody:x:99:99:Nobody:/:

Setelah semua user account default Anda hapus, maka hapus juga group default yang ada di file /etc/group.[root@deep [root@deep [root@deep [root@deep [root@deep [root@deep [root@deep /]# /]# /]# /]# /]# /]# /]# groupdel groupdel groupdel groupdel groupdel groupdel groupdel adm lp news mail uucp games dip

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netMenghapus file kosong

19

File-file kosong tanpa hak pemilik (unowned files) biasanya merupakanindikasi bahwa intruder telah mengakses sistem Anda. Jika Anda menemukan file atau direktori di sistem, maka periksa integritasnya, dan jika ternyata tidak bermasalah berikan hak pemiliknya. File ini bisa juga terjadi karena Anda telah menghapus software yang bersangkutan, sehingga hak pemiliknya hilang. Anda bisa mencari file-file seperti ini dengan cara:[root@deep /]# find / -nouser -o -nogroup

Memeriksa Log dan Proses Sistem Semua aktivitas yang berjalan di sistem akan dipantau oleh linux. Sebaiknya secara teratur Anda mengamati log-log tersebut. Jika ada sesuatu yang aneh, maka Anda bisa mengamati lebih lanjut. Tidak ada ketentuan kapan Anda harus memeriksa sistem, tetapi pada prinsipnya semakin sering akan semakin baik. Beberapa perintah yang bisa Anda gunakan adalah:[root@deep /]# w [root@deep /]# netstat ap [root@deep /]# ps ef [root@deep /]# last (memeriksa user yang sedang login) (memantau port yang terbuka dan program yang menggunakan port tersebut) (memantau proses asing yang berjalan) (mengetahui user yang terakhir login ke sistem) (kumpulan log proses sistem) (kumpulan log keamanan sistem)

[root@deep /]# tail f /var/log/messages [root@deep /]# tail f /var/log/secure

Mengamankan Beberapa Parameter di Kernel Ada beberapa konfigurasi untuk meningkatkan keamanan yang bisa dilakukan dari kernel tanpa mengcompilenya. Parameter yang dikonfigurasi terletak di file /etc/sysctl.conf : Untuk mencegah DoS (denial of service attact)net.ipv4.tcp_sysncookies = 1

Jika linux mempunyai service masqueradenet.ipv4.ip_always_defrag = 1

Mencegah IP spoofingnet.ipv4.conf.all.rp_filter = 1

Untuk mencatat spoofed packet, source routed packet, dan redirect packetnet.ipv4.conf.all.log_martians = 1

Semua konfigurasi diatas dapat berjalan setelah merestart network service dengan cara: /etc/rc.d/init.d/network restart.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netMenjalankan Service di chrooted Filesystem

20

Salah satu bentuk penyalahgunaan hak akses yang banyak terjadi adalah pembajakan daemon. Jika attacker berhasil mendapatkan hak akses atas satu saja daemon (service) di sistem, maka bisa dikatakan dia telah mendapatkan sistem Anda. Untuk mengurangi resiko vulnerability pada service bisa dilakukan dengan dua cara, yaitu : menjalankan proses dengan hak akses serendah mungkin atau dengan menjalankan proses di chroot jail. Chroot jail merupakan cara untuk melindungi proses yang Anda jalankan sehingga seolah-oleh ia berjalan dari direktori root ( / ). Padahal kenyataannya ia berjalan dalam subdirektori kecil dibawah root. Untuk menjelaskan fungsi chroot, bisa dilihat dalam gambar berikut:

Kebanyakan daemon menyimpan konfigurasi file di /etc, menyimpan perintah di /usr/bin, dan temporary file seperli log di /var. Akan tetapi kita tidak ingin daemon DNS, yaitu named, dapat melihat semua file sistem. Oleh karena itu, kita menjalankan named dalam chroot file di /var/named. Selanjutnya dari perspektif chroot, /var/named/etc dianggap sebagai /etc, /var/named/usr/bin dianggap sebagai /usr/bin, dan /var/named/var dianggap sebagai /var. Dengan demikian bila misalnya attacker bisa membajak daemon named, maka ia hanya akan berkutat di direktori chroot. Attacker tidak bisa melihat semua file sistem yang terdapat di /.

Mengamankan Server DNSMasalah keamanan di DNS termasuk sangat penting. Beberapa tahun lalu kita sering mendengar berita serangan ditujukan ke beberapa server DNS. Struktur DNS sendiri yang terpusat dan bersifat umum membuat DNS rentan serangan. Karena pengalamatan yang dimulai dari root domain (.), maka bisa dibayangkan jika ada kalangan yang ingin menyerang root domain? Tentu saja akan mengacaukan proses pencarian nama di internet. Serangan yang pernah terjadi terhadap DNS adalah perampokan domain (domain hijacking) dan penolakan akses terhadap beberapa situs internet (me-redirect traffic). Saat itu dilakukan dengan memanfaatkan vurnerability pada BIND versi 8. Oleh karena itu, sebaiknya Anda menggunakan BIND versi 9 yang telah dilengkapi dengan beberapa fitur keamanan baru. Karena alasan keamanan, sangat penting untuk tidak menempatkan DNS diantara internal network dengan external network. Dalam konfigurasi ini, kita akan menggunakan ISC BIND & DNS menggunakan user biasa (non-root) dan akan menjalankannya dalam chroot. Ada tiga jenis konfigurasi yang akan digunakan di sini, yaitu: Caching Name Server Only (Client) Master Name Server (Primary DNS Server) Slave Name Server (Secondary DNS Server)

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

21

Caching Name Server akan digunakan untuk server yang tidak berfungsi sebagai master atau slave NS. Biasanya salah satu server Anda digunakan sebagai Primary/Master, yang lainnya sebagai Secondary/Slave dan sisanya bisa digunakan sebagai Caching client Name Server. Ada beberapa cara untuk mengamankan server DNS. Zona transfer sebaiknya hanya bisa diupdate oleh master server. Jika gagal mengakibatkan alamat IP dan host akan gagal menghubungi server. Batasi query ke domain public.// Allow transfer only to our slave name server. Allow queries // only by hosts in the 192.168.1.0 network. zone mydomain.com { type master; file master/db.mydomain.com; allow-transfer { 192.168.1.6; }; allow-query { 192.168.1.0/24; }; };

Sembunyikan versi BIND yang kita gunakan. Ini akan memancing attacker untuk melakukan exploit karena mengetahui versi BIND Anda.// Disable the ability to determine the version of BIND running zone bind chaos { type master; file master/bind; allow-query { localhost; }; }; The ./master/bind file should then contain: $TTL 1d @ CHAOS SOA localhost. root.localhost. ( 1 ; serial 3H ; refresh 15M ; retry 1W ; expire 1D ) ; minimum NS localhost.

Mengontrol listen-on named. Batasi interfase dimana named berjalan agar dapat menerima hanya dari network yang diperlukan.listen-on { 192.168.1.1; };

Gunakan Access Control List (ACL) untuk mengelompokkan host ke dalam group sesuai dengan tingkat kepercayaan. Internal ACL dapat digunakan untuk mendeskripsikan host internal yang diijinkan mempunyai akses ke informasi lebih tinggi dari lainnya. Sebelum menggunakan, definisikan :acl internal { { 192.168.1.0/24; 192.168.2.11; }; }; Selanjutnya acl bisa digunakan dalam statement zone atau di statement option: zone inside.mynet.com { type master; file master/inside.mynet.com; allow-query { internal; }; };

Configure BIND untuk berjalan sebagai user normal. Sekali BIND berjalan, ia mempunyai kemampuan untuk melepaskan hak aksesnya dan berjalan sebagai user dengen keterbatasan kemampuan dibanding root.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net# useradd -M -r -d /var/named -s /bin/false named # groupadd -r named

22

Mengamankan Web Server ApacheSelain DNS, servis lain yang sangat populer mengalami serangan adalah apache. Apache yang merupakan aplikasi web server juga memiliki banyak vulnerability saat ini. Tetapi jika Anda ingin mengamankan Apache, bisa dilakukan dengan menggunakan mod_security. Modul mod_security akan membantu admin dalam meningkatkan kemanan melawan beraneka ragam serangan yang ditujukan ke apache web server, seperti SQL injection, cross-site scripting, path-traversal, dsb. Berikut cara menginstall mod_security pada Linux (Fedora): 1. Anda dapat menginstall dan mengaktifkan mod_security menggunakan perintah:yum install mod_security /etc/init.d/httpd restart

Selanjutnya Anda bisa menemukan file konfigurasi mod_security yang terletak di/etc/httpd/conf.d/mod_security.conf

2. Untuk membaca konfigurasi dasar mod_security, Anda dapat melihat file tersebut dengan cara:vi /etc/httpd/conf.d/mod_security.conf

ada beberapa keamanan dasar yang bisa Anda terapkan di sini. Beberapa aturan dasar keamanan Apache adalah sebagai berikut: # Turn the filtering engine On or Off SecFilterEngine On # Make sure that URL encoding is valid SecFilterCheckURLEncoding On # Unicode encoding check SecFilterCheckUnicodeEncoding Off # Only allow bytes from this range SecFilterForceByteRange 0 255 # Only log suspicious requests SecAuditEngine RelevantOnly # The name of the audit log file SecAuditLog /var/log/httpd/audit_log # Debug level set to a minimum SecFilterDebugLog /var/log/httpd/modsec_debug_log SecFilterDebugLevel 0 # Should mod_security inspect POST payloads SecFilterScanPOST On # By default log and deny suspicious requests # with HTTP status 500 SecFilterDefaultAction "deny,log,status:500"

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netRestart Apache dengan cara:/etc/init.d/httpd restart

23

Untuk memahami arti dari konfigurasi file di atas Anda bisa melihat pada tabel berikut:

Mengamankan Server EmailServer email merupakan salah satu layanan penting di internet. Oleh karena itu, bisa dipastikan layanan ini juga banyak menjadi target serangan. Kebanyakan distro linux menggunakan sendmail sebagai layanan standar untuk mail agent. Program klasik yang telah dibuat sejak tahun 1988 ini juga terkenal dengan banyaknya vulnerability. Selain sendmail, linux mempunyai beragam pilihan aplikasi mail server, seperti Postfix, Qmail, dan Squaremail. Untuk pembahasan kali ini kita akan mencoba konfigurasi keamanan email server dengan menggunakan sendmail. Secara prinsip hal ini bisa diterapkan di email server lain.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

24

3. Firewall

Telah dipahami bahwa security adalah sebuah proses bukan suatu produk. Tetapi ada implementasi kemanan standar yang bisa diterapkan di suatu perusahaan. Mekanisme tersebut menyangkut pemberian hak akses istimewa (privilege) dan membatasi resource network dari yang tidak berhak. Salah satu implementasi keamanan yang harus dipakai adalah firewall. Firewall atau benteng penjaga merupakan pelindung pertama host atau network dari serangan intruder lain. Beberapa produk firewall yang banyak dijual di pasar adalah Cisco, Nokia, Sonicwall. Ada juga solusi firewall yang diproduksi untuk home dan bisnis, seperti Checkpoint, McAfee, dan Symantec. Ada tiga jenis firewall yang bisa diterapkan beserta fungsinya, yaitu dengan metode packet filtering, network address translation, dan menggunakan proxy. Untuk lebih jelasnya bisa dilihat pada tabel berikut:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

25

Netfilter dan IPTables Kernel linux mempunyai feature yang sangat powerful dalam subsystem networking yaitu netfilter. Netfilter mempunyai subsistem yang memiliki kemampuan paket filtering sama baiknya dengan service NAT dan IP masquerade. Netfilter juga mempunyai kemampuan untuk merusak header IP untuk advance routing dan connection state management. Netfilter dikontrol menggunakan tool IPTables. Kekuatan dan fleksibilitas netfilter diimplementasikan melalui interface IPTables. Tools berbentuk command line ini memiliki kemiripan sintaks dengan pendahulunya, IPChains; tetapi IPTables menggunakan subsystem netfilter untuk meningkatkan network connection, pemeriksaan, dan pemrosesan. Mengingat IPChains menggunakan rule yang berbelit-belit untuk membuat paket filtering dan destination path. IPTables mempunyai kemampuan logging, pre- dan post routing, NAT, dan port forwarding semuanya dalam satu command-line interface Menggunakan IPTables Langkah pertama untuk menjalankan IPTables adalah dengan menjalankan service IPTables. Hal ini bisa dilakukan dengan perintah:service iptables start

Atau/etc/init.d/rc.d/iptables start

Agar IPTables berjalan secara default saat computer dinyalakan, Anda harus mengubah status runlevel di service menggunakan chkconfig.Chkconfig level 345 iptabes on

Sintaks IPTables dibagi menjadi beberapa tingkatan. Tingkatan utama adalah chain. Chain menentukan pernyataan dimana sebuah paket akan dimanipulasi. Kegunaannya adalah sebagi berikut:Iptables A chain j target

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

26

Tanda A berarti menambah saru rule ke dalam baris terakhir dari ruleset yang digunakan sekarang. Chain adalah nama ikatan yang digunakan untuk rule. Ada tiga rantai IPTables yaitu INPUT, OUTPUT dan FORWARD. Ketiga chain ini bersifat permanent dan tidak bisa dihapus. Ketika mempuat peraturan IPTables, satu hal yang harus diingat bahwa urutan merupakan hal penting. Misalnya, chain yang menetapkan bahwa setiap paket dari subnet local 192.168.100.0/24 harus dihentikan. Selanjutnya jika Anda menambahkan (A) chain yang mengijinkan paket dari 192.168.100.100 (terletak di network yang ditolak sebelumnya) maka rule tersebut akan ditolak. oleh karena itu, rule yang mengijinkan paket 192.168.100.100 harus diletakkan di urutan atas. Pengecualiannya adalah jika Anda telah menetapkan policy (-P) sebelumnya maka IPTables akan mempertahankan rule yang sesuai dengan default policy. Policy Firewall Basic Iptables menggunakan policy (-P) untuk membuat peraturan secara default. Untuk membuat rule, seorang network administrator mempunyai kaidah tolak semua paket yang masuk ke jaringan, kecuali yang digunakan. Jadi pada dasarnya, semua paket bisa Anda tolak, hanya yang benar-benar dibutuhkan yang Anda bolehkan. Rule berikut adalah perintah untuk menolak semua paket masuk dan keluar di network gateway:iptables -P INPUT DENY iptables -P OUTPUT REJECT

sebagai tambahan, sebaiknya semua paket network yang akan diforward dari satu router ke tujuan didefinisikan dulu dengan baik untuk menghindari client internal agar tidak terhubung ke internet. Untuk melakukan hal ini, gunakan rule berikut:iptables -P FORWARD REJECT

Setelah menyeting policy chain, Anda sekarang dapat membuat rule baru untuk network terpisah dan kebutuhan keamanan Anda. Menyimpan dan merestore rule IPTables Rule yang Anda buat di firewall hanya valid pada waktu komputer menyala. Setelah computer reboot, maka rule secara otomatis dibuang dan direset. Untuk menyimpan rule sehingga dapat digunakan setiap computer restart, gunakan perintah berikut:/sbin/service iptables save

Rule akan disimpan di file /etc/sysconfig/iptables dan akan digunakan setiap saat service dijalankan, direset, atau bahkan saat mesin di reboot. Filter INPUT Menjauhkan LAN dari intruder tidak hanya penting dalam aspek network security, tapi juga sangat penting! Integritas LAN harus dilindungi dari malicious remote melalui rule yang kuat. Dalam contoh berikut, kita akan mencoba menolak akses telnet dari luar.iptables -A INPUT -p tcp --sport telnet -j REJECT iptables -A INPUT -p udp --sport telnet -j REJECT

Rule di atas menolak semua koneksi TCP dan UDP menuju protocol tenlet (port 23) dengan pesan kesalahan connection refused. Rule menggunakan sport atau dport dapat digunakan untuk nomor port atau nama servicenya. Jadi, Anda bisa menggunakan sport telnet atau sport 23. tetapi jika nomor port yang digunakan tidak sesuai dengan

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

27

standar (/etc/service), maka Anda harus menulis nomor portnya daripada menggunakan opsi servis telnet. Ada perbedaan tindakan yang dilakukan antara REJECT dengan DROP. Jika Anda menggunakan REJECT, maka akses yang Anda tolak akan kembali ke pengirim dan menampilkan pesan kesalahan (ditolak) ke user. Tetapi jika menggunakan DROP (yang berarti dihentikan), maka paket akan langsung dihentikan tanpa mengirim pemberitahuan ke user. Pemilihan tipe tindakan ini sangat penting bagi administrator. Jika Anda tidak ingin membingungkan user yang ingin melakukan koneksi ke server Anda, sebaiknya gunakan REJECT. Contoh lain misalnya, Anda menginginkan koneksi aman ke server melalui remote server SSH. Maka untuk mengijinkan akses SSH ke LAN, Anda bisa menggunakan perintah berikut:iptables -A INPUT -p tcp --sport 22 -j ACCEPT iptables -A INPUT -p udp --sport 22 -j ACCEPT

OUTPUT Filtering

Ada saatnya mungkin Anda ingin membatasi akses keluar dari jaringan internal ke internet. Dalam IPTables Anda bisa menggunakan OUTPUT untuk membatasi data yang akan keluar network. Misalnya, Anda akan membuat koneksi melalui ke remote LAN menggunakan VPN (dalam hal ini menggunakan CIPE). Maka untuk menggunakan CIPE sebagai client VPN di gateway, gunakan rule berikut:iptables -A OUTPUT -p udp -i cipcbx -j ACCEPT

FORWARD dan NAT Saat ini alokasi IP Publik dari ISP jumlahnya sangat terbatas. Jika perusahaan Anda mempunyai ratusan, bahkan ribuan computer yang ingin dihubungkan ke internet. Maka Anda tidak perlu memesan ratusan IP Publik sesuai dengan banyak computer yang digunakan. Anda masih bisa membagi sharing akses internet dari LAN dengan metode network address translation (NAT). dengan menggunakan NAT, Anda bisa menghubungkan semua host yang ada di LAN untuk berkomunikasi dengan internet. Adalah tugas router yang akan menterjemahkan incoming transmission dari internet dan merutekan ke dalam LAN. Dalam waktu yang bersamaan router juga dapat melakukan outgoing route dari LAN ke internet. Dengan memforward trafik network bisa saja berbahaya, terlebih dengan teknik spoofing yang banyak dipakai saat ini, seorang intruder bisa saja menggunakan computer untuk menyusup sebagai host dalam network Anda. Untuk menghindari hal ini, IPTables menyediakan kebijakan forward dan routing yang dapat diterapkan untuk menghindari penyalahgunaan resource network. Policy FORWARD membolehkan admin untuk mengontrol kemana paket akan dirouting. Misalnya, jika akan memforward IP internal (menggunakan eth1) maka rule berikut bisa Anda gunakan:iptables -A FORWARD -i eth1 -j ACCEPT

dalam contoh tersebut, -I digunakan hanya untuk menerima paket masuk ke interface eth1. opsi i digunakan untuk paket di device tersebut (dalam hal ini eth1). Secara default, linux kernel menonaktifkan fasilitas forwarding untuk menghindari penyalahgunaan computer yang berfungsi sebagai router. Untuk mengaktifkan IP forwarding, jalankan perintah berikut:echo "1" > /proc/sys/net/ipv4/ip_forward

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

28

Rule FORWARD bisa diterapkan untuk membatasi beberapa tipe trafik LAN, seperti akses local network ke sharing file melalui NFS atau Samba. Rule berikut akan menolak koneksi luar untuk sharing Samba:iptables -A FORWARD -p tcp --sport 137:139 -j DROP iptables -A FORWARD -p udp --sport 137:139 -j DROP

Untuk mencoba membatasi paket lainnya, kita akan mencoba menolak semua koneksi keluar yang bisa membut spoofing IP private di LAN. Jika LAN menggunakan 192.168.1.0/24, rule dapat diset agar interface yang berhubungan dengan internet (misalnya eth0) untuk menolak semua paket ke device tersebut dengan alamat yang sesuai dengan range IP address. Karena dianjurkan untuk menolak paket forwarding sebagai default policy, setiap spoof IP address ke external defice (eth0) akan ditolak secara otomatis.iptables -A FORWARD -p tcp -s 192.168.1.0/24 -i eth0 -j DROP iptables -A FORWARD -p udp -s 192.168.1.0/24 -i eth0 -j DROP

Rule juga dapat dibuat agak bisa merouting trafik ke mesin tertentu, seperti server HTTP atau FTP , sehingga terisolasi dari network internal di de-militarized zone (DMZ). Untuk mengeset rule agar bisa merouting semua incoming HTTP request ke server tertentu di IP address 10.20.0.2 dan port 80, NAT menggunakan PREROUTING table untuk memforward paket ke tujuan yang ditetapkan:iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.0.4.2:80

Dengan perintah tersebut, semua koneksi HTTP melalui port 80 dari luar LAN akan dirouting ke server HTTP di network yang terpisah dari network internal. Dengan cara ini akan lebih mengamankan koneksi HTTP ke mesin di network. Jika server HTTP dikonfigurasi untuk menerima secure connection (HTTPS), maka port yang digunakan adalah port 443.

Membangun Proxy dengan SquidSalah satu benteng penjaga yang bisa Anda terapkan di jaringan adalah dengan membuat proxy. Proxy server selain berfungsi untuk meningkatkan keamanan, juga berfungsi untuk membuat salinan data yang dibaca dari Internet ke jaringan lokal kita sehingga jika di lain waktu kita mengakses data yang sama, maka data tersebut akan diambil dari jaringan lokal kita sehingga akan sangat menghemat bandwith kita ke Internet. Squid adalah proxy server yang paling stabil dan paling umum digunakan untuk sistem operasi Linux. Untuk mendapatkan squid versi bisa didownload di www.squidcache.org. Misalkan Anda mendapatkan paket squid dalam bentuk rpm, maka bisa Anda install langsung dengan cara : 1. Install squid dengan cara:rpm -ivh squid-2.3.STABLE1-5.i386.rpm

2. File konfigurasi squid terdapat di /etc/squid.conf. Anda bisa membukanya dengan dengan editor teks seperti vi dengan cara:vi /etc/squid.conf

3. Atur konfigurasi sesuai parameter berikut:#http_port 3128

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

29

Perintah ini akan membuat proxy HTTP menggunakan port 3128 yang merupakan port default untuk squid. Aktifkan dengan menghilangkan tanda #. Anda dapat membuat nilai port HTTP proxy ini sesuai dengan selera anda, tetapi jangan arahkan ke port 80, terutama jika anda juga menjalankan Web Server, karena Web Server juga memakai port tersebut.#cache_mem 8 MB

Perintah tersebut digunakan untuk membatasi banyaknya memori komputer yang akan digunakan squid untuk menyimpan sementara obyek-obyek yang di cache. Batasan ini tidak ketat, suatu waktu jika squid membutuhkan memori lebih, dia dapat menggandakan memori yang dipakainya. Aktifkan baris ini dan ubahlah ukuran cache ini menjadi sebanyak yang anda inginkan, yang harus anda pertimbangkan adalah banyaknya memori yang dimiliki oleh komputer anda.#cache_dir /var/squid/cache 100 16 256

Nilai yang ada diatas adalah nilai default squid, jika anda ingin merubahnya maka aktifkan perintah ini. Parameter pertama /var/squid/cache adalah nama direktori tempat kita akan menyimpan file-file cache. Anda dapat mengubah parameter ini ke direktori manapun, tetapi yang harus diperhatikan squid tidak akan menciptakan direktori baru,jadi bila parameter ini akan diubah, pastikan direktori tujuannya sudah ada dan squid mempunyai hak akses untukmenulis pada direktori tersebut. Parameter selanjutnya, yang bernilai 100 adalah banyaknya ruang pada hard disk (dengan satuan Mega Byte) yang akan digunakan squid untuk menyimpan file-file cache nya. Ubahlah sesuai dengan kebutuhan anda. Parameter selanjutnya, disebut dengan Level-1, adalah banyaknya direktori yang akan dibuat oleh squid dalam direktori cache nya. Sebaiknya penulis menyarankan untuk tidak mengubah parameter ini. Parameter terakhir, yang disebut dengan Level-2, adalah banyaknya direktori level kedua, yaitu direktori yang dibuat di dalam tiap direktori level pertama diatas.# ACCESS CONTROLS # --------------------

Baris perintah berikut ini digunakan untuk mendefinisikan daftar hak akses dalam jaringan anda, squid menyebutnya dengan Access Control Lists (ACL). Anda dapat mendefinisikan beberapa ACL disini. Dalam bagian access controls ini, carilah baris perintah berikut :#Default configuration: http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS # http_access deny all

Yang perlu anda lakukan disini adalah mendefinisikan ACL kita sendiri, kita non aktifkan perintah terakhir dan tambahkan satu baris perintah berikut :

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.nethttp_access allow all

30

Sehingga akan menjadi seperti ini :# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS # # http_access deny all http_access allow all

4. Sebelum squid dapat berjalan, anda harus menciptakan direktori swap. Lakukanlah dengan menjalankan perintah :/usr/sbin/squid -z

Perintah ini hanya perlu dijalankan satu kali saja ketika squid pertama kali akan dijalankan pada komputer anda. 5. Untuk menjalankan squid tanpa merestart komputer, gunakan perintah :/etc/rc.d/init.d/squid start

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

31

4. Intruder Detection System (IDS)

Apa itu IDS? Intruder detection didefinisikan sebagai: masalah mengidentifikasi akses individu yang menggunakan sebuah sistem komputer tanpa hak. Percobaan untuk masuk secara paksa juga harus teridentifikasi. Tetapi Intrusion Detection bukanlah suatu Intrusion Prevention. Lalu apa itu IDS? IDS adalah aplikasi yang akan mengidentifikasi serangan terhadap suatu komputer atau network, dan melaporkan serangan yang terjadi kepada Anda. Ada beberapa keuntungan menggunakan IDS, yaitu: Mendeteksi serangan Mendeteksi serangan adalah tujuan utama IDS. IDS akan memberitahu Anda jika jaringan Anda terserang worm, atau jika ada sesuatu kegiatan yang mencurigakan di komputer Anda. Mengaudit Jejak Serangan IDS dapat melakukan audit terhadap serangan yang telah terjadi. IDS akan melacak dari mana asal serangan dan sejauh mana kerusakan yang terjadi. Alat pengambil keputusan IDS dapat memberikan informasi bagaimana firewall Anda bekerja dan berapa banyak orang yang menginginkan sistem Anda (menyerang). Ini sangat berguna bagi Anda untuk mengambil keputusan tentang keamanan sistem di perusahaan. Konsep IDS Setiap aspek dari teknologi informasi mempunyai bahasa sendiri-sendiri dan tidak terkecuali dengan IDS. Dengan memahami kata kunci yang digunakan akan memudahkan kita dalam menggunakan alat tersebut. Konsep dari IDS sendiri adalah apa yang disebut dengan false positive dan false negative. False postive adalah peringatan yang dihasilkan oleh IDS karena telah mendeteksi adanya serangan yang valid terhadap sistem yang kita monitor, tetapi serangan itu sendiri tidak valid. Ini adalah masalah bagi kita karena banyaknya peringatan yang dibuat oleh IDS padahal serangan yang sebenarnya, tidak terjadi. False positive bisa terjadi karena: IDS mendeteksi serangan ke suatu network, padahal itu bukan serangan. Serangan yang sebenarnya terjadi pada sistem yang tidak dimonitor. False negative adalah serangan yang benar-benar terjadi tetapi tidak terdeteksi oleh IDS. IDS bisa melewatkan serangan karena menganggap serangan yang dilakukan tidak sesuai dengan rule, atau karena terlalu banyak serangan, atau bisa juga karena penyerang berhasil melumpuhkan IDS. Dampak dari false negative inilah yang kita takutkan: penyerang yang berhasil melewati IDS, sama artinya dengan ada yang menyerang Anda, tapi Anda tidak menyadarinya! Bagaimana IDS bisa mendeteksi serangan? Setidaknya ada dua cara IDS bisa mendeteksi serangan:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

32

Signature detection IDS yang bekerja menggunakan signature (rule/tanda tangan) 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 akan 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 positive tetapi banyak false negative. Anomaly detection IDS yang menggunakan anomaly detection bekerja menggunakan cara yang berbeda. IDS akan mengenal traffic normal jaringan Anda dan akan mulai mengingatkan Anda bila ternyata ada traffic yang abnormal. Sayangnya, sesuatu yang baru atau berbeda juga bisa dianggap abnormal. Jadi jika kita menggunakan metode ini IDS akan memberikan sedikit false negative tetapi banyak false positive. Beberapa IDS ada yang menggunakan signature detection, tapi ada juga yang menggunakan anomaly detection, dan ada juga yang menggunakan keduanya. Snort sendiri menggunakan signature detection. NIDS dan HIDS Berdasarkan penggunaannya, ada dua jenis IDS yaitu: Network-based IDS (NIDS) dan Host-based IDS (HIDS). Network-based IDS (NIDS) menganalisa paket data yang dianggap serangan yang melintas melewati network. NIDS melakukan beberapa tugas berikut: NIDS menganalisa serangan pada traffic network menggunakan signature atau anomaly detection (atau keduanya). Network interface card tidak memilih-milih paket yang ada (promiscuous mode), artinya ia akan meng-capture semua lalu lintas jaringan yang melewati NIC, tidak hanya traffic yang diperuntukkan bagi sistem IDS saja. Membuat peringatan secara real-time untuk memberitahukan Anda akan datangnya serangan. Membuat log secara rinci saat terjadi serangan, ini berguna untuk menganalisa penyerang setelah terjadinya serangan. NIDS dapat didesain sesuai dengan infrastruktur jaringan Anda. Snort adalah contoh terbaik dari NIDS Host-based IDS (HIDS) Jika NIDS memonitor lalu lintas di jaringan, maka HIDS hanya memonitor pengacau di komputer yang menjalankannya. HIDS melakukan beberapa tugas berikut: HIDS mencari serangan dari paket network yang masuk, menggunakan signature atau anomaly detection. Biasanya, NIC di sistem yang menjalankan HIDS tidak berjalan di promiscuous mode. HIDS memeriksa log di sistem untuk mencari serangan yang terjadi. HIDS mengecek integritas file di sistem. Cara ini dilakukan dengan membandingkan file yang telah dimodifikasi dalam sistem. Selain itu Anda juga bisa mengetahui file-file yang telah dibuat atau dihapus. Ini berguna untuk mendeteksi apakah program backdoor atau trojan telah terinstall di dalam sistem.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netPengenalan dengan Snort

33

Snort (mempunyai logo bergambar babi) adalah Networkbased IDS yang menggunakan signature detection; berfungsi juga sebagai sniffer dan packet logger. Snort pertama kali dibuat dan dikembangkan oleh Marti Roesh, lalu menjadi sebuah opensource project. Versi komersial dibuat oleh SOURCEFIRE. Ada beberapa NIDS lain yang tersedia di pasaran selain Snort. Dua nama besar lainnya adalah ISS RealSecure dan Cisco IDS (commercial). Sedangkan yang mempunyai lisensi opensource adalah the Prelude IDS dan BSD. Apa saja kelebihan snort dibandingkan IDS lainnya: Berukuran kecil Source code dan rules untuk rilis 2.1.1 hanya 2256k Portable untuk banyak OS Telah diporting ke Linux, Windows, OSX, Solaris, BSD, IRIX, Tru64, HP-UX, dll Cepat Snort mampu mendeteksi serangan pada 100Mbps network Mudah dikonfigurasi Snort sangat mudah dikonfigurasi sesuai dengan kebutuhan network kita. Bahkan Anda juga dapat membuat rule sendiri untuk serangan baru. Free Anda tidak perlu membayar sepeser pun untuk menggunakan snort. Snort bersifat open source dan menggunakan lisensi GPL. Komponen Snort Snort merupakan packet sniffing yang sangat ringan. Sniffing interface yang digunakan berbasis libpcap (di unix tersedia dengan tcpdump, www.tcpdump.org). Pembuat snort sangat fokus pada engine yang digunakan untuk mendeteksi serangan dan memanfaatkan tools tcpdump untuk mengambil paket network. Salah satu keunggulan snort memang karena memiliki plugin sistem yang menjadikannya sangat fleksibel. Ada beberapa komponen snort yang tiap komponennya mempunyai tugas masingmasing. Gambar berikut menjelaskan beberapa komponen snort.

Pada saat ada paket network yang melewati Ethernet di tempat snort dipasang, maka ada beberapa hal yang dilalui: Packet capture library (libpcap) Packet capture library akan memisahkan packet data yang melalui ethernet card untuk selanjutnya digunakan oleh snort.

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netPacket decoder

34

Packet decoder mengambil data di layer 2 yang dikirim dari packet capture library (proses 1). Pertama ia akan memisahkan Data Link (seperti ethernet, TokenRing, 802.11) kemudian protokol IP, dan selanjutnya paket TCP atau UDP. Setelah pemisahan data selesai, Snort telah mempunyai informasi protokol yang dapat diproses lebih lanjut. Preprocessor Selanjutnya dilakukan analisis (preprocessor) atau manipulasi terhadap paket sebelum dikirim ke detection engine. Manipulasi paket dapat berupa ditandai, dikelompokkan atau malah dihentikan (drop). Detection engine Inilah jantung dari Snort. Paket yang datang dari packet decoder akan ditest dan dibandingkan dengan rule yang telah ditetapkan sebelumnya. Rule berisi tandatanda (signature) yang termasuk serangan. Output Output yang dihasilkan berupa report dan alert. Ada banyak variasi output yang dihasilkan Snort, seperti teks (ASCII), XML, syslog, tcpdump binary format, atau Database (MySQL, MsSQL, PostgreSQL, dsb). Memilih Lokasi Snort Faktor yang menentukan keefektifan dari Snort adalah lokasi. Sebelum memulai menginstall snort, tentukan lebih dahulu apa yang Anda lindungi: Single Server Sekelompok Server Semua subnet Setelah menetukan apa yang akan dimonitor, Anda bisa leluasa menentukan dimana akan meletakkan snort. Jadi untuk menempatkan snort tergantung kepada apa yang akan Anda monitor. Gambar berikut ini merupakan contoh umum menempatkan snort:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

35

Gambar tersebut merupakan topologi network secara umum. Network tersebut menggunakan firewall untuk memisahkan server publik ke dalam DMZ dan jaringan lokal ke dalam Internal NAT Network. DMZ (De-Militarized Zone) adalah daerah untuk menempatkan server public yang sering diakses melalui internet. Server seperti email, web, atau FTP bisa Anda letakkan di sini secara berkelompok. Biasanya zone di daerah ini banyak mengalami lalu lintas data dari internet. NAT (Network Address Translation) adalah cara untuk menyembunyikan beberapa komputer yang menggunakan IP private di belakang IP publik. Dengan menggunakan NAT, komputer internal di jaringan tetap bisa menggunakan internet meskipun menggunakan IP private. Tetapi sebaliknya, pengguna internet tidak bisa mengenali workstation yang ada di dalam NAT. Kenapa kita perlu memisah kedua jaringan ini? Jika di suatu perusahaan hanya menggunakan internet untuk jaringan komunikasi internal seperti mengirim email atau browsing mungkin tidak menjadi masalah. Tetapi jika perusahaan juga membutuhkan server web/email sendiri untuk menjalankan bisnisnya, maka berhati-hatilah: Anda telah mengatakan kepada dunia tentang www.perusahaan-anda.com. Artinya semua orang di dunia juga bisa bermain-main dan mengerjai server Anda. Oleh karena itu, jika server yang terletak di DMZ misalnya berhasil ditembus oleh cracker, maka kerusakan dapat diminimalkan karena mereka tidak dapat keluar dari DMZ ke jaringan internal. Jadi setiap Anda menempatkan server public, di situ juga harus dipasang snort. Jika network Anda menggunakan DMZ, maka setidaknya lakukan hal berikut: Buat satu port di switch DMZ sebagai monitoring port. Tambahkan perintah di snort.conf untuk memonitor subnet tersebut.

Menginstall SnortSnort bisa dijalankan pada hardware yang minimum. Snort termasuk program yang ringan. Untuk memonitor network dengan kecepatan 10Mbps bisa menggunakan CPU

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

36

kelas Celeron atau Duron. Jika ingin memonitor jaringan 100Mbps setidaknya gunakanlah Pentium III atau Athlon XP. Untuk memory, gunakan setidaknya 128 MB. Sedangkan harddisk bisa menjadi kebutuhan yang tertinggi di sini. Harddisk berguna untuk mencatat log/alert yang dihasilkan oleh sensor snort. Anda membutuhkan setidaknya 20GB untuk kebutuhan logging. Snort tersedia dalam paket source dan RPM. Untuk menginstall snort menggunakan RPM bisa dilakukan dengan mengetikkan perintah rpm ivh seperti contoh berikut:[root@frodo root]# rpm -ivh snort-2.2.x-x.i386.rpm Preparing... ########################################### [100%] 1:snort ########################################### [100%]

Tetapi Anda tidak dianjurkan menginstall melalui RPM. Untuk mendapatkan hasil yang efisien sesuai dengan kebutuhan hardware Anda, sebaiknya snort dicompile melalui source. Untuk menginstall snort melalui source, harus kita siapkan terlebih dulu software yang dibutuhkan yaitu libpcap dan PCRE. Selanjutnya, lakukan langkah berikut untuk mengcompile Snort: 1. Buat user dan group baru untuk menjalankan Snort:# groupadd snortgroup # useradd -g snortgroup snortuser

2. 3. 4.

Buat folder untuk menyimpan file konfigurasi Snort. Buat folder untuk menyimpan log file. Ekstrak tarball Snort ke direktori /usr/local/src

# mkdir -p /usr/local/snort/etc

# mkdir /var/log/snort

# cd /usr/local/src # tar -xvzf tarballs/snort-2.1.0.tar.gz

5. Jalankan configure yang akan memeriksa kesiapan untuk mengcompile Snort di sistem.# ./configure --with-mysql=/usr/local/mysql

Sebenarnya ada beberapa opsi lain yang bisa Anda gunakan saat mengcompile snort sesuai dengan kebutuhan yang diinginkan, yaitu:Table Option Konfigurasi SnortSwitch --enable-debug --with-snmp --enable-smbalerts --enable-flexresp --with-mysql=DIR --with-odbc=DIR --with-postgresql=DIR --with-oracle=DIR --with-openssl=DIR --with-libpq-includes=DIR Turn on the debugging options. Enable SNMP alerting code. Enable SMB alerting code. Enable the "Flexible Response" code. Turn on support for MySQL. Turn on support for ODBC databases. Turn on support for PostgreSQL. Turn on support for Oracle. Turn on support for OpenSSL. Set the support directories for PostgreSQL. Action

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.netTable Option Konfigurasi SnortSwitch --with-libpq-libraries=DIR --with-libpcap-include=DIR --with-libpcap-libraries=DIR --prefix=PATH --exec-prefix=PATH --help Action Set the library directories for PostgreSQL.

37

Point the configure script in the right direction for the libpcap include files. Point the configure script in the right direction for the libpcap library files. Set the install directory to PATH rather than /usr/local. Set the install directory for the executables and libraries to PATH; install all other files in the usual place. Print out all the available options.

6.

Mulai mengcompile Snort:

# make # make check # make install # exit

Memulai Snort Snort tidak lah terlalu sulit untuk digunakan, tetapi memang dalam penggunaannya banyak bermain dengan command line. Snort bisa bekerja dalam tiga mode, yaitu: Sniffer Packet Logger Network Intruder Detection System (NIDS) Sniffer Mode Pertama kita akan mencoba dari dasar. Jika kita ingin menampilkan paket header TCP/IP di layar, bisa menggunakan perintah:./snort v

Perintah tersebut akan menampilkan IP dan header TCP/UDP/ICMP. Jika ingin menampilkan aplikasi data yang melintas, gunakan perintah:./snort vd

Perintah di atas akan menampilkan paket data melintas. Jika Anda ingin menampilkan yang lebih detail, yaitu dengan menampilkan header data link layer, maka bisa dilakukan dengan perintah berikut:./snort vde (atau bisa ditulis ./snort v d e)

Packet logger Sekarang kita akan mencoba snort untuk bekerja sebagai packet logger. Sebelum memulai membuat log, tentukan terlebih dulu direktori tempat penyimpanan log (misal /var/log/snort ). Jika Anda tidak menentukan direktori tempat penyimpanan log, maka snort akan menampilkan pesan kesalahan. Selanjutnya untuk memulai menyimpan paket data kedalam log, lakukan perintah berikut:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net./snort dev l ./var/log/snort

38

Saat snort berjalan dalam modus ini, setiap paket data yang diterima akan dicatat dan ditempatkan dalam direktori sesuai dengan alamat IP.

Network Intruder Detection System (NIDS) Untuk mengaktifkan NIDS, Anda bisa mencoba :./snort dev l ./var/log/snort h 172.20.1.0/24 c snort.conf

Dimana snort.conf adalah nama file rule (kriteria paket yang kita anggap sebagai intruder). Jadi perintah tersebut akan menggunakan rule yang terdapat dalam snort.conf untuk mengambil tindakan atas paket yang melintas dalam network. Beberapa hal yang perlu diperhatikan adalah jika snort akan digunakan sebagai IDS dalam jangka waktu lama, maka Anda tidak perlu menggunakan perintah v untuk mendapatkan kecepatan yang lebih baik. Kecepatan monitor sangat lambat untuk menulis data dan paket juga dapat di saat menulis di monitor. Anda juga tidak perlu merekam header data link layer untuk semua aplikasi, oleh karena itu perintah e juga bisa dimatikan. Sehingga Anda cukup menggunakan perintah:./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf

Perintah diatas merupakan konfigurasi dasar snort sebagai NIDS. Paket yang sesuai rule akan disimpan (dalam bentuk ASCII) ke stuktur hierarki direktori. Mendapatkan Rule Snort Anda bisa mendapatkan rule snort di alamat http://www.snort.org/pub-bin/downloads.cgi di bagian "Sourcefire VRT Certified Rules - The Official Snort Ruleset (unregistered user release)".

Menginstall BASE dengan SnortBASE (Basic Analysis and Security Engine) adalah query atau analisa dari snort yang ditampilkan dalam bentuk web based. Menggunakan BASE tentu saja akan memudahkan Anda dalam menganalisa peringatan yang dikeluarkan snort. Tidak sulit untuk menginstall BASE yang Anda perlukan hanya mengupload file di direktori web server dan instalasi bisa berjalan dalam modus web. Misal alamat webserver Anda www.nama-server.com/base. Maka akan tampil Seperti tampilan berikut:

Muhammad Adri Learning Centrehttp://elearning.muhammadadri.co.cc Copyright 2009 muhammadadri.net

39

Click Continue Step 1. Masukkan direktori ke ADODB (/var/www/adodb):

Click Submit Query Step 2. Masukkan informasi yang dibutuhkan :

click Submit Query

Muhammad Adri L