اولین مدل هوش مصنوعی ضد حملات XSS ایرانی رایگان از تیم ابدال

در این مقاله، به معرفی و بررسی Abdal XSS AI Engine، یک مدل هوش مصنوعی تخصصی برای شناسایی و جلوگیری از حملات XSS، می‌پردازیم. این مدل توسط ابراهیم شفیعی.....

انتشار: , زمان مطالعه: 6 دقیقه
اولین مدل هوش مصنوعی ضد حملات  XSS ایرانی رایگان
دسته بندی: تیم ابدال تعداد بازدید: 108

در دنیای امروز که هر روز بر حجم و پیچیدگی حملات سایبری افزوده می‌شود، امنیت وب یکی از مهم‌ترین اولویت‌های هر سازمان و توسعه‌دهنده وب است. حملات XSS (Cross-Site Scripting) از جمله حملات رایجی هستند که به مهاجم اجازه می‌دهد اسکریپت‌های مخرب را به صفحات وب تزریق کرده و اطلاعات حساس کاربران را سرقت کند. در این راستا، مدل‌های پیشرفته هوش مصنوعی و یادگیری ماشین به یکی از ابزارهای حیاتی برای مقابله با چنین حملاتی تبدیل شده‌اند.

در این مقاله، به معرفی و بررسی Abdal XSS AI Engine، یک مدل هوش مصنوعی تخصصی برای شناسایی و جلوگیری از حملات XSS، می‌پردازیم. این مدل توسط ابراهیم شفیعی (EbraSha)، مدیر تیم امنیتی ابدال، طراحی و پیاده‌سازی شده است. هدف از توسعه این مدل، ارائه یک راهکار پیشرفته و رایگان برای مقابله با حملات XSS است که با توجه به نیازهای امنیتی کاربران ایرانی طراحی شده است.

Abdal XSS AI Engine چیست؟

Abdal XSS AI Engine یک مدل یادگیری عمیق است که با استفاده از الگوریتم‌های پیشرفته قادر به شناسایی الگوهای مختلف حملات XSS می‌باشد. این مدل به‌طور مداوم به‌روزرسانی می‌شود تا بتواند در مقابل تهدیدات جدید و متنوع مقاومت کند. با استفاده از تکنیک‌های پردازش متن مانند TF-IDF (Term Frequency-Inverse Document Frequency)، این مدل ویژگی‌های حملات XSS را از متون استخراج کرده و آن‌ها را به صورت داده‌های ورودی برای مدل یادگیری عمیق آماده می‌کند.

این مدل دارای معماری چند لایه‌ای است که شامل لایه‌های Dense و Dropout است و با استفاده از بهینه‌ساز Adam آموزش دیده است. همچنین، این مدل قابلیت به‌روزرسانی و بهبود مداوم با داده‌های جدید را داراست و می‌تواند در محیط‌های مختلف برای شناسایی و جلوگیری از حملات XSS استفاده شود.

ویژگی‌های کلیدی Abdal XSS AI Engine:

  1. شناسایی الگوهای حملات XSS: این مدل قادر به شناسایی صدها هزار الگوی مختلف حملات XSS است و با داده‌های جدید به‌طور مداوم به‌روزرسانی می‌شود.
  2. استفاده از تکنیک TF-IDF: مدل از تکنیک TF-IDF برای استخراج ویژگی‌های متنی استفاده می‌کند که به بهبود دقت شناسایی کمک می‌کند.
  3. مدل یادگیری عمیق: معماری مدل شامل لایه‌های Dense و Dropout است که با استفاده از داده‌های حملات XSS آموزش داده شده‌اند.
  4. بهینه‌سازی با Adam: مدل با استفاده از الگوریتم بهینه‌سازی Adam آموزش دیده و دقت بالایی در شناسایی حملات دارد.
  5. ذخیره مدل و وکتورایزر: مدل و وکتورایزر به‌طور جداگانه ذخیره شده و می‌توان آن‌ها را در آینده برای شناسایی حملات جدید استفاده کرد.

چرایی ساخت Abdal XSS AI Engine

یکی از دلایل اصلی توسعه Abdal XSS AI Engine، نبود ابزارهای رایگان و پیشرفته برای شناسایی و جلوگیری از حملات XSS در ایران بود. حملات XSS یکی از مهم‌ترین تهدیدات امنیتی برای وبسایت‌ها هستند که می‌توانند به سرقت اطلاعات حساس کاربران منجر شوند. با توجه به افزایش تعداد و پیچیدگی این حملات، نیاز به یک مدل هوش مصنوعی با قابلیت شناسایی سریع و دقیق حملات، به شدت احساس می‌شد.

