أساسيات الأمن وOWASP

OWASP Top 10 2025: A06-A10 وLLM Top 10

5 دقيقة للقراءة

إكمال تغطية OWASP بالثغرات الخمس المتبقية للويب بالإضافة إلى مخاطر LLM المحددة التي يتم اختبارها بشكل متزايد في أدوار أمان الذكاء الاصطناعي.

A06:2025 - التصميم غير الآمن

الترتيب: #6 (كان #4 في 2021)

عيوب في مرحلة التصميم لا يمكن إصلاحها بالتنفيذ المثالي.

عيوب التصميم مقابل أخطاء التنفيذ

الفئة مثال الإصلاح
التصميم غير الآمن لا تحديد معدل مُصمم إعادة التصميم مع تحديد المعدل
خطأ التنفيذ تجاوز محدد المعدل إصلاح الكود

سيناريو المقابلة

س: "صمم تدفق إعادة تعيين كلمة المرور. ما الاعتبارات الأمنية المهمة؟"

إجابة قوية:

  • توليد الرمز: عشوائي تشفيرياً، 32+ بايت
  • انتهاء صلاحية الرمز: قصير العمر (15-60 دقيقة)
  • استخدام واحد: إبطال بعد الاستخدام
  • تحديد المعدل: منع التعداد
  • لا معلومات مستخدم في URL: الرمز فقط
  • التسليم الآمن: البريد الإلكتروني، ليس SMS
  • قفل الحساب: بعد N محاولات فاشلة

A07:2025 - فشل المصادقة والتعريف

الترتيب: #7 (بدون تغيير)

نقاط ضعف في آليات المصادقة وإدارة الجلسات.

حالات الفشل الشائعة

الفشل المخاطر التخفيف
كلمات مرور ضعيفة حشو بيانات الاعتماد سياسات كلمات المرور، فحوصات الاختراق
MFA مفقود استيلاء على الحساب طلب MFA للإجراءات الحساسة
تثبيت الجلسة اختطاف الجلسة تجديد الجلسة عند المصادقة
كشف بيانات الاعتماد اختراق جماعي التخزين الآمن، التدوير

مراجعة كود المقابلة

# اعثر على الثغرات
def login(username, password):
    user = db.query(f"SELECT * FROM users WHERE username='{username}'")
    if user and user.password == password:  # المشكلة 1: حقن SQL
        session['user_id'] = user.id        # المشكلة 2: مقارنة نص واضح
        return redirect('/dashboard')       # المشكلة 3: لا تجديد جلسة
    return "Invalid credentials"            # المشكلة 4: الخطأ العام جيد

A08:2025 - فشل سلامة البرمجيات والبيانات

الترتيب: #8

فشل في التحقق من سلامة الكود أو البيانات أو التكوينات.

سيناريوهات الهجوم

السيناريو الوصف الدفاع
تحديثات غير موقعة تحديث خبيث مدفوع توقيع الكود، التحقق
إلغاء التسلسل غير الآمن RCE عبر حقن الكائن تجنب إلغاء تسلسل البيانات غير الموثوقة
التلاعب بـ CI/CD اختراق خط البناء التزامات موقعة، أدوات غير قابلة للتغيير
# إلغاء تسلسل معرض للخطر
import pickle

def process_data(serialized):
    return pickle.loads(serialized)  # RCE إذا تحكم المهاجم بالمدخل

# بديل أكثر أماناً
import json

def process_data(serialized):
    return json.loads(serialized)  # بيانات فقط، لا تنفيذ كود

A09:2025 - فشل التسجيل والتنبيه الأمني

الترتيب: #9 (موسع من "التسجيل غير الكافي")

السجلات بدون تنبيه وإجراء توفر قيمة محدودة.

ما يجب تسجيله

الحدث الأولوية الاحتفاظ
محاولات تسجيل الدخول (نجاح/فشل) عالية 90 يوم
فشل التحكم في الوصول عالية 90 يوم
فشل التحقق من المدخلات متوسطة 30 يوم
أخطاء النظام متوسطة 30 يوم

سؤال المقابلة

س: "ماذا ستسجل لـ API معاملات مالية؟"

الإجابة:

{
  "timestamp": "2026-01-05T10:30:00Z",
  "event_type": "TRANSACTION",
  "user_id": "hashed_user_123",
  "action": "TRANSFER",
  "amount": 1000.00,
  "source_ip": "192.168.1.1",
  "user_agent": "Mozilla/5.0...",
  "request_id": "uuid-xxx",
  "result": "SUCCESS",
  "latency_ms": 45
}

المفتاح: سجل بما يكفي للتحقيق لكن لا تسجل أبداً البيانات الحساسة (كلمات المرور، أرقام البطاقات الكاملة، PII).

A10:2025 - سوء التعامل مع الحالات الاستثنائية

الترتيب: #10 (جديد)

عندما لا تتعامل التطبيقات بشكل صحيح مع المواقف غير المتوقعة.

المشاكل الشائعة

المشكلة مثال التأثير
استثناءات غير معالجة تتبع المكدس في الاستجابة كشف المعلومات
استنفاد الموارد لا مهلة على العمليات DoS
حالات السباق ثغرات TOCTOU تصعيد الصلاحيات
تصاميم الفشل المفتوح السماح عند الخطأ تجاوز الأمان
# فشل مفتوح (خطأ)
def check_authorization(user, resource):
    try:
        return authorization_service.check(user, resource)
    except Exception:
        return True  # خطر: فشل مفتوح

# فشل مغلق (صحيح)
def check_authorization(user, resource):
    try:
        return authorization_service.check(user, resource)
    except Exception as e:
        log.error(f"AuthZ check failed: {e}")
        return False  # الفشل المغلق آمن

OWASP LLM Top 10 2025

لأدوار أمان الذكاء الاصطناعي، اعرف الثغرات الخاصة بـ LLM:

الترتيب الثغرة الوصف
LLM01 حقن الموجه موجهات خبيثة تتلاعب بسلوك LLM
LLM02 كشف المعلومات الحساسة LLM يكشف بيانات التدريب أو الأسرار
LLM03 سلسلة التوريد نماذج أو إضافات أو بيانات تدريب مخترقة
LLM05 التعامل غير السليم مع المخرجات XSS/حقن عبر مخرجات LLM
LLM06 الصلاحيات المفرطة LLM بأذونات كثيرة جداً
LLM07 تسريب موجه النظام كشف تعليمات النظام
LLM08 نقاط ضعف المتجهات والتضمين هجمات تسميم RAG

سؤال المقابلة (دور أمان AI)

س: "كيف ستمنع هجمات حقن الموجه؟"

الإجابة:

  1. تنظيف وتصفية المدخلات
  2. ترميز المخرجات قبل العرض
  3. فصل الصلاحيات (LLM لا يمكنه تنفيذ الكود مباشرة)
  4. فصل الموجه/الإكمال
  5. تحديد المعدل والمراقبة
  6. الإنسان في الحلقة للإجراءات الحساسة

لأدوار أمان AI: LLM Top 10 الآن مادة مقابلة قياسية. توقع أسئلة مفصلة حول حقن الموجه وأمان RAG.

في الدرس التالي، سنغطي أساسيات التشفير لمقابلات الأمن. :::

اختبار

الوحدة 2: أساسيات الأمن وOWASP

خذ الاختبار