Anda di halaman 1dari 5

JURNAL TEKNIK POMITS Vol. 2, No.

1, (2013) ISSN: 2337-3539 (2301-9271 Print)

Sistem Pendeteksi dan Pencegah Peretasan


Terhadap Aplikasi Berbasis Web dengan Teknik
Web Application Firewall (WAF)
Fajri Rahmat, Ary Mazharuddin S., dan Hudan Studiawan
Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
e-mail: ary.shiddiqi@if.its.ac.id

Abstrak Permasalahan soal keamanan informasi menjadi


topik penting dalam dunia teknologi informasi. Berbagai produk
untuk mendeteksi serangan sudah banyak yang dipublikasikan
misalnya Snort. Terkait celah keamaman pada aplikasi web,
biasanya celah tersebut muncul karena adanya bug atau
kesalahan pemrograman yang lupa untuk diatasi oleh
pemrogram. Misalkan lupa untuk melakukan filter suatu
masukan, sehingga jika memasukkan karakter-karakter
berbahaya seperti tanda petik() akan mengakibatkan kesalahan
dan munculnya sebuah error pada halaman web dan biasanya,
hal tersebut dimanfaatkan oleh peretas untuk mencoba
mendapatkan informasi dari error tadi.
Kebutuhan akan suatu sistem untuk mendeteksi dan
mencegah serangan terhadap suatu aplikasi web sangatlah
diperlukan. Karena itu, dalam tugas akhir ini akan dibangun
suatu sistem yang dapat mendeteksi dan mencegah serangan
terhadap aplikasi web. Dalam tugas akhir ini, serangan yang
akan dibahas adalah SQL Injection, Cross-Site Scripting, Remote
File Inclusion, Path Traversal Attack, dan OS Commanding
Attack. Walaupun nilai dari sebuah keamanan tidak ada yang
mutlak, harapannya dengan sistem yang akan dibangun
nantinya dapat mengurangi peluang seorang peretas untuk dapat
meretas aplikasi web.
Untuk membangun sistem ini, digunakan Ironbee yang
merupakan suatu framework untuk membangun firewall untuk
aplikasi berbasis web. Cara kerja sistem ini adalah dengan
melakukan pencocokan antara request HTTP dengan pola-pola
serangan menggunakan regular expression. Selain itu, untuk
memudahkan dalam pengelolaan data hasil dari mendeteksi
suatu serangan, akan dibangun suatu modul untuk menyimpan
log serangan ke dalam database.
Sistem ini berhasil mendeteksi serangan SQL Injection, CrossSite Scripting, Remote File Inclusion, Path Traversal Attack, dan
OS Commanding Attack dengan akurasi rata-rata 93,62% dan
dengan waktu respons 226,06 milidetik. Angka 226,06 milidetik
ini sudah termasuk waktu proses pembacaan dan pencocokan
data request dengan pola serangan dan waktu untuk menyimpan
log serangan ke database log.
Kata Kunci keamanan sistem informasi, peretas, waf, web
application firewall, web application security.

I. PENDAHULUAN
Aksi peretasan web pada saat ini sudah menjadi topik
hangat. Pada waktu lalu, ketika konflik terjadi di Palestina,
para simpatisan dari berbagai negara termasuk Indonesia
melakukan aksi penyerangan terhadap situs web yang
berdomain .il yang merupakan domain yang merujuk terhadap
negara Israel. Kasus lainnya yang juga terjadi beberapa waktu
yang lalu terjadi di Indonesia. Situs web presiden Republik

Indonesia diretas oleh peretas asal Jember. Tidak hanya itu,


