/AISECLAB-cyber-inspector

[Flask] - ML-Based WAF and Query Analyzer

Primary LanguageJupyter Notebook

🛡️ ML-Based WAF and Query Analyzer



Bu çalışma, aiseclab.org bünyesinde cyber-inspector ekibi projesi olarak geliştirilmiştir.

🛡️ Amaç


  • 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.

🛡️ Ekip Üyeleri


  1. Alper KARACA
  2. Oudoum Ali HOUMED
  3. Zeynep GÜNEY
  4. Oğuz Kortun

🛡️ Gerekli Kütüphaneler

  • 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

🛡️ Kurulum


  • 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

🛡️ Modeller


  • 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