3.1 Website merupakan salah satu
sistem informasi yang digunakan untuk promosi kantor, perusahaan, sekolah,
bahkan sekedar buku harian on line. Namun website tidak bisa terlepas dari segi
keamanan.
Tetapi kebanyakan para webmaster
hanya mengutamakan design dan topik apa yang harus disediakan supaya menarik
pengunjung sebanyak-banyaknya. Padahal jika seorang webmaster mengabaikan
keamanan suatu website, maka yang dirugikan adalah webmaster itu sendiri serta
institusi pemilik dari website tersebut.
Keamanan suatu website atau web
security systems merupakan salah satu prioritas yang sangat utama bagi seorang
webmaster. Jika seorang webmaster mengabaikan keamanan suatu website, maka
seorang hacker dapat mengambil data-data penting pada suatu website dan bahkan
pula dapat mengacak-acak tampilan website(deface) tersebut.
Beberapa 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.
Kelemahan-kelemahan 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, install dan konfigurasi.
Sehingga sangat memungkinkan sekali terdapat bug pada scriptingnya. Langkah
terbaik tentunya melakukan pembedahan (oprek) terhadap script 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 software 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 program 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 model pengelolaan yang
seperti ini jangan berharap web kita akan aman. Karena itu, pastikan tempat
hosting yang digunakan benar-benar memperhatikan tingkat keamanan bagi
pelanggannya.
Macam-Macam Tindakan Hacking
Dari kelemahan-kelemahan
tersebut di atas, maka terjadilah beberapa tindakan hacking terhadap web yang
kita miliki. Berikut beberapa tindakan hacking :
1. Memodifikasi Validasi Input
Biasanya para attacker mencoba menguji
validasi-validasi input yang diterapkan pada form dan parameter buangan pada
address bar 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
variable global 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
1. Direct Action, merupakan injeksi
kode yang dilakukan oleh attacker,tetapi hasil injeksinya hanya
ditampilkan pada komputer user bersangkutan.
2. 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 address bar.
Untuk mengatasi hal ini, sebaiknya kita
membatasi inputan dengan : htmlspecialchars(), mysql_escape_string() dan
hubungi administrator 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 address bar dan melakukan connect
back, maka terkuasailah web kita.
Untuk mengatasi hal ini, pastikan penggunaan
file direct dengan include () harus dikurangi dan sering-seringlah melakukan
update terhadap aplikasi yang kita gunakan. Jika kita memakai CMS,
sering-seringlah melakuakn update CMSnya, begitu pula dengan komponen yang
digunakan.
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 paling
sering diabaikan.
2. Instalasi Patch
Idealnya, software yang kita pakai mestinya
sudah sempurna sejak awal. Namun kenyataannya tidak pernah ada software yang
benar-benar 100% bugs free. Ada saja bagian program yang rawan
keamanan. Pada saat kerawanan tersebut ditemukan biasanya perusahaan pembuat
software akan mengeluarkan aplikasi baru untuk memperbaiki kesalahan software
terdahulu. Aplikasi inilah yang dikenal dengan nama patch. Meskipun
penggunaan istilah ini sekarang juga digunakan bagi para cracker untuk
membajak sebuah software 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 data user yang dikirim dengan data 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
log 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 audit dan log sangat
bergantung pada sistem operasi, aplikasi server yang dijalankan, database yang
digunakan, dll. Pada sistem Posix (*nix: unix dan variannya (linux, FreeBSD)),
log defaultnya berada di /var/log yang pengaktifannya bergantung pada aplikasi
atau proses apa yang ingin diaudit. Log server web yang kita jalankan
dikonfigurasikan di file 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 data 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 level sistem operasi,
penerapan yang dilakukan untuk mengamankan server web adalah dengan menggunakan
SSL. Secara default komunikasi SSL terjadi pada port 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.Referensi:
http://www.jabarprov.go.id
No comments:
Post a Comment