• Tidak ada hasil yang ditemukan

Pencari Celah Keamanan pada Aplikasi Web

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pencari Celah Keamanan pada Aplikasi Web"

Copied!
6
0
0

Teks penuh

(1)

Abstrak—Kejahatan di dunia teknologi dan informasi terutama pada aplikasi web semakin marak terjadi. Salah satu faktor yang menyebabkan kurangnya tingkat keamanan pada aplikasi web adalah kesalahan penulisan kode program. Kesalahan penulisan kode program dalam pembuatan aplikasi web adalah hal yang sering dimanfaatkan oleh para penyerang, hal ini mengakibatkan rata-rata aplikasi web bisa diserang dengan memanfaatkan kesalahan ini. Kelemahan-kelemahan yang sering dimanfaatkan oleh para penyerang diantaranya adalah kelemahan terhadap SQL Injection, XSS, Remote File Inclusion, dan Username Enumeration.

Salah satu cara untuk mendeteksi adanya kelemahan-kelemahan pada aplikasi web adalah dengan menggunakan aplikasi pencari celah keamanan. Aplikasi pencari celah keamanan ini dimaksudkan untuk mendeteksi secara otomatis apakah suatu aplikasi web memiliki kerentanan terhadap suatu serangan. Aplikasi ini akan mencari celah keamanan suatu situs web terhadap 4 metode serangan, yaitu : SQL Injection, XSS (Cross-Site Scripting), RFI (Remote File Inclusion), dan Username Enumeration.

Dari hasil uji coba, aplikasi ini bisa memberikan informasi tentang dimana letak celah keamanan yang terdapat pada suatu aplikasi web terhadap metode-metode serangan yang diujikan. Serangan SQL Injection, XSS, dan RFI dapat dihindari dengan cara melakukan sanitasi terhadap masukan dari pengguna.

Kata Kunci : RFI, SQL Injection, Username Enumeration, XSS

I. PENDAHULUAN

alam dunia pengembangan website, pengamanan terhadap sebuah website seringkali luput dari benak pengembang web. Pada kenyataanya, mencari suatu bug atau kelemahan keamanan dan melakukan audit terhadap suatu website cukup sulit untuk dilakukan. Melihat kenyataan tersebut, para pengembang ataupun praktisi keamanan web mengaplikasikan berbagai teknik keamanan. Setiap pengembang website harus memperbaiki pengamanan terhadap website yang dibangunnya. Pengamanan harus diterapkan sejak awal karena penerapannya akan sangat sulit jika telah terjadi masalah di kemudian hari. Akan tetapi, hal tersebut tidak menjamin website tersebut aman 100% karena selalu terdapat celah-celah yang harus diminimalisir jumlahnya.

Salah satu faktor yang menyebabkan kurangnya tingkat keamanan pada aplikasi web adalah kesalahan penulisan

kode program. Kesalahan penulisan kode program dalam pembuatan aplikasi web adalah hal yang sering dimanfaatkan oleh para penyerang, hal ini mengakibatkan rata-rata aplikasi web bisa diserang dengan memanfaatkan kesalahan ini. Kelemahan-kelemahan penulisan kode yang sering dimanfaatkan aleh para penyerang untuk menyerang korbannya diantaranya adalah SQL Injection dan XSS. Seperti ditunjukan pada diagram yang dirilis oleh webappsec.org (diperbaharui terakhir Juli 2011) pada Gambar 1 bahwa SQL Injection (20%) dan XSS (9,9%) merupakan dua metode serangan yang sering digunakan [1].

Gambar 1. Diagram Serangan pada Aplikasi Web

Selain 2 metode yang telah disebutkan, terdapat pula metode-metode lain yang bisa dilakukan untuk menyerang suatu aplikasi web, diantaranya adalah : Username Enumeration, dan Remote File Inclusion [2]. Apabila celah-celah keamanan ini tidak diatasi dengan baik dan benar, maka bisa menimbulkan dampak buruk pada aplikasi web.

