File size: 6,389 Bytes
bec59b0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# Abdal XSS AI Engine
## 🎤 ترجمه اطلاعات نرم افزار
- [English](README.md)
- [فارسی](README.fa.md)
<p align="center"><img src="scr.jpg?raw=true"></p>
## 💎 هدف اصلی
مدل هوش مصنوعی Abdal XSS AI Engine با هدف ارائه یک راهکار پیشرفته و رایگان برای مقابله با حملات XSS در ایران توسعه داده شده است. با توجه به نبود ابزارهای مناسب سایبری داخلی، این مدل به عنوان یک نیاز ضروری برای افزایش امنیت در فضای سایبری ایران طراحی شده تا از حملات XSS جلوگیری کند و کاربران ایرانی بتوانند از حفاظت بهتری برخوردار شوند.
## 🛠️ پیش نیاز برای برنامه نویسان
- **Python 3.7 یا بالاتر**
- **Flask** (برای ساخت RESTful API)
- **TensorFlow** (مدلهای یادگیری عمیق)
- **Scikit-learn** (برای پیشپردازش دادههای متنی و بردار سازی TF-IDF)
- **Pandas** (برای مدیریت دادهها در مقیاس بزرگ)
- **درک عمیق از امنیت وب و حملات XSS**
- **Git** (کنترل نسخه و مدیریت مخازن)
### 🔥 پیشنیازها
- **Python 3.7 یا بالاتر**
- **Flask**
- **TensorFlow**
- **Scikit-learn**
- **Pandas**
- **Pickle**
## ✨ قابلیت ها
- قابلیت پردازش صدها هزار الگوی XSS و شناسایی حملات جدید.
- استفاده از مدل یادگیری عمیق با چند لایه Dense و Dropout.
- آموزش مدل با استفاده از مجموعه داده ترکیبی از فایلهای CSV.
- استفاده از تکنیک TF-IDF برای استخراج ویژگیهای متنی از حملات XSS.
- قابلیت افزایش دقت مدل با دادههای جدید و بهروز رسانی مداوم.
- پشتیبانی از بهینهسازی مدل با استفاده از روش Adam و معیار دقت (accuracy).
- ذخیره مدل نهایی و وکتورایزر برای استفاده در آینده و استقرار در محیطهای مختلف.
## 📝️ چگونه کار می کند ؟
با استفاده از کد زیر میتوانید از مدل به صورت یک API برای شناسایی حملات XSS استفاده کنید
```python
from flask import Flask, request, jsonify
import tensorflow as tf
import pickle
import numpy as np
app = Flask(__name__)
# Load the model and vectorizer
model = tf.keras.models.load_model('Abdal_XSS_AI_Engine.h5')
with open('vectorizer.pkl', 'rb') as f:
vectorizer = pickle.load(f)
@app.route('/predict', methods=['POST'])
def predict():
data = request.json
sentences = data['sentences']
# Preprocess the input data using the vectorizer
X_new = vectorizer.transform(sentences).toarray()
# Make predictions
predictions = (model.predict(X_new) > 0.5).astype(int)
# Prepare and return the response
response = {
'predictions': ['XSS Detected' if pred == 1 else 'No XSS Detected' for pred in predictions.flatten()]
}
return jsonify(response)
if __name__ == '__main__':
app.run(debug=True)
```
علاوه بر API، میتوانید از مدل برای خواندن دادهها از یک فایل متنی و شناسایی حملات استفاده کنید. کد زیر نمونهای از این استفاده است:
```python
import os
import tensorflow as tf
import pickle
# Disable oneDNN custom operations
os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'
# Set TensorFlow logging level to 'ERROR' to suppress the info and warning messages
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
# Check if model and vectorizer files exist
model_path = 'Abdal_XSS_AI_Engine.keras'
vectorizer_path = 'vectorizer.pkl'
if not os.path.exists(model_path):
raise FileNotFoundError(f"Model file not found: {model_path}")
if not os.path.exists(vectorizer_path):
raise FileNotFoundError(f"Vectorizer file not found: {vectorizer_path}")
# Load the model from the Keras format
model_name = "Abdal XSS AI Engine"
model = tf.keras.models.load_model(model_path)
# Load the vectorizer
with open(vectorizer_path, 'rb') as f:
vectorizer = pickle.load(f)
# Read new data (sentences) from a file (e.g., 'attack-xss-payload.txt')
input_file = 'attack-xss-payload.txt'
if not os.path.exists(input_file):
raise FileNotFoundError(f"Input file not found: {input_file}")
with open(input_file, 'r', encoding='utf-8') as file:
new_sentences = [line.strip() for line in file if line.strip()] # Reading each line from file
# Check if any sentence exists for prediction
if not new_sentences:
raise ValueError("No data available for prediction.")
# Preprocess the new data using the loaded TF-IDF vectorizer
X_new = vectorizer.transform(new_sentences).toarray()
# Predict using the loaded model
predictions = (model.predict(X_new) > 0.5).astype(int)
# Print predictions
for i, sentence in enumerate(new_sentences):
print(f"Sentence: {sentence}")
print(f"Prediction: {'XSS Detected' if predictions[i] == 1 else 'No XSS Detected'}\n")
```
### نحوهی بارگذاری مدل برای TensorFlow
برای استفاده از این مدل در پروژهی TensorFlow، کافی است کد زیر را اجرا کنید:
```python
import tensorflow as tf
# Load the saved model
model = tf.keras.models.load_model('Abdal_XSS_AI_Engine')
print("✅ Model loaded successfully!")
```
## ❤️ کمک به پروژه
https://alphajet.ir/abdal-donation
## 🤵 برنامه نویس
دست ساز با عشق توسط ابراهیم شفیعی (ابراشا)
E-Mail = [email protected]
Telegram: https://t.me/ProfShafiei
## ☠️ گزارش خطا
اگر با مشکلی در پیکربندی مواجه هستید یا چیزی آنطور که انتظار دارید کار نمیکند، لطفا از [email protected] استفاده کنید.طرح مشکلات بر روی GitLab یا Github نیز پذیرفته میشوند.
|