Deteksi Identifikasi Dan Penanganan Web PDF
Deteksi Identifikasi Dan Penanganan Web PDF
Abstrak
Seiring perkembangan zaman, perkembangan teknologi sangat meningkat yang diikuti dengan perkembangan
permintaan pembangunan web yang digunakan dalam berbagai keperluan seperti pendidikan, bisnis, transaksi
data yang rahasia dan lain sebagainya. Serangan SQL injection dan Cross-Site Scripting adalah dua jenis
serangaan yang paling sering ditemukan dan menghasilkan suatu ancaman yang sangat membahayakan
menurut penelitian OWASP. SQL injection memungkinkan seorang attacker untuk memperoleh data rahasia
dari suatu database. Pada Cross-site scripting, kemampuan social engineering sangat berperan dalam serangan
ini yaitu bagaimana seorang attacker dapat mengambil perhatian dari client untuk mendapatkan informasi yang
rahasia. Selain itu, kedua serangan ini memiliki kesamaan untuk mendapatkan informasi rahasia yang terdapat
di dalam suatu web diantaranya masukan-masukan dari client terhadap form login, url, text field, tag htmln
objek dokumen dan lain sebagainya yang merupakan celah yang mungkin pada web.
Pada paper ini akan dibahas mengenai deteksi, identifikasi dan penanganan terhadap dua jenis serangan
berikut. Pengujian web akan dilakukan pada website Maya Klinik yaitu web yang dibangun oleh tim developer
untuk dilakukan pengujian web menggunakan dua jenis serangan tersebut
1. PENDAHULUAN
Gambar 1. Celah Keamanan pada web [1]
1.1 Latar Belakang
Perkembangan internet diikuti dengan pesatnya 1.2 Tujuan
pertumbuhan website pada saat ini. Website Tujuan yang ingin dicapai pada penelitian ini adalah
berperan sebagai media yang banyak digunakan sebagai berikut.
sebagai media pertukaran informasi dan media a. Mendeteksi, mengidentifikasi dan melakukan
transaksi, tetapi masih banyak website tidak penanganan terhadap serangan SQL Injection
memiliki tingkat keamanan yang baik. Ada begitu dan Cross-site scripting
banyak potensi resiko keamanan dalam website yang b. Memberikan saran bagi developer untuk
bisa dimanfaatkan oleh penyerang. Pada Gambar 1, mencegah terjadinya serangan sql injection dan
ditampilkan data tentang sepuluh celah keamanan Cross-site scripting pada website.
yang paling banyak terdapat pada website yang 1.3 Lingkup
dirilis oleh Open Web Application Security Project Lingkup dalam menyelesaikan persoalan
(OWASP). Apabila celah keamanan ini tidak penelitian ini adalah
dideteksi sejak dini, maka bisa menimbulkan 1. Objek yang digunakan adalah website. Website
dampak negatif bagi website yang menjadi target yang digunakan sebagai objek eksperimen adalah
attacker. Faktor lain adanya timbulnya celah website yang sudah ada dibangun sebelumnya.
keamanan adalah kurangnya pengetahuan developer 2. Jenis serangan yang dibahas adalah serangan
atau pengembang tentang pengamanan website yang SQL injection dan cross-site scripting.
dibangun. 3. Bahasa pemrograman yang digunakan adalah
A1-Injection
A6 Sensitive Data PHP (Hypertext Preprocessor).
Exposure
4. DBMS (Database Management System) yang
A2-Broken
Authentication and
session
A7-Missing
Function Level
digunakan adalah MySQL.
management
Acces Control
5. Saran bagi pengembang website untuk mencegah
A3-Cross-Site
Scripting
A8-Cross-Site
Request Forgery
serangan SQL injection dan cross-site scripting
terhadap website.
A9-Using
A4-Insecure Direct
Obje ct Ref erences
Components with
Known
1.4 Related Work
Vulnerabilities
1. Paper “Practical Identification of SQL Injection
A5-Security
Misconfiguration
A10-Unvalidated
Redirects and Vulnerabilities”. Dalam paper ini dijelaskan
Forwards
mengenai pengujian/testing terhadap SQL
hal 1
Seminar Nasional Ilmu Komputer2014 (SNIKOM)
Laguboti, 20 - 24 Agustus 2014
hal 2
Seminar Nasional Ilmu Komputer2014 (SNIKOM)
Laguboti, 20 - 24 Agustus 2014
hal 4
Seminar Nasional Ilmu Komputer2014 (SNIKOM)
Laguboti, 20 - 24 Agustus 2014
$id = $_GET[‘id’];
Tabel 2. Masukan Berpotensi XSS
if(is_numeric($id)){ Nama Field Celah XSS
//query dijalankan dan aksi selanjutnya Nama
}else{ // berikan aksi} Alamat
Kota
4. Membuat Fungsi No Telepon -
Fungsi untuk menghapus karakter berbahaya yang Keluhan
dimasukkan dan data berbahaya yang dimasukkan Hasil tampilan pada aplikasi ditunjukkan pada
ke dalam aplikasi web tersebut akan ditangani di
dalam aplikasi itu sendiri dan kata berbahaya seperti gambar 9.
UNION, SELECT yang disisipkan tidak akan
dieksekusi dan menjadi suatu string biasa.
function removemaliciouschar($s)
{
return Gambar 9. Hasil Eksekusi XSS
str_replace(array("&","<",">","/","\
\",'"',"'","?","+",";","*","- Terdapat tiga tipe serangan cross-site-scripting
","#"),'',$s); yang digunakan oleh penyerang dalam melakukan
} injeksi script kepada sebuah website dinamis. Web
3.2 Cross-site Scripting simulasi yang digunakan untuk menunjukkan
Pendeteksian awal celah keamanan menggunakan bagaimana XSS itu bekerja pada web yang memiliki
cross-site scripting dilakukan pada web. Deteksi celah terhadap serangan XSS dan bagaimana XSS
adanya celah pada cross-site scripting dilakukan itu tidak bekerja pada web dimana kode programnya
pada url dan field yang menyediakan masukan bagi telah diamankan. Web simulasi yang menggunakan
attacker dan memungkinkan menjadi celah CMS tersebut akan menerapkan semua tipe serangan
keamanan untuk dilakukan eksploitasi menggunakan XSS.
cross-site scripting. Pada field tersebut, attacker Ketika celah ditemukan seperti pada gambar 8,
memasukkan tag html maupun javascript yang maka diidentifikasi jenis serangan yang akan
berbahaya. Berikut adalah field masukan data diri digunakan. Pada Maya Klinik, jenis serangan hanya
pasien pada web MayaKlinik. Data diri pasien menggunakan Stored XSS dikarenakan jika script
dimasukkan oleh receptionist ke aplikasi mayaklinik dari seorang attacker akan dieksekusi langsung pada
melalui field pada aplikasi. Receptionist berperan database. Stored terjadi pada aplikasi maya klinik
untuk mengentri data dan keluhan dari pasien. melalui field masukan data basien berupa tag html
Sedangkan hak akses yang terdapat di dalam aplikasi maupun javascript
yaitu membaca, menulis dan melakukan perubahan <script>alert("XSS Attack")</script>
data pasien. Seluruh pengguna aplikasi mayaklinik
dapat mengakses data pasien kecuali apoteker. Script berikut di injeksikan pada field alamat yang
Berikut adalah tampilan field tambah pasien pada memiliki panjang data yang lebih dari field lain pada
aplikasi. aplikasi. Berikut adalah tampilan pada aplikasi
hal 5
Seminar Nasional Ilmu Komputer2014 (SNIKOM)
Laguboti, 20 - 24 Agustus 2014
$ip = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$data = $_GET[c];
$time = date("Y-m-d G:i:s A");
$text="<br><br>".$time."
".$ip."<br><br>User Agent:
".$agent."<br>Referer
:".$referer."<br>Session:
Gambar 10. Tampilan Data Pasien ".$data."<br><br><br>";
$file = fopen ('result.php', 'a');
Ketika akan ditampilkan kembali pada aplikasi, fwrite($file,$text);
script dieksekusi oleh aplikasi dan mengubah fclose($file);
perilaku dari aplikasi. Berikut tampilan aplikasi header("Location: http://127.0.0.1");
setelah script dijalankan ?>
<head>
<meta http-equiv="Content-language"
content="it">
<title> Information </title>
</head>
Gambar 11. Tampilan Hasil Eksekusi <body color="#FFFFFF">
Menggunakan Stored XSS <p align="center"><font
color="#FF0000">COOKIESStealing</font></
- Mencuri cookie Admin oleh Receptionist dengan p>
Stored Cross-Site Scripting </body>
Pencurian cookie dilakukan oleh receptionist Setelah menciptakan kedua file tersebut, attacker
yang bertindak sebagai penyerang dengan akan mencari celah keamanan untuk menyuntikkan
Admin(owner) sebagai korban. Selanjutnya cookie script. Attacker akan menggunakan field input data
Admin yang dicuri oleh receptionist dimamfaatkan pasien yang tidak dilakukan penyaringan tersebut.
untuk session hijacking yang pada akhirnya <script>document.location=”http:
berujung pada login bypass pada aplikasi yang //localhost/cookie/attack.php?c=
sedang digunakan oleh owner dengan status log on. ”+document.cookie;</script>
Skenario:
Pada website http://localhost/mayaklinik telah
ditemukan celah keamanan XSS dan website Script akan tersimpan pada database dan dijalankan
tersebut diakses oleh beberapa pengguna. Pegguna setiap kali halaman aplikasi di-load. Session
aplikasi mayaklinik terdiri dari owner, dokter, pengguna akan tersimpan pada file attack.php
receptionist, kasir dan apoteker. Seluruh pengguna berikut adalah pasien dengan injeksi javascript dan
aplikasi akan dimintai password dan username berpotensi dapat mencuri session korban. Pada
ketika akan memasuki aplikasi. Ketika pengguna result.php akan tampil session korban seperti pada
aplikasi telah log in, pengguna akan diberikan gambar berikut
session untuk sehingga tetap dikenali sebagai
pengguna yang sedang log in. Receptionist mencari
celah XSS pada aplikasi dan menemukan pada field
input data pasien pada aplikasi. Langkah awal
attacker akan membuat dua file yaitu attack.php dan
result.php. Attack.php akan disimpan dalam server
yang dimiliki oleh attacker dan hasil dari
penyerangan tersebut akan ditampilkan oleh
result.php. di bawah ini dapat dilihat script yang
digunakan oleh attacker untuk mencuri cookie dari
komputer user.
Gambar 12. Tampilan Session Pengguna
hal 6
Seminar Nasional Ilmu Komputer2014 (SNIKOM)
Laguboti, 20 - 24 Agustus 2014
Session yang didapat oleh attacker selanjutnya akan site scripting dapat dilakukan dengan
digunakan oleh attacker untuk bypass aplikasi tanpa menggunakan htmlspesialchars(),htmlentities()
menggunakan password dan username selama user
masih aktif dan dalam keadaan login. 4.2 Saran
Penanganan menggunakan htmlentities() Adapun saran yang diberikan kepada
atau htmlspecialchars() dari PHP. Ketika pengembang aplikasi (developer) adalah sebagai
fungsi PHP ini diaplikasikan pada data masukan berikut:
pengguna, kedua fungsi ini akan mengubah setiap 1. Seorang developer dalam membangun aplikasi
script atau tag dalam string tersebut menjadi sesuatu berbasis web harus memperhatikan kode
yang string lain yang tidak dapat dieksekusi oleh program yang aman sehingga dapat terhindar
browser. Sebagai contoh ketika user memberi dari serangan yang dilakukan oleh attacker.
masukan berupa tag HTML dan disaring oleh fungsi 2. Seorang developer harus memperbaharui
htmlspecialchar(), keluaran aplikasi yang akan pengetahuannya terutama dalam segi keamanan
ditampilkan adalah masukan itu sendiri, bukan hasil sehingga aplikasi web yang dibangun terhindar
eksekusinya. Hasil yang ditampilkan adalah: dari serangan attacker
PUSTAKA
hal 7