• Tidak ada hasil yang ditemukan

Assesment Vulnerability pada Aplikasi We

N/A
N/A
Protected

Academic year: 2018

Membagikan "Assesment Vulnerability pada Aplikasi We"

Copied!
19
0
0

Teks penuh

(1)

Paper Tugas Kuliah

Keamanan Sistem Lanjut

Assesment Vulnerability pada Aplikasi Web

dengan

Metode Fuzzing

! ! "

#$ % #$ $ #%#$ & $

' ( ( # #$ % ( &

#$ % ( (

(2)

)P a g e

Daftar Isi

Daftar Gambar ... 3

Daftar Tabel ... 4

BAB I Pendahuluan ... 6

BAB II PEMBAHASAN ... 10

2.1 Pengertian Fuzzing ... 10

2.2 Fuzzing Process ... 10

2.3 ... 11

2.4 Metode Fuzzing pada Aplikasi Web... 11

2.5 Experimen yang Pernah Dilakukan ... 12

2.5.1 Tool yang digunakan dalam pengujian ... 12

2.5.2 Daftar Aplikasi yang Diuji ... 13

2.5.3 Metode Pengujian ... 14

2.5.4 Hasil Pengujian ... 15

2.5.5 Lama Waktu Pengujian ... 16

2.5.6 Analisa Hasil Pengujian ... 16

BAB III Kesimpulan dan Saran ... 18

3.1 Kesimpulan ... 18

3.2 Saran ... 18

(3)

Daftar Gambar

Gambar 1 Setiap Potensi Serangan dapat Memberikan Dampak yang berbeda [7] 7

Gambar 2 Penyebab Security Vulnerability ... 8

Gambar 3 Fase9fase pengembang software (SDLC) [5] ... 8

Gambar 4 Software Quality Issues [5] ... 8

Gambar 5 Overview Fuzzing Process [9] ... 10

Gambar 6 Different fuzzing phases [10] ... 11

Gambar 7 Overview Komponen YAFT serta input dan output ... 12

(4)

* )P a g e

Daftar Tabel

Table 1 Top 10 Application Security Risk [7] ... 6

Table 2 Daftar Aplikasi Web yang diuji ... 13

Table 3 Hasil Pengujian Michel de Graaf ... 15

Table 4 Hasil Pengujian IF, UF dan Manual Fuzzing ... 15

Table 5 Jumlah Flaw sesaui Kategori ... 16

(5)

Abstrak

adalah atribut atau karakteristik sebuah komponen yang dapat dimanfaatkan oleh pihak eksternal atau internal untuk melanggar kebijakan keamanan atau menyebabkan kerusakan terhadap komponen itu sendiri, dan/atau sistem atau infrastruktur pada sistem tersebut [1].

Untuk mengetahui adanya vulnerability tersebut, maka dalam pengembangan aplikasi atau software perlu dilakukan (VA) Hal ini dilakukan untuk menghindari adalanya celah keamanan dalam aplikasi atau software tersebut.

bisa terjadi selama SDLC, sehingga VA perlu dilakukan pada awal pengembangan aplikasi atau software tersebut. Biaya yang dibutuhkan untuk pengembangan sistem atau software akan lebih kecil bila

bisa diketahui pada masa pengembangan daripada harus memperbaiki sistem atau software yang sudah jadi [2].

Banyak metode yang bisa digunakan untuk mengetahui

dan salah satu metode tersebut adalah . adalah sebuah metode pengujian perangkat lunak dengan membombardir aplikasi atau software tersebut dengan yang dihasilkan oleh program lain [3]. adalah teknik pengujian perangkat lunak yang dilakukan secara otomatis dengan memberikan injeksi kesalahan dengan data semi valid yang sangat besar pada aplikasi, kemudian memantau dan mencatat hasilnya [4].

Dalam paper ini akan dibahas fuzzing pada aplikasi web dengan metode

(UF) dan (IF).

(6)

+ )P a g e

BAB I

Pendahuluan

Kualitas sebuah software ditentukan oleh dua faktor yaitu dan

. Bugs dapat diartikan software tersebut tidak bisa memenuhi sebagian spesifikasi kebutuhan yang sudah disepakati, sedang

diartikan sebagai [5]

Ada begitu banyak potensi resiko keamanan dalam aplikasi web yang bisa dimanfaatkan oleh penyerang/ . Adapaun sepuluh potensi resiko kemanan yang paling sering muncul dari aplikasi web menurut OWASP adalah:

