BAB 1 PENDAHULUAN 1.1 Latar Belakang Layanan Internet memungkinkan pengguna berbagi layanan bersama dan saling terkait melalu aplikasi web yang ada. Segala informasi dapat dengan mudah didapatkan dari aplikasi web. Adanya teknologi informasi saat ini menjadikan aplikasi web sebagai incaran para hacker. Beberapa ancaman yang sering terjadi pada aplikasi web diantaranya SQL Injection, Cross-Site Scripting dan Command Execution. SQL (Structure Query Language) Injection adalah teknik yang memanfaatkan kode yang terdapat di dalam program sebuah situs yang lemah tanpa perlindungan yang kuat dari sebuah admin situs tersebut. Cross-Site Scripting atau sering dikenal dengan XSS adalah ancaman yang mengizinkan kode (client side script) dimasukan ke dalam suatu website yang dapat dijalankan pada sisi user. Command Execution adalah bug yang memungkinkan attacker untuk menjalankan perintah-perintah secara remote melalui url. Keamanan pada aplikasi web kurang mendapat perhatian dari developer sehingga menyebabkan serangan di internet dilakukan terhadap sebuah web, untuk itu diperlukan pengamanan khusus yakni dengan Web Application Firewall. Web Application Firewall adalah Suatu metode untuk pengamanan pada aplikasi web, yang berupaya mencegah adanya ancaman dari attacker. Web Application Firewall dapat bekerja dengan terlebih dahulu melakukan konfigurasi tambahan pada web server dan tidak perlu melakukan perubahan pada script pembangun aplikasi, sehingga dapat diterapkan pada aplikasi yang sudah berjalan. Web Application Firewall (WAF) memiliki beberapa fungsi, mulai dari monitoring trafik, secure directory, pemfilteran string dan proteksi terhadap serangan seperti SQL Injections, Cross-Site Scripting, dan Command Execution. Dengan sistem pertahanan ini, diharapkan dapat memberikan rekomendasi untuk meningkatkan segi keamanan, sehingga aplikasi web yang dibangun tidak hanya mempunyai 1
desain yang baik namun juga terjaga integritas datanya. Penelitian yang mengambil topik security pada aplikasi web ini diberi judul IMPLEMENTASI KEAMANAN PADA APLIKASI WEB dengan WEB APPLICATION FIREWALL. 1.2 Rumusan Masalah Adapun rumusan masalah yang akan dibahas lebih lanjut dalam Proyek Akhir ini yaitu sebagai berikut. 1. Bagaimana menanggulangi ancaman SQL Injection, Cross-Site Scripting dan Command Execution? 2. Bagaimana mengimplementasikan mekanisme keamanan pada aplikasi web dengan Web Application Firewall? 1.3 Tujuan Adapun tujuan dari penyusunan proyek akhir ini yaitu sebagai berikut. 1. Mengetahui cara menanggulangi ancaman SQL Injection, Cross- Site Scripting dan Command Execution. 2. Mengetahui mengimplementasikan mekanisme keamanan pada aplikasi web dengan Web Application Firewall 1.4 Batasan Masalah Adapun batasan-batasan masalah dalam pengerjaan proyek akhir ini adalah sebagai berikut. 1. Jenis ancaman yang disimulasikan pada aplikasi web adalah SQL Injection, Cross-Site Scripting dan Command Execution. 2. Simulasi pertahanan dan ancaman dilakukan pada aplikasi berbasis web dengan target Damn Vulnerable Web Application (DVWA). 3. Bentuk form dalam metode SQL Injection adalah form login. 4. Bentuk form dalam metode Cross Site Scripting adalah form reflection xss. 2
5. Bentuk form dalam metode Command Execution adalah form url. 6. Aplikasi web menggunakan nginx sebagai webserver. 7. Pengamanan aplikasi web dengan metode Web Application Firewall menggunakan naxsi. 1.5 Definisi Operasional Aplikasi web sekarang ini semakin berkembang secara pesat. Dengan internet, segala informasi yang ada pada aplikasi web mejadikan aplikasi web itu menjadi incaran para hacker. Beberapa ancaman yang sering terjadi pada aplikasi web diantaranya SQL Injection, Cross-Site Scripting dan Command Execution. Salah satu metode pengamanan yang dapat diterapkan yaitu dengan menggunakan Web Application Firewall. Dimana metode tersebut akan diterapkan pada aplikasi web dan untuk bentuk pengujian pertahanan, akan dicoba disimulasikan teknik serangan yang paling sering terjadi. Dengan sistem pertahanan ini, diharapkan dapat memberikan rekomendasi untuk meningkatkan segi keamanan, sehingga aplikasi web yang dibangun tidak hanya mempunyai desain yang baik namun juga terjaga integritas datanya. 1.6 Metode Pengerjaan 1.6.1 Metode Pengerjaan Sistem 1. Studi Literatur Tahap ini dilakukan dengan mengumpulkan bahan-bahan pustaka sesuai dengan masalah yang dihadapi. Metode Studi Literatur dimaksudkan untuk memperoleh dan mempelajari data-data sebagai sumber acuan dan pendalaman landasan teori dalam proses perancangan, pembuatan dan pengujian sistem. Selain dari buku-buku pendukung, referensi juga diperoleh dari Internet. 1.6.2 Metode Pengembangan Sistem Metodelogi yang digunakan dalam pengerjaan proyek akhir ini adalah metodelogi waterfall, dapat dilihat pada gambar berikut: 3
Gambar 1. 1 Metodologi Waterfall Berikut adalah penjelasan dari tahap-tahap yang dilakukan dalam model metodelogi waterfall. 1. Analisis Kebutuhan Analisis kebutuhan ini merupakan langkah analisis terhadap kebutuhan sistem dimulai dari pengumpulan data sampai analisis data. Pengumpulan data dalam tahap ini dilakukan dengan studi literatul pada beberapa website maupun buku untuk mendapatkan informasi yang dibutuhkan mengenai keamanan sistem yang ada pada aplikasi website. 2. Desain. Pada tahap ini, daftar kebutuhan admin sudah di dapatkan. Maka tahap analisis akan dituangkan dalam bentuk teknis seperti monitoring trafik, secure directory, pemfilteran string dan proteksi terhadap serangan seperti SQL Injections, Cross-Site Scripting, dan Command Execution dengan menggunakan Web Application Firewall. 3. Pembuatan Kode. Tahap ini dilakukan proses pembuatan web sesuai dengan apa yang telah di spesifikasikan dan di desain dengan menggunakan bahasa pemrograman PHP dan DBMS MySQL. 4. Pengujian Pengujian keamanan merupakan tahap pembuatan system untuk memastikan bahwa sistem yang dibuat telah sesuai dengan penulisan 4
kode yang ditentukan di awal dan semua fungsi dapat dipergunakan dengan baik. 1.7 Jadwal Pengerjaan Dalam pengerjaan proyek akhir ini adapun jadwal pengerjaan yang akan menjadi acuan dalam pengerjaannya. Tabel 1-1 Jadwal Pengerjaan N o 1 2 Kegiatan Pencarian dan Pengumpul -an Data Analisis Kebutuhan 3 Desain Pembuatan 4 Kode Program 5 Pengujian 6 Pembuatan Laporan Waktu Pelaksanaan 2014-2015 Oktober- Agustus- Januari-Maret Desember September 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 5