Implementasi Web Application Firewall Menggunakan ...

7
Implementasi Web Application Firewall Menggunakan ReverseProxy dan ModSecurity Sebagai Alternatif Pengamanan Aplikasi Web Pada Sektor Pemerintah Anggrahito Badan Siber dan Sandi Negara Email: anggrahito@ bssn.go.id Ramadhan Ibrahim Badan Siber dan Sandi Negara Email: ramadhan.ibrahim@ bssn.go.id Ahmad Fajri Badan Siber dan Sandi Negara Email : ahmad.fajri@ bssn.go.id Eva Murniyanti Badan Siber dan Sandi Negara Email: eva.murniyanti@ bssn.go.id Abstract—Knowdays in the era of computer technology, web applications is the most important technology that used to support organizational performance ,such as e-government. Unfortunatly, most of the web applications on government system has been hacked by to many reason. It is because web applications on government has so many vulnerabilities and many of them has no security system on there infrastructure. According to that situation, This research aims to implementating the Web Application Firewall (WAF) based on open source for protecting the web applications. The need for this research is necessary because WAF could be one of the solution to prevent attacks on a website by using rules on the HTTP/HTTPS protocol, so that attacks such as Cross-Site Scripting (XSS) and SQL Injection can be prevent. This implementation using python and php programming for backend, therfore both languages can be used to build servers that use socket programs and could be modified to database system. The output from this project is WAF by applying the ReverseProxy topology, the results is testing based on OWASP TOP 10 on websites that implementing WAF, display WAF real time monitoring through the browser, and WAF configuration through the browser to reduce setting errors. With the existence of WAF, it can be an alternative solution for the Indonesian government to increasing security in the field of cyber. keywords; WAF, Python, PHP, ReverseProxy, Socket Programming, OWASP TOP 10 Abstrak—Saat ini di era teknologi komputer, aplikasi web menjadi hal yang paling penting digunakan untuk mendukung kebutuhan kerja dilingkungan organisasi seperti pada penerapan e-government. Namun, kebanyakan web aplikasi yang digunakan di lingkungan organisasi pemerintah telah di-hack dengan banyak alasan. Hal tersebut dikarenakan pada umumnya aplikasi web pemerintah memiliki banyak celah kerawanan dan tidak memiliki sistem keamanan pada infrastrukturnya. Berdasarkan hal tersebut, penelitian ini bermaksud untuk membahas implementasi Web Application Firewall (WAF) berbasis open source untuk mengamankan aplikasi web. Perlunya dilakukan riset ini dikarenakan WAF dapat menjadi salah satu solusi untuk mencegah terjadinya serangan pada website dengan menerapkan peraturan (rules) pada protokol HTTP/HTTPS sehingga serangan seperti Cross-Site Scripting (XSS) dan SQL Injection dapat dicegah. Dalam implementasi WAF berbasis open source penulis menggunakan bahasa perograman python dan php sebagai program backend, karena kedua bahasa tersebut memungkinkan untuk membangun server dengan memanfaatkan socket programing dan dapat dimodifikasi menggunakan sistem database. Output yang dihasilkan dari penelitian ini adalah penerapan WAF dengan topologi ReverseProxy, hasil pengujian berdasarkan OWASP TOP 10 pada website yang menerapkan WAF, tampilan real time monitoring WAF melalui browser, dan konfigurasi WAF melalui browser guna mengurangi kesalahan pengaturan. Dengan adanya WAF, dapat menjadi solusi alternatif bagi pemerintah Indonesia dalam meningkatkan pengamanan di bidang siber. Kata Kunci; WAF, Python, PHP, ReverseProxy, Socket Programming, OWASP TOP 10 I. PENDAHULUAN A. Latar Belakang Perkembangan teknologi informasi memanfaatkan jaringan internet dan komputer menjadikan segala aktifitas dan pekerjaan lebih mudah, salah satunya dengan menggunakan aplikasi web. Dalam penerapannya aplikasi web terdiri dari web server dan web page. Web page adalah dokumen yang ditulis dalam format HTML (Hyper Text Markup Language), PHP dan format web programming lainnya yang diakses melalui HTTP (yaitu protokol yang mengirimkan informasi dari web server untuk ditampilkan melalui web browser). Perkembangan aplikasi web yang pesat menimbulkan banyaknya serangan dan kasus peretasan website yang terjadi. Insiden serangan / kasus peretasan banyak terjadi pada sistem informasi di lingkungan pemerintahan, dikarenakan infrastruktur yang belum mendukung untuk penerapan keamanan pada sistem informasi. Hal tersebut terjadi dikarenakan beberapa faktor seperti biaya yang cukup tinggi dan kurangnya SDM yang dapat mengelola perangkat keamanan tersebut. Laporan ID SIRTII tahun 2018, tercatat pemantauan keamanan website sejak bulan Januari sampai Desember 2018 ditemukann sebanyak 16.939 insiden website (defacement). Domain terbanyak yang mengalami defacement adalah domain .go.id dengan presentase 30,75%, kemudian .ac.id sebanyak 28,38%, domain sch.id dengan 12,58%, domain co.id dengan 10,92%, dan CITEE 2019 Yogyakarta, 24-25 Juli 2019 ISSN: 2085-6350 Departemen Teknik Elektro dan Teknologi Informasi, FT UGM 199