!, - -- .!/ . /0 1 234

No Kode Resiko Deskripsi

1 A1 bisa berupa injeksi SQL, OS, dan

LDAP. Terjadi karena untrusted data dikirim ke sebuah yang akan memberikan perintah atau akses

data yang .

2 A2 ! "

#$ %

XSS flaws terjadi karena sebuah aplikasi mengambil untrusted data dan mengirim data tersebut ke browser tanpa melalui validasi. XSS memungkinkan attackers mengeksekusi scripts pada browser yang akan diserang dengan mengambil user sessions, deface web sites, atau redirect pengguna ke situs lainnya..

3 A3 & '

(

Fungsi aplikasi yang terkait dengan authentication dan session management seringkali tidak benar implementasinya, sehingga attackers dapat mengambil password, key, , atau exploit kelemahan lainnya untuk mengambil data identitas user.

4 A4

) * +

Akses ke object reference terjadi bila pengembang exposes sebuah referensi dari sebuah

seperti: file, direktori, atau database key tanpa adanya pengecekan atau proteksi, sehingga dapat melakukan manipulasi referensi tersebut yang dapat digunakan

untuk melakukan akses .

5 A5 ! " + , #! + %

Serangan CSRF terjadi karena seorang pengguna aplikasi yang melakukan login akan dialihkan ke aplikasi web yang sudah dipalsukan, kemudian data dari user tersebut akan diambil.

6 A6

(

Kesalahan konfigurasi kemanan terjadi karena adanya kesalahn konfigurasi pada aplikasi, framework, server aplikasi, web server, server database, dan platform .. 7 A7

!

(7)

sehingga memungkinkan terjadinya pencurian identitas, , atau kejahatan lainnya.

8 A8

+ -+.

'

Terjadinya kegagalan proteksi terhadap url web site yang diakses karena tidak adanya pengecekan otorisasi, sehingga memungkinkan pemalsuan URL.

9 A9

. /

Kurangnya perlindungan pada sehingga

memungkinkan terjadinya 0 atau

, atau karena tidak menggunakannya dengan benar

10 A10 -+

Terjadi pengalihan/redirect dan meneruskan/forward ke web site lain karena tidak adanya validasi terhadap halaman yang dituju tersebut. Hal ini memungkinkan terjadinya pengalihan ke situs phishing atau malware.

Setiap potensi resiko keamanan software dapat memberikan dampak yang berbeda bagi pengguna software, sehingga setiap potensi resiko kemanan tersebut harus diperhatikan. Gambaran resiko kemanan dan dampaknya terhadap pengguna software dapat digambarkan sebagai berikut:

(!5,! / !- ' / ! 6! !-!/ 5, 1! !5-!1 0! 6 , , ! 234

Dengan mengetahui dampak yang ditimbulkan maka dalam pengembangan software harus dilakukan hal9hal yang memungkinkan hal itu dapat terjadi.

Setiap fase dalam pengembangan software (SDLC) dapat menyebabkan terjadinya

[6], dimana permasalahan tersebut

(8)

7 )P a g e

Requirement (

Siklus pengembang soft sebagai berikut:

(9)

Karena potensi dari software dapat terjadi dalam setiap fase

pengembangan software, maka perlu dilakukan dalam

setiap fase tersebut yang bertujuan untuk mengidentifikasi dan mengukur dari software tersebut.

Biaya yang dibutuhkan dalam pengembangan software akan lebih kecil bila software dapat diketahui sejak dini (dalam fase pegembangan) daripada harus memperbaiki software tersebut [2].

Ada berbagai macam metode yang dapat digunakan untuk melakukan , dimana salah satu metode VA yang bisa digunakan adalah metode fuzzing. Karena dengan fuzzing dapat digunakan untuk mendeteksi sebagaian besar masalah security vulnerabilies [11], yaitu:

a) & ,

b) ,

c) ,

d) + ,

e) 1. ,

f) ! #$ %,

% + 0 # %

(10)

)P a g e

BAB II

PEMBAHASAN

2.1

Pengertian Fuzzing

Fuzzing adalah sebuah pendekatan yang dilakukan dengan melakukan injeksi atau random pada sebuah software untuk

mendapatkan 0 r dan melakukan identifikasi serta

dari software tersebut [8]. Fuzzing merupakan salah satu metode , dan ini merupakan hal yang baru di bidang

, [6].