Salah satu cara untuk mempermudah pendeteksian adanya kelemahan-kelemahan pada aplikasi web/website adalah dengan menggunakan aplikasi pencari celah keamanan. Aplikasi pencari celah keamanan ini dimaksudkan untuk mendeteksi secara otomatis apakah suatu aplikasi web memiliki kerentanan terhadap suatu serangan. Dengan menggunakan aplikasi seperti ini maka baik administrator maupun pengembang aplikasi web dapat mengetahui dimana letak kerentanan pada aplikasi web mereka. Hal ini tentunya akan memudahkan dalam upaya meningkatkan keamanan aplikasi web.

Tujuan tugas akhir ini adalah membangun aplikasi yang bisa mendeteksi kelemahan dari aplikasi web terhadap SQL Injection, Cross-Site Scripting (XSS), Remote File Inclusion, dan Username Enumeration.

Pencari Celah Keamanan pada Aplikasi Web

D

Muhammad Chandrika Kesuma, Ary Mazharuddin Shiddiqi, Baskoro Adi Pratomo

Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember

(ITS)

Jl. Arief Rahman Hakim, Surabaya 60111

(2)

II. KAJIANPUSTAKA A. SQL Injection

SQL Injection adalah jenis serangan yang memungkinkan penyerang untuk memanipulasi perintah SQL melalui URL atau isian form yang dikirimkan oleh aplikasi web ke server [3]. Salah satu bentuk serangan ini dilakukan dengan menyusun perintah SQL yang memungkinkan dilakukannya login tanpa memiliki akun yang valid. Dalam serangan SQL Injection, penyerang mencoba memasukkan query baik melalui field atau URL yang menyebabkan database server menghasilkan query SQL yang salah. Teknik SQL Injection merupakan teknik penyerangan yang sangat sederhana, namun justru hal inilah yang sering diabaikan oleh para pengembang aplikasi web.

SQL Injection dapat disebabkan karena penanganan yang buruk terhadap karakter tanda ‘ (petik satu), karakter --(double minus), maupun karakter-karakter lain yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL. Hal ini bisa mengakibatkan seorang penyerang menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.

B. XSS (Cross-Site Scripting)

XSS merupakan salah satu jenis serangan injeksi kode (code injection attack) yang memungkinkan suatu website untuk menampilkan kode berbahaya yang kemudian dieksekusi pada web browser pengguna [4]. Penyerang melakukan serangan XSS dengan cara memasukkan kode HTML atau kode client script lainnya ke suatu website. Dengan menggunakan serangan ini penyerang bisa melakukan web deface yang dimaksudkan untuk mengelabui pengguna sehingga penyerang bisa mendapatkan informasi sensitif, ataupun menyimpan aplikasi berbahaya.

Resiko yang mungkin diakibatkan dari kerentanan aplikasi web terhadap XSS diantaranya adalah pencurian akun pengguna. Hal ini sangat berbahaya karena penyerang bisa mendapatkan informasi sensitif milik pengguna. Serangan XSS dapat terjadi karena suatu aplikasi web yang membutuhkan masukan dari pengguna tidak tersanitasi dengan baik.

C. RFI (Remote File Inclution)

Remote File Inclusion (RFI) adalah teknik serangan yang digunakan untuk mengeksploitasi mekanisme include file secara dinamis pada aplikasi web. Ketika aplikasi web mengambil masukan pengguna (URL, nilai parameter, dll) dan mengirimnya ke command include, aplikasi web mungkin akan mengeksekusi file dari luar yang memiliki kode berbahaya di dalamnya [5].

D. Username Enumeration

Username Enumeration adalah suatu metode untuk bisa masuk ke suatu situs web dengan menggunakan username dan password secara acak. Metode ini menggunakan daftar username dan password yang kemudian digunakan untuk mencoba masuk ke dalam halaman web. Proses ini dilakukan secara berulang-ulang sampai didapatkan username dan password yang benar [6].

Jika username dan password yang benar berhasil didapatkan, maka hal ini akan sangat berbahaya bagi pemilik

username dan password tersebut. Hal ini bisa mangakibatkan terjadinya penyalah gunaan username dan password oleh pihak yang tidak berhak menggunakannya.

III. DESAINSISTEM A. Deskripsi Umum

