Bu çalışma, aiseclab.org bünyesinde cyber-inspector ekibi projesi olarak geliştirilmiştir.
- Makine öğrenmesi modellerini kullarak WAF isteklerini zararlı ve zararsız olarak sınıflandırılacaktır. Kullanılan veri setine ulaşmak için bu bağlantıya tıklayabilirsiniz.
- Kullanılan kütüphaneler ve versiyon bilgileri aşağıda belirtilmiştir.
Flask==3.0.0
Flask_Login==0.6.2
Flask_SocketIO==5.3.6
flask_sqlalchemy==3.1.1
matplotlib==3.8.0
nltk==3.8.1
numpy==1.23.1
pandas==1.5.3
Pillow==9.5.0
Pillow==9.0.1
Pillow==10.0.1
scikit_learn==1.2.2
seaborn==0.13.0
SQLAlchemy==2.0.21
Werkzeug==3.0.0
wordcloud==1.9.2
- Gerekli paketleri kurduktan sonra uygulamayı kullanmaya başlayabilirsiniz.
pip install -r requirements.txt
# Ana uygulamayı çalıştırmak için
python3 main.py
# Fake api'yi çalıştırmak için
python3 api.py
- Problemi çözmek için LogisticRegression, RandomForest, DecisionTree ve XGB modelleri kullanılmıştır. Kullanılam modellere ait veriler aşağıda belirtilmiştir.
Model | Training Time | Train Accuracy | Test Accuracy | F1-Score | Precision Score | Recall Score |
---|---|---|---|---|---|---|
LogisticRegression | 9.63s | 0.9300 | 0.9296 | 0.9264 | 0.9703 | 0.8864 |
RandomForestClassifier | 300.30s | 0.9693 | 0.9684 | 0.9676 | 0.9925 | 0.9439 |
DecisionTreeClassifier | 16.59s | 0.9693 | 0.9683 | 0.9674 | 0.9928 | 0.9434 |
XGBClassifier | 7.17s | 0.9622 | 0.9618 | 0.9609 | 0.9860 | 0.9369 |