Transcript of Implementasi Web Application Firewall Menggunakan ...

Implementasi Web Application Firewall Menggunakan ReverseProxy dan ModSecurity Sebagai Alternatif Pengamanan

Aplikasi Web Pada Sektor Pemerintah Anggrahito

Badan Siber dan Sandi Negara

Email: anggrahito@ bssn.go.id

Ramadhan Ibrahim Badan Siber dan Sandi

Negara Email:

ramadhan.ibrahim@ bssn.go.id

Ahmad Fajri Badan Siber dan Sandi

Negara Email : ahmad.fajri@

bssn.go.id

Eva Murniyanti Badan Siber dan Sandi

Negara Email:

eva.murniyanti@ bssn.go.id

Abstract—Knowdays in the era of computer technology, web applications is the most important technology that used to support organizational performance ,such as e-government. Unfortunatly, most of the web applications on government system has been hacked by to many reason. It is because web applications on government has so many vulnerabilities and many of them has no security system on there infrastructure. According to that situation, This research aims to implementating the Web Application Firewall (WAF) based on open source for protecting the web applications. The need for this research is necessary because WAF could be one of the solution to prevent attacks on a website by using rules on the HTTP/HTTPS protocol, so that attacks such as Cross-Site Scripting (XSS) and SQL Injection can be prevent. This implementation using python and php programming for backend, therfore both languages can be used to build servers that use socket programs and could be modified to database system. The output from this project is WAF by applying the ReverseProxy topology, the results is testing based on OWASP TOP 10 on websites that implementing WAF, display WAF real time monitoring through the browser, and WAF configuration through the browser to reduce setting errors. With the existence of WAF, it can be an alternative solution for the Indonesian government to increasing security in the field of cyber.

keywords; WAF, Python, PHP, ReverseProxy, Socket Programming, OWASP TOP 10

Abstrak—Saat ini di era teknologi komputer, aplikasi web menjadi hal yang paling penting digunakan untuk mendukung kebutuhan kerja dilingkungan organisasi seperti pada penerapan e-government. Namun, kebanyakan web aplikasi yang digunakan di lingkungan organisasi pemerintah telah di-hack dengan banyak alasan. Hal tersebut dikarenakan pada umumnya aplikasi web pemerintah memiliki banyak celah kerawanan dan tidak memiliki sistem keamanan pada infrastrukturnya. Berdasarkan hal tersebut, penelitian ini bermaksud untuk membahas implementasi Web Application Firewall (WAF) berbasis open source untuk mengamankan aplikasi web. Perlunya dilakukan riset ini dikarenakan WAF dapat menjadi salah satu solusi untuk mencegah terjadinya serangan pada website dengan menerapkan peraturan (rules) pada protokol HTTP/HTTPS sehingga serangan seperti Cross-Site Scripting (XSS) dan SQL Injection dapat dicegah. Dalam implementasi WAF berbasis open source penulis menggunakan bahasa perograman python dan php

sebagai program backend, karena kedua bahasa tersebut memungkinkan untuk membangun server dengan memanfaatkan socket programing dan dapat dimodifikasi menggunakan sistem database. Output yang dihasilkan dari penelitian ini adalah penerapan WAF dengan topologi ReverseProxy, hasil pengujian berdasarkan OWASP TOP 10 pada website yang menerapkan WAF, tampilan real time monitoring WAF melalui browser, dan konfigurasi WAF melalui browser guna mengurangi kesalahan pengaturan. Dengan adanya WAF, dapat menjadi solusi alternatif bagi pemerintah Indonesia dalam meningkatkan pengamanan di bidang siber.

