1 ANALISA KEAMANAN WEB SERVER MENGGUNAKAN WEB APPLICATION FIREWALL MODSECURITY Artikel Ilmiah Diajukan Kepada Fakultas Teknologi Informasi untuk memperoleh gelar Sarjana Komputer Oleh : Handi Prasetyo NIM : 672011073 Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Juli 2016
20
Embed
ANALISA KEAMANAN WEB SERVER MENGGUNAKAN WEB …repository.uksw.edu/bitstream/123456789/11374/2/T1_672011073_Full... · untuk memenuhi kebutuhan ... menghentikan atau meniadakan layanan
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
ANALISA KEAMANAN WEB SERVER MENGGUNAKAN
WEB APPLICATION FIREWALL MODSECURITY
Artikel Ilmiah
Diajukan Kepada
Fakultas Teknologi Informasi
untuk memperoleh gelar Sarjana Komputer
Oleh :
Handi Prasetyo
NIM : 672011073
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Juli 2016
2
3
4
5
6
1. Pendahuluan
Web server merupakan sarana yang berfungsi untuk menghubungkan client
dengan sebuah server, sehingga client dapat memperoleh informasi yang di dapat
dari sebuah web server. Keamanan dalam komunikasi antara client dan server
sangat penting, karena komunikasi tersebut dapat mengandung informasi maupun
data yang bersifat rahasia.
Seiring dengan perkembangan teknologi informasi, terdapat berbagai
aplikasi berbasis web yang digunakan untuk mempermudah dalam pengolahan data
maupun transaksi, aplikasi tersebut berada pada server dimana client dapat
mengakses aplikasi web tersebut untuk memperoleh suatu data atau informasi.
Semakin penting aplikasi tersebut, maka terdapat pihak yang tidak bertanggung
jawab yang berusaha untuk mendapatkan akses yang tidak sah pada server tersebut
dengan tujuan untuk memperoleh informasi maupun hanya untuk merusak sebuah
sistem.
Perkembangan teknologi dan informasi yang pesat menyebabkan terdapat
berbagai jenis serangan yang dapat digunakan untuk menyerang sebuah server,
akan tetapi terdapat pula cara untuk mencegah serangan tersebut sehingga mampu
meminimalkan ataupun mencegah agar serangan tersebut tidak dapat merusak
sistem maupun mencuri data pada server.
Penelitian ini akan menerapkan Web Application Firewall menggunakan
ModSecurity. Penerapan ModSecurity pada web server apache dimana aplikasi
yang digunakan untuk uji coba terhadap serangan web server menggunakan SLiMS
(Senayan Library Management System). Kemudian akan menganalisa kinerja dari
ModSecurity dalam mendeteksi atau mencegah suatu serangan pada web server,
sehingga diharapkan dapat meningkatkan keamanan aplikasi web server dari suatu
serangan yang dapat merugikan client maupun server.
2. Tinjauan Pustaka
Web Server merupakan suatu server internet yang menggunakan protocol
HTTP (Hyper Text Transfer Protocol) untuk melayani semua proses transfer data
antara client dan server. Web server hingga saat ini merupakan server yang dapat
dikatakan sebagai tulang punggung bagi semua pengguna internet[1], hal ini karena
web server dapat menyediakan informasi yang bermanfaat untuk client. Salah satu
aplikasi dari web server adalah SLiMS, SLiMS adalah Open Source Software (OSS)
berbasis web untuk memenuhi kebutuhan automasi perpustakaan (library
automation) skala kecil hingga skala besar. Dengan fitur yang cukup lengkap dan
masih terus aktif dikembangkan, SLiMS sangat cocok digunakan bagi perpustakaan
yang memiliki koleksi, anggota dan staff banyak di lingkungan jaringan, baik itu
jaringan lokal (intranet) maupun internet, SLiMS saat ini sudah cukup berkembang
dengan baik, sejak berkembangnya aplikasi perpustakaan ini dari SLiMS versi 3
hingga saat ini versi 8 SLiMS selalu mengupayakan perbaikan, sehingga aplikasi
SLiMS memiliki performa yang baik dalam melayani proses administrasi
perpustakaan[2]. Aplikasi SLiMS cukup penting dalam pengolahan data
perpustakaan dan memerlukan keamanan dari berbagai serangan pada web server,
7
serangan pada web server dapat berupa SQL Injection, Cross Site Scripting(XSS),
Denial of Service(DOS) dan lain sebagainya yang berpotensi merugikan server
maupun client.
Jenis serangan SQL Injection pada web server merupakan serangan yang
cukup berpotensi mengancam keamanan data pada server. Hal ini karena pada
dasarnya SQL Injection merupakan cara mengeksploitasi celah keamanan yang
muncul pada level atau “layer” database dan aplikasinya[3]. Celah keamanan
ditunjukkan dengan respone yang salah yang dikirimkan pada client yang sengaja
mengirimkan data atau memasukkan karakter yang salah pada server.
Menurut Richardus Eko Idrajit contoh-contoh celah kerentanan yang kerap
menjadi korban SQL Injection adalah[3]:
1. Karakter-karakter kendali, kontrol, atau filter tidak didefinisikan dengan
baik dan benar (Incorrectly Filtered Escape Characters),
2. Tipe pemilihan dan penanganan variabel maupun parameter program
yang keliru (Incorrect Type Handling),
3. Celah keamanan berada dalam database server (Vulnerabilities Inside
the Database Server) Dilakukan mekanisme penyamaran SQL Injection
(Blind SQL Injection), dan lain sebagainya.
Selain SQL Injection, serangan pada web server yang berpotensi untuk
keamanan data adalah serangan Cross Site Scripting (XSS),yang merupakan suatu
serangan dengan menggunakan mekanisme “injection” pada aplikasi web dengan
memanfaatkan metode HTTP GET atau HTTP POST[3]. Keamanan pada web
server tidak hanya pada jenis serangan pada data web server itu sendiri, serangan
web server dapat berupa serangan dari request pada server yang tidak sewajarnya
atau dengan kata lain request dengan jumlah yang banyak dalam satu waktu.
Serangan tersebut dengan istilah DoS(Denial of Service) dan DDoS (Distributed
Denial of Services). DOS merupakan suatu aktivitas dengan tujuan utama
menghentikan atau meniadakan layanan sistem atau jaringan komputer, sehingga
pengguna tidak dapat menikmati fungsionalitas dari layanan tersebut dengan cara
mengganggu ketersediaan komponen sumber daya yang terkait dengannya[3].
Contohnya adalah dengan memberikan request pada server dengan jutaan paket,
sehingga menyebabkan penggunaan memori yang meningkat sehingga request dari
client yang benar-benar ingin mengakses server mejadi tidak bisa mengakses,
karena server sibuk memberikan respone dari serangan DOS tersebut.
Data yang paling rentan pada serangan web server adalah data pada
authentikasi web server, jenis serangan yang dapat memperoleh data tersebut adalah
jenis serangan MITM(Man In The Midle Attack). Man In The Middle Attack
merupakan jenis serangan dengan menyadap lalu lintas jaringan antara client dan
server, uji coba dilakukan dengan menggunakan tool cain able, dimana tool ini
dapat menyadap lalu lintas jaringan dengan memanfaatkan ARP (Adress Resolution
Protocol), penyerang meracuni ARP cache antara dua perangkat yang
berkomunikasi dengan alamat MAC kedua perangkat[3].
Web Server perlu sebuah keamanan untuk mencegah atau mendeteksi
serangan pada web server. Web Application Firewall merupakan sebuah perangkat
perantara yang terletak antara client dan server, yang digunakan sebagai perangkat
keamanan untuk melindungi web server dari serangan[4]. Salah satu aplikasi dari
8
Web Aplication Firewall adalah ModSecurity, ModSecurity adalah Web seperti
firewall tradisional menyaring masuk dan keluarnya data dan mampu untuk
menghentikan lalu lintas yang di anggap berbahaya menurut aturan yang telah
ditetapkan[4]. Aturan dari setiap rule berisi fungsi-fungsi yang dapat menjalankan
setiap rule pada modsecurity, contoh fungsi atau perintah pada rule ModSecurity
dapat dilihat pada tabel 3.
Tabel 1 Tabel Fungsi atau Perintah ModSecurity
Fungsi Atau Perintah Penjelasan
SecRuleEngine Mengaktifkan atau Non Aktifkan ModSecurity
SecRule Membuat Rule
Phase Menempatkan aturan atau rantai ke salah satu
dari lima fase pengolahan yang tersedia
Id Menentukan id yang unix untuk setiap aturan
Log Mencatat serangan pada log
Nolog Mencegah pencatatan pada log
Block Melakukan tindakan yang mengganggu
Msg Membuat pesan khusus untuk setiap aturan jenis
serangan
Penjelasan berdasarkan referensi dari Chaim Sanders, modsecurity
memiliki banyak aturan yang digunakan untuk mendeteksi jenis serangan, salah
satu contohnya dapat dilihat pada tabel 1, merupakan fungsi atau perintah pada
modsecurity yang terdapat pada rule dari modsecurity. SecRuleEngine memiliki
tiga parameter yaitu On, Off dan DetectionOnly, untuk memproteksi serangan pada
web server parameter pada engine harus diaktifkan dengan memberikan nilai On
pada SecRuleEngine[5].
ModSecurity mencatat setiap serangan pada log ketika terdapat request
yang berpotensi serangan, ModSecurity biasa disebut sebagai HTTP intrusion
Detection tool, yang terletak didepan aplikasi web dan mengontrol keluar masuknya
data, sehingga setiap data yang masuk pada server dapat dipantau oleh modsecurity
melalui pencatatan log pada modsecurity. ModSecurity memberikan perlindungan
dari berbagai serangan terhadap aplikasi web dan memungkinkan untuk memantau
lalu lintas HTTP dan analisis real-time dengan sedikit atau tanpa perubahan
infrastruktur yang ada. ModSecurity dapat di bagi menjadi dua mode yaitu
Embedded-Mode dan Network Mode. Embedded-Mode merupakan bagian dari
infrastruktur web server yang ada seperti Apache, IIS7 atau Nginx yang berarti
tertanam menjadi satu dengan web server. ModSecurity Nework Mode bekerja
dengan baik bila digunakan sebagai bagian dari reverse proxy. Dalam mode ini,
instalasi ModSecurity dapat melindungi sejumlah web server[5].
9
Berpotensi Serangan
Client
Server
Request
Tidak
Log
ModSecurity
Ya
(Block)
Respone
ModSecurity
Gambar 1 Alur Proses ModSecurity
Skema dari cara kerja modsecurity dapat dilihat pada gambar 1, dimana
request dari client akan melalui ModSecurity terlebih dahulu. ModSecurity akan
menyaring request dari client, request yang berpotensi serangan akan di deteksi
atau di block oleh modsecurity dan di catat pada log ModSecurity. Jika request dari
client tidak berpotensi serangan pada web server, maka request akan mendapatkan
respone dari server dan menampilkan halaman web.
Penelitian yang relevan dengan keamanan pada web server diantaranya
penelitian yang dilakukan oleh Nilesh Khochare dan Dr.B.B.Meshram dengan judul
“Tool to Detect and Prevent Web Attack” yang dilakukan oleh pada tahun 2012
membahas tentang tool Web Application Firewall yang dapat digunakan untuk
mencegah serangan pada web server. Di antaranya terhadap tool Web Application
Firewall yang open source dan commercial, serangan pada web server dijelaskan
seperti SQL Injection , Cross Site Scripting, Buffer Overflow. Cookie Poisoning,
Forceful browsing, Directory Traversal Attack. Pada penelitian tersebut hanya
dijelaskan mengenai arsitektur dari Web Application Firewall dan juga berbagai
jenis tool Web Application Firewall yang bersifat opensource dan commercial yang
dapat digunakan untuk mencegah serangan pada web server[6].
Penelitian selanjutnya dengan judul “Sistem Pengamanan Web Server
dengan Web Application Firewall (WAF)” yang dilakukan oleh Aditya Noor Sandy
pada tahun 2015 membahas tentang keamanan web server dari serangan sql
injection dan XSS(Cross Site Scripting) menggunakan Web Application Firewall
dengan tool ModSecurity, pada penelitian tersebut dijelaskan tentang serangan SQL
Injection dan XSS yang berhasil dicegah dengan ModSecurity serta menampilkan
log dari ModSecurity menggunakan AuditConsole sebagai mekanisme pelaporan
serangan. Parameter yang digunakan pada uji coba penelitian tersebut yaitu dengan
menggunakan jenis serangan SQL injection dan XSS yang di terapkan ketika web
server mengggunakan ModSecurity dan tanpa ModSecurity[7].
10
Agus Priyo Utomo melakukan penelitian “Pelaporan Intrusi Pada Web
Server Berbasis SMS Gateway” yang membahas penggunaan Mod_Security untuk
keamanan web server dengan menggunakan jenis serangan SQL injection, yang
kemudian akan dilaporkan hasil dari pendeteksian serangan dengan menampilkan
dan mengirim melalui media SMS[8].
Dengan beberapa penelitian diatas dapat disimpulkan penggunaan tool Web
Application Firewall dapat mendeteksi serangan SQL Injection dan XSS, untuk
lebih mengetahui fungsi Web Application Firewall dalam mendeteksi serangan
maka penelitian ini akan membahas keamanan dari aplikasi web server SLiMS
dengan uji coba menggunakan jenis serangan SQL Injection, Cross Site
Scripting(XSS), Denial Of Service, dan Man In The Middle Attack. Dengan tujuan
untuk mengetahui keamanan dari web server SLiMS, serta bermanfaat untuk
meningkatkan keamanan web server SLiMS dengan menggunakan Web Application
Firewall ModSecurity dalam mendeteksi serangan.
3. Metode Penelitan
Metode penelitian yang digunakan agar dapat memiliki urutan kerja yang
efisien terdiri dari, tahap perencanaan, tahap desain, tahap implementasi, tahap uji
coba dan tahap analisis.
Gambar 2 Metode Penelitian
Tahap pertama adalah tahap perencanaan dimulai dengan menyiapkan
segala hal yang dibutuhkan seperti perangkat keras ataupun perangkat lunak, dalam
hal ini yang dibutuhkan adalah sebuah PC dengan VirtualBox yang digunakan untuk
mesin server dan client. Pertama membangun server pada virtual box
menggunakan Ubuntu server 14.04 dengan paket instalasi aplikasi pendukung
seperti Apache Web Server, BIND9, PHPMyAdmin, My SQL Server, ModSecurity,
dan SLiMS sebagai aplikasi web server untuk uji coba keamanan web server.
11
a. Perangkat keras
1. Satu buah komputer yang digunakan sebagai server
dengan spesifikasi sebagai berikut :
a. Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz
b. RAM 4 GB
c. Hard disk untuk sistem 500GB
b. Perangkat lunak
1. Virtual Box 5.0.2
2. Ubuntu Server 14.04
3. Apache Web Server, BIND9, PHPMyAdmin, MySQL
4. ModSecurity sebagai Web Application Firewall
5. SLiMS(Senayan Library Management System) versi 7
6. Windows 7 Sebagai Client atau Attacker
7. LOIC dan Chain&Abel sebagai tool untuk menyerang
Tahap desain adalah tahapan untuk merancang sistem yang dibangun seperti
desain topologi yang digunakan untuk melakukan penelitian sehingga akan tercipta
gambaran tentang hal yang akan dilakukan pada penelitian tersebut. Adapun untuk
desain pada penelitian ini dapat dilihat pada gambar 3.
Gambar 3 Desain Jaringan[5]
Tahap desain dapat dilihat pada gambar 3 yang merupakan desain dari
topologi yang akan digunakan, terdapat sebuah server dan client, dimana antara
server dan client terdapat sebuah firewall untuk memproteksi web server, firewall
tersebut merupakan web application firewall menggunakan tool ModSecurity.
ModSecurity memiliki fungsi untuk menyaring berbagai request dari client ke
server, request yang berpotensi untuk membahayakan server akan di block oleh
ModSecurity dan menampilkan pesan error pada web browser client dan request
yang berasal dari client akan dicatat pada log ModSecurity server.
Tahap implementasi adalah tahapan dimulainya instalasi dan konfigurasi,
pada tahap ini akan diberikan poin-poin installasi dan konfigurasi pada server.
Installasi pada server dengan melakukan konfigurasi IP dan menginstall berbagai
12
paket yang diperlukan serta aplikasi web server yang digunakan untuk uji coba.
Installasi paket yang dibutuhkan dalam membentuk sebuah web server diantaranya
Apache, BIND, PhpMyAdmin, MySQL. Paket tersebut diantaranya Apache
digunakan sebagai tool web server, BIND sebagai penerjemah sebuah alamat IP,
PhpMyAdmin sebagai management database serta MySQL sebagai database server.
Installasi paket untuk keamanan web server dengan menggunakan modsecurity
yang di install pada server dan dikonfigurasi untuk mendeteksi serangan pada web
server.
Tahap Uji Coba merupakan pengujian terhadap hasil dari implementasi
yang sudah dilakukan, uji coba dilakukan dengan melakukan serangan pada web
server. Serangan yang dilakukan pada web server adalah dengan serangan SQL
Injection, Cross Site Scripting, Denial Of Service, dan Man In The Middle Attack.
Pada penelitian ini serangan pada web server yang pertama adalah dengan SQL
injection , kemudian Cross Site Scripting, Denial Of Service dan yang terakhir
dengan Man In The Middle Attack. Uji coba SQL Injection dapat di lihat pada
gambar 4.
Gambar 4 Uji coba serangan Sql Injection
Gambar 4 merupakan uji coba terhadap web server dengan menggunakan
SQL Injection, dimana pada form login diberikan syntax untuk menambahkan
perintah pada saat proses login pada server, sehingga akan menyebabkan error pada
web server, jika web server tersebut memiliki celah keamanan. Uji coba yang di
lakukan tidak memberikan efek pada aplikasi web server, hal ini dikarenakan
aplikasi SLiMS mempunyai keamanan pemrograman yang cukup baik untuk
mencegah terhadap sintax sql Injection. Sehingga pemberian sintax sql injection
tidak berpengaruh pada halaman login tersebut setelah di uji coba.
13
Gambar 5 Uji coba serangan Cross Site Scripting
Uji coba serangan XSS dapat dilihat pada gambar 5 dengan memasukkan
script pada url dan form pencarian, dengan memasukkan sintax
<script>alert(“XSS”)</script> maka browser akan mengeksekusi perintah
tersebut jika keamanan pada aplikasi web server tidak baik dan akan memberikan
celah keamanan pada web server tersebut. Pada uji coba yang dilakukan serangan
XSS tidak berpengaruh pada aplikasi web server, dan ketika mod security dalam
keadaan aktif serangan XSS akan dideteksi oleh server modsecurity dengan respone
halaman seperti pada gambar 9, hal ini karena pada modsecurity mempunyai rule
untuk menyaring reqest yang berpotensi serangan, rule tersebut seperti pada
gambar 6, dimana pembuatan rule dengan menggunakan perintah “SecRule ARGS”
yang diikuti dengan parameter yang digunakan untuk menganalisa variabel request
dari client. Maksud dari rule tersebut adalah membuat rule dengan deklarasi
argument yang menganalisa request dari client berdasarkan argument yang dibuat
pada rule tersebut dengan parameter yang sudah ditentukan. Sehingga ketika client
melakukan request yang mengandung variabel yang sudah ditentukan pada SecRule
modsecurity akan dideteksi sebagai sebuah serangan pada web server dan dicatat
pada log modsecurity.
14
Gambar 6 Rule pada XSS Attack
Gambar 7 Serangan Denial Of Service
Uji Coba Serangan DOS di arahkan pada server www.handi.com dengan
menggunakan tool LOIC seperti pada gambar 7 , uji coba dilakukan dengan metode
http, percobaan dilakukan dengan menggunakan 1 thread hingga 10 thread dan
didapat data seperti pada tabel 2, uji coba dilakukan dengan waktu dua menit, uji
coba dengan 1 sampai 5 thread server masih mampu untuk memberikan respone
sehingga status failed pada tool 0 yang menunjukkan server masih dapat
memberikan respone dengan baik. Saat uji coba dengan 6 sampai 10 thread, server
mulai memberikan respone failed, hal ini berarti menunjukkan bahwa serangan