Literature Review Tentang OWASP
Literature Review Tentang OWASP
DISUSUN OLEH :
KELOMPOK 1
AHMAD FARISI
SISKA DEVELLA
1406595930
1406661264
UNIVERSITAS INDONESIA
Semester Genap Tahun Akademik 2014/2015
LITERATUR 1
1|P age
1 DETIL LITERATUR
Judul
Penulis
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
2 PEMBAHASAN LITERATUR
2.1. Mengapa Penelitian Dilakukan?
Penelitian tentang Pencari Celah Keamanan pada Aplikasi Web ini dilakukan dengan melihat
fenomena banyaknya kejahatan yang terjadi di dunia teknologi informasi. Peneliti melihat sudut pandang
keamanan tersebut dari sisi aplikasi web, bukan dari sudut pandang infrastruktur jaringan yang ada di
belakang aplikasi web.
2|P age
Penelitian ini menyoroti akibat yang ditimbulkan oleh kesalahan penulisan kode program.
Kesalahan tersebut yang sering dimanfaatkan oleh para penyerang. Kelemahan-kelemahan penulisan
kode program yang sering dimanfaatkan oleh para penyerang dalam menyerang aplikasi web di antaranya
adalah SQL Injection dan Cross Site Scripting (XSS). Hal tersebut dapat ditunjukkan pada diagram
berikut ini.
3|P age
Aplikasi melakukan
request berupa URL
Server memberikan
respon berupa HTML
Melakukan proses
scanning terhadap respon
HTML
Menginjeksikan Script
Penyerangan
YA
Apakah Injeksi
Berhasil
TIDAK
Vulnerable
Tidak Vulnerable
END
4|P age
URL
its.ac.id/personal/p
ublikasi.php?idJur
nal=.....
localhost/webTA
localhost/cake/inde
x.php
localhost/webTA
2
3
4
XSS
Uji Coba
Aplikasi
Vulnerable
Uji Coba
Manual
Berhasil
terinjeksi
SQL Injection
Vulnerable
RFI
Vulnerable
Username
Enumeration
Vulnerable
Berhasil
terinjeksi
Berhasil
terinjeksi
Berhasil
terinjeksi
Serangan
Kesimpulan
Valid
Valid
Valid
Valid
Hasil uji coba aplikasi di atas menunjukkan bahwa semua URL berstatus vulnerable atau dengan
kata lain, semua URL rentan terhadap serangan XSS, SQL Injection, RFI, dan Username Enumeration.
3 KESIMPULAN
Hasil penelitian ini menunjukkan pentingnya keamanan dalam aplikasi web. Hasil penelitian juga
menunjukkan semua URL yang diuji coba menunjukkan status vulnerable yang berarti rentan terhadap
serangan-serangan seperti XSS, SQL Injection, RFI, dan Username Enumeration.
Penelitian ini dapat dilanjutkan dengan menguji tingkat kerentanan terhadap serangan-serangan
yang lain selain dari XSS, SQL Injection, RFI, dan Username Enumeration. Parameter serangan-serangan
tersebut dapat dilihat juga dari Web Database Insident Hacking (WHID) yang menunjukkan metodemetode serangan yang lebih banyak dan dapat diteliti lebih lanjut. Adapun data-data WHID tahun 2011
tersebut adalah sebagai berikut.
5|P age
Pada akhir literatur review ini, kami menemukan sedikit kelemahan pada penelitian ini. Adapun
kelemahan tersebut menurut kami terletak pada URL yang diuji coba oleh peneliti dalam menguji
kerentanan serangan-serangan XSS, SQL Injection, RFI, dan Username Enumeration. Peneliti
menggunakan tiga URL pada server local untuk menguji kerentanan tersebut. Seharusnya peneliti lebih
banyak menambahkan URL-URL lain yang bukan URL dari server local. Misalnya, menguji URL-URL
aplikasi web dari website-website e-Banking, e-Commerce, atau yang lainnya. Dari sana, peneliti dapat
melihat persentase status kerentanan URL-URL tersebut terhadap serangan-serangan XSS, SQL Injection,
RFI, dan Username Enumeration per kategori website.
4 REFERENSI
Kesuma, M. C., Shiddiqi, A. M., & Pratomo, B. A. (2012). Pencari Celah Keamanan pada Aplikasi
Web. Paper and Presentation of Informatic Engineering, RSIf 005.8 Kes P, 2013, 16. Retrieved
from http://digilib.its.ac.id/public/ITS-paper-25617-5108100006-Paper.pdf
Wichers, D., Williams, J., & Stock, A. Van Der. (2013). OWASP Top 10 - 2013 rc1, 123. Retrieved
from http://owasptop10.googlecode.com/files/OWASP Top 10 - 2013 - RC1.pdf
6|P age
LITERATUR 2
7|P age
1 DETIL LITERATUR
Judul
: OWASP Top 10 - 2013 rc1 The Ten Most Critical Web Application Security Risk
Penulis
: 1. Dave Wichers
2. Jeff Williams
3. Andrew Van Der Stock
Abstrak
The OWASP Top 10 is based on risk data from 8 firms that specialize in application security,
including 4 consulting companies and 4 tool vendors (2 static and 2 dynamic). This data spans over
500,000 vulnerabilities across hundreds of organizations and thousands of applications. The Top 10
items are selected and prioritized according to this prevalence data, in combination with consensus
estimates of exploitability, detectability, and impact estimates. The primary aim of the OWASP Top 10
is to educate developers, designers, architects, managers, and organizations about the consequences of
the most important web application security weaknesses. The Top 10 provides basic techniques to protect
against these high risk problem areas and also provides guidance on where to go from here.
2 PEMBAHASAN LITERATUR
Menurut OWASP (Open Web Application Security Project) terdapat sepuluh jenis serangan
keamanan pada aplikasi web yang sering terjadi. OWASP sendiri adalah sebuah komunitas non profit
yang bertujuan dalam mengembangkan metodologi, program, dokumentasi yang berhubungan dengan
keamanan pada aplikasi web. Berikut sepuluh jenis serangan keamanan pada web aplikasi yang dirilis
pada tahun 2013.
Injection
A2
A3
A4
A5
Security Misconfiguration
8|P age
A6
A7
A8
A9
A10
b.
c.
d.
e.
f.
2. 3. Injection
Gambar 2. 2. A1 - Injection
Pada diagram di atas yang dimaksud orang melakukan serangan injection adalah setiap orang
yang mengirimkan data yang tidak benar ke server melalui web application sebagai bagian dari perintah
atau permintaan. Data tersebut dapat berupa data yang sederhana atau data yang rumit.
10 | P a g e
11 | P a g e
12 | P a g e
Penyerang hanya memodifikasi 'acct' parameter pada browsernya untuk mengirim account
number apa pun yang dia inginkan. kalau tidak diverifikasi dengan benar, penyerang dapat mengakses
akun setiap target.
2. 7. Security Misconfiguration
Keamanan yang baik membutuhkan konfigurasi yang aman dan digunakan untuk aplikasi,
kerangka, server aplikasi, server web, database server, dan platform. Pengaturan keamanan harus
didefinisikan, diimplementasikan, dan dipelihara. Selain itu software harus selalu up to date.
14 | P a g e
Skenario # 2: daftar direktori tidak dinonaktifkan pada server Anda. Penyerang menemukan daftar
tersebut untuk menemukan file apapun. Penyerang menemukan dan mendownload semua kompilasi
kelas Java Anda. Kemudian menemukan kontrol akses cacat serius dalam aplikasi Anda.
Skenario # 3: App konfigurasi server memungkinkan jejak stack dikembalikan ke pengguna, yang
berpotensi mengekspos kelemahan. Penyerang menyukai information error messages yang disediakan.
Skenario # 4: App server dilengkapi dengan sample applications yang tidak dihapus dari server produksi
Anda. Sample applications telah dikenal baik akan kelemahan keamanan, penyerang dapat
menggunakannya untuk membahayakan server Anda.
Banyak aplikasi web tidak benar dalam melindungi data sensitif, seperti kartu kredit, ID pajak,
dan autentifikasi. Penyerang dapat mencuri atau memodifikasi data yang lemah perlindungannya tersebut
untuk melakukan penipuan kartu kredit, pencurian identitas, atau kejahatan lainnya. Data sensitif layak
mendapatkan perlindungan ekstra seperti enkripsi saat rest atau dalam transit, serta tindakan pencegahan
khusus bila pertukaran browser.
memungkinkan terjadinya kecacatan dalam injeksi SQL untuk mengambil nomor kartu kredit dalam
bentuk teks. Sistem harus mengekripsi nomor kartu kredit menggunakan kunci publik, dan hanya
diperbolehkan aplikasi back-end untuk mendekripsi mereka dengan kunci pribadi.
Skenario # 2: Situs sederhana tidak menggunakan SSL untuk semua halaman autentifikasi. Penyerang
hanya memonitor lalu lintas jaringan (seperti jaringan nirkabel), dan mencuri sesi cookie pengguna.
Penyerang kemudian replay cookie ini dan membajak sesi pengguna, mengakses data pribadi pengguna.
Skenario # 3: Database password menggunakan hash untuk menyimpan password semua orang. Sebuah
cacat dalam upload file memungkinkan penyerang untuk mengambil file password. Semua unsalted hash
dapat terekspos dengan rainbow table hash precalculated.
Sebagian besar aplikasi web memverifikasi function level access sebelum membuat fungsi terlihat
di UI. Namun, aplikasi perlu melakukan pemeriksaan kontrol akses yang sama pada server ketika
masing-masing fungsi diakses. Jika permintaan tidak diverifikasi, penyerang akan dapat menempa
permintaan untuk mengakses fungsi tanpa otorisasi yang tepat. Semua framework aplikasi web rentan
terhadap kegagalan untuk membatasi akses URL.
16 | P a g e
Skenario # 1: Penyerang menelusuri untuk menargetkan URL. URL berikut memerlukan otentikasi. Hak
admin juga diperlukan untuk mengakses halaman "admin_getappInfo".
http://example.com/app/getappInfo
http://example.com/app/admin_getappInfo
Jika pengguna tidak berkepentingan dapat mengakses salah satu halaman tersebut, itu sebuah kecacatan.
Jika dikonfirmasi, non-admin, user diijinkan untuk mengakses halaman "admin_getappInfo", ini juga
sebuah kecacatan.
Skenario # 2: Sebuah halaman memberikan 'action' parameter untuk menentukan fungsi yang dipanggil,
dan tindakan yang berbeda membutuhkan peran yang berbeda. Jika peran ini tidak ditegakkan, itu sebuah
kecacatan.
17 | P a g e
Aplikasi ini memungkinkan pengguna untuk mengirimkan permintaan mengubah state / kondisi. Sebagai
contoh:
http://example.com/app/transferFunds?amount=1500&destinationAccount=4673243243
Jadi, penyerang membangun permintaan yang akan mentransfer uang dari rekening target ke rekening
penyerang, dan kemudian melekatkan serangan ini dalam permintaan gambar atau iframe yang tersimpan
di berbagai situs di bawah kendali penyerang:
<img src="http://example.com/app/transferFunds?
amount=1500&destinationAccount=attackersAcct#
width="0" height="0" />
Jika target mengunjungi salah satu situs penyerang sementara sudah dikonfirmasi untuk example.com,
permintaan palsu ini secara otomatis akan menyertakan info sesi pengguna, otorisasi permintaan
penyerang.
Komponen, seperti libraries, framework, dan modul perangkat lunak lain, hampir selalu
dijalankan dengan hak istimewa penuh. Jika komponen rentan dimanfaatkan, serangan itu dapat
memfasilitasi kehilangan data yang serius atau pengambil alihan server. Aplikasi menggunakan
komponen dengan kerentanan diketahui dapat merusak pertahanan aplikasi dan memungkinkan berbagai
kemungkinan serangan dan dampak.
18 | P a g e
Aplikasi web sering mengarahkan dan meneruskan pengguna ke halaman lain atau website lain,
dan menggunakan data yang tidak dipercaya untuk menentukan halaman tujuan. Tanpa validasi yang
tepat, penyerang dapat mengarahkan target ke situs phishing atau malware, atau menggunakan forward
untuk mengakses halaman yang tidak sah.
Skenario # 2: Aplikasi menggunakan forward untuk permintaan rute antara bagian yang berbeda dari
situs. Untuk memfasilitasi ini, beberapa halaman menggunakan parameter untuk menunjukkan di mana
pengguna harus dikirim jika transaksi berhasil. Dalam hal ini, penyerang memberikan URL yang akan
melewati kontrol akses cek aplikasi dan kemudian meneruskan penyerang untuk mengambil fungsi
administrasi dimana penyerang tidak memiliki wewenang.
http://www.example.com/boring.jsp?fwd=admin.jsp
19 | P a g e