Kata Kunci; WAF, Python, PHP, ReverseProxy, Socket Programming, OWASP TOP 10

I. PENDAHULUAN

A. Latar Belakang Perkembangan teknologi informasi memanfaatkan

jaringan internet dan komputer menjadikan segala aktifitas dan pekerjaan lebih mudah, salah satunya dengan menggunakan aplikasi web. Dalam penerapannya aplikasi web terdiri dari web server dan web page. Web page adalah dokumen yang ditulis dalam format HTML (Hyper Text Markup Language), PHP dan format web programming lainnya yang diakses melalui HTTP (yaitu protokol yang mengirimkan informasi dari web server untuk ditampilkan melalui web browser). Perkembangan aplikasi web yang pesat menimbulkan banyaknya serangan dan kasus peretasan website yang terjadi. Insiden serangan / kasus peretasan banyak terjadi pada sistem informasi di lingkungan pemerintahan, dikarenakan infrastruktur yang belum mendukung untuk penerapan keamanan pada sistem informasi. Hal tersebut terjadi dikarenakan beberapa faktor seperti biaya yang cukup tinggi dan kurangnya SDM yang dapat mengelola perangkat keamanan tersebut.

Laporan ID SIRTII tahun 2018, tercatat pemantauan keamanan website sejak bulan Januari sampai Desember 2018 ditemukann sebanyak 16.939 insiden website (defacement). Domain terbanyak yang mengalami defacement adalah domain .go.id dengan presentase 30,75%, kemudian .ac.id sebanyak 28,38%, domain sch.id dengan 12,58%, domain co.id dengan 10,92%, dan

CITEE 2019 Yogyakarta, 24-25 Juli 2019 ISSN: 2085-6350

Departemen Teknik Elektro dan Teknologi Informasi, FT UGM 199

domain .id dengan 8,25% [12]. Berdasarkan data diatas, perlu adanya komitmen dan perhatian lebih tentang keamanan sistem informasi khususnya pada sektor Pemerintah. Ada beberapa hal yang dapat menjadi penyebab sistem informasi dapat dengan mudah untuk diretas, yaitu kurangnya keamanan pada konsep pembuatan website dan infrastruktur yang digunakan masih kurang memadai.

Untuk menjawab permasalahan diatas, maka dibutuhkan konsep keamanan aplikasi web guna menutup celah kerawanan yang ada. Penerapan keamanan pada aplikasi web sangat penting, karena terdapat data yang harus dilindungi. salah satunya solusi untuk mengatasi masalah tersebut adalah dengan menerapkan WAF pada aplikasi web. Impementasi WAF dapat dilakukan dengan memanfaatkan aplikasi berbasis Open Source yaitu ModSecurity dengan metode ReverseProxy. Oleh karena itu, mengimplementasikan Modsecurity berbasis open source dapat menjadi salah satu alternatif bagi pemerintah untuk memperkuat keamanan sistem informasi berbasis web, sehingga pengamanan pada instansi pemerintah dapat tercapai dengan solusi yang lebih murah dan aman.

B. Ruang Lingkup Pada penulisan ini, Konsep keamanan sistem

informasi berbasis web yang akan dibahas adalah implementasi aplikasi ModSecurity berbasis open source dengan metode ReverseProxy sebagai perangkat WAF. Sistem Operasi yang digunakan berbasis Linux dengan modul Apache web server. Kemudian untuk percobaan simulasi serangan, web target menggunakan aplikasi web yang memiliki celah kerawanan SQL Injection, Cross Site Scripting (XSS), dan Unrestricted File Upload berbasis PHP Framework.

C. Metode Penelitian Penelitian menggunakan metode pengujian kuantitatif

dengan melakukan proses persiapan, implementasi dan pengumpulan data dari hasil percobaan serta analisis untuk pengambilan kesimpulan.

Penelitian ini menggunakan unsur kegiatan verifikatif, dengan tujuan menguji atau membuktikan kebenaran terhadap objek yang dituju, yaitu implementasi keamanan aplikasi web menggunakan ModSecurity dan metode ReverseProxy.

II. LANDASAN TEORI

A. Web Application Firewall (WAF) Web Application Firewall (WAF) adalah aplikasi web

