Directive Allow dan Deny
Directive Allow dan Deny pada Apache berguna untuk membatasi IP mana saja yang berhak untuk mengakses website/direktori pada website anda. Misalkan saja anda ingin agar PhpMyAdmin di server anda hanya dapat diakses dari jaringan lokal perusahaan anda (misal : 192.168.1.0/24). Maka anda dapat mengubah konfigurasi PhpMyAdmin di Apache menjadi kurang lebih mirip seperti ini :
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
Order deny,allow
Deny from all
Allow from 192.168.1.0/255.255.255.0
</Directory>
Mengubah Nama-Nama Direktori yang Umum
Biasanya, hacker akan melakukan brute-force untuk mencari direktori-direktori atau file-file tertentu, seperti PhpMyAdmin/, admin/, dsb. Karena itu, akan lebih baik jika nama-nama direktori tersebut diubah,sehingga hanya orang-orang tertentu yang mengetahui, misal : PhpMyAdminQuwh/
Selain itu, pastikan anda sudah menghapus direktori/file yang digunakan untuk instalasi. Biasanya beberapa CMS semacam WordPress/Joomla/Moodle memiliki file PHP yang digunakan untuk melakukan instalasi CMS tersebut.
Lanjut ke bagian berikutnya, Pada bagian ini akan dibahas mengenai beberapa hal yang dapat kita lakukan untuk memperkuat web server kita dengan cara mengutak-atik konfigurasi PHP. Berikut ini adalah hal-hal yang dapat kita lakukan :
Disable Functions
Beberapa fungsi di PHP sangat berbahaya apabila digunakan tidak hati-hati. Salah satu contohnya adalah fungsi system() yang dapat digunakan untuk mengeksekusi shell command dari kode PHP anda. Kemudian ada juga fungsi ini_set() yang dapat mengubah konfigurasi php.ini melalui kode PHP yang ada. Fungsi-fungsi seperti ini akan lebih baik jika dinon-aktifkan saja apabila memang tidak ada aplikasi web anda yang menggunakannya. Untuk itulah ada option disable_functions di php.ini. Option ini akan men-disable semua fungsi yang disebutkan di dalamnya. Sehingga jika ada kode PHP yang menggunakan fungsi tersebut, kode tersebut tidak akan berjalan.
Contoh isi disable_functions yang disarankan (setiap nama fungsi dipisahkan dengan tanda koma), dapat ditambahi, dapat juga dikurang sesuai kebutuhan, dapat dilihat di sini
Sebetulnya ada 2 fungsi lagi yang bisa di-disable, yaitu base64_decode dan mysql_pconnect. Untuk mysql_pconnect ini masih tidak terlalu berbahaya jika digunakan. Hanya saja jika digunakan secara sembarangan dapat menghabiskan resource server yang cukup besar untuk menyimpan persistent connection.
Sedangkan base64_decode, biasanya digunakan untuk menyembunyikan kode-kode PHP yang berbahaya dalam bentuk base64, sehingga tidak dapat terdeteksi oleh antivirus atau secara manual. Biasanya fungsi ini akan dipanggil di dalam fungsi eval(). Meskipun begitu, beberapa CMS (moodle), PHP Framework (CodeIgniter), dan PHPMyAdmin menggunakan fungsi ini juga. Jadi jika di-disable, kemungkinan besar, fungsionalitas dari aplikasi-aplikasi tersebut akan terganggu. Karena itu, di bawah ini akan dijelaskan bagaimana agar script-script berbahaya yang bersembunyi dengan base64_decode dapat dicegah.
Disable Eval() Function
Eval adalah sebuah fungsi yang dapat digunakan untuk menjalankan script PHP yang ada di dalam parameter fungsi eval tersebut. Hal ini sangat berbahaya, karena bisa saja fungsi yang dijalankan di dalam eval() adalah fungsi-fungsi untuk meretas sistem kita. Karena itu, fungsi eval ini harus di-disable atau minimal dibatasi kemampuannya.
Option disable_functions tidak dapat mencegah fungsi eval() untuk berjalan, cara lain untuk men-disable eval() adalah dengan menggunakan patch suhosin untuk php. Kelebihan patch ini adalah tidak perlu mengompile ulang php untuk menjalankannya. Di beberapa distro seperti ubuntu, debian, dan fedora, patch ini sudah ada di repository. Jadi kita tinggal install saja di server dengan menggunakan apt-get atau synaptic atau yum. Paketnya biasanya bernama php5-suhosin. Setelah paket ini terinstall, buka file /etc/php5/apache2/conf.d/suhosin.ini (mungkin berbeda untuk distro selain Ubuntu dan Debian).
Kemudian pastikan baris ini aktif (tidak dianggap sebagai komentar) di file tersebut :
extension=suhosin.so
Setelah itu cari 3 baris ini :
- suhosin.executor.eval.whitelist =
- suhosin.executor.eval.blacklist =
- suhosin.executor.disable_eval = off
Baris whitelist digunakan untuk menentukan fungsi-fungsi apa saja yang boleh dieksekusi oleh fungsi eval. Sedangkan blacklist menentukan fungsi-fungsi apa saja yang tidak boleh dijalankan oleh fungsi eval. Apabila kita ingin men-disable eval secara keseluruhan, maka kita harus merubah parameter suhosin.executor.disable_eval menjadi on. Akan tetapi beberapa CMS juga ada yang memanfaatkan fungsi eval ini. Karena itu, kita bisa memanfaatkan blacklist saja untuk mencegah beberapa fungsi berjalan di dalam eval. Isi dari blacklist dapat diisi sama dengan disable_functions tadi, atau cukup ditambahkan fungsi-fungsi tertentu yang tidak boleh berjalan di dalam eval, seperti base64_decode.
Di bagian sebelumnya base64_decode tidak dimasukkan ke disable_function, karena masih banyak yang menggunakannya. Tetapi aplikasi web biasa, jarang menggunakan base64_decode di dalam eval. Biasanya yang seperti itu hanya para pembuat theme CMS yang ingin menyembunyikan kode untuk menampilkan copyrightnya. Oleh karena itu, base64_decode ini didaftarkan saja di blacklist suhosin agar dia tidak berjalan apabila berada di dalam fungsi eval.
Sementara sekian dulu beberapa tips untuk memperkuat pertahanan server web kita, barangkali ada yang kurang atau salah, silahkan dimasukkan ke dalam kolom komentar yang tersedia di bawah.
Berikut ini adalah beberapa ebook yang enak dibaca dan mencakup dasar-dasar keamanan jaringan dan hacking :
Hacking for Dummies 3rd Ed (2010)
Link : Download
Sesuai judulnya, buku ini memberikan dasar-dasar yang ada pada dunia hacking dan keamanan jaringan. Beberapa hal, bagi beberapa orang mungkin terlalu dasar. Tetapi bila anda merupakan orang awam di dunia ini, buku ini merupakan buku yang cocok. Sama seperti serial for dummies yang lain, analogi-analogi dan deskripsi yang ada memudahkan pembaca untuk memahami isinya.
Backtrack 4 – Assuring Security by Penetration Testing (2011)
Link : Download
Backtrack adalah salah satu dari distro Linux yang sering digunakan untuk melakukan penetration testing atau hacking. Buku ini membahas aplikasi-aplikasi yang terdapat pada Backtrack yang dapat digunakan untuk melakukan penetration testing. Dari sisi pembahasan cukup praktikal, tetapi sayangnya buku ini masih menggunakan Backtrack 4, dimana saat post ini dibuat sudah ada versi 5. Tetapi bagi anda yang terbiasa dengan Linux, itu seharusnya bukan masalah yang besar.
Certified Ethical Hacking (CEH) Study Guide (2010)
Link : Download
Certified Ethical Hacking (CEH) adalah sebuah sertifikasi bagi anda yang ingin menjadi seorang penetration tester profesional. Ethical hacker adalah seorang hacker yang memang ditugaskan untuk mencari celah-celah keamanan yang ada dan melaporkannya ke pihak yang menggunakan jasanya. Saat ini, profesi ini belum banyak yang mendalami secara serius. Nah, buku ini adalah buku yang cocok bagi anda yang tertarik untuk mengambil sertifikasi. Karena di dalamnya selain ada penjelasan mengenai teori-teori yang ada, disertai juga dengan contoh praktek dan latihan soal. Bagi anda yang tidak tertarik mengambil sertifikasi ini, buku ini juga tetap enak dibaca.
No comments:
Post a Comment