dapat juga diartikan sebagai sebuah metode pengujian software dimana software yang diuji akan dibombardir dengan input/ yang dihasilkan oleh program lain/ [3], dimana pengujian perangkat dilakukan secara otomatis

dengan memberikan , kemudian memantau dan mencatat

/perlakuan software terhadap input tersebut [4].

2.2

Fuzzing Process

Proses dan komponen yang digunakan dalam pada aplikasi web dapat digambarkan sebagai berikut:

(11)

Komponen tersebut dapat

Ada dua jenis fuzzer yait Perbedaan antara UF dan sedang IF harus mengeta maka IF bisa digunakan u

2.4

Metode Fuzzing

Metode yang bisa diguna singkat dapat digambarka

1. Identifikasi Target Melakukan identif jumlah form

dapat dijelaskan sebagai berikut:

, yaitu script yang digunakan sebagai input pada fuzz bagian yang digunakan untuk men9generate data y ebagai input dalam fuzzing

, yaitu aplikasi web yang diuji

, merupakan report hasil pengujian fuzzing

, yaitu logs dari perlakuan aplikasi web terhadap in

er yaitu - (UF)

F dan IF adalah, bila UF tidak perlu mengetahui for engetahui format datanya. Karena IF mengetahui for akan untuk menghasilkan semi valid atau invalid data.

zzing pada Aplikasi Web

digunakan dalam pengujian fuzzing untuk aplikasi w barkan sebagai berikut:

(!5,! + :: / : AA 6 - ! 2 4

Target

(12)

)P a g e

2. Identifikasi Input

Melakukan identifikasi metode pngirimam data pada aplikasi web, misal: Get, Post, Ajax, dan lain9lain.

3. Generate Fuzzed Data

Setelah dilakukan identifikasi metode input yang digunakan, langkah selanjutnya yaitu membuat yang akan men9

yang akan digunakan untuk 4. Execute Fuzzed Data

Melakukan request ke aplikasi web dengan menggunakan data random yang telah digenerate ( ).

5. Monitoring for Exception

Response dari aplikasi web akan dimasukkan ke database dan dilakukan monitoring, data yang dimonitoring meliputi: 0

, dan lain9lain.

4 ) 30

Melakukan perhitungan jumlah response yang benar dari web aplikasi.

2.5

Experimen yang Pernah Dilakukan

Penelitian yang pernah dilakukan terkait dengan fuzzing pada aplikasi web dilakukan oleh Michel de Graaf [9], yang dapat dijelaskan sebagai berikut:

2.5.1 Tool yang digunakan dalam pengujian

Tool yag digunakan dalam pengujian ini adalah 5 '

(YAFT), dimana YAFT ini bisa digunakan untuk pengujian IF maupun UF. YAFT terdiri 3 aplikasi yang dijalankan menggunakan command line

yaitu: ! 6 , dan . Overview YAFT sebagai

berikut:

(13)

a. Form Crawler digunakan untuk mendapatkan semua form dari aplikasi web yang diuji

b. Test generator digunakan untuk men9 yang akan digunakan untuk pengujian

c. Fuzzer yang digunakan untuk men9

2.5.2 Daftar Aplikasi yang Diuji

Percobaan dilakukan terhadap beberapa aplikasi web yang dibangun menggunakan Ruby on Rails framework,yaitu:

!, !:/! - 1! C , 0! 6 "

No Nama Aplikasi Web

Line of Code (LOC)

Jumlah Class

Jumlah

Method Deskripsi Aplikasi Web

1 Channelservice.fm 2237 33 243

Aplikasi yang digunakan untuk radio streaming, aplikasi juga digunakan untuk administrasi yang meliputi manage dan audit radio, streams, dan user.

2 Euroflorist 4140 45 290 Webshop for florists

3 Lecturis 2806 57 286 Webshop yang digunakan untuk transakasi on-demand print work

4 Mephisto (v0.8) 4095 45 567 Opensource blogging system, http://mephistoblog.Com

(14)

* )P a g e

2.5.3 Metode Pengujian

Metode pengujian yang telah dilakukan oleh Michel de Graaf adalah:

!

"