yang memiliki kemampuan untuk melakukan filter, monitoring, dan blocks traffic HTTP. WAF berbeda dengan firewall pada umumnya, WAF memliki kemampuan untuk melakukan filter terhadap konten yang menuju aplikasi berbasis web. Dengan adanya kemampuan menginspeksi traffic HTTP, hal tersebut dapat mencegah terjadinya serangan seperti SQL injection, cross-site scripting, file inclusion dan kesalahan pengaturan [1].

B. Python Python merupakan Bahasa pemrograman yang terlihat

mudah namun memiliki kemampuan yang stabil dan tidak memakan memori yang cukup besar ketika dijalankan. Dengan menggunakan Bahasa pemrograman python dapat mempermudah seorang programmer untuk mengatasi masalah yang kompleks [3]. Selain digunakan untuk melakukan komputasi atau program, python dapat digunakan untuk membangun aplikasi web. Programmer juga akan dimudahkan karena aplikasi web akan bersifat independen, mudah digunakan, dan memiliki kinerja yang lancar tanpa harus menerapkan web framework [4]. Hal inilah yang menjadi landasan peneliti menggunakan Bahasa pemrograman python dalam pengembangan WAF berbasis open source.

C. PHP PHP adalah Bahasa pemrograman yang dapat

digunakan pada pemrograman web agar server dapat menghasilkan output yang dinamis. Ketika di implementasikan, biasanya PHP sudah tergabung dengan HTML, JavaScript, dan mysql [5].

D. ReverseProxy ReverseProxy adalah aplikasi proxy yang ditujukan

untuk server dengan menggunakan protokol HTTP. Cara kerja ReverseProxy adalah sebagai gateway menuju HTTP server dengan berperan sebagai final IP address dengan request yang berasal dari luar jaringan. Sehingga, ketika terdapat request dari jaringan luar, request tersebut berasal dari proxy server, bukan melalui client asli yang melakukan request [6].

ReverseProxy adalah saat server Apache HTTP berfungsi sebagai transparant proxy dimana client tidak menyadari saat melakukan request akan terlebih dahulu dialihkan ke proxy server. ReverseProxy biasa juga dikenal sebagai gateway mode [7].

Gambar 1. Apache ReverseProxy

Metode ReverseProxy juga memiliki beberapa kelebihan, diantaranya adalah :

• Load Balancing Merupakan fungsi yang mengoptimalkan fungsi kerja web server dengan membuat kecepatan dalam mengakses server lebih baik.

• Web Acceleration Merupakan fungsi untuk mengkompresi inbound dan outbond data. Dengan adanya fungsi ini akan menambah kecepatan dalam hal request content serta lalu lintas/traffic antara client dan web server.

• Security dan anathomy Saat melakukan request kedalam web server melalui internet, client hanya mengenal IP ReverseProxy dan tidak dapat menjangkau web server secara langsung.

ISSN: 2085-6350 Yogyakarta, 24-25 Juli 2019 CITEE 2019

200 Departemen Teknik Elektro dan Teknologi Informasi, FT UGM

E. Socket Programming Socket merupakan endpoint pada komunikasi yang

bisa diberikan nama dan alamat pada suatu jaringan. Socket programming merupakan cara untuk membangun komunikasi antara remote dengan local processes menggunakan socket API. [8].

F. OWASP TOP 10 Serangan terhadap sebuah aplikasi web memiliki Jenis

yang bermacam-macam dengan memanfaatkan celah kerawanan, namun terdapat standar yang digunakan untuk menilai celah kerawanan pada suatu aplikasi web yang sering digunakan yaitu OWASP.

OWASP merupakan singkatan dari Open Web Application Security Project dimana merupakan suatu organisai terbuka yang berfokus pada keamanan aplikasi web. Salah satu project yang sering digunakan sebagai standard adalah OWASP Top (rangkuman dari 10 celah keamanan pada aplikasi web). Dengan adanya dokumen OWASP Top 10, pengembang dapat mengetahui 10 (sepuluh) celah keamanan yang ada sehingga sebelum aplikasi tersebut menjadi production, dapat terlebih dahulu di perbaiki celah-celah kerawanan yang ditemukan. Terdapat 10 celah keamanan pada dokumen OWASP Top 10, diantaranya adalah [2]:

