Anda di halaman 1dari 6

KEAMANAN WEB SYSTEM

A. Faktor-Faktor Timbulnya Serangan


1. Scripting
Kesalahan dalam scripting pembuatan web adalah hal terbanyak yang dimanfaatkan oleh
para attacker, sehingga rata-rata web yang berhasil diserang melalui lubang ini. Kelemahankelemahan scripting yang ditemukan pada proses vulnerabilities scanning misalnya, XSS, SQL
Injection, PHP Injection, HTML Injection, dan lain sebagainya. Begitu pula pada CMS semisal
Mambo, Joomla, WordPress, dan lainnya. CMS tersebut memiliki banyak komponen pendukung
di internet yang bisa kita download, implement dan konfigurasi. Sehingga sangat memungkinkan
sekali terdapat bug pada scriptingnya. Langkah terbaik tentunya melakukan pembedahan (oprek)
terhadap book serta melakukan pengujian sebelum komponen tersebut kita gunakan pada web
yang sebenarnya. Pengujian bisa dilakukan melalui localhost pada komputer dengan menginstall
PHP, apache, dan mySQL, atau menginstall module semisal WAMP ataupun XAMPP yang
merupakan paket all in one. Untuk mengatasi hal tersebut sebaiknya kita harus mulai belajar dan
memahami scripting-scripting secara bertahap, baik HTML, PHP, javascript, dan sebagainya.
CMS tersebut sebenarnya cukup aman, namun komponen tambahan yang tidak dibuat dengan
baik, tentu saja bisa menimbulkan masalah besar bagi sistem secara keseluruhan.
2. Lubang pada Situs Tetangga
Ini merupakan salah satu faktor yang jarang mendapat perhatian. Sebagian webmaster
kadang tidak begitu peduli ketika web lain yang satu hosting dihacked. Mereka berpikiran, Ah,
toh bukan web saya yang kena. Padahal justru di sinilah letak kesalahannya. Logikanya, misal
web kita ditempatkan pada perusahaan hosting A. itu artinya web kita bertetangga dengan web
milik orang lain yang berada dalam 1 hosting. Jika web tetangga tersebut memiliki celah fatal,
sehingga attacker bisa menanam module yang dijadikan backdoor. Dengan backdoor inilah
attacker bisa masuk ke dalam web kita bahkan web lainnya. Bukan itu saja, tidak mustahil
attacker melakukkan defacing massal, termasuk web kita tentunya.
3. Tempat Hosting yang Bermasalah
Pada beberapa kasus justru tempat hosting yang bermasalah menjadi sebab dihackednya
banyak situs yang berada di bawah pengelolaannya. Pernah terjadi situs milik sebuah perusahaan
dideface. Kemudia setelah diperbaiki, dideface lagi. Kemudian lapor ke admin perusahaan
hosting, justru balik menyalahkan pemilik situs dengan alasan yang nggak masuk akal.
Kenyataannya, justru web hosting itu yang nggak pernah di administrasi dengan baik, jarang
diupdate, dan jarang dipatch, sehingga mudah terkena serangan. Dengan indication pengelolaan
yang seperti ini jangan berharap web kita akan aman. Karena itu, pastikan tempat hosting yang
digunakan benar-benar memperhatikan tingkat keamanan bagi pelanggannya.
B. Macam-Macam Tindakan Hacking
Dari kelemahan-kelemahan tersebut di atas, maka terjadilah beberapa tindakan hacking
terhadap web yang kita miliki. Apa saja tindakan-tindakan hacking tersebut? Berikut beberapa di
antaranya :
1. Memodifikasi Validasi Input
Biasanya para assailant mencoba menguji validasi-validasi submit yang diterapkan pada
form dan parameter buangan pada residence club dalam melakukan proses attacking.