(!5,! 7 / ' 6 " !

(15)

2.5.4 Hasil Pengujian

Hasil pengujian IF dan UF yang telah dilakukan oleh Micheel de Graaf diatmpiakn pada tabel berikut:

!, ! ' 6 " ! . ( !!:

No

Nama Aplikasi Web

Jumlah Form

yang di test Jumlah Field

Flaws

UF Flaws IF

1 Channelservice 27 243 12 13

2 Euroflorist 16 66 1 1

3 Lecturis 16 78 6 7

4 Mephisto 18 120 4 5

5 Typo 19 160 4 5

Pada pengujian ini form yang menggunakan Javascript atau Ajax tidak diuji karena YAFTs Form Crawler tidak support terhadap penggunaan Javascript. Pada pengujain IF, masih diperlukan interaksi manual dalam men9generate attack script.

Pada pengujian fuzzing secara manual, maka format data disusun secara maual sesuai dengan spesifikasi yang telah disusun.

Aplikasi web tersebut diuji lagi secara manual menggunakan data yang disusun manual, hasil dari pengujian tersebut dapat dilihat pada tabel dibawah ini.

!, * ! ' 6 " ! &D & ! ! ! & AA 6

No

Nama Aplikasi Web Flaws UF Flaws IF

Flaws manual fuzzing

1 Channelservice 12 13 16

2 Euroflorist 1 1 1

3 Lecturis 6 7 9

4 Mephisto 4 5 17

5 Typo 4 5 5

Total 27 31 48

Kemudian hasil pengujian tersebut di diidentifikasi dan dikategorisasi sesuai dengan katori yang telah disusun oleh Hammerslands [13] sebagai berikut:

9 # + 0 : yaitu yang disebabkan oleh

(16)

+ )P a g e

9 # 7 yang disebabkan oleh

0

9 # 8 7 yang disebabkan tidak adanya

validasi atau penyaringan data ( %

Data hasil pengujian yang telah dikelompokkan tersebut dapat dilihat pada tabel berikut:

2.5.5 Lama Waktu Pengujian

Waktu yang dibutuhkan dalam pengujian dihitung berdasarkan aktivitas9aktivitas sebagai berikut:

a. Generating attack scripts

b. Perbaikan secara manual terhadap attack script c. Fuzzing terhadap setiap form sebanyak 100 kali d. Identifikasi dan kategorisasi secara manual

Adapun waktu yang dibutuhkaan tiap9tiap pengujian dapat dilihat pada tabel berikut:

!, +

No Nama Aplikasi Web Time UF Time IF Time manual fuzzing 1 Channelservice 2:30 4:00 5:00

2 Euroflorist 1:45 2:45 3:15

3 Lecturis 2:00 2:35 3:43

4 Mephisto 2:35 3:35 4:00

5 Typo 2:15 3:30 4:00

2.5.6 Analisa Hasil Pengujian

Selama dilakukan pengujian dengan menggunakan 3 metode tersebut didapatkan bahwa terdapat 48 , . Dimana yang diperoleh tersebut tidak ditemui bila aplikasi web dijalankan pada secara normal.

(17)

31 - , . Interaksi manual pada IF tersebut disebabkan karena adanya kekurangan pada tool yang digunakan untuk memvalidasi dan membentuk

.

Perbedaan yang terjadi anatara UF dan IF adalah 4 , , sehingga tidak bisa dilakukan analisa yang menyeluruh terhadap perbedaan antara UF dan IF tersebut. Akan tetapi kesimpulan sementara yang dapat diperoleh adalah bahwa dengan IF bisa mendapatkan yang tidak bisa diperoleh ketika menggunakan UF.

Dari 48 yang diperoleh, sebanyak 42 (87.5%) pada ketegori E2 (Failure to check return values). Hal ini berarti bahwa aplikasi web tersebut terdapat banyak flaws yang terjadi karena adanya 0 yanag tidak ditangani pada aplikasi web, sehingga akan menyebabkan aplikasi web menjadi error yang menyebabkan pengguna tidak bisa melihat halaman yang akan diakses.

(18)

7 )P a g e

BAB III

Kesimpulan dan Saran

3.1

Kesimpulan

Berdasar studi literatur, pengamatan dan pengujian yang telah dilakukan oleh Michel de Graaf [9], maka dapat disimpulkan bahwa:

1. Pengujian dengan menggunakan IF mendapatkan yang lebih banyak daripada menggunakan UF.

2. Pengujian secara manual akan mendapatkan flaws yang lbih banyak daripada menggunakan IF maupun UF, akan tetapi memerlukan waktu yang lebih banyak.

3. Jumlah flaws dengan ketegori E2 (Failure to check return values) menunjukkan sebagain disebabkan karena 0 yang tidak baik dari aplikasi web, yang mengakibatkan pengguna tidak bisa melihat halaman yang diakses.