• Injection • Broken Authentication and Session Management • Cross-Site Scripting (XSS) • Insecure Direct Object References • Security Misconfiguration • Sensitive Data Exposure • Missing Level Access Control • Cross Site Request Forgery (CSRF) • Using Known Vulnerable Components • Unvalidated Redirects and Forwards

Serangan yang umum terjadi dan memiliki dampak yang critical adalah Injection. Injection atau biasanya disebut SQL Injection adalah metode serangan yang memiliki tingkat resiko tinggi karena serangan ini dapat mengakses, mengambil informasi dari database aplikasi web [2].

G. Modsecurity Modsecurity adalah cross-platform WAF berbasis

open source yang berfungsi sebagai aplikasi hardening /pertahanan. modsecurity memberikan perlindungan terhadap aplikasi web dari serangan dan memungkinkan untuk pemantauan traffic protocol HTTP(s) pada kondisi real-time [9]. Modsecurity dapat dimodifikasi dalam pengolahan datanya, karena pada dasarnya modsecurity mendukung :

• Parsing Modsecurity mencoba memahami sebanyak mungkin data yang tersedia. Format data yang didukung oleh parser yang mengekstrak bit data akan simpan untuk digunakan dalam rules/aturan.

• Buffering Dalam proses instalasi, baik request dan response akan di-buffer. Hal tersebut dikarenakan

modsecurity pada umumnya melihat request lengkap sebelum diteruskan kepada aplikasi web untuk diproses, dan response sebelum dikirim ke client. Namun buffering membutuhkan RAM tambahan pada hardware server untuk menyimpan request dan response.

• Logging Pencatatan transaksi lengkap (juga disebut sebagai audit logging) adalah bagian besar dari modsecurity. Fitur ini memungkinkan Anda untuk merekam lalu lintas HTTP lengkap, bukan hanya informasi akses log dasar. Request headers, request body, response header, response body akan tersedia pada log, sehingga dapat memberikan informasi lebih detail.

• Rule Engine digunakan untuk memberikan aturan yang membatasi celah kerawanan yang di request menuju aplikasi web. Pada proses tersebut, celah kerawanan yang dideteksi oleh aturan yang telah dibuat/dikonfigurasi akan dilakukan blocking.

Namun secara default, modsecurity tidak memiliki dashboard log secara interaktif dengan tampilan visual grafik maupun tabel. Untuk itu, hal ini dapat menjadi tantangan untuk membuat tampilan interaktif visual yang inovatif.

H. Apache Web Server

Apache adalah web server yang digunakan di tahun-tahun awal era internet berlangsung. apache merupakan monlitic web server, memiliki file konfigurasi yang tersentral untuk semua parameter [10]. Penerapan WAF menggunakan Modsecurity dikarenakan Modsecurity menggunakan apache web server sehingga dapat mendukung banyak website yang menggunakan web server apache.

Berdasarkan survei yang dilakukan oleh netcraft sampai Januari 2018, penggunaan apache web server sebagai aplikasi web yang aktif saat ini memiliki grafik tertinggi [11].

Gambar 2. Grafik web server yang aktif digunakan <sumber :

http://news.netcraft.com/archives/2018/02/13/february-2018-web-server-survey.html>[ Diakses 13 Februari 2019 ]

CITEE 2019 Yogyakarta, 24-25 Juli 2019 ISSN: 2085-6350

Departemen Teknik Elektro dan Teknologi Informasi, FT UGM 201

Total terbanyak sejumlah 75.212.932 (43,82%) web server yang aktif menggunakan apache, selanjutnya adalah nginx dengan jumlah 36.504.577 (21,27%).

III. IMPLEMENTASI Konsep jaringan yang akan dilakukan simulasi

keamanan aplikasi web dengan menggunakan ReverseProxy dan modsecurity berbasis apache web server sebagai WAF dengan target aplikasi web menggunakan bahasa pemrograman PHP adalah sebagai berikut :

Gambar 3. Diagram simulasi Keamanan aplikasi web dengan menggunakan ReverseProxy dan Mod Security sebagai WAF.

Berdasarkan gambar diatas, konsep ini membuat serangan akan seolah-olah di arahkan langsung menuju web server, namun yang sebenarnya terjadi adalah serangan akan di arahkan ke WAF terlebih dahulu sebagai ReverseProxy server sebelum diterima ke web server. Serangan yang akan diterima oleh WAF (proxy server) akan dilakukan blocking/filtering berdasarkan jenis serangan yang umum di internet atau dalam kategori standard OWASP.