situs-situs lainnya seperti situs Kemenhan, Kemenpora dan
masih banyak situs lainnya diretas oleh para peretas lokal.
Dari berbagai kasus yang telah terjadi, permasalahan terkait
keamanan informasi menjadi hal penting dalam dunia
teknologi informasi. Berbagai aplikasi untuk mendeteksi
serangan sudah banyak dipublikan misalkan Snort. Terkait
celah keamaman pada aplikasi web, biasanya celah tersebut
muncul karena adanya bug atau kesalahan pemrograman yang
lupa untuk diatasi oleh pemrogram. Misalkan lupa untuk
mem-filter suatu masukan, sehingga jika memasukkan
karakter-karakter berbahaya seperti tanda petik() akan
mengakibatkan kesalahan dan munculnya sebuah error pada
halaman web dan biasanya hal tersebut dimanfaatkan oleh
peretas untuk mencoba mendapatkan informasi dari error tadi.
Dengan kasus-kasus yang telah terjadi tersebut, maka akan
dibangun suatu sistem yang dapat memblok segala bentuk
usaha percobaan peretasan terhadap aplikasi berbasis web
dengan cara melakukan pencocokan terhadap rule atau polapola serangan. Rule atau pola-pola serangan tersebut
dicocokkan dengan data request HTTP.
Hasil yang diharapkan nantinya setelah sistem ini
dijalankan pada server adalah serangan-serangan seperti SQL
Injection, Cross Site Scripting (XSS), Local File Inclusion
(LFI) dan Remote File Inclusion (RFI) yang dapat
membahayakan kerahasiaan, integritas dan ketersediaan yang
diberikan oleh web tersebut dapat sedikit lebih aman. Setelah
itu segala bentuk serangan yang telah terdeteksi akan disimpan
pada suatu database sehingga nanti dapat memudahkan dalam
pengelolahan lebih lanjut oleh administrator.
II. URAIAN PENELITIAN
A. Ironbee
Ironbee merupakan framework yang digunakan untuk
membangun web application firewall. Sebagai framework,
Ironbee menyediakan API untuk menangkap dan memproses
data request, memuat modul eksternal untuk menambahkan
fungsionalitas sistem yang akan dibangun, dan API untuk
dapat berinteraksi dengan sistem luar dengan cara
menanamkan Ironbee pada sistem tersebut.
Agar dapat menangkap data request HTTP, Ironbee harus
ditanamkan pada suatu webserver dengan cara memuat
Ironbee sebagai modul untuk webserver. Kemudian, ketika
ada request masuk ke webserver, data-data request tadi akan

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
diarahkan ke Ironbee untuk kemudian dilakukan inspeksi data.
Untuk memudahkan dalam melakukan inspeksi terhadap data
request HTTP, Ironbee sudah memproses data request HTTP
menjadi bagian-bagian yang lebih kecil. Contoh, alamat IP
yang melakukan request menjadi REMOTE_ADDR, request
header menjadi REQUEST_HEADERS.
Untuk penambahan fungsionalitas dari sistem yang akan
dibangun, dapat dilakukan dengan penambahan modul.
Ironbee sudah menyediakan API untuk menambahkan modulmodul tambahan untuk meningkatkan fungsionalitas. Untuk
versi Ironbee pada saat penelitian ini dilakuukan, Ironbee
secara defalut hanya mendukung bahasa pemrograman C/C++
dan Lua.
Jika dibanding dengan web application firewall lainnya
seperti ModSecurity, Ironbee dan ModSecurity memiliki
kesamaan dan perbedaan. Kesamaan diantara dua teknologi ini
adalah pada segi konsep dan bentuknya. Akan tetapi, dua
teknologi ini berbeda dari segi desain, implementasi dan
konfigurasi.
Segi desain, ModSecurity dirancang untuk modul Apache
Webserver. Walaupun ModSecurity bisa untuk dilakukan
porting ke webserver lain, tidak akan semua fitur untuk dapat
dilakukan porting. Berbeda dengan Ironbee yang lebih bersifat
portable. Ketika Ironbee dimuat oleh webserver, fitur-fitur
yang tersedia akan sama antar webserver yang memuat
Ironbee sebagai modul. Begitu juga pada sisi implementasi,
rule pada ModSecurity diimplementasikan dalam bahasa rule
yang sudah disediakan oleh ModSecurity. Sedangkan Ironbee
tidak mengharuskan bahwa rule harus diimplementasikan
dengan bahasa rule Ironbee. Akan tetapi, juga bisa
diimplementasikan dalam bahasa C, C++, atau Lua. Proses
implementasi dengan bahasa C, C++, atau Lua bisa dilakukan
dengan rule external(logika menggunakan bahasa C, C++,
atau Lua, sedangkan action menggunakan bahasa rule
Ironbee) atau bisa juga dengan menambahkan modul
tambahan yang berisi logika pencocokan rule dan action yang
secara keseluruhan ditulis dengan bahasa pemrograman
tersebut. Pada penelitian ini, rule untuk web application
firewall yang akan dibangun, dibuat dengan menggunakan
metode penambahan modul.
B. Regular Expression
Regular Expression atau disingkat dengan regex
merupakan suatu teknik yang digunakan untuk menyelesaikan
suatu permasalahan terkait dengan pemrosesan dan/atau
manipulasi teks. Regular expression digunakan dengan
menggunakan bahasa regular expression, sebuah bahasa
khusus yang didesain untuk manipulasi teks. Seperti halnya
bahasa pemrograman pada umumnya, Regular expression
memiliki sebuah sintaks dan instruksi khusus. Akan tetapi,
regular expression bukanlah sebuah bahasa pemrograman.
Biasanya regular expression menjadi sebuah perkakas yang
digunakan oleh bahasa pemrograman lainnya untuk
memanipulasi teks.
Dalam penelitian ini, regular expression digunakan
dalam pencocokan data request HTTP dengan pola-pola
serangan. Pola-pola serangan ini didapatkan dari ModSecurity
Core Ruleset.

