Skip to content

maybeitsai/xss-detection-pipeline

Repository files navigation

Submission 1: Cross Site Scripting (XSS) Detection

Nama: Harry Mardika

Username dicoding: hkacode

Deskripsi
Dataset Cross site scripting XSS dataset for Deep Learning
Masalah Cross-site scripting (XSS) adalah jenis serangan siber yang memungkinkan penyerang menyisipkan skrip berbahaya ke dalam halaman web yang dilihat oleh pengguna lain. Serangan XSS dapat menyebabkan pencurian informasi, pengambilalihan akun, dan kerentanan keamanan lainnya. Masalah ini penting untuk diatasi karena dapat membahayakan data dan privasi pengguna. Dalam proyek ini, kita akan mendeteksi serangan XSS secara otomatis menggunakan model pembelajaran mendalam (Deep Learning).
Solusi Machine Learning Solusi yang diusulkan adalah mengembangkan model Deep Learning untuk mengklasifikasikan input teks sebagai aman atau berbahaya. Model akan dilatih menggunakan dataset XSS untuk mengenali pola-pola yang umum digunakan dalam serangan XSS. Dengan menggunakan Deep Learning, model diharapkan dapat mendeteksi serangan XSS secara efektif dan efisien.
Metode Pengolahan Metode pengolahan data yang digunakan dalam proyek ini meliputi:
1. Lowercasing: Mengubah semua teks menjadi huruf kecil untuk memastikan konsistensi dalam analisis.
2. Cleaning: Menghapus tanda petik satu (') dan petik dua (") dari input untuk mengurangi kompleksitas karakter spesial yang bisa menyebabkan kesalahan parsing.
3. Tokenization: Memecah teks menjadi token-token yang lebih kecil yang dapat dianalisis secara individual.
4. Vectorization: Mengubah token-token ini menjadi representasi numerik yang dapat digunakan sebagai input untuk model pembelajaran mendalam.
Arsitektur Model Arsitektur model yang digunakan terdiri dari beberapa lapisan, yaitu:
1. Input Layer: Menerima input teks dalam bentuk string.
2. Text Vectorization Layer: Mengubah teks menjadi token numerik dengan TextVectorization layer dari Keras.
3. Embedding Layer: Mengubah token numerik menjadi vektor dimensi yang lebih tinggi untuk menangkap makna kontekstual dari token.
4. Convolutional Layer: Menggunakan lapisan Conv1D untuk menangkap fitur spasial dari teks, membantu dalam mendeteksi pola-pola umum dalam serangan XSS.
5. Global Max Pooling Layer: Mengambil nilai maksimum dari fitur yang dideteksi untuk setiap filter, mengurangi dimensi data dan fokus pada fitur yang paling menonjol.
6. Dense Layer: Menggunakan lapisan fully connected untuk menggabungkan fitur-fitur yang diekstraksi dari lapisan sebelumnya.
7. Output Layer: Menggunakan lapisan Dense dengan aktivasi sigmoid untuk menghasilkan probabilitas antara 0 (aman) dan 1 (berbahaya).
Metrik Evaluasi Metrik yang digunakan untuk mengevaluasi performa model adalah binary crossentropy dan accuracy.
1. Binary Crossentropy: Mengukur kerugian (loss) antara label sebenarnya dan prediksi model. Rumusnya adalah:
$[ \text{Binary Crossentropy} = -\frac{1}{N} \Sigma_{i=1}^N [y_i \log(p_i) + (1-y_i) \log(1-p_i)] $] di mana $( y_i )$ adalah label sebenarnya, $( p_i )$ adalah probabilitas prediksi, dan $( N )$ adalah jumlah sampel.
2. Accuracy: Mengukur persentase prediksi yang benar dari total prediksi yang dibuat. Rumusnya adalah:
$[ \text{Accuracy} = \frac{\text{Number of Correct Predictions}}{\text{Total Number of Predictions}} ]$ Metrik ini memberikan gambaran umum tentang seberapa baik model dalam mengklasifikasikan input sebagai aman atau berbahaya.
Performa Model Model yang dibuat mencapai performa yang baik pada data uji dengan hasil sebagai berikut:
- Loss: 0.0027
- Accuracy: 0.9988
- Validation Loss: 0.0527
- Validation Accuracy: 0.9897
Model ini menunjukkan performa yang sangat baik pada data training dengan loss yang sangat rendah dan akurasi yang tinggi. Pada data validasi, model juga menunjukkan hasil yang cukup baik dengan sedikit peningkatan loss, tetapi akurasi tetap sangat tinggi, menunjukkan kemampuan model dalam mendeteksi XSS pada data yang tidak dilihat sebelumnya.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published