Ketika melakukan implementasi, terdapat tiga socket yang digunakan untuk menampilkan monitoring WAF dan pengaturan WAF. Pada simulasi ini IP yang digunakan adalah 192.168.2.110 dan port yang digunakan adalah 8001 (halaman utama), 9001 (WAF monitoring), dan 9999 (konfigurasi WAF). Berikut ini adalah hasil dari implementasi WAF berbasis open source menggunakan socket programming.

A. Halaman utama WAF

Admin dapat mengakses halaman utama WAF dengan memasukkan alamat 192.168.2.112:8001 pada kolom url pada browser. Berikut ini adalah tampilan yang muncul pada browser ketika admin mengakses alamat tersebut:

Gambar 4. Halaman Utama WAF

Pada gambar 4 halaman utama WAF terdapat dua pilihan yaitu WAF monitoring dan server configuration.

B. WAF Monitoring

Ketika admin mengakses WAF monitoring, admin akan dialihkan ke socket yang berbeda yaitu: 192.168.2.112:9001. Ketika alamat diakses maka akan muncul halaman login untuk mengakses WAF monitoring yang dimana username dan password sudah diatur ketika melakukan konfigurasi. Berikut ini adalah halaman yang ditampilkan ketika admin telah memasukkan username dan password:

Gambar 5. Halaman WAF monitoring

Pada halaman WAF monitoring seperti yang ditujukkan pada gambar 5 terdapat empat informasi tabel yang ditampilkan yaitu:

• Date (waktu kejadian) • IP (sumber IP address) • Log (catatan kejadian) • Severity

Selain dapat melakukan monitoring, admin juga dapat mengatur informasi yang akan ditempilkan pada layar seperti filter berdasarkan kata kunci, lama waktu refresh, dan banyaknya log yang akan ditampilkan.

C. Konfigurasi WAF Ketika admin memilih menu server configuration

maka akan dialihkan menuju 192.168.2.112:9999 dan muncul pengaturan seperti pada gambar dibawah ini:

Gambar 6. Halaman Server Configuration

Pada gambar 6 terdapat isian untuk melakukan pengaturan server, pengaturan proxy, pengaturan rules, dan konfirmasi pengaturan. Di bagian pengaturan server, admin harus mengisi kolom server name, server admin, dan document root.

Kemudian pada pengaturan proxy, admin harus mengisi proxy pass dan proxy pass reverse. Untuk isian pengaturan rules, admin hanya perlu mencentang rules apa saja yang akan digunakan pada WAF. Setelah mengisi semua pilihan, admin dapat menerapkan pengaturannya dengan mengklik simpan. Jika ingin membatalkan semua

ISSN: 2085-6350 Yogyakarta, 24-25 Juli 2019 CITEE 2019

202 Departemen Teknik Elektro dan Teknologi Informasi, FT UGM

pengaturan yang sudah diisi, admin hanya cukup mengklik batal.

Gambar 7 adalah output konfigurasi yang telah diisi pada browser akan dimasukkan ke dalam file data.txt. Berikut ini adalah contoh konfigurasi server tanpa adanya isian:

Gambar 7. File konfigurasi

Gambar 8 berikut ini adalah isi dari file data.txt yang kemudian akan digunakan sebagai file 000-default.conf:

Gambar 8. Isi file data.txt

Kemudian untuk pengaturan rules yang akan digunakan pada WAF terdapat pada direktori “/var/modsecurity/base_rules”.

Gambar 9. Rules Pada WAF

Pada gambar 9 merupakan rules yang digunakan pada WAF. File rules yang digunakan pada dalam pengaturan WAF merupakan file dengan ekstesi “.conf” .

Gambar 10. Rules Pada WAF ketika Tidak Aktif

Gambar 10 diatas adalah contoh ketika rules WAF tidak digunakan saat pengaturan WAF. Ketika pengaturan WAF rules yang digunakan tidak di ceklis makan ekstensi file akan ditambah dengan “.deactive” sehingga ketika rules dipanggil tidak akan terdeteksi oleh modsecurity.

IV. PENGUJIAN Pengujian dilakukan dengan simulasi yang dibagi

menjadi dua kondisi, yaitu simulasi tanpa WAF dan simulasi menggunakan WAF.

