1

مقدمة في أمن تطبيقات الويب

أهمية أمن تطبيقات الويب

تطبيقات الويب أصبحت الهدف الرئيسي للمهاجمين بسبب انتشارها الواسع واحتوائها على بيانات حساسة.

إحصائيات هامة:

  • 70% من الثغرات الأمنية توجد في تطبيقات الويب
  • 94% من التطبيقات تحتوي على ثغرات من نوع OWASP Top 10
  • متوسط تكلفة خرق بيانات التطبيقات: 4.2 مليون دولار
  • SQL Injection وXSS تمثل 50% من الهجمات على الويب

أهداف مهاجمي تطبيقات الويب

  • سرقة البيانات الحساسة والمعلومات الشخصية
  • الوصول غير المصرح به إلى الحسابات والأنظمة
  • تعديل أو تدمير البيانات المهمة
  • استخدام الخوادم في هجمات أخرى
  • ابتزاز المؤسسات والأفراد

OWASP Top 10 2021

قائمة أهم 10 ثغرات أمنية في تطبيقات الويب حسب مشروع OWASP:

  1. Broken Access Control
  2. Cryptographic Failures
  3. Injection
  4. Insecure Design
  5. Security Misconfiguration
  6. Vulnerable and Outdated Components
  7. Identification and Authentication Failures
  8. Software and Data Integrity Failures
  9. Security Logging and Monitoring Failures
  10. Server-Side Request Forgery (SSRF)
2

ثغرات الحقن - SQL Injection

ما هي SQL Injection؟

ثغرة تسمح للمهاجم بحقن أوامر SQL خبيثة في استعلامات قاعدة البيانات عن طريق مدخلات المستخدم غير المفلترة.

مثال عملي على SQL Injection:

# في نموذج تسجيل الدخول:
اسم المستخدم: admin' OR '1'='1
كلمة المرور: أي قيمة

# يصبح الاستعلام:
SELECT * FROM users WHERE username = 'admin' OR '1'='1' AND password = '...'

هذا يتجاوز التحقق من كلمة المرور ويعيد جميع المستخدمين!

التأثير المحتمل

  • سرقة البيانات: استخراج معلومات حساسة من قاعدة البيانات
  • تعديل البيانات: تغيير أو حذف السجلات
  • تصعيد الصلاحيات: الوصول إلى وظائف إدارية
  • تنفيذ أوامر: في بعض الحالات، تنفيذ أوامر نظام

طرق الوقاية

  • Prepared Statements: استخدام استعلامات معدّة مسبقاً
  • Input Validation: التحقق من صحة المدخلات
  • Parameterized Queries: استخدام المعلمات بدلاً من concatenation
  • ORM: استخدام Object-Relational Mapping
  • Least Privilege: تقليل صلاحيات حساب قاعدة البيانات
3

ثغرات XSS - Cross-Site Scripting

فهم ثغرات XSS

XSS تسمح للمهاجمين بحقن شيفرة JavaScript خبيثة في صفحات الويب التي يشاهدها مستخدمون آخرون.

Stored XSS (المخزن)

يتم تخزين الشيفرة الخبيثة في الخادم وتظهر لجميع المستخدمين

# مثال في حقل التعليقات:
<script>alert('XSS')</script>

Reflected XSS (المنعكس)

تظهر الشيفرة الخبيثة فوراً في الاستجابة دون التخزين

# مثال في شريط البحث:
http://example.com/search?q=<script>alert(1)</script>

استراتيجيات الوقاية

  • Output Encoding: ترميز البيانات قبل عرضها
  • Content Security Policy (CSP): سياسات أمان المحتوى
  • Input Validation: التحقق من المدخلات وتنظيفها
  • HTTPOnly Cookies: منع الوصول إلى الكوكيز عبر JavaScript
  • XSS Filters: استخدام فلاتر المتصفح والخدمة
4

ثغرات التحكم في الوصول والمصادقة

Broken Access Control

تحدث عندما لا يتم تطبيق قيود مناسبة على ما يمكن للمستخدمين القيام به بعد تسجيل الدخول.

أمثلة شائعة:

  • تعديل معرف المستخدم في URL للوصول إلى بيانات مستخدم آخر
  • الوصول إلى واجهات إدارية بدون صلاحيات مناسبة
  • تجاوز التحقق من الصلاحيات على مستوى الواجهة فقط
  • عدم تقييد معدل الطلبات (Rate Limiting)

إخفاقات المصادقة

مشاكل في أنظمة تسجيل الدخول والتحقق من الهوية.

نقاط الضعف الشائعة:

  • هجمات القوة الغاشمة (Brute Force) المسموحة
  • كلمات مرور ضعيفة أو افتراضية
  • نقل بيانات الاعتماد عبر قنوات غير مشفرة
  • جلسات لا تنتهي بشكل صحيح
  • عدم تنفيذ المصادقة متعددة العوامل

أفضل الممارسات

  • تنفيذ مبدأ "الصلاحيات الدنيا" (Least Privilege)
  • التحقق من الصلاحيات على مستوى الخادم لكل طلب
  • استخدام جلسات آمنة مع انتهاء الصلاحية المناسبة
  • تنفيذ المصادقة متعددة العوامل (MFA)
  • تطبيق حدود معدل الطلبات (Rate Limiting)