Aplikasi yang akan dibuat dalam tugas akhir ini adalah aplikasi pencari celah keamanan pada aplikasi web. Aplikasi ini akan memberikan informasi tentang kerentanan suatu aplikasi web terhadap serangan-serangan yang akan dilakukan dengan menggunakan empat metode berbeda. Metode penyerangan yang akan digunakan dalam aplikasi ini adalah : SQL Injection, XSS (Cross-Site Scripting), RFI(Remote File Inclusion), dan Usename Enumeration. Aplikasi ini akan menghasilkan laporan yang berisikan informasi letak celah keamanan yang terdapat pada aplikasi web yang dijadikan bahan uji.

B. Arsitektur Sistem

Dalam tugas akhir ini akan dirancang dan diaplikasikan sebuah aplikasi pencari celah keamanan untuk aplikasi web dimana secara garis besar memiliki arsitektur seperti diperlihatkan pada Gambar 2.

WEB SERVER

WEB SERVER Aplikasi Vulnerability Scanner

Script Injection

Script HTML

Gambar 2. Arsitektur Sistem

Sesuai dengan gambar 2, maka jalannya aplikasi adalah sebagai berikut:

1. Aplikasi Pencari Celah Keamanan melakukan request berupa URL ke server

2. Server memberikan respon berupa HTML

3. Aplikasi melakukan proses scan terhadap respon HTML dan menginjeksikan script injeksi.

4. Server memberikan respon berupa HTML.

5. Aplikasi melakukan proses scan terhadap respon HTML untuk mengecek hasil proses injeksi.

6. Aplikasi memberikan laporan hasil proses scan. C. Deskripsi Singkat Aplikasi

Aplikasi pencari celah keamanan ini memiliki empat fitur utama yang dapat membantu untuk mencari celah keamanan yang mungkin terdapat pada suatu aplikasi web. Fitur-fitur yang terdapat pada aplikasi ini adalah sebagai berikut: Mencari Celah Keamanan terhadap XSS.

Fungsi scanning XSS (Cross-Site Scripting) dimulai dengan pengguna memasukkan alamat sebuah situs web. Aplikasi akan memulai proses crawling situs web yang menjadi masukan, kemudian menginjeksikan script XSS. Aplikasi akan menentukan apakah terdapat celah keamanan yang rentan terhadap serangan XSS dalam situs web yang

(3)

menjadi masukan.

Mencari Celah Keamanan terhadap SQL Injection.

Fungsi scanning SQL Injection dimulai dengan pengguna memasukkan alamat sebuah situs web. Aplikasi akan memulai proses crawling situs web yang menjadi masukan, kemudian menginjeksikan script SQL Injection. Aplikasi akan menentukan apakah terdapat celah keamanan yang rentan terhadap serangan SQL Injection dalam situs web yang menjadi masukan.

Mencari Celah Keamanan terhadap RFI.

Fungsi scanning RFI (Remote File Inclusion) dimulai dengan pengguna memasukkan alamat sebuah situs web. Aplikasi akan memulai proses crawling situs web yang menjadi masukan, kemudian menginjeksikan script RFI. Aplikasi akan menentukan apakah terdapat celah keamanan yang rentan terhadap serangan RFI dalam situs web yang menjadi masukan.

Username Enumeration.

Fungsi Username Enumeration dimulai dengan pengguna memasukkan alamat sebuah situs web. Aplikasi akan mencari form login dari website yang menjadi masukan, lalu menginjeksikan username dan password yang diperoleh dari file teks yang telah disediakan.

D. Diagram Alir Aplikasi

Diagram alir dari aplikasi ini terbagi menjadi 4 buah diagram alir yang dapat dilihat pada Gambar 3, Gambar 4, Gambar 5, dan Gambar 6. Diagram alir tersebut masing-masing mewakili fitur-fitur yang terdapat pada aplikasi ini, yaitu : XSS Scanner, SQL Injection Scanner, RFI Scanner, dan Username Enumeration.

Gambar 3. Diagram Alir XSS Scanner

Gambar 4. Diagram Alir SQL Injection Scanner

Gambar 5. Diagram Alir RFI Scanner

(4)

IV. IMPLEMENTASI

A. Implementasi Fitur Pencarian Celah Keamanan terhadap XSS