A. Simulasi tanpa WAF Simulasi pada server aplikasi web langsung dengan IP

192.168.98.134 sebagai perbandingan terhadap hasil yang akan didapatkan saat dilakukan serangan terhadap SQL Injection dan Unrestricted File Upload.

• SQL Injection Simulasi pertama melakukan serangan SQL Injection dengan menambahkan script SQL pada url aplikasi web seperti berikut:

”http://192.168.2.112/index.php?id=4+UNION+SELECT+1,2,3,4,5,6,7--”.

Hasil yang diperlihatkan bahwa data username dan password pada database cms dimunculkan pada web page seperti pada gambar berikut:

Gambar 11. Data username dan password pada database

aplikasi web dapat ditampilkan menggunakan serangan SQL Injection.

Pada gambar 11 adalah Hasil yang didapatkan yaitu username dan password yang tersimpan pada database user adalah ”admin” dan untuk password ”3cf2139939a806213e131a6297c7c4cf”. Tipe data password masih berbentuk hash MD5 sehingga

CITEE 2019 Yogyakarta, 24-25 Juli 2019 ISSN: 2085-6350

Departemen Teknik Elektro dan Teknologi Informasi, FT UGM 203

dapat dicari melalui internet dengan bantuan google.

• Unrestricted File Upload Celah kerawanan ini memanfaatkan fungsi upload file pada aplikasi web yang tidak diberikan batasan ekstensi/filtering pada jenis file yang akan di upload. Pada simulasi ini file shell script yang digunakan adalah b364k.php yang merupakan script remote code execution.

Gambar 12. Tampilan aplikasi web yang sedang

dilakukan upload file b374k.php

Setelah di upload, pada direktori “/files/” dapat diakses file b374k.php yang dapat membuka dan mengeksekusi seluruh folder pada sistem operasi server tersebut seperti yang ditunjukan gambar 12.

• Denial of Service (DOS)

Hasil serangan DOS dengan menggunakan tools slowloris tanpa penerapan WAF, dengan parameter 4000 virtual connection per second dalam waktu 2 (dua) menit seperti pada gambar grafik berikut:

Gambar 13. Grafik koneksi aplikasi web tanpa WAF

terhadap serangan DOS sebanyak 4000 virtual connection per second dalam waktu 2 (dua) menit

Dari grafik warna merah pada gambar 13 menunjukkan pending dimana aplikasi web akan tetap loading untuk mencoba menampilkan web page, sedangkan grafik warna biru enandakan bahwa aplikasi web tidak dapat diakses atau mengalami closed/down berkelanjutan dimulai dari detik ke-114 smpai 240.

B. Simulasi menggunakan WAF Dengan mengakses WAF Server pada IP

192.168.2.112/index.php maka WAF akan me-load apliaksi web yang ada pada server dengan IP 192.168.2.113, sehingga tampak seperti pada gambar 14.

Gambar 14. Tampilan aplikasi web yang di-load oleh

WAF dari web server

WAF Server tidak memiliki file web namun mengarahkan request dari client untuk menuju aplikasi web. Simulasi akan dilakukan pada 3 (tiga) jenis serangan yaitu SQL Injection, Unrestricted File Upload dan DOS.

• SQL Injection Hasil serangan dengan penambahan script SQL Injection pada url “http://192.168.2.112/index.php?id=4+UNION+SELECT+1,2,3,4,5,6,7--” diperlihatkan pada gambar 15 dan 16 bahwa WAF melakukan blocking pada serangan tersebut, sehingga serangan SQL injection dapat di filter untuk tidak diteruskan.

Gambar 15. Tampilan aplikasi web yang telah dilakukan blocking

terhadap serangan SQL Injection.

Gambar 16. Tampilan log file pada saat dilakukan blocking terhadap

serangan SQL Injection

• Unrestricted File Upload Hasil serangan dengan memanfaatkan b374k.php file shell script yang upload ke aplikasi web server dilakukan blocking oleh WAF.

ISSN: 2085-6350 Yogyakarta, 24-25 Juli 2019 CITEE 2019

204 Departemen Teknik Elektro dan Teknologi Informasi, FT UGM

Gambar 17. Tampilan aplikasi web yang telah dilakukan blocking

terhadap serangan Unrestricted File Upload.

Seperti pada gambar 17, proses upload tidak diteruskan oleh WAF. Log yang muncul akan terlihat seperti pada gambar 18.

