Replication Package of "Battling Phish"
<h4>This replication package contains all datasets and source code used in our study on phishing URL detection. The study investigates the effectiveness of traditional machine learning (ML), deep learning (DL), and large language model (LLM)-based methods using a consistent set of 32 URL-based...
Saved in:
| Main Author: | |
|---|---|
| Published: |
2025
|
| Subjects: | |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Summary: | <h4>This replication package contains all datasets and source code used in our study on phishing URL detection. The study investigates the effectiveness of traditional machine learning (ML), deep learning (DL), and large language model (LLM)-based methods using a consistent set of 32 URL-based features.<br><br>Directory Structure</h4><p dir="ltr">├── Datasets/</p><p dir="ltr">│ ├── Dataset-1.csv</p><p dir="ltr">│ ├── Dataset-2.csv</p><p dir="ltr">│ ├── Dataset-3.csv</p><p dir="ltr">│ ├── Dataset-4.csv</p><p dir="ltr">│ ├── Dataset-5.csv</p><p dir="ltr">│ ├── Phishing_Site_URLs_32_Features_Extracted_Data.csv</p><p dir="ltr">│ └── Legit_Phish_32_Features_Extracted_Data.csv</p><p>│</p><p dir="ltr">└── Source_Codes/</p><p dir="ltr"> ├── Feature_extraction_source_code.py</p><p dir="ltr"> ├── Feature_importance_analysis_source_code.py</p><p dir="ltr"> ├── ML/</p><p dir="ltr"> │ ├── Seven_ML_Models_trained_on_LP.py</p><p dir="ltr"> │ ├── Seven_ML_Models_trained_on_PSU.py</p><p dir="ltr"> │ ├── SoftVoting_trained_on_LP.py</p><p dir="ltr"> │ ├── SoftVoting_trained_on_PSU.py</p><p dir="ltr"> │ ├── HardVoting_trained_on_LP.py</p><p dir="ltr"> │ └── HardVoting_trained_on_PSU.py</p><p> │</p><p dir="ltr"> ├── DL/</p><p dir="ltr"> │ ├── [DLModel1]_trained_on_LP.py</p><p dir="ltr"> │ ├── [DLModel1]_trained_on_PSU.py</p><p dir="ltr"> │ └── ... (total 16 files for 8 DL algorithms)</p><p> │</p><p dir="ltr"> └── LLM/</p><p dir="ltr"> ├── BERT_Fine_Tuned_on_LP.py</p><p dir="ltr"> ├── BERT_Fine_Tuned_on_PSU.py</p><p dir="ltr"> ├── DistilBERT_Fine_Tuned_on_LP.py</p><p dir="ltr"> ├── DistilBERT_Fine_Tuned_on_PSU.py</p><p dir="ltr"> ├── PhishBERT_Evaluation.py</p><p dir="ltr"> └── URLBERT_Evaluation.py</p><h2>Datasets:</h2><ul><li><code>Dataset-1.csv</code> to <code>Dataset-5.csv</code>:<br>Used for feature importance analysis.</li><li><code>Phishing_Site_URLs_32_Features_Extracted_Data.csv</code> (PSU dataset):<br>Includes phishing and legitimate URLs with 32 extracted lexical features.</li><li><code>Legit_Phish_32_Features_Extracted_Data.csv</code> (LP dataset):<br>Another benchmark dataset with the same 32 features, used for comparative evaluation.</li></ul><p dir="ltr"></p><p dir="ltr"><b>Note</b>: PSU and LP datasets are used for both training and evaluating ML, DL, and LLM-based models.</p><h2>Source Code:</h2><ul><li><code><strong>Feature_extraction_source_code.py</strong></code><br>Extracts 32 handcrafted lexical features from raw URL data.</li><li><code><strong>Feature_importance_analysis_source_code.py</strong></code><br>Performs feature selection using seven statistical and model-based ranking methods.</li></ul><h3>Machine Learning (ML)</h3><p dir="ltr">Implements ML classifiers individually trained on LP and PSU datasets:</p><ul><li>Logistic Regression, Decision Tree, Random Forest, Extra Trees, Gradient Boosting, AdaBoost, and XGBoost.</li><li>Soft Voting and Hard Voting ensembles are also implemented.</li></ul><p dir="ltr">Scripts:</p><ul><li><code>Seven_ML_Models_trained_on_LP.py</code></li><li><code>Seven_ML_Models_trained_on_PSU.py</code></li><li><code>SoftVoting_trained_on_LP.py</code>, <code>SoftVoting_trained_on_PSU.py</code></li><li><code>HardVoting_trained_on_LP.py</code>, <code>HardVoting_trained_on_PSU.py</code></li></ul><h3>Deep Learning (DL)</h3><p dir="ltr">Implements eight deep learning architectures (each trained separately on LP and PSU):</p><blockquote><p dir="ltr">Total of 16 scripts — 2 per DL model (1 for LP, 1 for PSU).</p></blockquote><h3>Large Language Models (LLMs)</h3><ul><li><b>Fine-tuned</b>:</li><li><ul><li><code>BERT_Fine_Tuned_on_LP.py</code>, <code>BERT_Fine_Tuned_on_PSU.py</code></li><li><code>DistilBERT_Fine_Tuned_on_LP.py</code>, <code>DistilBERT_Fine_Tuned_on_PSU.py</code></li></ul></li><li><b>Pre-trained, zero-shot or direct evaluation</b>:</li><li><ul><li><code>PhishBERT_Evaluation.py</code></li><li><code>URLBERT_Evaluation.py</code></li></ul></li></ul><p></p> |
|---|