Lapisan logika pada fitur ini diimplementasikan di dalam class EvaluatorXSS. Saat fitur ini dijalankan, aplikasi mengeksekusi fungsi cari_link pada dengan parameter sebuah URL untuk memulai proses crawling tahap pertama, dilanjutkan dengan fungsi isi_semua_link untuk melakukan crawling tahap kedua. Kemudian aplikasi akan menginjeksikan script XSS ke dalam link yang telah didapatkan dengan menggunakan fungsi replace_param_xss_rfi. Dilanjutkan dengan fungsi search_form dan search_post_form untuk mendapatkan dan menginjeksi form yang terdapat pada URL. Fungsi terakhir yang dijalankan adalah fungsi eval untuk menentukan apakah suatu URL memiliki celah keamanan terhadap XSS atau tidak.

B. Implementasi Fitur Pencarian Celah Keamanan terhadap SQL Injection

Lapisan logika pada fitur ini diimplementasikan di dalam class EvaluatorSQL. Saat fitur ini dijalankan, aplikasi mengeksekusi fungsi cari_link pada dengan parameter sebuah URL untuk memulai proses crawling tahap pertama, dilanjutkan dengan fungsi isi_semua_link untuk melakukan crawling tahap kedua. Kemudian aplikasi akan menginjeksikan script SQL Injection ke dalam link yang telah didapatkan dengan menggunakan fungsi replace_param_sql. Dilanjutkan dengan fungsi search_form dan search_post_form untuk mendapatkan dan menginjeksi form yang terdapat pada URL. Fungsi terakhir yang dijalankan adalah fungsi eval untuk menentukan apakah suatu URL memiliki celah keamanan terhadap SQL Injection atau tidak.

C. Implementasi Fitur Pencarian Celah Keamanan terhadap RFI

Lapisan logika pada fitur ini diimplementasikan di dalam class EvaluatorRFI. Saat fitur ini dijalankan, aplikasi mengeksekusi fungsi cari_link pada dengan parameter sebuah URL untuk memulai proses crawling tahap pertama, dilanjutkan dengan fungsi isi_semua_link untuk melakukan crawling tahap kedua. Kemudian aplikasi akan menginjeksikan script RFI ke dalam link yang telah didapatkan dengan menggunakan fungsi replace_param_xss_rfi. Dilanjutkan dengan fungsi search_form dan search_post_form untuk mendapatkan dan menginjeksi form yang terdapat pada URL. Fungsi terakhir yang dijalankan adalah fungsi eval untuk menentukan apakah suatu URL memiliki celah keamanan terhadap RFI atau tidak.

D. Implementasi Fitur Username Enumeration

Lapisan logika pada fitur ini diimplementasikan pada class ModifyLink. Pada class ini terdapat fungsi username_enumeration yang digunakan untuk melakukan proses percobaan login secara berulang dengan menggunakan daftar username dan password yang dibaca dari file teks bernama username.txt.

E. Implementasi Fitur Pengaturan Proxy

Lapisan logika pada fitur ini diimplementasikan pada class Proxy_Authenticator. Pada class ini terdapat fungsi connectToProxy yang akan dijalankan jika aplikasi membutuhkan akses ke proxy server.

V. UJICOBADANEVALUASI

A. Uji Coba Pencarian Celah Keamanan terhadap XSS

Gambar 7. Proses Pencarian Celah Keamanan XSS

Uji coba ini dilakukan dengan dengan cara memasukkan sebuah URL ke dalam textbox pada antarmuka aplikasi, kemudian menekan tombol scan. Aplikasi akan memulai proses pencarian celah keamanan terhadap XSS. Setelah proses selesai tekan tombol report untuk menampilkan hasil pencarian celah keamanan.

Gambar 8. Pengujian Manual XSS

Untuk membuktikan bahwa aplikasi telah berjalan sebagaimana mestinya, maka dilakukan pengecekan secara manual terhadap link yang dinyatakan memiliki celah keamanan oleh aplikasi. Parameter keberhasilan uji coba ini adalah pada saat dilakukan pengecekan secara manual, link yang dinyatakan vulnerable oleh aplikasi valid. Proses pencarian bisa dilihat pada Gambar 7, sementara hasil pengujian manual bisa dilihat pada Gambar 8.

B. Uji Coba Pencarian Celah Keamanan terhadap SQL Injection