Gambar 18. Tampilan log file pada saat dilakukan blocking terhadap

serangan Unrestricted File Upload.

Hasil serangan dengan penambahan script SQL Injection

• Denial of Services (DOS) Hasil serangan DOS dengan menggunakan tools “slowloris” dengan penerapan WAF, dengan parameter 4000 virtual connection per second dalam waktu 2 (dua) menit seperti pada grafik gambar 19.

Gambar 19. Grafik hasil blocking WAF terhadap serangan DOS sebanyak 4000 virtual connection per second dalam

waktu 2 (dua) menit.

Grafik warna hijau pada gambar 19 menunjukkan bahwa aplikasi web hanya mengalami down selama kurang lebih 25 detik dari detik ke-10 sampai 35. Selanjutnya koneksi berangsur normal.

V. KESIMPULAN DAN SARAN Berdasarkan hasil simulasi yang telah dilakukan

terhadap aplikasi web yang tidak menggunakan dan menggunakan WAF, dapat disimpulkan bahwa implementasi ReverseProxy dan WAF sangat efektif untuk mencegah serangan yang umum dan critical seperti SQL Injection, Unrestricted File Upload, dan Denial of Services. Untuk itu penggunaan WAF sangat

direkomendasikan bagi aplikasi web yang memiliki data penting dan sensitif. Berikut dapat dilihat tabel 1 hasil pengujian WAF menggunakan Modsecurity dengan metode ReverseProxy.

TABEL I. Hasil pengujian WAF menggunakan Modsecurity dan ReverseProxy

No. Tipe Serangan Keterangan

Tanpa WAF

Menggunakan WAF

1. SQL Injection Berhasil Gagal 2. Unrestricted File

Upload Berhasil Gagal

3. Denial of Services Berhasil Gagal

Berdasarkan tabel 1 menunjukkan bahwa dengan menerapkan WAF untuk keamanan aplikasi web dapat menjadi solusi alternatif bagi pemerintah dalam menanggulangi serangan siber terutama yang sudah dikategorikan pada OWASP Top 10. Disamping itu, sebagai aplikasi open source, implementasi WAF dengan Modsecurity dapat menghemat biaya yang besar dalam membuat perangkat keamanan serta script program yang diimplementasikan dapat dimodifikasi sesuai dengan kebutuhan.

REFERENSI [1] Rouse. Margaret, “Web application firewall (WAF)”.

https://searchsecurity.techtarget.com/definition/Web-application-firewall-WAF

[2] OWASP. “OWASP Top 10 – 2017 The Ten Most Critical Web Application Security Risks”. https://owasp.org. 2017

[3] Richard L. Halterman. “Fundamentals Python Programming”. Southern Adventist University. July 26, 2018

[4] Anders, Michel. “Python 3 Web Development Beginner's Guide”. Published by Packt Publishing Ltd. 32 Lincoln Road Olton Birmingham, B27 6PA, UK. 2011

[5] Nixon, Robin. “Learning PHP, MySQL, JavaScript, and CSS, Second Edition”. O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. 2012

[6] Stricek, Art. “A ReverseProxy Is A Proxy By Any Other Name”. SANS Institute. January 10, 2002

[7] Ali, Syed, 2014. “Practical Linux Infrastructure”. USA:Apress.P.155

[8] IBM, 2013. “Programming Socket programming”. IBM Corporation Software Interoperability Coordinator, Department YBWA 3605 Highway 52 N Rochester, MN 55901, U.S.A.

[9] Ristic, Ivan, 2010. “Modsecurity-Handbook”. USA: Fiesty-Duck.pp.5-6

[10] Apache Software Foundation, 2015. “Apache HTTP Server Documentation Version 2.4”. https://archive.apache.org/dist/httpd /docs/httpd-docs-2.4.12.en.pdf

[11] Netcraft, 2018. “February 2018 Web Server Survey”. https://news.netcraft.com/archives/2018/02/13/february-2018-web -server-survey.html

[12] ID-SIRTII, 2018, “Laporan Tahunan Januari-Desember”. https://drive.google.com/file/d/1Q4gf6l9YZ9SuJrNc7eq_41cEYQwk4c7Z/view.

CITEE 2019 Yogyakarta, 24-25 Juli 2019 ISSN: 2085-6350

Departemen Teknik Elektro dan Teknologi Informasi, FT UGM 205