Penanganan yang harus diperhatikan adalah memperhatikan validasi yang terdapat pada form,
baik itu validasi angka maupun validasi string, batasi jumlah karakter yang bida dimasukkan,
batasi jumlah karakter yang bisa dimasukkan, batasi kegiatan-kegiatan injeksi dengan :
strip_tags(), htmlspecialchars(), gunakan non-static tellurian sebagaimana mestinya dan gunakan
wordfilter untuk memfilter berbagai inputan yang berbahaya.
2. Cross-Site Scripting (XSS)
Salah satu vulnerabilities dalam website adalah Cross-Site Scripting (XSS). Ada 2 jenis
aksi yang biasa dilakukan dalam XSS, yaitu - Direct Action, merupakan injeksi kode yang
dilakukan oleh attacker, tetapi hasil injeksinya hanya ditampilkan pada komputer user
bersangkutan. - Stored Action, merupakan injeksi kode yang dilakukan oleh attacker dan hasil
injeksinya bisa dinikmati oleh banyak pengunjung. Bagaimana mengatasi hal ini? Usahakan
semua kode-kode spesial yang mempunyai arti dalam scripting HTML seperti < (kurang dari), >
(lebih dari), & (ampersand), (kutip dua) dan (kutip satu) tidak dieksekusi sebagai karakter
spesial. Semua karakter spesial tersebut harus diubah. Semua karakter spesial tersebut harus
diubah dan dikonversi ke entitas HTML.
3. SQL Injection
Kegiatan attacking yang banyak dilakukan akhir-akhir ini adalah SQL Injection, karena
SQL Injection merupakan teknik hacking yang sudah tersebar luas dan relatif mudah dipahami.
Attacker melakukan proses attacking dengan menyisipkan perintah-perintah SQL pada form
ataupun pada residence bar. Untuk mengatasi hal ini, sebaiknya kita membatasi inputan dengan :
htmlspecialchars(), mysql_escape_string() dan hubungi director hosting kita untuk merubah :
magic_quotes_gpc=on.
4. PHP Injection
web yang kita miliki bisa dideface, didirect dan dikuasai orang lain? Ya, ada teknik PHP
Injection. Attacker mempergunakan sploit yang sudah ditanam di remote server miliknya dan
hanya dengan mengeksekusi sript sploit tersebut melalui residence club dan melakukan connect
back, maka terkuasailah web kita. Untuk mengatasi hal ini, pastikan penggunaan record
approach dengan embody () harus dikurangi dan sering-seringlah melakukan refurbish terhadap
aplikasi yang kita gunakan. Jika kita memakai CMS, sering-seringlah melakuakn refurbish
CMSnya, begitu pula dengan komponen yang digunakan.
C. Dasar-Dasar Pengamanan
Setelah sedikit mengetahui hal-hal di atas, maka sekarang kita membahas tentang strategi
dasar pengamanan web. Pada dasarnya, strategi pengamanan web yang dapat kita lakukan di
antaranya sebagai berikut :
1. Pemilihan Sistem Operasi (OS), Setting Server, dan Desain Aplikasi
Salah satu hal penting yang harus dicermati adalah pemilihan sistem operasi (OS).
Seberapa besar pengamanan yang dibutuhkan sangat berhubungan dengan sistem operasi.
Sebagai ilustrasi, meskipun sistem operasi semisal Windows 9x bisa dijadikan sebagai server
web dengan keterbatasannya melalui Personal Web Service (PWS), sistem ini tidak cukup
apabila pengamanan merupakan faktor penting. Salah satu kelemahannya Windows 9x tidak
dapat menyediakan NTFS yang sangat penting untuk kontrol akses. Setting konfigurasi pada