C. OWASP ModSecurity Core Ruleset


OWASP ModSecurity Core Ruleset ini merupakan
kumpulan rule-rule yang dibuat untuk ModSecurity.
ModSecurity adalah engine untuk membangun web
application firewall. Rule-rule ini dikembangkan oleh
Trustwaves SpiderLabs dan dibagi-bagi pada komunitas
dan orang-orang umum untuk dapat membangun web
application firewall.
D. Web Vulnerability Attack
Web vulnerability attack merupakan jenis serangan terhadap
aplikasi web berdasarkan kerentanan yang terdapat pada
aplikas. Pada penelitian ini, ada 5 macam serangan yang akan
menjadi bahasan. Serangan-serangan tersebut adalah sebagai
berikut:
1. Cross-Site Scripting
Cross-Site Scripting atau XSS adalah sebuah teknik
menyerang yang memaksa sebuah situs web untuk
menampilkan kode program berbahaya yang kemudian
dieksekusi pada web browser pengguna. Serangan ini biasanya
tidak mengeksekusi suatu kode HTML atau JavaScript pada
server melainkan mengeksekusi kode-kode tersebut pada web
browser. Peretas hanya menggunakan website sebagai
perantara untuk melakukan serangan. Serangan ini biasanya
bukan server, melainkan pengguna dari web browser.
2. SQL Injection
SQL Injection merupakan serangan dimana kode SQL
dimasukkan atau ditambahkan ke aplikasi dengan
memanfaatkan parameter yang terdapat pada URL atau
masukan pengguna yang nantinya dikirim ke server untuk
dieksekusi. Penyebab serangan ini berhasil adalah aplikasi
gagal untuk melakukan filter pada masukan pengguna.
Sehingga, semua masukan diproses tanpa memperhatikan
apakah masukan tersebut dapat merusak struktur query
aplikasi atau tidak.
3. Path Traversal
Path traversal attack merupakan sebuah serangan yang
mengakses berkas-berkas yang terdapat pada penyimpanan
lokal server yang seharusnya berkas tersebut tidak dapat
diakses melalui aplikasi web. Celah ini biasanya ada pada
aplikasi yang menyisipkan script dari berkas lain pada suatu
halaman atau berkas.
4. Remote File Inclusion
Remote file inclusion atau bisa disingkat RFI merupakan
suatu serangan yang dapat memuat dan mengeksekusi suatu
kode program secara remote dari server lain. Serangan ini
memungkinkan seorang peretas untuk mengeksekusi
malicious software yang berada pada suatu server secare
remote pada aplikasi lain.
5. OS Commanding
OS Commanding Attack merupakan serangan dengan
menginjeksi perintah-perintah level sistem operasi yang
bertujuan untuk meningkatkan privileges, mengeksekusi
perintah dan untuk membahayakan sistem operasi. Celah ini
biasanya ada ketika suatu aplikasi web mengharuskan untuk
berkomunikasi dengan server untuk tujuan tertentu, misal
untuk melakukan dns lookup ke suatu sistem lain.

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)