4. Pada waktu pengembangan aplikasi web perlu dilakukan adanya fuzzing pada setiap fase SDLC, karena ternyata dengan didapatkan yang tidak akan ditemui bila aplikasi dijalankan secara normal.

3.2

Saran

Saran yang dapat diberikan untuk penelitian fuzzing pada aplikasi web yang lebih lanjut yaitu:

1. Perlu dilakukan dengan menggunakan tool yang tidak memerlukan perlakuan secara manual sewaktu membuat fuzzed data

2. Perlu dilakukan fuzzing dengan menggunakan tool atau software yang support terhadap Javascript maupun Ajax, karena hamper semua aplikasi web saat ini menggunakan Javascript atau Ajax.

(19)

DAFTAR PUSTAKA

[1] IATAC, Department of Defense 9 USA, Defense Technical Information Centre – USA. Vulnerability Assessment. Information Assurance Tools Report, Sixth Edition, Mei 2011.

[2] Andrew Austin, Laurie William. One Technique is Not Enough: A Comparison of Vulnerability Discovery Techniques. Department of Computer Science North Carolina State University Raleigh, USA. 2011. [3] Richard McNally, Ken Yiu, Duncan Grove, Damien Gerhardy. Fuzzing:

The State of the Art. DSTO Defence Science and Technology Organisation, Feb 2012.

[4] Qi Lanlan, Xu Dan, Wu Zhiyong, Xiao Qixue. New Development of Fuzzing9based Vulnerabilities Mining Research. IEEE, 2011.

[5] Prof. Yi9Ping You. Detecting Software Security Vulnerabilities. Department of Computer Science National Chiao Tung University, ISSS 2010.

[6] Ari Takanen, Jared D. Demott, Charles Miller. Fuzzing for Software Security Testing and Quality Assurance. Artech House, 2008.

[7]OWASP. OWASP Top 10 – 2010: The Ten Most Critical Web Application security Risk. www.owasp.org, 2011. Diakses April 2012.

[8] Sofia Bekrar, Chaouki Bekrar, Roland Groz, Laurent Mounier. Finding Software Vulnerabilities by Smart Fuzzing. IEEE, 2011.

[9] Michel de Graaf. Intelligent fuzzing of web applications. Master Thesis Software Engineering, Universiteit Van Amsterdam, 2009.

[10] Sutton, M., Greene, A., Amini, P. Fuzzing: Brute Force Vulnerability Discovery. Addison9Wesley Professional, 1 edition, July 2007.

[11] Leon Juranić. Using fuzzing to detect security vulnerabilities. Infigo – Information Security, 2006.

Referensi

Dokumen terkait

Skripsi ini berjudul “Pengaruh Komposisi rumput laut ( Eucheuma cottonii) dan Tepung Beras Terhadap Sifat Kimia dan Sensoris Masker Wajah” disusun sebagai salah

Sesuai hasil evaluasi Pokja Konsultansi Unit Layanan Pengadaan Kabupaten Kolaka Timur Tahun Anggaran 2016 Pekerjaan Perencanaan Pembangunan Gedung Kantor SKPD G, dengan ini

menunjukkan bahwa terdapat (1) perbedaan hasil belajar Matematika antara siswa yang mengikuti pembelajaran dengan pendekatan realistik matematika dan model

Hasil kegiatan IbM Sanggar Wirausaha Muda Pantiasuhan membawa angin segar terhadap solusi dari permasalahan yang dihadapi yaitu: 1) hasil penjualan produk sanggar

Lampiran Peraturan Menteri Dalam Negeri Nomor 15 Tahun 2007 tentang Penghitungan Dasar Pengenaan Pajak Kendaraan Bermotor dan Bea Balik Nama Kendaraan Bermotor Yang Belum

Banyak dari mereka yang kurang memahami akan sejarah serta peranan Sungai Ciliwung di masa lalu sehingga mereka terkesan tidak peduli terhadap kondisi Sungai Ciliwung saat

(1)PIHAK KEDUA bersedia dipekerjakan oleh PIHAK KESATU sebagai Pegawai Tidak Tetap pada Dinas Penanaman Modal dan Pelayanan Terpadu Satu Pintu Provinsi Kalimantan Utara,

Dengan jumlah hampir empat kali lipat jumlah Kominkan yang dijalankan dengan anggaran pemerintah (public). Kenyataan ini menunjukkan, bahwa masyarakat Jepang