Uji coba ini dilakukan dengan dengan cara memasukkan sebuah URL ke dalam textbox pada antarmuka aplikasi, kemudian menekan tombol scan. Aplikasi akan memulai proses pencarian celah keamanan terhadap SQL Injection.

(5)

Setelah proses selesai tekan tombol report untuk menampilkan hasil pencarian celah keamanan.

Gambar 9. Proses Pencarian Celah Keamanan SQL Injection Untuk membuktikan bahwa aplikasi telah berjalan sebagaimana mestinya, maka dilakukan pengecekan secara manual terhadap link yang dinyatakan memiliki celah keamanan oleh aplikasi. Parameter keberhasilan uji coba ini adalah pada saat dilakukan pengecekan secara manual, link yang dinyatakan vulnerable oleh aplikasi valid. Proses pencarian bisa dilihat pada Gambar 9, sementara hasil pengujian manual bisa dilihat pada Gambar 10.

Gambar 10. Pengujian Manual SQL Injection

C. Uji Coba Pencarian Celah Keamanan terhadap RFI Uji coba ini dilakukan dengan dengan cara memasukkan sebuah URL ke dalam textbox pada antarmuka aplikasi, kemudian menekan tombol scan. Aplikasi akan memulai proses pencarian celah keamanan terhadap RFI. Setelah proses selesai tekan tombol report untuk menampilkan hasil pencarian celah keamanan.

Gambar 11. Proses Pencarian Celah Keamanan RFI

Gambar 12. Pengujian Manual RFI

Untuk membuktikan bahwa aplikasi telah berjalan sebagaimana mestinya, maka dilakukan pengecekan secara manual terhadap link yang dinyatakan memiliki celah keamanan oleh aplikasi. Parameter keberhasilan uji coba ini adalah pada saat dilakukan pengecekan secara manual, link yang dinyatakan vulnerable oleh aplikasi valid. Proses pencarian bisa dilihat pada Gambar 11, sementara hasil pengujian manual bisa dilihat pada Gambar 12.

D. Uji Coba Username Enumeration

Uji coba ini dilakukan dengan dengan cara memasukkan sebuah URL ke dalam textbox pada antarmuka aplikasi, kemudian menekan tombol scan.

Gambar 13. Proses Username Enumeration

Gambar 14. Pengujian Manual Username Enumeration Untuk membuktikan bahwa aplikasi telah berjalan sebagaimana mestinya, maka dilakukan pengecekan secara manual untuk melakukan login dengan menggunakan username dan password yang telah dinyatakan berhasil login

(6)

oleh aplikasi. Parameter keberhasilan uji coba ini adalah pada saat dilakukan pengecekan secara manual, login berhasil dilakukan. Proses pencarian bisa dilihat pada Gambar 13, sementara hasil pengujian manual bisa dilihat pada Gambar 14.

E. Uji Coba Pengaturan Proxy

Pengaturan proxy dilakukan dengan menekan tombol proxy settings untuk menampilkan form pengaturan proxy. Pengguna harus mengisikan host, port, username, dan password untuk mengakses proxy di dalam textbox yang telah disediakan lalu menekan tombol oke.

Gambar 15. Pengaturan Proxy

Gambar 16. Proses Scan Menggunakan Proxy

Parameter keberhasilan uji coba ini adalah berhasil melakukan koneksi melalui jaringan yang dibatasi proxy. Proses pengaturan proxy bisa dilihat pada Gambar 15, sementara proses scanning menggunakan proxy bisa dilihat pada Gambar 16.

VI. KESIMPULAN

Kesimpulan yang bisa ditarik dari Tugas Akhir ini adalah sebagai berikut:

a. Proses crawling dilakukan dengan membaca link yang terdapat pada suatu halaman web, kemudian menyimpannya ke dalam daftar link. Proses pembacaan dilakukan sedalam 2 tingkat.

b. Aplikasi bisa memilah data yang terdapat pada file HTML untuk keperluan proses scan dengan menggunakan library Jsoup.

c. Aplikasi bisa melakukan injeksi script SQL Injection, XSS, dan RFI ke dalam file HTML dengan cara memodifikasi link dan form yang didapatkan dari proses crawling.