III. PERANCANGAN DAN IMPLEMENTASI


Gambar 1 merupakan gambar rancangan umum web
application firewall. Gambar tersebut menjelaskan bahwa
ketika request HTTP diterima oleh webserver, request tersebut
diarahkan semua ke Ironbee sebelum direspons oleh
webserver. Ironbee kemudian memproses data request tadi
mejadi field-field yang dapat memudahkan pemrograman
dalam memproses data request HTTP.
Proses selanjutnya adalah proses pencocokan data request
tadi dengan rule atau pola-pola serangan yang didapatkan dari
OWASP menggunakan regular expression. Jika tidak ada
kecocokan antara request dengan pola-pola serangan, maka
request dikirim kembali ke webserver untuk direspons ke
klien. Akan tetapi, jika ada kecocokan antara request dengan
pola-pola serangan, maka request dianggap sebagai serangan
dan kemudian disimpan dalam database log dan request
diblok dengan cara mengarahkan request ke halaman lain.
Diagram alir proses pencocokan rule atau pola serangan
dengan data request HTTP dapa dilihat pada Gambar 2.
Informasi yang disimpan dalam database log serangan adalah
request header, waktu terjadi request, request data params,
informasi alamat IP dan port yang request, dan informasi
alamat IP dan port server.
Pada penelitian ini, DBMS yang digunakan untuk database
log adalah MySQL. Sedangkan untuk webserver yang akan
digunakan adalah Apache Webserver. Alasan penggunaan
kedua teknologi ini adalah karena kedua teknologi ini free
open-source.

Gambar 2 Diagram alir pencocokan rule

Gambar 3 Arsitektur sistem

IV. UJI COBA


Gambar 1 rancangan umum web application firewall

Proses pencocokan data request HTTP dengan rule


diimplementasikan dengan bahasa pemrograman Lua. Agar
data request HTTP bisa didapatkan dari Ironbee, script ini
akan disisipkan pada Ironbee sebagai modul tambahan. Begitu
juga untuk proses menyimpan log serangan ke database.
Data yang diperoleh dari database log ini akan ditampilkan
pada halaman web monitoring. Pada halaman web monitoring
ini juga akan ditampilkan rekapitulasi serangan dalam bentuk
diagram batang. Tujuannya adalah agar administrator yang
mengurusi aplikasi web, dapat melakukan pelaporan serangan
apa saja yang biasa diterima oleh aplikasi web yang ditangani.
Aplikasi web monitoring diimplementasikan dengan
menggunakan Node.js. Gambar 3 adalah gambar arsitetur
sistem.

A. Uji Coba Serangan dengan SQLMAP


SQLMAP meruapakan sebuah perkakas yang digunakan
untuk melakukan scanning terhadap celah keamaman SQL
Injection pada suatu aplikasi web. Aplikasi ini adalah
perangkat lunak open-source yang dapat digunakan secara
gratis.
Pada uji coba serangan dengan menggunakan perkakas
SQLMAP, dilakukan 15 kali uji coba dengan parameter risk
dan level yang berbeda. Parameter ini berpengaruh pada jenis
serangan yang diberikan SQLMAP pada server. Tabel 1
adalah hasil uji coba dengan perkakas SQLMAP.
Tabel 1 Uji coba serangan dengan SQLMAP

No
1
2
3
4

Level

Risk

Request

dideteksi

1
1
1
2

1
2
3
1

267
186
180
317

157
84
94
162

Gagal
dideteksi
2
3
3
2

(%)
99,25
98,38
98,33
99,36

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
5
6
7
8
9
10
11
12
13
14
15

2
2
3
3
3
4
4
4
5
5
5