server yang tidak memadai dan hanya mengandalkan default merupakan faktor utama penyebab
server yang dibangun tidak terjamin keamanannya. Penentuan kebijakan dalam menerapkan
sistem pengamanan ini merupakan kunci utama yang harus diperhatikan untuk diterapkan
pertama kali. Ironisnya justru hal ini merupakan hal yang pale sering diabaikan.
2. Instalasi Patch
Idealnya, module yang kita pakai mestinya sudah sempurna sejak awal. Namun
kenyataannya tidak pernah ada module yang benar-benar 100% bugs free. Ada saja bagian
module yang rawan keamanan. Pada saat kerawanan tersebut ditemukan biasanya perusahaan
pembuat module akan mengeluarkan aplikasi baru untuk memperbaiki kesalahan module
terdahulu. Aplikasi inilah yang dikenal dengan nama patch. Meskipun penggunaan istilah ini
sekarang juga digunakan bagi para cracker untuk membajak sebuah module resmi. Penerapan
patch ini harus dilakukan pada sistem operasi, server web, add on, maupun file-file komponen
lain yang terintegrasi dengan web kita. Kemalasan, ketidaktahuan, serta kesibukan admin server
membuat mereka tidak konsisten menerapkan patch ini. Sangat ironis jika dibandingkan dengan
kemudahan dalam instalasi patch tersebut.
3. Kontrol Akses
Penentuan siapa yang dapat mengakses server harus dilakukan dengan menggunakan
kontrol akses, baik dengan autentikasi maupun otorisasi. Autentikasi adalah proses validasi
identitas yang dilakukan dengan membandingkan interpretation user yang dikirim dengan
interpretation yang terdapat dalam database. Setelah melakukan autentikasi, langkah selanjutnya
yaitu melakukan otorisasi yang merupakan proses untuk menentukan apakah pengguna memiliki
ijin untuk melakukan tindakan yang diminta. Ada dua tipe dasar autentikasi, yaitu berbasiskan
akses direktori dan autentikasi berbasiskan form. Khusus untuk Windows ada tipe autentikasi
lain yaitu autentikasi passport. Sedangkan otorisasi terbagi dua bentuk, yaitu ACL (Access
Control Listi) dan hostname.
4. Audit dan Log File
Audit diperlukan untuk menunjang cara-cara pengamanan yang telah dijelaskan di atas.
Proses monitoring aktivitas tertentu seperti usaha login (berhasil atau gagal), dan kemudian
menuliskannya ke dalam record ini merupakan proses audit. Sebagai contoh, kita dapat
menganalisa dengan mengaudit kegagalan usaha login dalam log, memungkinkan kita
menentukan saat seseorang berusaha menyerang server. .. Untuk mengaktifkan sistem review dan
record sangat bergantung pada sistem operasi, aplikasi server yang dijalankan, database yang
digunakan, dll. Pada sistem Posix (*nix: unix dan variannya (linux, FreeBSD)), record
defaultnya berada di /var/log yang pengaktifannya bergantung pada aplikasi atau proses apa yang
ingin diaudit. Log server web yang kita jalankan dikonfigurasikan di record konfigurasi server
apache (defaultnya httpd.conf)
5. Menerapkan Kriptografi
Selanjutnya, juga perlu diketahui bagaimana proses pengiriman lewat protokol http, baik
permintaan layanan maupun respon berupa teks biasa (plaintext). Kemungkinan attacker untuk
melakukan tindakan kriminal dengan mencuri interpretation sensitif seperti password, e-mail
atau nomor kartu kredit sangat besar kemungkinannya. Untuk menjaga informasi semacam ini
tetap aman, diperlukan enkripsi yang membuat plaintext menjadi ciphertext (teks yang tidak

terbaca akibat proses enkripsi). Proses kebalikan dari enkripsi yaitu deskripsi. Ilmu yang
mempelajari tentang keamanan informasi inilah yang disebut kriptografi. Pada turn sistem
operasi, penerapan yang dilakukan untuk mengamankan server web adalah dengan menggunakan
SSL. Secara default komunikasi SSL terjadi pada pier 443 dengan prefiks https:// untuk url yang
menggunakan SSL. Untuk mengaktifkan SSL pada server diperlukan sertifikat server.
Pembuatan server ini dapat diajukan kepada pemegang sertifikat pihak ketiga yang sudah
terkenal seperti Verisign atau bahkan bisa juga dengan membuat sendiri. Secara default
konfigurasi SSL pada apache terletak pada direktori httpd di mana server apache diinstall.
D. Penerapan Dasar-Dasar Pengamanan
Dari dasar-dasar pengamanan di atas, kita dapat menerapkan ke dalam 3 turn keamanan
sebagai berikut :
1. Level Sistem Operasi (OS) dan Hardware
Cakupan turn akses ini menjangkau hadware server, network, dan sistem operasi yang
digunakan. Jika web kita pengelolaannya dilakukan oleh perusahaan hosting, maka tanggung
jawab ini ada pada admin sistem perusahaan hosting tersebut. Oleh karena itu kita harus tahu
dengan yakin apakah perusahaan hosting tempat web kita berada cukup terpercaya dan dapat
diandalkan. Terutama jika web kita dinilai memang cukup berharga. Namun sebaliknya, jika
pengelolaan web kita pegang sendiri, atau dengan kata lain kitalah yang menjadi adminnya, ada
baiknya jika melakukan hal-hal sebagai berikut :
- Back up full dan differential secara periodik dan otomatis
- Mengaktifkan firewall - Mengaktifkan sistem loging yang baik dan efektif untuk keperluan
review dan monitoring
- Untuk OS *nix, mengaktifkan Intrusion Detection atau akan lebih baik jika menggunakan IPS Untuk OS *nix, mengaktifkan detektor malicious code seperti Tripwire atau dengan membuat
sendiri
- Untuk OS *nix, mengaktifkan detektor scan, SATAN, seperti courtney, icmpinfo, klaxon, snort,
atau dengan membuat book sendiri
- Menerapkan otorisasi ACL dengan melakukan restriksi pada user, direktori, dan record dengan
akses pale terbatas. Semua akses rwx group, sebaiknya di nonaktifkan dan akses untuk other
sebaiknya tidak bisa melakukan write
- Untuk OS *nix, sebaiknya menggunakan perintah chown dan chmod
- Untuk OS Windows, menggunakan properti record atau direktori dan menyetting user serta hak
aksesnya
- Selalu melakukan patching atau ascent dengan versi yang lebih baru atau stabil
- Tidak memperbolehkan user menggunakan module remote seperti telnet. Jika terpaksa, lebih
baik diganti dengan menggunakan use yang lebih aman seperti SSH dan mengubah pier
defaultnya (port 22) menjadi pier lain.
- Menonaktifkan semua use yang tidak diperlukan
- Jika perlu menggunakan SSL

