skripsi implementasi keamanan owasp...
TRANSCRIPT
SKRIPSI
IMPLEMENTASI KEAMANAN OWASP TERHADAP
APLIKASI BERBASIS GTFW
MUHAMMAD FARIS ‘AFIF
Nomor Mahasiswa : 135410086
PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTERAKAKOM YOGYAKARTA
2017
SKRIPSI
IMPLEMENTASI KEAMANAN OWASP
TERHADAP APLIKASI BERBASIS GTFW
Di Susun Oleh:
Muhammad Faris ‘Afif
Nomor Mahasiswa : 135410086
PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AKAKOM YOGYAKARTA
2017
i
ii
iii
HALAMAN PERSEMBAHAN
Dengan mengucapkan syukur Alhamdulillah, atas rahmat dan hidayah-
Nya, saya dapat menyelesaikan skripsi ini dengan baik. Kupersembahkan Skripsi
ini kepada :
1. Kedua orang tua beserta keluarga yang selama ini telah memberikan
dukungan yang besar baik berupa moral maupun berupa materil, tanpa
mereka tugas akhir ini tidak mungkin dapat terselesaikan.
2. Teman-teman angkatan 2013, Teman-teman kost ku, bapak kost dan
teman-teman lainnya yang tidak bisa disebutkan satu persatu.
3. Untuk teman-teman FOSA (Forum Opensource Akakom). Terima kasih
atas dukungan kalian, tetap jaga kekompakkan kita yang belum lulus
buruan nyusul.
4. Untuk teman-teman komunitas Kali Linux Indonesia, Dracos Linux,
Ubuntu Indonesia, Linux From Scratch dan ECHO (Indonesian
Community for Hacker and Opensource).
5. Untuk Mas Dyan Galih dan Mas Prasodjo, atas bantuan menyelesaikan
masalah yang aku hadapi.
iv
HALAMAN MOTO
~ Kerjakan apa yang menjadi urusan sekarang dengan maksimal, hari kemarin
sebagai pembelajaran untuk lebih baik, buat impian untuk hari esok yang akan
datang ~
(Penulis)
~ Mengeluh bukan kunci setiap masalah ~
~ Jangan pernah berharap lebih kepada sesuatu, karena itu akan menyakitkan ~
~ Always, Be positive thingking ~
(Penulis)
Kami adalah sekumpulan individu yang ingin bebas memacu kinerja otak dan
adrenalin di tubuh kami; ingin bebas melakukan hal-hal menarik yang sulit
terpecahkan bahkan mustahil sekalipun;ingin bebas meneliti untaian kode yang
ada, mencari kelemahan bukan untuk melemahkan;ingin bebas bertukar, belajar
dan berbagi semua kemurnian ilmu pengetahuan; bukan oleh aturan-aturan yang
telah ditentukan dan dikendalikan ketamakan; bukan demi setumpuk kekayaan,
kejayaan ataupun keabadian; bukan pula untuk merusak, menakuti atau bahkan
menghancurkan; tetapi hanya demi kenyataan bahwa kami sama.
(Echo’s Manifesto)
v
INTISARI
Aplikasi web yang digunakan dalam beberapa segmen atau industrimemerlukan standar keamanan yang baik, terlebih lagi jika aplikasi tersebutdigunakan untuk segmen perbankan, layanan publik, dan e-commerce. Keamanansuatu aplikasi web sangat penting untuk mengamankan confidentiality, integritydan availability dari data, serta informasi dan layanan yang dimilikinya. Untukmenjamin kemanan aplikasi tersebut, perlu adanya pengujian keamanan terhadapaplikasi web menggunakan metode dan alat pengujian yang sesuai.
Gamatechno Web Application Framework atau yang biasa disingkatGTFW, merupakan framework aplikasi web menggunakan PHP yangdikembangkan oleh PT Gamatechno Indonesia. Sejak Gamatechno berdiri padatahun 2005, telah banyak aplikasi berbasis GTFW yang diimplementasikan diratusan klien pada segmen akademik, pemerintahan maupun korporasi.Gamatechno saat ini menyediakan informasi tentang framework ini secara terbukadi laman web dan berusaha terus mengembangkan GTFW dari sisi teknologi dankeamanannya.
Aplikasi Xplorin yang menjadi obyek penelitian merupakan salah satuaplikasi berbasis GTFW versi terbaru. Xplorin adalah platform pariwisata yangmenyediakan informasi 10 dinasti pariwisata terfavorit di Indonesia. Di dalamaplikasi ini akan terdapat beberapa fitur yang memerlukan keamanan yang baik, diantaranya adalah fitur transaksi pembayaran tiket transportasi dan akomodasi,serta sosial media. Pengujian keamanan aplikasi Xplorin dilakukan denganmenggunakan metode Grey Box. Kerentanan aplikasi yang akan diuji adalah padahal session management dan input validation. Pengujian input validation meliputiHTTP verb tampering, stored cross site scripting, dan OS command injection.Dalam penelitian ini, metode pengujian aplikasi mengikuti panduan dari OpenWeb Application Security Project (atau disingkat OWASP) versi 4.
Dari hasil pengujian, aplikasi Xplorin diketahui memiliki kerentanankeamanan dari aspek Session Management yaitu cookie attributes, session timeout dan CSRF. Kemudian dari aspek Input Validation terdapat kerentanan padastore cross site scripting. Keamanan terhadap kerentanan ini belumdiimplementasikan dengan baik pada aplikasi Xplorin, sehingga perlu adanyaperbaikan. Melalui hasil penelitian ini diharapkan aplikasi Xplorin dapat menjadilebih aman setelah dilakukan upaya perbaikan. Selain itu, hasil pengujian danperbaikan keamanan pada aplikasi ini bisa menjadi lesson learned bagipengembangan aplikasi lain yang berbasis GTFW.
Kata kunci : CSRF, Keamanan Website, OWASP, Store Cross Site Scripting.
vi
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT, karena limpahan
rahmat, hidayah, dan inayah-Nya skripsi ini dapat diselesaikan. Sholawat beserta
salam semoga selalu tercurahkan kepada manusia teragung baginda Rasulullah
Muhammad Shallallahu ‘alaihi wasallam. Skripsi yang berjudul “Implementasi
Keamanan OWASP Terhadap Aplikasi Berbasis GTFW” ini penulis susun untuk
memenuhi persyaratan kurikulum sarjana strata-1 (S-1) pada Jurusan Teknik
Informatika, STMIK AKAKOM Yogyakarta. Penulis mengucapkan terima kasih
sebesar-besarnya atas semua bantuan maupun saran yang telah diberikan, baik
secara langsung maupun tidak langsung selama penyusunan tugas akhir ini.
Secara khusus rasa terimakasih kami sampaikan kepada:
1. Bapak Cuk Subiyantoro, S.Kom., M.Kom. selaku Ketua Sekolah Tinggi
Manajemen Informatika dan Komputer AKAKOM Yogyakarta.
2. Bapak Ir. M. Guntara, M.T. selaku Ketua Jurusan Teknik Informatika
Sekolah Tinggi Manajemen Informatika dan Komputer AKAKOM
Yogyakarta dan dosen pembimbing yang telah banyak memberikan
dorongan dalam penyusunan skripsi ini.
3. Bapak Ir. Sudarmanto, M.T. dan Ibu Dini Fakta Sari, ST., M.T. sebagai
dosen penguji yang juga telah banyak memberi arahan.
vii
4. Bapak Novan Hartadi, S.T, M.Sc. selaku General Manager Research and
Business Development PT Gamatechno Indonesia.
5. Seluruh staff dan karyawan Sekolah Tinggi Manajemen Informatika dan
Komputer AKAKOM Yogyakarta.
Penulisan Skripsi ini merupakan persyaratan akhir dari mahasiswa di
jurusan Teknik Informatika, STMIK AKAKOM untuk memperoleh gelar sarjana.
Penulis menyadari bahwa Skripsi ini jauh dari kesempurnaan, maka semua kritik
dan saran yang bersifat membangun akan selalu diterima. Semoga yang sedikit ini
memberikan manfaat terutama bagi kelanjutan studi penulis.
Yogyakarta, ....... Agustus 2017
Penulis
viii
DAFTAR ISI
HALAMAN JUDUL...............................................................................................i
HALAMAN PERSETUJUAN..............................................................................ii
HALAMAN PENGESAHAN...............................................................................iii
HALAMAN PERSEMBAHAN...........................................................................iv
HALAMAN MOTO...............................................................................................v
INTISARI..............................................................................................................vi
KATA PENGANTAR..........................................................................................vii
DAFTAR ISI...........................................................................................................x
DAFTAR GAMBAR...........................................................................................xiv
DAFTAR TABEL...............................................................................................xvi
BAB 1 PENDAHULUAN.....................................................................................1
1.1. Latar Belakang.........................................................................................1
1.2. Rumusan Masalah....................................................................................2
1.3. Ruang Lingkup........................................................................................2
1.4. Tujuan Penelitian.....................................................................................3
1.5. Manfaat Penelitian...................................................................................3
1.6. Sistematika Penulisan..............................................................................3
BAB 2 TINJAUAN PUSTAKA DAN DASAR TEORI.....................................5
2.1. Tinjauan Pustaka......................................................................................5
2.2. Dasar Teori..............................................................................................7
ix
2.2.1. Open Web Application Security Project (OWASP).....................7
2.2.2. OWASP Testing Guide.................................................................8
2.2.3. Gamatechno Application Framework (GTFW)..........................13
2.2.4. Session Management...................................................................14
2.2.5. Input Validation..........................................................................15
2.2.6. HTTP Verb Tampering...............................................................15
2.2.7. OS Command Injection...............................................................16
2.2.8. Stored Cross Site Scripting.........................................................16
BAB 3 METODE PENELITIAN.......................................................................18
3.1. Alat/Bahan.............................................................................................18
3.2. Topologi Web Server.............................................................................19
3.3. Rancangan Server..................................................................................20
3.4. Rancangan Aplikasi Web Xplorin.........................................................21
3.5. Metode Penelitian..................................................................................24
3.6. Kebutuhan Perangkat Keras..................................................................25
3.7. Kebutuhan Perangkat Lunak..................................................................26
3.8. Kebutuhan Keluaran..............................................................................27
BAB 4 IMPLEMENTASI DAN PEMBAHASAN............................................28
4.1. Implementasi dan Konfigurasi Aplikasi Xplorin...................................28
4.2. Information Gathering...........................................................................30
4.2.1. Hasil Information Gathering.......................................................33
4.3. Pengujian Session Management............................................................34
x
4.3.1. Pengujian Bypassing Session Management Schema (OTG-SESS-
001).......................................................................................................34
4.3.2. Pengujian Cookies Attributes (OTG-SESS-002)........................37
4.3.3. Pengujian CSRF (OTG-SESS-005)............................................39
4.3.4. Pengujian Logout functionality (OTG-SESS-006).....................44
4.3.5. Pengujian Session Timeout (OTG-SESS-007)...........................46
4.3.6. Hasil Pengujian Session Management........................................47
4.4. Pengujian Input Validation....................................................................48
4.4.1. HTTP Verb Tampering (OTG-INPVAL-003)............................48
4.4.2. Stored Cross Site Scripting (OTG-INPVAL-002)......................48
4.4.3. OS Command Injection (OTG-INPVAL-013)............................50
4.4.4. Hasil Pengujian Input Validation................................................50
4.5. Analisa Kerentanan................................................................................51
4.5.1. Bypassing Session Management Schema...................................51
4.5.2. Cookies Attributes (OTG-SESS-002).........................................51
4.5.3. CSRF (OTG-SESS-005).............................................................53
4.5.4. Logout Functionality...................................................................54
4.5.5. Session Timeout (OTG-SESS-007)............................................55
4.5.6. HTTP Verb Tampering...............................................................56
4.5.7. Stored Cross Site Scripting (OTG-INPVAL-002)......................57
4.5.8. OS Command Injection...............................................................58
4.6. Pencegahan Kerentanan.........................................................................58
xi
4.6.1. Pencegahan Kerentanan Session Management...........................59
4.6.2. Pencegahan Kerentanan Input Validation...................................60
BAB 5 KESIMPULAN DAN SARAN...............................................................61
5.1. Kesimpulan............................................................................................61
5.2. Saran......................................................................................................62
DAFTAR PUSTAKA...........................................................................................63
LAMPIRAN..........................................................................................................65
xii
DAFTAR GAMBAR
Gambar 2.1: Tingkat kemungkinan dan dampak....................................................8
Gambar 2.2: Keseluruhan tingkat resiko kerentanan............................................13
Gambar 2.3: Contoh kerentanan os command injection.......................................16
Gambar 2.4: Contoh kerentanan stored XSS........................................................17
Gambar 3.1: Topologi web server.........................................................................19
Gambar 3.2: Rancangan server.............................................................................20
Gambar 3.3: Tampilan halaman login aplikasi xplorin.........................................21
Gambar 3.4: Halaman dashboard aplikasi xplorin................................................22
Gambar 3.5: Halaman fitur see aplikasi xplorin...................................................22
Gambar 3.6: Halaman fitur user aplikasi xplorin..................................................23
Gambar 3.7: Flowcart penelitian...........................................................................24
Gambar 4.1: Struktur direktori aplikasi xplorin....................................................28
Gambar 4.2: Information gathering dari aplikasi dirbuster...................................31
Gambar 4.3: Information gathering dari wappalyzer............................................31
Gambar 4.4: Information gathering dari nmap.....................................................32
Gambar 4.5: Response header saat membuka halaman login...............................34
Gambar 4.6: Response header setelah login.........................................................35
Gambar 4.7: Data sampel sequencer burpsuite.....................................................35
Gambar 4.8: Grafik analisis karakter dari data sampel.........................................36
Gambar 4.9: Data sampel token............................................................................36
xiii
Gambar 4.10: Response login success dari pengguna..........................................37
Gambar 4.11: Menguji dengan mengganti cookie pada halaman login................38
Gambar 4.12: Menguji dengan mengganti cookie pada menu navigasi...............38
Gambar 4.13: Menguji dengan mengganti cookie pada halaman dashboard........38
Gambar 4.14: Hasil respon login dari komputer guest.........................................39
Gambar 4.15: Pengujian berhasil masuk halaman dashboard...............................39
Gambar 4.16: Tampilan antarmuka kode CSRF...................................................40
Gambar 4.17: Potongan kode untuk menguji kerentanan CSRF...........................41
Gambar 4.18: Data user super administrator sebelum kode CSRF dijalankan.....42
Gambar 4.19: Data user super administrator setelah kode CSRF di jalankan......42
Gambar 4.20: Pemberitahuan login gagal user super administrator.....................43
Gambar 4.21: Tombol log out di halaman home..................................................44
Gambar 4.22: Tombol log out di halaman page....................................................44
Gambar 4.23: Tombol log out di halaman managemen user................................45
Gambar 4.24: Halaman diarahkan ke halaman log in setelah log out...................45
Gambar 4.25: Menguji aktifitas website dengan chrome devtools.......................46
Gambar 4.26: Menguji Store XSS dengan kode Javascript..................................48
Gambar 4.27: Notifikasi data berhasil disimpan...................................................48
Gambar 4.28: Hasil kode uji XSS.........................................................................49
Gambar 4.29: Hasil scanner command injection di aplikasi commix...................50
xiv
DAFTAR TABEL
Tabel 2.1: Perbandingan...........................................................................................5
Tabel 2.2: Perbandingan...........................................................................................6
Tabel 2.3: Faktor kemungkinan threat agent............................................................9
Tabel 2.4: Faktor kemungkinan vulnerability........................................................10
Tabel 2.5: Faktor dampak technical impact factors...............................................11
Tabel 2.6: Faktor dampak business impact factors................................................12
Tabel 3.1: Detail konfigurasi server.......................................................................21
Tabel 4.1: Konfigurasi database.............................................................................30
Tabel 4.2: Data uji CSRF.......................................................................................40
Table 4.3: Data uji CSRF.......................................................................................41
Tabel 4.4: Hasil pengujian session management...................................................47
Tabel 4.5: Hasil pengujian input validation...........................................................50
Tabel 4.6: Hasil pengujian input validation...........................................................51
Tabel 4.7: Faktor kemungkinan cookie attributes..................................................52
Tabel 4.8: Faktor dampak cookie attributes...........................................................52
Tabel 4.9: Faktor kemungkinan CSRF...................................................................53
Tabel 4.10: Faktor dampak CSRF..........................................................................54
Tabel 4.11: Faktor kemungkinan session timeout..................................................55
Tabel 4.12: Faktor dampak session timeout...........................................................56
Tabel 4.13: Faktor kemungkinan stored cross site scripting..................................57
xv
Tabel 4.14: Faktor dampak stored cross site scripting...........................................57
Tabel 4.15: Pencegahan kerentanan session management.....................................59
Tabel 4.16: Pencegahan kerentanan input validation.............................................60
xvi