2
3
1
2
3
1
2
3
1
2
3

317
345
876
876
835
5689
1143
1131
1500
1532
1521

160
178
467
484
449
3139
605
605
812
768
821

1
2
2
2
1
3
3
8
2
2
2

99,68
99.42
99,77
99,77
99,88
99,94
99,73
99,29
99,86
99,86
99,86

respons sistem dalam merespons request HTTP dalam satuan


millisecond (ms). Waktu respons ini sudah termasuk waktu
dari sistem membaca berkas yang berisi pola serangan yang
terdapat pada penyimpanan lokal server dan waktu yang
dibutuhkan sistem untuk menyimpan log serangan ke database
log.

Dari Tabel 1 dapat disimpulkan bahwa persentase akurasi


dari hasil uji coba dengan menggunakan SQLMAP adalah
tinggi.
B. Uji Coba Serangan dengan XSSer
XSSer merupakan perkakas untuk melakukan scanner
untuk celah keamanan Cross-Site Scripting. Gambar 4
menjelaskan bahwa XSSer memberikan 98 injeksi pada
aplikasi web yang memiliki celah keamanan Cross-Site
Scripting, dengan semua injeksi tersebut gagal. Akan tetapi,
sistem hanya mencatat 70 dari injeksi tersebut sebagai
serangan, 12 injeksi gagal untuk dideteksi dan 16 injeksi
lainnya merupakan request biasa. Hasil tersebut menunjukkan
87,75 % dari injeksi serangan menggunakan XSSer berhasil
dideteksi oleh sistem.
Gambar 6 Serangan menggunakan Fimap berhasil diblok

Tabel 2 Waktu respons sistem dalam merespons request HTTP


Gambar 4 Hasil uji coba serangan dengan XSSer

C. Uji Coba Serangan dengan Fimap


Fimap adalah perkakas yang digunakan untuk melakukan
scanning celah keamanan Local File Inclusion dan Remote
File Inclusion pada suatu aplikasi web. Gambar 5
menunjukkan bahwa sistem berhasil mendeteksi bahwa Fimap
berusaha untuk melakukan serangan Local File Inclusion atau
Path Traversal Attack dengan cara merubah parameter page
dengan /etc/passwd untuk mengakses berkas /etc/passwd yang
terdapat pada server. Sedangkan Gambar 6 menunjukkan
bahwa sistem berhasil memblok serangan dari Fimap

Gambar 5 Log sistem untuk serangan menggunakan Fimap

D. Uji Coba Performa


Uji performa ini bertujuan seberapa tangguh sistem yang
dibangun. Pada pengujian ini akan dilihat waktu respons
sistem dalam merespons request HTTP dari klien. Pada
pengujian ini akan dilakukan request HTTP serangan CrossSite Scripting, SQL Injection, OS Commanding Attack, Path
Traversal Attack, dan Remote File Inclusiong. Untuk setiap
serangan akan dilakukan masing-masing 3 request untuk
melihat perbandingan waktu respons dari setiap request
tersebut. Tabel 2 merupakan hasil dari pengujian waktu

Uji coba ke
Serangan

II

III

Rata-rata

SQL Injection
OS Commanding
Cross-Site Scripting
Path Traversal
Remote File
Inclusion

288
234
290
157
203

238
228
297
187
187

264
240
203
172
203

263,33
234
263,33
172
197,67

E. Uji Coba Perbandingan Ironbee dengan ModSecurity


Uji coba ini bertujuan untuk melihat perbandingan
antara web application firewall yang dibangun dengan Ironbee
dan yang dibangun dengan ModSecurity. Pada uji coba ini,
diambil 100 sampel request HTTP serangan dan akan dilihat
bagaimana web application firewall yang dari dua teknologi
ini merespons request tersebut. Tabel 3 merupakan tabel hasil
uji coba serangan yang terdeteksi oleh web application
firewall dari Ironbee dan ModSecurity dari 100 sampel
request serangan yang diambil.
Pada uji coba, rule yang digunakan untuk Ironbee
adalah Basic Matching Rules. Hal ini dikarenakan rule ini
pendeklarasiannya mirip dengan rule ModSecurity.
Tabel 3 Hasil uji coba perbandingan Ironbee dan ModSecurity