d. Serangan SQL Injection, XSS, dan RFI dapat dihindari dengan cara melakukan sanitasi terhadap masukan dari pengguna.

e. Waktu yang dibutuhkan untuk melakukan proses scan bergantung pada jumlah link yang terdapat pada website.

UCAPANTERIMAKASIH

Penulis M.C.K. mengucapkan terima kasih kepada Tuhan Yang Maha Esa, kedua orangtua dan keluarga penulis, dosen pembimbing, dosen dan kepala jurusan Teknik Informatika, kerabat-kerabat dekat, serta berbagai pihak yang telah membantu penulis dalam menyelesaikan Tugas Akhir ini.

DAFTARPUSTAKA

[1] Barnett, R. Web Hacking Incident Database [Internet]. 2011 [diperbaharui pada April 2012; disitat pada 23 September 2011]. Bisa diakses pada : http://projects.webappsec.org/w/page/13246995 /Web-Hacking-Incident-Database#nbspTopAttackMethodsAllEntries. [2] Siddharth, S. Doshi, P. Five Common Web Application Vulnerabilities [Internet]. 2010 [diperbaharui pada 2 November 2010; disitat pada 23 September 2011]. Bisa diakses pada : http://www.symantec.com/connect/articles/five-common-web-application-vulnerabilities.

[3] Clarke, Justin. SQL Injection Attacks and Defense. United States of America : Syngress Publishing, Inc, 2009.

[4] Grossman, Jeremiah., Hansen, Robert., D. Petkov, Petko., Rager, Anton. Cross Site Scripting Attacks: XSS Exploits and Defense. United States of America : Syngress Publishing, Inc, 2007.

[5] Auger, R. Remote File Inclusion [Internet]. 2010 [diperbaharui pada Januari 2010; disitat pada 9 April 2012]. Bisa diakses pada : http://projects.webappsec.org/w/page/13246955/Remote%20File%20 Inclusion.

[6] OWASP. Testing for User Enumeration [Internet]. 2009 [diperbaharui pada 3 Februari 2009; disitat pada 9 April 2012]. Bisa diakses pada : https://www.owasp.org/index.php/Testing_for_user _enumeration_(OWASP-AT-002).

Gambar

Gambar 1. Diagram Serangan pada Aplikasi Web
Gambar 2. Arsitektur Sistem
Diagram  alir  dari  aplikasi  ini  terbagi  menjadi  4  buah  diagram alir yang dapat dilihat pada Gambar 3, Gambar 4,  Gambar  5,  dan  Gambar  6
Gambar 8. Pengujian Manual XSS
+3

Referensi

Dokumen terkait

Terkait hal dimaksud, Pusat Penjaminan Mutu (PPM), mengajukan kegiatan AMI tahap Implementasi Dokumen baik pada tingkat Universitas dan Fakultas serta Program Studi..

Lingkungan sekolah berbasis pondok pesantren yang didalamnya terdapat kegiatan-kegiatan yang Islami, lingkungan yang religius, pendidikan akhlak secara sepontan dapat

Tujuan penelitian ini untuk mendeskripsikan komposisi jenis makro alga yang ditemukan, menghitung kepadatan, besar populasi, biomassa maksimum, dan pola distribusi komunitas

Kritik intern adalah kritik sumber yang digunakan untuk meneliti kebenaran isi dokumen atau tulisan tersebut. Kritik intern ini digunakan untuk menguji sejauh mana

- Telah memenuhi status sebagai pegolf profesional sesuai dengan peraturan yang berlaku. - Bersedia mematuhi Anggaran Dasar dan Anggaran Rumah Tangga dan

Adapun yang dimaksud dengan ancaman adalah setiap usaha dan kegiatan baik dari dalam negeri maupun luar negeri yang dinilai membahayakan kedaulatan negara, keutuhan wilayah negara

pemahaman tentang diri sendiri, dimana klien diharapkan untuk lebih mampu mengetahui letak kekurangan dan kelebihan dalam diri sendiri. Pemahaman diri adalah suatu

Antagonis reseptor muskarinik menyekat efek asetilkolin dengan memblok ikatan ACh dan reseptor kolinergik muskarinik pada neuroefektor yang terdapat pada otot