2. Level Akses Host


Level berikutnya untuk memperkuat keamanan web yaitu mengaktifkan restriksi akses
turn host. Dengan kata lain, implementasi otorisasi horde dilakukan di sini. Pertama, kita harus
menentukan dahulu IP/host atau ID network mana saja yang boleh mengakses web kita. Atau
bahkan bisa juga untuk memblokir IP/host yang tidak diharapkan. Untuk mengaktifkannya, kita
harus menambahkan perintah seperti berikut :
Order deny,
allow Deny from all
Allow from .situskita.com
Allow from 123.123.123.123
Yang dapat disisipkan dikonfigurasi daemon http (defaultnya httpd.conf) maupun di record
.htaccess. Atau jika menggunakan fasilitas CPanel, dapat melakukan konfigurasi pada menu yang
tersedia.
3. Level Akses Direktori dan File Level Akses Direktori
Lakukan proteksi pada direktori yang dianggap penting dan bukan untuk konsumsi
umum, seperti direktori administrator, login, dll. Keamanan direktori tersebut yang umumnya
hanya 1 turn keamanan, bisa ditingkatkan menjadi 2 turn keamanan dengan menambah 1 turn
akses keamanan lagi, yaitu autentikasi akses direktori. Sehingga ketika akan melakukan login,
sebelum masuk ke menu login administrator, akan muncul terlebih dahulu jendela autentikasi
yang berisi user dan password. Di mana sebaiknya user dan passwordnya berbeda dengan user
dan cue untuk login pada direktori web. Cara mengatifkannya cukup dengan melakukan
konfigurasi autentikasi user dan cue pada Cpanel web kita, jika kendali web ada pada kita. Level
Akses File
- Selalu melakukan behind up secara berkala (full dan differential)
- Menghapus record instalasi dan direktorinya - Aktif di forum yang membahas tentang
keamanan website
- Mengganti user admin menjadi nama yang tidak menunjukkan account admin
- Jika menggunakan CMS sebaiknya tidak menginstall komponen yang masih versi beta, kecuali
kita yakin tidak ada bugs yang berkaitan dengan keamanan atau kita sendiri yang telah
melakukan modifikasi.
- Tidak mengaktifkan komponen yang tidak diperlukan. Bahkan lebih baik lagi jika di uninstall
atau dihapus
- Jika menggunakan fasilitas registrasi part of pada forum atau semacamnya, sebaiknya tidak
memberikan akses registrasi user, kecuali jika memberlakukan sistem registrasi yang ketat.
Misalnya dengan mengaktifkan e-mail activation pada user yang melakukan registrasi.
- Tambahkan perintah : Disallow: /administrator/ atau Disallow: /[nama_direktori]/ pada record
robots.txt [nama_direktori] adalah direktori yang tidak ingin ditampilkan pada search engine
- Setelah selesai melakukan development, jangan lupa melakuakn restriksi attribut untuk semua
record dan direktori. Semua akses rwx group, sebaiknya di nonaktifkan dan akses untuk other
sebaiknya tidak bisa melakukan write, kecuali untuk direktori cache ataupun direktori upload dan
semacamnya yang memang diperlukan oleh server web
- Jika situs kita memberikan fasilitas kepada pengunjung untuk mengupload file, pastikan bahwa
fasilitas tersebut tidak dapat digunakan untuk mengupload file book seperti php, cgi, pl, sh, dll. Mengaktifkan sef dan alias manager

- Mengubah nama direktori director menjadi nama direktori yang tidak mencerminkan direktori
admin. Nama direktori director dapat saja tetap dipertahankan untuk membuat suatu fake atau
decoy seolah-olah direktori tersebut yaitu direktori admin. Dan untuk lebih meyakinkan, dapat
kita proteksi juga direktori fake ini dengan .htaccess
- Jika menggunakan CMS dan berniat membuat komponen sendiri, pastikan selalu
menambahkan perintah : defined( _VALID_MOS ) or die( Direct Access to this place is not
allowed. ), di awal baris setiap record PHPnya
- Jika memungkinkan, pindahkan direktori director sedemikian rupa sehingga direktori tersebut
sejajar dengan direktori base record inti web kita secara fisik. Gunakan alias untuk membuat
direktori pada konfigurasi server apache kita agar direktori ini dapat diakses. Apa yang telah saya
tulis di atas, bukanlah suatu hal yang mutlak harus dilakukan keseluruhannya. Namun lebih
kepada kebutuhan kita sendiri. Mungkin memang sedikit terkesan phobia dan berlebihan. Tapi
bagi web yang memiliki tingkat bisnis dan reputasi tinggi, mempertahankan keamanannya adalah
suatu hal yang mutlak