No
1

Serangan
SQL Injection

Ironbee
30

ModSecurity
30

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013) ISSN: 2337-3539 (2301-9271 Print)
Path Traversal
OS Commanding
Remote File Inclusion
Cross-Site Scripting
Jumlah

2
3
4
5

23
13
8
26
100

23
13
8
26
100

Dari Tabel 3 dapat dilihat bahwa jumlah serangan yang


terdeteksi oleh setiap web application firewall yang dibangun
dengan Ironbee dan ModSecurity jumlahnya sama. Hal ini
dikarenakan bahwa rule yang digunakan dalam pengujian ini
adalah sama, yaitu rule yang diambil dari OWASP
ModSecurity Core Ruleset. Akan tetapi, waktu respons dari
kedua platform ini berbeda dalam merespons sistem. Tabel 4
adalah tabel perbandingan waktu respons dalam satuan
milidetik antara Ironbee dan ModSecurity.
Tabel 4 Perbandingan waktu respons antara Ironbee dan ModSecurity

No
1
2
3
4
5

Serangan
SQL Injection
Path Traversal
OS Commanding
Remote File Inclusion
Cross-Site Scripting

Ironbee
10
8
10
7
7

ModSecurity
8
5
7
6
7

V. KESIMPULAN/RINGKASAN
Pengamatan telah dilakukan dari hasil uji coba sistem, dapat
ditarik kesimpulan sebagai berikut:
1. Sistem dapat mendeteksi serangan SQL Injection, XSS,
Path Traversal Attack, Remote File Inclusion dan OS
Commanding Attack dengan cara mencocokkan rule atau
pola serangan dengan request HTTP menggunakan
regular expression.
2. Sistem berhasil mencatat dan mendata serangan SQL
Injection, XSS, Path Traversal Attack, Remote File
Inclusion dan OS Commanding Attack yang telah terjadi
ke dalam database log, untuk kemudian dari data yang
diperoleh dari database log ini akan ditampilkan pada
halaman web monitoring.
UCAPAN TERIMA KASIH
Penulis F.R. mengucapkan terima kasih sebesar-besarnya
kepada Allah SWT, kedua orang tua, dosen pembimbing,
bapak/ibu dosen dan staf karyawan Teknik Informatika,
teman-teman, serta berbagai pihak yang telah membantu
penulis dalam menyelesaikan Tugas Akhir ini.

DAFTAR PUSTAKA
[1] Ryan C. Barnett, Web Application Defender's Cookbook. Indianapolis:
Wiley Publishing, Inc., 2013.
[2] Shelley Powers, Learning Node. Sebastopol: O'Reilly Media, 2012.
[3] Jan Goyvaerts. (2013, September) Regular-Expression.info - Regex
tutorial, Examples and Reference - Regex Patterns. [Online].
http://www.regular-expressions.info/
[4] Christopher Alfeld et al. (2010, July) Ironbee Open Source WAF.
[Online]. https://www.ironbee.com/docs/manual/ironbee-reference-

manual.html
[5] Ryan Barnett and Felipe Zimmerle Costa. (2006) OWASP ModSecurity
Core Rule Set (CRS). [Online]. http://spiderlabs.github.io/owaspmodsecurity-crs/
[6] Russell J.T. Dyer, MYSQL IN NUTSHELL, 2nd ed., Andy Oram, Ed.
Sebastopol, USA: O'Reilly Media, 2008.
[7] R Ierusalimschy, L.H. de Figueiredo, and W. Celes. (2006, August) Lua
5.1 Reference Manual. [Online]. http://www.lua.org/manual/5.1/
[8] The Apache Software Foundation. (2014) Apache HTTP Server Project.
[Online]. http://httpd.apache.org/
[9] Pedro Teixeira, Professional Node.js. Indianapolis, United States of
America: John Wiley & Sons, Inc, 2013.

Anda mungkin juga menyukai