PENDETEKSI CELAH KEAMANAN PADA APLIKASI WEB DENGAN PENETRATION TESTING MENGGUNAKAN
DATA VALIDATION TESTING
SKRIPSI
INDRA M. NABABAN 101402064
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN
2014
PENDETEKSI CELAH KEAMANAN PADA APLIKASI WEB DENGAN PENETRATION TESTING MENGGUNAKAN DATA VALIDATION TESTING
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
INDRA M. NABABAN 101402064
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
PERSETUJUAN
Judul : PENDETEKSI CELAH KEAMANAN PADA APLIKASI
WEB DENGAN PENETRATION TESTING
MENGGUNAKAN DATA VALIDATION TESTING
Kategori : SKRIPSI
Nama : INDRA M. NABABAN
Nomor Induk Mahasiswa : 101402064
Program Studi : S1 TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Baihaqi Siregar S.Si., M.T Romi Fadillah Rahmat, B.Comp.Sc M.Sc NIP. 19790108 201212 1 002 NIP. 19860303 201012 1 004
Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
Muhammad Anggia Muchtar, ST., MM.IT NIP. 19800110 200801 1 010
PERNYATAAN
PENDETEKSI CELAH KEAMANAN PADA APLIKASI WEB DENGAN PENETRATION TESTING MENGGUNAKAN DATA VALIDATION TESTING
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 14 Oktober 2014
Indra M. Nababan 101402064
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikah kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat serta restu-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi.
Pertama, penulis ingin mengucapkan terima kasih kepada Bapak Romi Fadillah Rahmat, B.Comp.Sc. M.Sc selaku pembimbing pertama dan Bapak Baihaqi Siregar S.Si., M.T, selaku pembimbing kedua yang telah membimbing penulis dalam penelitian serta penulisan skripsi ini. Tanpa inspirasi serta motivasi yang diberikan dari kedua pembimbing, tentunya penulis tidak akan dapat menyelesaikan skripsi ini. Penulis juga mengucapkan terima kasih kepada Sarah Purnawati, ST., M.Sc sebagai dosen pembanding pertama dan Bapak Drs. Sawaluddin, M. IT sebagai dosen pembanding kedua yang telah memberikan masukan serta kritik yang bermanfaat dalam penulisan skripsi ini. Ucapan terima kasih juga ditjukan kepada semua dosen serta semua pegawai pada program studi S1 Teknologi Informasi, yang telah membantu serta membimbing penulis selama proses perkuliahan.
Penulis tentunya tidak lupa berterima kasih kepada kedua orang tua penulis, Bapak penulis M. Nababan, serta M. Hutagaol yang telah membesarkan penulis dengan sabar dan penuh cinta. Penulis juga berterima kasih kepada seluruh anggota keluarga penulis yang namanya tidak dapat disebutkan satu satu.
Terima kasih juga penulis ucapkan kepada seluruh teman-teman angkatan 2010 yang telah bersama-sama penulis melewati perkuliahan pada program studi S1 Teknologi Informasi, serta teman-teman mahasiswa Teknologi Informasi lainnya. Secara khusus, penulis juga mengucapkan terima kasih kepada Sarah Hutagaol yang selalu memotivasi dan memberikan perhatiannya kepada penulis.
ABSTRAK
Kejahatan baru di bidang komputer muncul sejak berkembang pesatnya teknologi informasi dengan adanya internet. Aplikasi web masih sering diserang untuk mendapatkan informasi sensitif dari aplikasi web tersebut seperti pencurian informasi, pembajakan akun dan lain sebagainya. Resiko ini disebabkan kesalahan aplikasi web dalam menangani input yang datang dari pengguna. Input validation vulnerability ini dieksploitasi para cracker dengan cara yang paling sering seperti SQL Injection, Cross Site Scripting, dan File Inclusion. Untuk membantu para developer dan pemilik website untuk menemukan kelemahan-kelemahan ini pada aplikasi adalah dengan menggunakan aplikasi pendeteksi celah keamanan. Metode yang digunakan dalam penelitian ini adalah penggunaan Penetration Testing yang difokuskan untuk menguji validasi input dengan menggunakan Data Validation Testing untuk mendeteksi celah keamanan pada aplikasi web. Data Validation Testing yang digunakan untuk menguji dalam bentuk injeksi karakter-karakter biasa ataupun karakter yang di-encode ke dalam karakter hex untuk melewati beberapa filter para developer website. Aplikasi ini mendeteksi celah keamanan yang rentan terhadap SQL Injection, Blind SQL Injection, Cross Site Scripting, dan File Inclusion. Pada penelitian ini ditunjukkan bahwa metode yang diajukan mampu mendeteksi celah keamanan pada aplikasi web.
Kata Kunci : celah keamanan, Data Validation Testing, Penetration Testing, SQL Injection, Cross Site Scripting.
WEB APPLICATION VULNERABILITY DETECTOR WITH PENETRATION TESTING USING DATA VALIDATION TESTING
ABSTRACT
New crime in field computer have emerged since the rapid growth of information technology with the internet. The web application is still often attacked to obtain sensitive information from web applications such as information theft, account hijacking, and so forth. This risk is due to errors in the web application handles input coming from the user.
Input validation vulnerability is exploited by crackers most often attack such as SQL Injection, Cross Site Scripting and File Inclusion. To helping developers and website owners to find vulnerability in their application is using vulnerability detection applications . In this study Penetration Testing with using Data Validation Testing is focused to testing input validation is used to detect vulnerability in web applications. Data Validation Testing is used to test the injectable forms of ordinary characters, or characters that are encoded into hex characters to pass through several filters the developers website.
This application detects vulnerability that are vulnerable to SQL Injection, Blind SQL Injection, Cross Site Scripting and File Inclusion. In this study indicated that the proposed method is able to detect vulnerability in web applications.
Keywords: vulnerability, Data Validation Testing, Penetration Testing, SQL Injection, Cross Site Scripting.
DAFTAR ISI
Hal.
Persetujuan ii
Pernyataan iii
Ucapan Terima Kasih iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel xi
Daftar Gambar xii
BAB 1 Pendahuluan 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Tujuan Penelitian 3
1.4. Batasan Masalah 3
1.5. Manfaat Penelitian 3
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 4
BAB 2 Landasan Teori 6
2.1. Keamanan Informasi 6
2.3.1. Aplikasi web 8
2.3.2. Keamanan aplikasi web 9
2.4. Celah Keamanan /Vulnerability 10
2.4.1 Celah keamanan pada aplikasi web 11
2.5. Identifikasi Jenis Serangan pada Aplikasi web 12
2.5.1 SQL Injection 13
2.5.2 Cross Site Scripting 15
2.5.3 Remote File inclusion 16
2.5.4 Local File Inclusion 17
2.6. Penetration Testing 18
2.6.1 Tipe Penetration Testing 18
2.6.2 Tahapan Penetration Testing 19
2.7. Penetration Testing Aplikasi Website 20
2.8. P enelitian Terdahulu 22
BAB 3 Analisis dan Perancangan 24
3.1. Identifikasi Masalah 24
3.2. Analisis Sistem 25
3.2.1 Tahap crawling 28
3.2.2 Proses attack scenario 29
3.2.3 Proses vulnerability discovery 30
3.2. Proses Menguji Celah Keamanan Aplikasi Web 32 3.3.1 Proses menguji serangan SQL Injection 32
3.3.3 Proses menguji serangan File Inclusion 38
3.4. Perancangan Sistem 40
3.4.1. Fungsi utama 41
3.4.2. Batasan- batasan 41
3.4.3. Data yang digunakan 41
3.4.4. Analisis pengguna 41
3.4.5. Diagram use case 42
3.4.6 Diagram aktivitas 43
3.5 Perancangan User Interface 44
3.5.1 Rancangan halaman utama 45
3.5.2 Rancangan halaman tutorial aplikasi 46
3.5.3 Rancangan halaman about 46
3.5.4 Rancangan halaman testing 47
BAB 4 Implementasi dan Pengujian 49
4.1. Implementasi Sistem 49
4.1.1 Spesifikasi perangkat keras dan perangkat lunak yang
digunakan 49
4.1.2 Implementasi penetration testing menggunakan data
validation testing 50
4.1.3 Implementasi perancangan antarmuka pengguna 50
4.2. Pengujian Sistem 53
4.2.1. Pengujian kinerja antarmuka pengguna 54
SQL Injection 60 4.3.3 Hasil pengujian aplikasi web dan solusi terhadap
Cross Site Scripting 63
4.3.4 Hasil pengujian aplikasi web dan solusi terhadap
Cross Site Scripting 65
BAB 5 Kesimpulan dan Saran 68
5.1. Kesimpulan 68
5.2. Saran 69
Daftar Pustaka 70
Lampiran A : Tabel 73
Lampiran B : Potongan Source Code Aplikasi 79
DAFTAR TABEL
Hal.
Tabel 2.1 WHID top 10 attacks methods (Krawczyk, 2013) 12
Tabel 2.2 Penelitian Terdahulu 23
Tabel 3.1 Use case spesifikasi untuk use case pendeteksi vulnerability 42
Tabel 4.1 Rencana pengujian 54
Tabel 4.2 Hasil pengujian halaman utama 54
Tabel 4.3 Hasil pengujian halaman tutorial aplikasi 54
Tabel 4.4 Hasil pengujian halaman about 56
Tabel 4.5 Hasil pengujian halaman testing 56
Tabel 4.6 Sampel alamat website 57
Tabel 4.11 Hasil penetration testing 59
Hal.
Gambar 2.1 Contoh Website Tradisional yang Hanya Berisi Informasi Statis
(Stuttard, 2011)) 8
Gambar 2.2 Arsitektur Sederhana 3 tier (Clarke, 2009) 13
Gambar 2.3 Contoh Kode PHP (Clarke, 2009) 14
Gambar 2.4 Contoh Halaman Terinfeksi ( Grossman et all, 2007) 15
Gambar 3.1 Arsitektur Umum Aplikasi 25
Gambar 3.2 Gambaran Umum Metode Penetration Testing 27
Gambar 3.3 Flowchart Crawling URL Website 28
Gambar 3.4 Flowchart Skenario Penyerangan Secara Umum 30 Gambar 3.5 Flowchart Vulnerability Discovery Secara Umum 31
Gambar 3.6 Flowchart Testing SQL Injection 32
Gambar 3.7 Flowchart Testing Cross Site Scripting 36
Gambar 3.8 Flowchart Testing File Inclusion 40
Gambar 3.9 Diagram Use Case Pendeteksi Celah Keamanan 42
Gambar 3.10 Diagram Aktivitas Sistem 44
Gambar 3.11 Rancangan Halaman Utama 45
Gambar 3.12 Rancangan Halaman Tutorial 46
Gambar 3.13 Rancangan Halaman About 47
Gambar 3.14 Rancangan Halaman Testing 48
Gambar 4.2 Halaman Tutorial Aplikasi 51
Gambar 4.3 Halaman About 52
Gambar 4.4 Halaman Tutorial Aplikasi 53
Gambar 4.4 Sample 1 Pengujian SQL Injection Situs http://www.raahauges.com/ 58 Gambar 4.5 Contoh Halaman Sampel 1 yang terdapat error default database SQL 60 Gambar 4.6 Contoh Halaman Sampel 2 yang terdapat error default database SQL 61 Gambar 4.7 Contoh Halaman Sampel 4 yang terdapat error default database SQL 61 Gambar 4.8 Contoh Halaman Sampel 1 yang terdapat tag injeksi HTML 64 Gambar 4.9 Contoh Halaman Sampel 2 yang terdapat tag injeksi HTML 65 Gambar 4.10 Contoh Halaman Sampel 4 yang terdapat tag injeksi HTML 65