Abdal XSS AI Engine با هدف ارائه یک راهکار بومی و رایگان برای کاربران ایرانی طراحی شد تا بتواند نیازهای امنیتی در مقابله با حملات XSS را برطرف کند. این مدل می‌تواند به عنوان یک ابزار مفید برای توسعه‌دهندگان وب و متخصصان امنیتی در محیط‌های مختلف مورد استفاده قرار گیرد.

نحوه استفاده از Abdal XSS AI Engine

برای استفاده از این مدل، ابتدا باید فایل‌های مدل و وکتورایزر را از مخزن گیت‌هاب از اینجا دانلود کنید. سپس با استفاده از کد زیر می‌توانید از مدل به صورت یک API برای شناسایی حملات XSS استفاده کنید:

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 به شما امکان می‌دهد که متونی را به صورت ورودی به مدل ارسال کرده و مدل پس از پردازش، حملات XSS را شناسایی کند. ابتدا مدل و وکتورایزر بارگذاری می‌شوند و سپس با استفاده از درخواست‌های HTTP، داده‌های متنی دریافت شده و پیش‌پردازش می‌شوند. در نهایت مدل پیش‌بینی می‌کند که آیا حمله XSS در متن وجود دارد یا خیر.

استفاده از فایل متنی:

علاوه بر API، می‌توانید از مدل برای خواندن داده‌ها از یک فایل متنی و شناسایی حملات استفاده کنید. کد زیر نمونه‌ای از این استفاده است:

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")

در این کد، مدل و وکتورایزر از فایل بارگذاری می‌شوند و داده‌های جدید از یک فایل متنی خوانده شده و پردازش می‌شوند. پس از پیش‌بینی مدل، نتیجه برای هر جمله به نمایش درمی‌آید.

Abdal XSS AI Engine یک ابزار هوش مصنوعی قدرتمند برای شناسایی و جلوگیری از حملات XSS است. این مدل با استفاده از تکنیک‌های پیشرفته یادگیری ماشین و پردازش متن می‌تواند الگوهای حملات مختلف را شناسایی کرده و به کاربران و توسعه‌دهندگان وب کمک کند تا از حملات سایبری محافظت شوند. توسعه و انتشار این مدل به صورت رایگان نشان از اهمیت مقابله با تهدیدات سایبری و تأمین امنیت وب برای همه کاربران، به ویژه در ایران، دارد.

دسترسی و دانلود Abdal XSS AI Engine

برای استفاده از Abdal XSS AI Engine، می‌توانید به مخزن گیت‌هاب این پروژه به آدرس زیر مراجعه کنید:

https://github.com/ebrasha/abdal-xss-ai-engine

در این مخزن، کدهای مربوط به مدل، فایل‌های لازم برای بارگذاری و اجرای مدل، و فایل‌های راهنمای استفاده موجود هستند. برای دانلود و استفاده از این مدل، مراحل زیر را دنبال کنید:

مراحل دانلود و نصب:

کلون کردن مخزن گیت‌هاب: ابتدا مخزن پروژه را با استفاده از دستور زیر کلون کنید:

git clone https://github.com/ebrasha/abdal-xss-ai-engine.git

نصب وابستگی‌ها: پس از کلون کردن مخزن، وارد پوشه پروژه شوید و وابستگی‌های مورد نیاز را نصب کنید:

cd abdal-xss-ai-engine
pip install -r requirements.txt

دانلود مدل و وکتورایزر: فایل‌های Abdal_XSS_AI_Engine.h5  و  Abdal_XSS_AI_Engine.keras (مدل ذخیره‌شده) و vectorizer.pkl (وکتورایزر TF-IDF) در مخزن موجود است. این فایل‌ها را از مخزن گیت‌هاب دانلود کنید و در دایرکتوری اصلی پروژه قرار دهید.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)

تعداد 2 دیدگاه ثبت شده
امیر خادم می گه: زمان ثبت: 2 ماه پیش

استاد وقت بخیر
استاد یک سوال
این مدلی که ساختید باید به طور مداوم روی سروری که سایت روش بالا اومده فعال باشه یا جور دیگه‌ای هستش
میشه در این مورد یکم توضیح بدید
ممنون♥️😘

ابراهیم شفیعی در جواب امیر خادم می گه: زمان ثبت: 2 ماه پیش

سلام به امیر عزیز ، شما  می تونید  هر زمان که نیاز دارید مدل رو فراخوانی کنید ، خیر نیاز نیست همیشه اجرا باشه . بستگی به خواسته شما و نوع پروژه داره .