Professional Documents
Culture Documents
Translate Evaluation of Black-Box Web Application Security Scanners in
Translate Evaluation of Black-Box Web Application Security Scanners in
Translate Evaluation of Black-Box Web Application Security Scanners in
elektronik
Artikel
1
Sekolah Ilmu Komputer dan Informatika, Universitas Cardiff, Cardiff CF24 4AX, Inggris; lis117@cardiff.ac.uk
2
Sekolah Ilmu Komputer dan Informatika, Universitas Majmaah, Al Majma'ah 15362, Departemen
3
Ilmu Komputer Arab Saudi, Universitas Sheffield, Sheffield S1 4DP, Inggris; p.gope@sheffield.ac.uk
* Korespondensi: mzon_th@hotmail.com (MA); nsaxena@ieee.org (NS)
Abstrak: Dengan meroketnya Internet dalam popularitas dan penggunaan selama bertahun-tahun, telah
terjadi peningkatan yang signifikan dalam jumlah aplikasi web. Hampir semua organisasi menggunakannya
untuk berbagai keperluan, seperti e-commerce, e-banking, e-learning, dan jejaring sosial. Lebih penting lagi,
aplikasi web menjadi semakin rentan terhadap serangan jahat. Untuk menemukan kerentanan web sebelum
penyerang, pakar keamanan menggunakan pemindai kerentanan aplikasi web kotak hitam untuk memeriksa
kerentanan keamanan dalam aplikasi web. Sebagian besar penelitian telah mengevaluasi pemindai kotak
hitam ini terhadap berbagai aplikasi web yang rentan. Namun, sebagian besar aplikasi yang diuji bersifat
tradisional (non-dinamis) dan tidak mencerminkan web saat ini. Studi ini mengevaluasi akurasi pendeteksian
lima pemindai kerentanan aplikasi web kotak hitam terhadap salah satu aplikasi web tidak aman yang paling
modern dan canggih, yang mewakili e-commerce kehidupan nyata. Kerentanan yang diuji adalah kerentanan
injeksi, khususnya injeksi bahasa kueri terstruktur (SQLi), tidak hanya SQL (NoSQL), dan injeksi templat sisi
server (SSTI). Kami juga menguji pemindai kotak hitam dalam empat mode untuk mengidentifikasi
keterbatasannya. Temuan menunjukkan bahwa pemindai kotak hitam mengabaikan sebagian besar
Kutipan: Althunayyan, M.; Saxena, N.; kerentanan di hampir semua mode dan beberapa pemindai melewatkan semua kerentanan.
Li, S.; Gope, P. Evaluasi Pemindai
Keamanan Aplikasi Web Black-Box
Kata kunci: kerentanan injeksi; aplikasi web; keamanan cyber
dalam Mendeteksi Injeksi
Kerentanan. Elektronik 2022, 11,
2049. https://doi.org/10.3390/
elektronik11132049
1. Perkenalan
Editor Akademik: Constantinos
Menurut Internet Live Stats [1], telah terjadi peningkatan yang signifikan dalam pengguna
Kolias, Georgios Kambourakis dan
Internet selama dekade terakhir, dengan sekitar 4,7 miliar pengguna di seluruh dunia. Oleh
Wei Zhi Meng
karena itu, tidak mengherankan jika juga terjadi peningkatan yang signifikan dalam jumlah
Diterima: 24 Mei 2022 aplikasi web, dengan perkiraan total lebih dari 1,8 miliar [2]. Aplikasi web digunakan oleh hampir
Diterima: 26 Juni 2022 semua organisasi di semua sektor untuk berbagai tujuan, termasuk e-commerce, e-banking, e-
Diterbitkan: 29 Juni 2022 learning, dan jejaring sosial. Organisasi yang gagal melindungi aplikasi web mereka berisiko
menjadi sasaran penyerang. Ini dapat mengakibatkan pengungkapan informasi, kehilangan
Catatan Penerbit: MDPI tetap netral
sehubungan dengan klaim yurisdiksi
pendapatan, hubungan klien yang rusak, dan banyak lagi. Menurut laporan terbaru oleh Verizon
[3],
dalam peta yang diterbitkan dan afiliasi kelembagaan
aplikasi web adalah target populer untuk pelanggaran data. Di beberapa organisasi, hingga
iasi. 43% pelanggaran data terkait dengan aplikasi web, lebih dari dua kali lipat hasil tahun
sebelumnya . Aplikasi web yang tidak aman tidak hanya mengancam organisasi tetapi juga
mempengaruhi penggunanya . Misalnya, lebih dari 80% pelanggaran data yang dilaporkan
mengakibatkan pencurian kredensial pengguna [3].
Hak cipta: © 2022 oleh penulis. Laporan Proyek Keamanan Aplikasi Web Terbuka (OWASP) [4] mencantumkan 10 besar
Penerima Lisensi MDPI, Basel, Swiss. kerentanan aplikasi web yang paling umum dan jenis injeksi saat ini menduduki peringkat pertama.
Artikel ini adalah artikel akses terbuka
Selain itu, menurut laporan State of the Internet [5], serangan injeksi adalah ancaman utama, terhitung
didistribusikan dengan syarat dan
hampir dua pertiga dari semua serangan pada tahun 2019. Contoh yang terkenal adalah pelanggaran
kondisi Creative Commons
Equifax, di mana kerentanan dieksploitasi, mengakibatkan informasi pribadi dari sekitar 143 juta
Lisensi atribusi (CC BY) (https://
pengguna Amerika dan sekitar 100.000 pengguna Kanada [6].
creativecommons.org/licenses/by/
4.0/).
Berbagai teknik dapat digunakan untuk mengamankan aplikasi web. Ini termasuk firewall, praktik
pengkodean yang aman, dan pemindai kerentanan aplikasi web kotak hitam [7]. Untuk mengotomatiskan
keamanan aplikasi web di organisasi besar dan kompleks, pemindai kotak hitam sangat ideal. Selain itu,
Makino dan Klyuev [8] berpendapat bahwa menguji kerentanan aplikasi web secara manual itu menantang,
memakan waktu, rawan kesalahan, dan mahal. Meskipun banyak penelitian telah mengevaluasi pemindai
kotak hitam, diperlukan lebih banyak penelitian dengan aplikasi web modern dengan teknologi terbaru untuk
meningkatkan kemampuan deteksi kerentanan pemindai otomatis ini. Mengidentifikasi masalah seringkali
merupakan setengah dari solusi. Banyak penelitian telah berupaya mengidentifikasi keterbatasan pemindai
kotak hitam untuk meningkatkan kemanjuran dan ketepatan waktu pendeteksian. Meskipun berbagai
penelitian telah mengevaluasi kemampuan pemindai kotak hitam untuk mendeteksi kerentanan menggunakan
berbagai aplikasi web yang rentan , masih ada kebutuhan untuk menguji pemindai kotak hitam terhadap
aplikasi web modern seiring kemajuan teknologi.
2. Tinjauan Canggih
Banyak studi akademik dan sektor swasta tentang keamanan aplikasi web telah dilakukan .
Pada tahun 2010, Suto [9] menguji keefektifan tujuh pemindai kotak hitam dengan melakukan
pemindaian point-and-shoot (PaS) dan pemindaian terlatih. Suto mengamati bahwa pemindai Cenzic
Hailstorm menunjukkan akurasi deteksi yang sangat tinggi yang meningkat secara signifikan setelah pelatihan.
Pemindai lain hanya menunjukkan peningkatan sedang. Pada tahun yang sama, Bau et al. [10]
mengevaluasi delapan pemindai aplikasi web komersial. Pemindai pertama kali diuji terhadap aplikasi
terkenal yang rentan (yaitu, Drupal, phpBB, dan WordPress), dirilis pada tahun 2006. Studi ini
menunjukkan bahwa pemindai melakukannya dengan sangat baik dalam mendeteksi pengungkapan
informasi dan kerentanan manajemen sesi. Selain itu, tingkat deteksi pemindai sekitar 50% berhasil
dalam mendeteksi kerentanan cross site scripting (XSS) dan structured query language injection
(SQLi) dan sangat rendah untuk kerentanan Cross-Site Request Forgery (CSRF) dan cross channel
scripting (XCS). Kedua, akurasi kerentanan dan kemampuan perayapan pemindai yang dipilih diuji
terhadap aplikasi test-bed khusus.
Penulis menyimpulkan bahwa teknologi web perayapan, seperti applet Java, SilverLight, dan Flash,
menantang, dan sebagian besar pemindai memiliki kemampuan perayapan yang buruk.
Selain itu, 11 pemindai kotak hitam dievaluasi oleh Doupé et al. [11] pada kemampuan mereka untuk
menemukan kerentanan terkait dan merayapi halaman web yang kompleks. Penulis mengembangkan
aplikasi web praktis yang disebut WackoPicko dengan banyak fitur kontemporer. Mereka menemukan bahwa
pemindai ini melewatkan banyak jenis kerentanan. Oleh karena itu, penelitian tambahan diperlukan untuk
meningkatkan deteksi kerentanan otomatis.
Pada tahun 2011, Khoury et al. [12] menguji dan menilai tiga pemindai web dalam kemampuannya
untuk mendeteksi kerentanan injeksi SQLi yang persisten. Studi tersebut menunjukkan bahwa tiga pemindai
kotak hitam buruk dalam mendeteksi injeksi SQLi yang persisten bahkan ketika mereka secara eksplisit
diajarkan untuk mengeksekusi kode serangan. Khoury et al. [13] juga menunjukkan bahwa pemindai buruk
dalam mendeteksi kerentanan SQLi yang tersimpan. Mereka menyimpulkan bahwa tantangan signifikan
bagi pemindai dalam mendeteksi injeksi SQLi yang tersimpan adalah memilih nilai input yang tepat dan tidak
menggunakan kode serangan yang tepat untuk mengeksploitasi kerentanan ini.
Pada 2015, Parvez et al. [14] menganalisis kinerja tiga pemindai web kotak hitam dalam
kemampuannya untuk mendeteksi XSS yang disimpan dan kerentanan SQLi yang disimpan menggunakan
aplikasi web khusus dan WackoPicko, yang digunakan di sebagian besar penelitian sebelumnya [11-13].
Penelitian menunjukkan bahwa deteksi XSS pemindai kotak hitam telah meningkat. Para penulis
menegaskan bahwa itu adalah tantangan yang signifikan bagi pemindai otomatis untuk memilih vektor
serangan yang cocok untuk XSS yang disimpan dan SQLi yang disimpan.
Makino dan Klyuev [8] mengevaluasi dua pemindai kerentanan sumber terbuka, OWASP Zed Attack
Proxy (ZAP) dan Skipfish, untuk mendeteksi kerentanan umum. Setelah membandingkan hasilnya, OWASP
ZAP ternyata lebih unggul dari Skipfish. Namun, kedua pemindai memiliki keterbatasan, terutama dalam
mendeteksi kerentanan inklusi file jarak jauh (RFI) . Pada 2017, Berbiche et al. [15] menilai keefektifan 11
pemindai keamanan aplikasi web komersial dan gratis terhadap Pemindai Kerentanan Aplikasi Web
Machine Translated by Google
Aplikasi penilaian Evaluation Project (WAVSEP). Metrik presisi, daya ingat, dan ukuran-F diterapkan
untuk mengevaluasi kinerja. Meskipun studi tersebut menunjukkan hasil yang berbeda untuk setiap
pemindai, semuanya bekerja lebih baik pada SQLi dan XSS daripada pada penyertaan file lokal dan
jarak jauh.
Tujuan dari penelitian ini adalah untuk mengevaluasi kemampuan deteksi pemindai kotak
hitam terhadap kerentanan injeksi, terutama injeksi SQLi, tidak hanya SQL (NoSQL), dan injeksi
templat sisi server (SSTI). Studi sebelumnya terbatas pada pengujian pemindai kotak hitam
terhadap aplikasi tradisional (non-dinamis) yang tidak mencerminkan arsitektur web saat ini. Oleh
karena itu, penelitian ini mengevaluasinya terhadap salah satu aplikasi web tidak aman paling
modern dan canggih yang menggunakan teknologi web terkini. Selain itu, sepengetahuan kami,
belum ada penelitian yang mengevaluasi kemampuan pemindai kotak hitam untuk mendeteksi
kerentanan NoSQL dan SSTI.
Kami meringkas kontribusi tiga kali lipat kami sebagai berikut.
1. Kami menganalisis dan mengevaluasi akurasi pendeteksian pemindai kotak hitam terhadap kerentanan injeksi
SQLi, NoSQL, dan SSTI menggunakan salah satu aplikasi web tidak aman yang paling modern dan
canggih, yang mewakili aplikasi web e-commerce kehidupan nyata.
2. Kami menguji pemindai kotak hitam dalam empat mode berbeda untuk mengidentifikasi batasan dan
kesenjangannya dalam praktik.
3. Kami mengidentifikasi keterbatasan kemampuan pemindai kotak hitam yang dievaluasi untuk mendeteksi
kerentanan SQLi, NoSQL, dan SSTI.
Keamanan aplikasi web dapat diuji dengan dua cara: pengujian white-box [8] dan pengujian black-box
[16,17]. Beberapa alat yang berguna digunakan untuk keduanya [18]. Beberapa kerentanan mengancam aplikasi
web. OWASP [19] telah menguraikan masalah keamanan untuk aplikasi web dan memberikan laporan berkala
tentang 10 kerentanan kritis teratas.
Dalam pekerjaan ini, kami terutama tertarik pada serangan injeksi. Dalam laporan terbaru oleh
OWASP [4], serangan injeksi menempati urutan pertama. Kerentanan ini muncul saat penyerang
mengirim data berbahaya ke juru bahasa sebagai bagian dari perintah atau kueri. Injeksi yang
berhasil dapat menyebabkan hilangnya data, korupsi, pengungkapan informasi, hilangnya
akuntabilitas, penolakan akses dan hilangnya kendali sistem [4]. Dampak bisnis dari serangan
injeksi bergantung pada aplikasi dan data. Injeksi umum lainnya termasuk SQLi, NoSQL, perintah
sistem operasi, injeksi protokol akses direktori ringan, bahasa ekspresi, SSTi, dan injeksi pustaka
navigasi grafik objek. Secara lebih rinci, bagian berikut menjelaskan tiga kerentanan injeksi, yaitu
SQLi, NoSQL, dan SSTI.
Menurut PortSwigger [21], serangan SQLi berbasis serikat terjadi ketika aplikasi web rentan terhadap injeksi
SQLi, dan keluaran kueri dikembalikan ke pengguna dalam respons aplikasi. Oleh karena itu, penyerang dapat
menggunakan kata kunci UNION untuk mengambil data yang tidak diizinkan untuk diakses dari tabel lain di
database.
Kata kunci UNION memungkinkan penyerang mengeksekusi satu atau lebih kueri SELECT dan
menambahkan hasilnya ke kueri awal. Salah satu contohnya seperti yang dikemukakan oleh Al-
Khurafi dan Al-Ahmad [22] adalah aplikasi web toko online yang terhubung dengan database server yang
Machine Translated by Google
berisi tabel Akun untuk mengautentikasi pengguna dan tabel Pelanggan dengan catatan semua informasi
pelanggan, termasuk nama, nomor telepon, alamat, pesanan, dan informasi pembayaran. Jika parameter
bidang nama pengguna rentan terhadap injeksi SQLi, penyerang dapat menyuntikkan perintah jahat
berikut di bidang nama pengguna: ", UNION SELECT * " dan apa pun untuk kata sandi, yang akan
menghasilkan FROM Pelanggan - - permintaan berikut [21] :
SELECT * FROM Accounts WHERE USERNAME= ' ' UNION SELECT * FROM Customers - - '
uji waktu respons server web untuk kueri standar. Perintah berikut kemudian dapat disuntikkan [24]:
http://www.shop.com/
item.php?id=26 (diakses pada 8 Mei 2021) dan if(1=1, sleep(10), false)
Jika respons yang dikembalikan tertunda selama 10 detik, aplikasi web dianggap rentan.
2 MySQL
3 Microsoft SQLServer
4 PostgreSQL
5 MongoDB
6 IBM DB2
7 Redis
8 Pencarian elastis
9 SQLite
10 Cassandra
Walaupun NoSQL menggunakan query JavaScript Object Notation (JSON) sebagai pengganti
SQL, bukan berarti tahan terhadap ancaman serangan injeksi [27]. Alih-alih menggunakan bahasa
kueri standar, seperti database relasional, sintaks kueri NoSQL adalah khusus produk, dan perintah
ditulis dalam bahasa pemrograman aplikasi (misalnya, Python, PHP, JavaScript, atau Java).
Akibatnya, serangan injeksi NoSQL yang berhasil akan memungkinkan penyerang untuk
mengeksekusi perintah jahat di database dan aplikasi, yang meningkatkan bahaya [25]. Hou dkk.
[27] melaporkan bahwa sistem basis data NoSQL memungkinkan pengguna untuk mengubah atribut
data kapan saja, dan data dapat ditambahkan di mana saja.
Secara umum, serangan NoSQL mirip dengan SQLi; hanya bentuk grammar yang berubah. Karena
perintah penyerang disisipkan dan dieksekusi di sisi server dan dalam bahasa aplikasi web, dampak
dari serangan injeksi NoSQL yang berhasil bisa berbahaya dan memungkinkan eksekusi kode
arbitrer [25]. Pernyataan kueri SQL dan NoSQL ditunjukkan di bawah ini. Kami meminta nomor
pelanggan sebagai contoh.
SQL Query:
"SELECT * FROM Customers WHERE (CustomerNo = '" + Nomor_Pelanggan + " '); '"
NoSQL Query:
db.collection.find (CustomerNo: Customer_Number)
Seperti yang ditunjukkan di atas, penyerang dapat memasukkan kode berbahaya ke dalam kotak masukan
di aplikasi web , yang dapat menyebabkan serangan injeksi.
Machine Translated by Google
• Perintah dan kendali: Pemindai harus memiliki fungsi perintah dan kendali yang meningkatkan pengalaman
pengguna. Misalnya, ini menjadwalkan pemindaian, menjeda dan memulai ulang, dan menjadwalkan
beberapa pemindaian secara bersamaan.
• Pelaporan: Setelah setiap pemindaian, pemindai harus dapat menghasilkan laporan khusus.
• True positive (TP) adalah kerentanan yang terdeteksi oleh pemindai yang benar-benar ada di
kode [34].
• Positif palsu (FP) adalah kerentanan yang terdeteksi oleh pemindai yang tidak ada [34].
FP menimbulkan masalah yang signifikan bagi pengguna. Jika FP tinggi, pengguna memeriksa setiap kerentanan
yang dilaporkan secara manual untuk menilai validitasnya [17].
• False negatives (FNs) adalah kerentanan yang sebenarnya ada dalam kode tetapi sebenarnya tidak
terdeteksi oleh pemindai [34].
• Presisi adalah rasio kerentanan yang terdeteksi dengan benar terhadap jumlah total kerentanan yang
terdeteksi, yang direpresentasikan sebagai berikut [34,35]:
TP
Presisi = (1)
TP + FP
• Recall adalah rasio kerentanan yang terdeteksi dengan benar terhadap jumlah total kerentanan yang ada,
yang direpresentasikan sebagai berikut [34,35]:
TP
Ingat = (2)
TP + FN
• F-measure adalah rata-rata harmonik presisi dan perolehan kembali [36], yang direpresentasikan
sebagai berikut:
Presisi ÿ Ingat
F-Ukur = 2 ÿ (3)
Presisi + Ingat
5. Rancangan
Penelitian Seperti digambarkan pada Gambar 1, metodologi kami terdiri dari lima langkah.
Pertama, kami meninjau aplikasi rentan yang tersedia dan memilih aplikasi web yang memenuhi
persyaratan kami. Kedua, kami memilih pemindai kotak hitam untuk dievaluasi. Ketiga, kita memilih
Machine Translated by Google
metrik yang digunakan untuk mengukur akurasi pemindai yang dipilih dalam mendeteksi kerentanan injeksi .
Keempat, kami menyiapkan lingkungan untuk menjalankan eksperimen. Kelima, kami menganalisis hasil akhir.
Tabel 2 mencantumkan karakteristik umum pemindai yang diuji.
Ada berbagai pemindai komersial dan sumber terbuka yang tersedia, masing-masing dengan kekuatan
dan keterbatasannya. Untuk memilih pemindai yang akan diuji, kami meninjau WAVS yang tersedia saat ini di
pasaran. Dalam penelitian ini, kami bertujuan untuk mengevaluasi pemindai komersial dan sumber terbuka.
Kami memilih lima pemindai kotak hitam, satu komersial, dan empat sumber terbuka: Burp Suite Professional,
OWASP ZAP, Vega, Skipfish, dan Wapiti. Pemindai dipilih berdasarkan ketersediaan dan kemampuannya untuk
mendeteksi kerentanan injeksi. Daftar berikut memberikan deskripsi yang lebih rinci tentang pemindai yang
dipilih. • ZAP adalah alat pengujian penetrasi sumber terbuka dan gratis untuk mendeteksi
kerentanan dalam aplikasi web. Ini memiliki fitur proxy untuk mencegat dan memeriksa pesan yang dikirim
antara klien dan aplikasi web [39].
• Burp Suite Professional adalah alat keamanan web komersial yang dapat digunakan untuk menguji semua 10
kerentanan teratas OWASP. Ia mampu melakukan analisis pasif dan aktif.
Selain itu, proxy/riwayatnya yang kuat memungkinkan penguji penetrasi untuk memodifikasi semua
komunikasi HTTPS aman yang lewat menggunakan browser [40].
• Vega adalah alat sumber terbuka dan gratis untuk menguji keamanan aplikasi web dan mendeteksi kerentanan.
Selain itu, ia menyediakan pemindaian otomatis untuk pengujian cepat dan memiliki komponen proxy
pencegat [41].
Machine Translated by Google
• Skipfish adalah pemindai kerentanan sumber terbuka dan gratis yang menyiapkan peta situs interaktif
untuk aplikasi web yang dipindai. Ini menjalankan perayapan berulang dan pemindaian berbasis
kamus. Peta yang diperoleh dianotasi dengan keluaran dari beberapa pemindaian aktif [42].
• Wapiti adalah aplikasi gratis, sumber terbuka, dan baris perintah yang memindai keamanan aplikasi
web. Itu melakukan pemindaian kotak hitam dengan merayapi halaman web dari aplikasi web
target dan mencari formulir yang dapat menyuntikkan data. Ketika daftar URL, formulir, dan
inputnya telah dikumpulkan, Wapiti bertindak seperti fuzzer dan menyuntikkan muatan untuk
melihat apakah ada potensi kerentanan [43].
Untuk menentukan akurasi deteksi kerentanan dari pemindai yang dievaluasi, kami
menghitung jumlah TP, FP, dan FN yang dihasilkan oleh setiap pemindai. Selanjutnya, tiga
metrik dihitung: presisi, recall, dan F-measure. Metrik ini dipilih berdasarkan rekomendasi
Antunes dan Vieira [44] untuk menggunakan penarikan untuk menilai alat mana yang mendeteksi
jumlah kerentanan tertinggi atau, dengan kata lain, yang membuat kerentanan paling sedikit
tidak terdeteksi. Presisi adalah tiebreak yang direkomendasikan. Antunes dan Vieira [44]
menyarankan menggunakan ukuran-F untuk memilih alat yang mendeteksi sejumlah besar
kerentanan sambil melaporkan jumlah FP yang rendah; recall adalah tiebreak yang direkomendasikan.
database MongoDB NoSQL yang banyak digunakan, juga digunakan untuk penyimpanan data
tambahan. JavaScript adalah bahasa pemrograman utama di bagian belakang. Selain itu,
fungsionalitas back-end yang diperlukan dari aplikasi dikirimkan ke klien melalui RESTful API.
Injeksi SQLi 1 0
Injeksi NoSQL 3 2
SSTi 1 1
Masukkan URL Toko Jus OWASP: http://localhost:3000 (diakses pada 8 Mei 2021)
Keluaran
Laporan
Masukkan URL Toko Jus OWASP: http://localhost:3000 (diakses pada 8 Mei 2021)
Laporan
Pemindaian Keluaran
Awal
Atur pemindai agar berfungsi dengan browser
Luncurkan peramban
Masukkan URL Toko Jus OWASP: http://localhost:3000 (diakses pada 8 Mei 2021)
Kredensial pengguna
Keluaran
Laporan pindai
Mulai
Atur pemindai untuk bekerja dengan browser Luncurkan browser
Masukkan URL Toko Jus OWASP: http://localhost:3000 (diakses pada 8 Mei 2021)
Kredensial pengguna
Laporan
Pemindaian Keluaran
Awal
Atur pemindai agar berfungsi dengan browser
Luncurkan peramban
ini menyajikan hasil yang diperoleh dan dianalisis dari pengujian eksperimen.
Machine Translated by Google
Hasil menjalankan pemindai dalam mode ini tercantum dalam Tabel 4. • FN:
Jelas dari Tabel 4 bahwa jumlah kerentanan tidak terdeteksi (FN) secara signifikan lebih tinggi
daripada nilai terdeteksi (TP) dan salah terdeteksi (FP) di modus ini .
• TP: Seperti yang dapat kita lihat dari Tabel 4, sebagian besar pemindai gagal mendeteksi
kerentanan yang diketahui , selain pemindai ZAP, yang menemukan satu kerentanan injeksi SQLi
di halaman beranda.
• FP: Karena kami hanya memindai kerentanan injeksi, tidak ada pemindai yang mendeteksi
kerentanan injeksi yang sebenarnya tidak ada.
Pemindai FN TP FP
PERTENGKARAN 6 1 0
Bersendawa Suite 7 0 0
Vega 7 0 0
Skipfish 7 0 0
Lewat 7 0 0
Hasil menjalankan pemindai dalam mode ini ditunjukkan pada Tabel 5. • FN:
Jumlah kerentanan tidak terdeteksi (FN) dalam mode ini sama seperti di Mode 1, kecuali pemindai
Burp Suite Professional, yang mendeteksi satu kerentanan. Dengan demikian, jumlah FN
berkurang satu.
• TP: Dalam Mode 2, pemindai ZAP dan Burp Suite hanya mendeteksi satu kerentanan.
Yang terdeteksi oleh ZAP sudah ditemukan selama pemindaian Mode 1. Burp Suite
kemungkinan dapat mendeteksi kerentanan karena kami mengisi formulir login secara manual
untuk menyediakan pemindai dengan kredensial istimewa; kemudian, pemindai dapat
mengakses halaman masuk yang rentan.
• FP: Tidak ada pemindai yang mendeteksi kerentanan injeksi yang sebenarnya tidak ada
dalam aplikasi.
Pemindai FN TP FP
PERTENGKARAN 6 1 0
Bersendawa Suite 6 1 0
Vega 7 0 0
Skipfish 7 0 0
Lewat 7 0 0
Machine Translated by Google
Pemindai FN TP FP
PERTENGKARAN 5 2 0
Bersendawa Suite 7 0 0
Vega 7 0 0
- - -
Skipfish
- - -
Lewat
Hasil menjalankan pemindai dalam mode ini ditampilkan pada Tabel 7. • FN: Vega memiliki
jumlah kerentanan tertinggi yang tidak terdeteksi. Sebaliknya, ZAP dan
Burp Suite memiliki nilai FN paling sedikit (masing-masing
lima). • TP: ZAP dan Burp Suite mendeteksi dua kerentanan injeksi.
•
FP: Tidak ada pemindai yang mendeteksi kerentanan injeksi yang sebenarnya tidak ada dalam aplikasi.
Pemindai FN TP FP
PERTENGKARAN 5 2 0
Bersendawa Suite 5 2 0
Vega 7 0 0
- - -
Skipfish
- - -
Lewat
Di Mode 4, Burp Suite menemukan kerentanan SQLi di bidang email, yang sudah
ditemukan di Mode 2. Selain itu, Burp Suite mendeteksi kerentanan NoSQL di http://
localhost:3000/#/track-order (diakses pada 8 Mei 2021). Halaman yang didefinisikan sebagai
injeksi kode JavaScript sisi server. Seperti ZAP, Burp Suite tidak dapat menggunakan
kredensial login untuk mengakses halaman yang diautentikasi. Bahkan saat proxy mengakses
semua halaman aplikasi, kerentanan lain terlewatkan oleh ZAP dan Burp Suite Professional.
ZAP mendeteksi kerentanan yang sama yang telah ditemukan di mode sebelumnya.
Sebaliknya, Vega mengabaikan semua kerentanan injeksi. Skipfish dan Wapiti hsd tidak ada kompone
Tabel 8 mencantumkan jenis kerentanan yang terdeteksi dan tidak terdeteksi oleh berbagai pemindai.
SQLi • • ÿ ÿ ÿ
NoSQL ÿ ÿ ÿ ÿ ÿ
SSTi ÿ ÿ ÿ ÿ ÿ
•: Semua kerentanan terdeteksi, ÿ: tidak ada kerentanan yang terdeteksi, ÿ: beberapa kerentanan
terdeteksi dan beberapa tidak.
8. Evaluasi
Bagian ini menilai akurasi pendeteksian kerentanan pemindai yang diuji dengan menghitung
metrik presisi, daya ingat, dan F-measure. Selain itu, bagian ini membahas batasan dan celah
utama pemindai yang dipertimbangkan dalam pekerjaan ini.
Menurut Antunes dan Vieira [34], semakin rendah jumlah FP, semakin tinggi presisi.
Akibatnya, pemindai dapat mendeteksi kerentanan dengan lebih akurat. Sebaliknya, semakin
tinggi daya ingat, semakin rendah jumlah FN. Akibatnya, pemindai dapat mendeteksi kerentanan
dengan lebih akurat [34]. Presisi mengacu pada persentase kerentanan relevan yang benar
dibandingkan dengan jumlah total kerentanan yang terdeteksi [15]. Seperti dapat dilihat pada
Tabel 9, pemindai Burp Suite Professional dan ZAP memiliki presisi tertinggi (100%), sedangkan
yang lainnya memiliki presisi terendah (0%). Recall adalah persentase kerentanan yang
teridentifikasi dengan benar dibandingkan dengan jumlah total kerentanan aktual [ 15]. Dari
Tabel 9, kita dapat melihat bahwa penarikan kembali Burp Suite Professional di Mode 4 dan
ZAP di Mode 3 dan 4 menempati persentase yang lebih tinggi (29%) daripada pemindai lain
(0%) di semua mode. Kolom terakhir dari Tabel 9 menunjukkan F-measure dari setiap scanner
dalam mendeteksi kerentanan injeksi. Menurut Idrissi et al. [15], metrik ukuran-F menunjukkan
keefektifan setiap pemindai karena menggabungkan presisi dan daya ingat ke dalam satu
ukuran. Seperti dapat dilihat pada Tabel 9, Burp Suite Professional di Mode 3 dan ZAP di Mode
3 dan 4 memiliki ukuran F yang sama dan efisiensi tertinggi (44%) dibandingkan dengan yang
lain. Vega, Skipfish, dan Wapiti memiliki ukuran-F 0% di semua mode. Gambar 5 menunjukkan
hasil presisi, daya ingat, dan ukuran-F dari berbagai mode .
Machine Translated by Google
Tabel 9. Nilai presisi, daya ingat, dan ukuran-F untuk semua pemindai.
Gambar 5. Didapatkan hasil precision, recall, dan F-measure pada mode yang berbeda.
Tidak ada pemindai yang mendeteksi kerentanan, bahkan ketika halaman yang rentan dikunjungi
secara manual melalui proxy. Seperti yang dinyatakan oleh Kimminich [45], OWASP Juice Shop
menggunakan turunan Mon goDB sebagai basis data NoSQL-nya, yang rentan terhadap serangan
injeksi. Toko Jus OWASP memiliki tiga kerentanan NoSQL, dua di antaranya tidak terdeteksi oleh pemindai mana p
Identifikasi kerentanan ini oleh penyerang dapat menyebabkan manipulasi, pembaruan beberapa ulasan produk secara
bersamaan, dan serangan denial-of-service melalui injeksi perintah jahat ke dalam URL. Selain itu, kerentanan SSTI
terlewatkan oleh semua pemindai.
Dari hasil ini, jelas bahwa pemindai gagal mendeteksi sebagian besar kerentanan.
Hal ini tampaknya terutama disebabkan oleh dua alasan. Pertama, pemindai memiliki kemampuan terbatas
untuk merayapi aplikasi karena OWASP Juice Shop, seperti banyak aplikasi web modern lainnya, dibuat
secara dinamis menggunakan JavaScript, yang merupakan tantangan besar bagi perayap. Doupé dkk. [11]
juga menyatakan bahwa aplikasi web modern menghadirkan tantangan perayapan untuk pemindai kotak hitam.
Akibatnya, banyak formulir yang rentan terabaikan selama perayapan yang buruk. Pemindai yang
dievaluasi memiliki berbagai kemampuan perayapan. Misalnya, ZAP dan Burp Suite Professional
memiliki kemampuan terbaik untuk merayapi JavaScript dinamis. Akibatnya, mereka memiliki akurasi
deteksi kerentanan yang lebih tinggi. Dengan demikian, menyediakan pemindai dengan komponen
proxy dapat membantu mereka mendeteksi lebih banyak kerentanan. Tidak ada keraguan bahwa
keefektifan pemindai kotak hitam dalam merayapi aplikasi web modern semakin meningkat; namun, kemajuannya
Kedua, alasan lain untuk hilangnya kerentanan adalah meskipun pemindai kotak hitam mendukung deteksi
kerentanan injeksi, mereka tidak dapat mendeteksi semua masalah injeksi.
Misalnya, pemindai ZAP tidak mendukung deteksi SSTI, dan Burp Suite Professional tidak mendukung
NoSQL.
Meskipun kami tidak mengevaluasi fitur autentikasi pemindai, kami menemukan bahwa semuanya gagal
mempertahankan status autentikasi. Saat kami melakukan pemindaian yang diautentikasi dalam Mode 2 dan 4,
hampir semua pemindai tidak dapat menggunakan kredensial istimewa yang diberikan dengan benar untuk
menunjukkan identitas pengguna. Akibatnya, tidak ada yang dapat mengakses halaman yang diautentikasi.
Kemampuan pemindai untuk mempertahankan otentikasi JWT menarik dan harus dievaluasi secara menyeluruh
dalam penelitian selanjutnya. Meskipun evaluasi pemindai kerentanan web kami menyertakan lima pemindai,
hasil kami mungkin tidak dapat digeneralisasikan untuk semua pemindai kotak hitam lainnya.
Beberapa peneliti telah menguji pemindai kotak hitam terhadap aplikasi web yang rentan.
Doupé dkk. [11] mengevaluasi 11 pemindai kotak hitam terhadap aplikasi WackoPicko.
Penulis menjalankan pemindai dalam tiga mode: awal, dikonfigurasi, dan manual. Dalam
mode awal, pemindai dioperasikan dalam mode PaS dan diberi kredensial login yang valid.
Dalam mode terakhir, pemindai disetel ke mode proxy, sedangkan halaman aplikasi dijelajahi secara manual. Doupé
dkk. [11] melaporkan bahwa itu adalah tantangan yang signifikan bagi pemindai untuk merayapi aplikasi web modern.
Berbagai kerentanan terdeteksi hanya dalam mode manual. Doupé dkk. [11] juga melaporkan bahwa cakupan perayapan
yang rendah kemungkinan disebabkan oleh teknologi web yang digunakan dalam aplikasi. Meskipun kami menguji
pemindai dan aplikasi web yang berbeda, temuan kami serupa dengan Doupé et al. [11], di mana pemindai mengabaikan
setidaknya 50% kerentanan. Namun, dalam penelitian kami, persentase kerentanan yang tidak terdeteksi jauh lebih
tinggi.
Idrissi dkk. [15] menilai 11 pemindai kotak hitam menggunakan metrik evaluasi yang sama yang diterapkan
dalam penelitian kami. Namun, mereka menggunakan aplikasi yang berbeda, WAVSEP, untuk mengukur
kemampuan pemindai untuk mendeteksi SQLi, XSS yang dipantulkan, penyertaan file jarak jauh, dan kerentanan
penyertaan file traversal/lokal jalur. Oleh karena itu, kami hanya membandingkan hasil kami dengan hasil SQLi mereka.
Dalam penelitian Idrissi et al. [15], F-measure untuk semua scanner adalah antara 70 dan 100%; di kami, itu antara 0
dan 44%, yang jauh lebih rendah. Mengenai daya ingat, dalam penelitian Idrissi et al. [15], antara 60 dan 100%; di kami,
itu antara 0 dan 29%. Perbedaan yang signifikan antara temuan kami dan Idrissi et al. [15] tidak mengherankan, karena
OWASP Juice Shop adalah aplikasi yang jauh lebih menantang untuk pemindai daripada WAVSEP. Lebih-lebih lagi,
Machine Translated by Google
kami hanya mempertimbangkan hasil SQLi Idrissi et al. [15] terhadap semua kerentanan injeksi dalam
penelitian kami.
Makino dan Klyuev [8] mengevaluasi dua pemindai kerentanan open-source: OWASP ZAP dan Skipfish
menggunakan Damn Vulnerable Web Application (DVWA) dan WAVSEP sebagai aplikasi pengujian. Penulis
menguji pemindai terhadap daftar kerentanan, termasuk SQLi, SQLi buta, XSS tercermin, XSS persisten, injeksi
file lokal, injeksi file jarak jauh, eksekusi perintah, dan pemalsuan permintaan lintas situs. Hasil kami konsisten
dengan Makino dan Klyuev [8] dalam beberapa aspek. Pertama, OWASP ZAP ditemukan lebih unggul dari Skipfish
dalam mendeteksi kerentanan. Kedua, meskipun pemindai mendeteksi beberapa kerentanan injeksi, seperti SQLi,
mereka melewatkan yang lain.
Khoury et al. [12] mencapai kesimpulan yang sama setelah mengevaluasi tiga pemindai kotak hitam
yang mendukung deteksi kerentanan SQLi yang persisten. Untuk tujuan ini, penulis membuat aplikasi
khusus, yang disebut MatchIt, menemukan bahwa pemindai tidak dapat mengidentifikasi kerentanan yang
ada. Khoury et al. [12] menekankan bahwa mengonfigurasi pemindai dengan nama pengguna dan kata
sandi dapat meningkatkan hasil keseluruhan karena halaman yang memerlukan otentikasi lebih mungkin
untuk diakses. Sebagai perbandingan, penelitian kami menguji pemindai kotak hitam dengan salah satu
aplikasi web tidak aman yang paling modern dan canggih, yang mewakili aplikasi web e-commerce
kehidupan nyata. Selanjutnya, kami menjelajahi empat mode untuk mengidentifikasi alasan keterbatasan
pemindai. Kami berharap penelitian ini akan memberikan wawasan berharga tentang bagaimana
kemampuan pemindai kotak hitam untuk mendeteksi kerentanan injeksi dapat ditingkatkan.
Studi ini mengevaluasi akurasi pendeteksian pemindai kotak hitam terhadap kerentanan injeksi SQLi,
NoSQL, dan SSTI. Untuk mencapai hal ini, kami mengevaluasi kemampuan pendeteksian lima pemindai
web kotak hitam terhadap salah satu aplikasi web paling modern dan rentan. Kami mengukur fitur akurasi
deteksi kerentanan dari setiap pemindai menggunakan tiga metrik evaluasi: presisi, daya ingat, dan ukuran-
F. Kami menemukan bahwa ZAP dan Burp Suite Professional lebih unggul. Selain itu, pemindai kotak
hitam yang dievaluasi mengabaikan sebagian besar kerentanan yang ada di sebagian besar mode, dan
beberapa pemindai tidak dapat mendeteksi apa pun. Hal ini ternyata disebabkan oleh dua alasan. Pertama,
pemindai memiliki kemampuan terbatas untuk merayapi aplikasi web modern yang dinamis. Dengan
demikian, menyediakan pemindai dengan komponen proxy membantu mereka mendeteksi lebih banyak
kerentanan yang ada. Kedua, meskipun pemindai kotak hitam mendukung pendeteksian kerentanan
injeksi, mereka tidak dapat mendeteksi semua jenis kelemahan injeksi. Di masa mendatang, perbaikan
harus dilakukan dari perspektif berikut: 1. Mengevaluasi lebih banyak pemindai kotak hitam. Dalam
makalah ini, kami mengevaluasi hanya lima. Namun, ada peningkatan jumlah di pasar. Oleh karena itu,
penelitian selanjutnya dapat memindai aplikasi yang sama, OWASP Juice Shop, dengan pilihan
pemindai yang paling banyak digunakan.
2. Uji kerentanan lainnya. Aplikasi OWASP Juice Shop berisi 14 kategori kerentanan dan mencakup beberapa
yang belum pernah diuji oleh penelitian. Dalam makalah ini, kami hanya berfokus pada kerentanan injeksi.
Namun, penelitian di masa depan harus mencakup jenis lain.
3. Menganalisis keterbatasan deteksi kerentanan yang teridentifikasi. Karena pekerjaan kami mengevaluasi
pemindai sumber terbuka, peneliti lain sekarang memiliki kesempatan untuk mengakses dan meninjau kode
sumber. Oleh karena itu, studi masa depan harus memeriksa masalah desain dan keterbatasan secara
lebih rinci.
Kontribusi Penulis: Konseptualisasi, MA dan NS; metodologi, MA, NS dan SL; validasi, MA, NS dan PG; tulisan—
penyusunan draf asli, MA dan NS; menulis—review dan editing, MA, NS, SL dan PG; pengawasan, NS; Semua penulis
telah membaca dan menyetujui versi naskah yang diterbitkan.
Referensi
1. Pengguna internet. Tersedia online: https://www.internetlivestats.com/watch/internet-users (diakses pada 8 Mei 2021).
2. Jumlah Total Situs Web. Tersedia online: https://www.internetlivestats.com/watch/websites (diakses pada 8 Mei 2021).
3. Verizon. Laporan Investigasi Pelanggaran Data 2020. Laporan Teknis, Verizon, 2020. Tersedia online: https://www.cisecurity.org/ wp-content/
uploads/2020/07/The-2020-Verizon-Data-Breach-Investigations-Report-DBIR.pdf (diakses pada 8 Mei 2021).
4. OWASP. OWASP Top 10 -2017 Sepuluh Risiko Keamanan Aplikasi Web Paling Kritis; Laporan teknikal; OWASP: Wakefield, MA,
Amerika Serikat, 2017.
23. Banach, Z. Cara Kerja Blind SQL Injection. 2020. Tersedia online: https://www.invicti.com/blog/web-security/how-blind
sql-injeksi-berfungsi/ (diakses pada 8 Mei 2021).
24. Akunetix. Apa Itu Suntikan SQL Buta. Tersedia online: https://www.acunetix.com/websitesecurity/blind-sql-injection/
(diakses pada 8 Mei 2021).
25. Banach, Z. Apa itu Injeksi NoSQL dan Bagaimana Cara Mencegahnya? 2020. Tersedia online: https://www.invicti.com/blog/web security/what-is-
nosql-injection/ (diakses pada 8 Mei 2021).
Machine Translated by Google
26. Sachdeva, V.; Gupta, S. Analisis Dan Deteksi Injeksi NOSQL Dasar Pada MongoDB. Dalam Prosiding International Conference on Advanced Computation
and Telecommunication (ICACAT) 2018, Bhopal, India, 28–29 Desember 2018; hlm. 1–5.
27. Hou, B.; Qian, K.; Li, L.; Shi, Y.; Tao, L.; Liu, J. MongoDB analisis dan deteksi injeksi NoSQL. Dalam Prosiding 2016 IEEE 3rd International Conference on
Cyber Security and Cloud Computing (CSCloud), Beijing, Tiongkok, 25–27 Juni 2016; hlm. 75–78.
28. Basis Pengetahuan Sistem Manajemen Basis Data Relasional dan NoSQL. Tersedia online: https://db-engines.com/en
(diakses pada 8 Mei 2021).
29. Injeksi Template Sisi Server. Tersedia online: https://portswigger.net/web-security/server-side-template-injection (diakses
pada 8 Mei 2021).
30. Kettle, J. Injeksi Template Sisi Server. 2015. Tersedia online: https://portswigger.net/research/server-side-template-injection
(diakses pada 8 Mei 2021).
31. Hitam, PE; Fong, E.; Okun, V.; Gaucher, R. Alat jaminan perangkat lunak: Spesifikasi fungsional pemindai keamanan aplikasi web
versi 1.0. Spesifikasi Nist. Pub. 2008, 2008, 269–500.
32. Kagorora, F.; Li, J.; Hanyurwimfura, D.; Camara, L. Efektivitas pemindai keamanan aplikasi web dalam mendeteksi kerentanan
di belakang ajax/json. Int. J.Innov. Res. Sains. Eng. technol. 2015, 4, 4179–4188.
33. Konsorsium Keamanan Aplikasi Web dan lain-lain; Kriteria evaluasi pemindai keamanan aplikasi web. Aplikasi Web Aman. Istri.
2009, 1, 1–26.
34. Antunes, N.; Vieira, M. Tolok ukur alat deteksi kerentanan untuk layanan web. Dalam Prosiding IEEE Internasional 2010
Konferensi Layanan Web, Miami, FL, AS, 5–10 Juli 2010; hlm. 203–210.
35. Antunes, N.; Vieira, M. Menilai dan membandingkan alat deteksi kerentanan untuk layanan web: Pendekatan pembandingan dan
contoh. Trans IEEE. Melayani. Komputer. 2014, 8, 269–283. [Referensi Silang]
36. Powers, DM Evaluasi: Dari presisi, daya ingat, dan ukuran-F hingga ROC, informasi, kemaknaan, dan korelasi. arXiv 2011,
arXiv:2010.16061v1.
37. Siles, R.; Proyek Direktori Aplikasi Web Rentan Bennetts, S. OWASP. 2019. Tersedia online: https://owasp.org/www
proyek-rentan-web-aplikasi-direktori/ (diakses pada 8 Mei 2021).
38. Proyek Toko Jus Kimminich, B. OWASP; Laporan teknikal; OWASP: Bel Air, MD, AS, 2020.
39. OWASP Zed Attack Proxy (ZAP). Tersedia online: https://www.zaproxy.org (diakses pada 8 Mei 2021).
40. Pemindai Burp Suite. Tersedia online: https://portswigger.net/burp/vulnerability-scanner (diakses pada 8 Mei 2021).
41. Pemindai Kerentanan Vega. Tersedia online: https://subgraph.com/vega/ (diakses pada 8 Mei 2021). 42. skipfish(1)—Linux Man
Page. Tersedia online: ps://linux.die.net/man/1/skipfish (diakses pada 8 Mei 2021).
43. Pemindai Kerentanan Aplikasi Web. Tersedia online: https://wapiti.sourceforge.io (diakses pada 8 Mei 2021).
44. Antunes, N.; Vieira, M. Tentang metrik untuk pembandingan alat deteksi kerentanan. Dalam Prosiding Konferensi Internasional IEEE/IFIP Tahunan ke-45
tahun 2015 tentang Sistem dan Jaringan yang Dapat Diandalkan, Rio de Janeiro, Brasil, 22–25 Juni 2015; hlm.505–516.
45. Kimminich, Toko Jus OWASP B.Pwning. 2017. Tersedia online: https://pwning.owasp-juice.shop/ (diakses pada 8 Mei 2021).