5

مقدمة في التشفير وأساسياته

ما هو التشفير ولماذا نحتاجه؟

التشفير هو عملية تحويل البيانات القابلة للقراءة (plaintext) إلى شكل غير مقروء (ciphertext) لحمايتها من الوصول غير المصرح به.

أهداف التشفير:

  • السرية (Confidentiality): منع الوصول غير المصرح للبيانات
  • السلامة (Integrity): ضمان عدم تعديل البيانات
  • المصادقة (Authentication): التحقق من هوية المرسل
  • عدم الإنكار (Non-repudiation): منع إنكار الإجراءات

نبذة تاريخية

  • التشفير الكلاسيكي: شيفرة قيصر، آلة Enigma
  • التشفير الحديث: DES، AES، RSA
  • التشفير المعاصر: تشفير كمي، تشفير متجانس

مصطلحات أساسية

  • المفتاح (Key): قيمة سرية تستخدم في التشفير وفك التشفير
  • الخوارزمية (Algorithm): طريقة رياضية للتشفير
  • النص المشفر (Ciphertext): البيانات بعد التشفير
  • النص الأصلي (Plaintext): البيانات قبل التشفير
6

أنواع التشفير: المتماثل وغير المتماثل

مقارنة بين نوعي التشفير

التشفير المتماثل التشفير غير المتماثل
نفس المفتاح للتشفير وفك التشفير زوج مفاتيح (عام وخاص)
سريع وكفؤ بطيء compared للمتماثل
مناسب للبيانات الكبيرة مناسب لنقل المفاتيح والتوقيعات
مشكلة توزيع المفاتيح حل مشكلة توزيع المفاتيح
أمثلة: AES، DES، 3DES أمثلة: RSA، ECC، Diffie-Hellman

التكامل بين النوعين

في التطبيقات العملية، غالباً ما يتم الجمع بين النوعين:

  1. يستخدم التشفير غير المتماثل لنقل مفتاح التشفير المتماثل
  2. يستخدم التشفير المتماثل لتشفير البيانات نفسها
  3. مثال: بروتوكول TLS في HTTPS

أمثلة عملية

  • HTTPS: TLS يستخدم كلا النوعين
  • PGP/GPG: تشفير البريد الإلكتروني
  • SSH: الوصول الآمن للخوادم
  • VPN: الشبكات الخاصة الافتراضية
7

إدارة المفاتيح والتوقيعات الرقمية

إدارة المفاتيح - Key Management

إدارة المفاتيح هي عملية إنشاء، تخزين، توزيع، واستبدال المفاتيح المشفرة بشكل آمن.

مبادئ إدارة المفاتيح:

  • توليد آمن: استخدام مولدات أرقام عشوائية آمنة
  • تخزين آمن: حماية المفاتيح من الوصول غير المصرح
  • توزيع آمن: نقل المفاتيح بطريقة مشفرة
  • استبدال دوري: تغيير المفاتيح بانتظام
  • إتلاف آمن: حذف المفاتيح بشكل نهائي

التوقيعات الرقمية

التوقيع الرقمي هو عملية رياضية تثبت صحة وسلامة الرسالة أو المستند الرقمي.

كيفية عمل التوقيع الرقمي:

  1. المرسل ينشئ hash للرسالة
  2. المرسل يشفر الـ hash باستخدام مفتاحه الخاص
  3. يرسل الرسالة والتوقيع المشفر
  4. المستقبل يفك التوقيع باستخدام المفتاح العام للمرسل
  5. المستقبل يحسب hash للرسالة ويتحقق من تطابقه
8

النشاط العملي: OWASP Juice Shop

تعليمات النشاط

الهدف: تطبيق عملي على اكتشاف واستغلال ثغرات الويب في بيئة آمنة

المدة: 90 دقيقة

المتطلبات: OWASP Juice Shop مثبت على جهاز افتراضي

المخرجات: تقرير يوثق الثغرات المكتشفة وطرق استغلالها

مقدمة عن OWASP Juice Shop

Juice Shop هو تطبيق ويب متعمد الضعف يحتوي على جميع ثغرات OWASP Top 10، مصمم للتدريب والتعلم.

# تشغيل Juice Shop باستخدام Docker:
docker run -d -p 3000:3000 bkimminich/juice-shop

خطوات النشاط

  1. تشغيل OWASP Juice Shop في بيئة معزولة
  2. استكشاف التطبيق وفهم وظائفه المختلفة
  3. اكتشاف ثغرات SQL Injection في نماذج البحث وتسجيل الدخول
  4. اختبار ثغرات XSS في حقول التعليقات والتقييمات
  5. فحص مشاكل التحكم في الوصول والصلاحيات
  6. اختبار إخفاقات المصادقة وكلمات المرور
  7. توثيق جميع الاكتشافات في تقرير منظم
  8. تقديم توصيات أمنية للإصلاح

مهام تدريبية مقترحة

SQL Injection

ابحث عن نموذج تسجيل دخول قابل للحقن

التلميح: جرب إدخالات مثل ' OR 1=1--

XSS

ابحث عن حقول إدخال تقبل JavaScript

التلميح: جرب <script>alert('XSS')</script>

Broken Authentication

ابحث عن مشاكل في نظام المصادقة

التلميح: جرب هجوم brute-force بسيط