Files
Siro/SECURITY_AUDIT_CHECKLIST_AR.md
2026-06-16 17:47:19 +03:00

15 KiB

قائمة مراجعة أمان سيرو - التحقق من النشر

تاريخ المراجعة: 16 يونيو 2026
نطاق القائمة: جميع أنظمة سيرو
الغرض: التحقق من تطبيق جميع إصلاحات الأمان


الجزء 1: إصلاحات الأمان الحرجة (يجب أن تكتمل قبل النشر)

إصلاح تشفير IV الثابت

  • تم تعديل backend/encrypt_decrypt.php لتوليد IV عشوائي
  • تم التحقق من توليد IV بـ 16 بايت عشوائية
  • يتم ضمّ IV مع النص المشفر قبل base64_encode
  • تم اختبار الفك (نفس النص الواضح ينتج نصوص مشفرة مختلفة)
  • تم إعادة تشفير جميع البيانات الموجودة في قاعدة البيانات
  • تم التحقق من أن جميع الأرقام المشفرة مختلفة الآن
  • تم تسجيل عملية الترحيل الكاملة
  • تم إجراء نسخة احتياطية قبل الترحيل

تأمين نقاط نهاية محفظة الدفع

  • تم تعطيل add.php حتى يتم الإصلاح النهائي
  • تم إضافة مصادقة JWT إلى add.php
  • تم إضافة فحص التفويض (مسؤول فقط)
  • تم إضافة تحديد السرعة (حد أقصى للمعاملات)
  • تم إضافة التحقق من المبلغ (1-10,000 فقط)
  • تم إضافة تسجيل التدقيق للمعاملات
  • تم اختبار الرفض للمستخدمين غير المصرح لهم
  • تم تعطيل addFromAdmin.php حتى يتم الإصلاح النهائي
  • تم إضافة مصادقة JWT إلى addFromAdmin.php
  • تم استبدال مفتاح API الثابت بـ JWT

نشر نقاط نهاية HTTPS آمنة فقط

  • تم استبدال نقاط نهاية HTTP بـ HTTPS في functions.php
  • تم إضافة تثبيت الشهادة (Certificate Pinning)
  • تم اختبار الاتصال عبر HTTPS
  • تم التحقق من أن اتصالات HTTP مرفوضة
  • تم تحديث تطبيقات الهاتف لاستخدام HTTPS فقط

الجزء 2: تحديثات المصادقة والمصادقة

تطبيق المصادقة متعددة العوامل (MFA)

  • تم إضافة التحقق من بصمة الجهاز (الحالي)
  • تم إضافة التحقق من OTP عبر SMS
  • تم إضافة رموز الخادم
  • تم تكوين حد أدنى من عاملين للمصادقة
  • تم اختبار مسار تسجيل دخول MFA كاملاً
  • تم اختبار فشل المصادقة بعامل واحد فقط
  • تم إنشاء سجلات MFA للتدقيق

إصلاح توليد كلمات المرور

  • تم تغيير توليد كلمات المرور من البريد الإلكتروني إلى عشوائية
  • تم التحقق من توليد كلمات مرور عشوائية قوية (32 حرف+)
  • تم إضافة إرسال كلمات المرور عبر SMS/البريد الآمن
  • تم فرض تغيير كلمة المرور عند أول تسجيل دخول
  • تم اختبار تسجيل دخول أول مرة
  • تم إنشاء سياسة كلمات مرور قوية (14+ حرف، أحرف كبيرة/صغيرة/أرقام/رموز)

تأمين رموز JWT

  • تم التحقق من أن جميع رموز JWT لها انتهاء صلاحية
  • تم تعيين فترة انتهاء الصلاحية إلى ساعة واحدة (توازن الأمان)
  • تم تطبيق رموز التحديث (refresh tokens) مع انتهاء صلاحية لأطول مدة
  • تم التحقق من توقيع JWT على الخادم
  • تم اختبار رفض الرموز المنتهية الصلاحية
  • تم اختبار رفض الرموز المعدلة

الجزء 3: تأمين قاعدة البيانات

اختبار SQL Injection

  • تم تدقيق جميع استعلامات SQL في functions.php
  • تم تدقيق جميع استعلامات SQL في ملفات auth/
  • تم تدقيق جميع استعلامات SQL في ملفات ride/
  • تم استبدال جميع الاستعلامات بالاستعدادات (Prepared Statements)
  • تم اختبار UNION injection - النتيجة: فشل الهجوم ✓
  • تم اختبار Boolean injection - النتيجة: فشل الهجوم ✓
  • تم اختبار Time-based injection - النتيجة: لا يوجد تأخير ✓
  • تم اختبار Error-based injection - النتيجة: بدون أخطاء قاعدة بيانات ✓

تحديد السرعة على قاعدة البيانات

  • تم تطبيق تحديد السرعة على استعلامات البحث
  • تم تطبيق تحديد السرعة على استعلامات التحديث
  • تم التحقق من أن الاستعلامات المفرطة مرفوضة
  • تم إنشاء سجلات محاولات تجاوز تحديد السرعة

نسخ احتياطي وإعادة كارثة

  • تم إعداد النسخ الاحتياطية اليومية
  • تم اختبار استعادة من نسخة احتياطية
  • تم التحقق من سرية النسخ الاحتياطية (تشفيرها)
  • تم إعداد خطة استعادة الكارثة
  • تم توثيق نقاط استعادة RTO/RPO

الجزء 4: أمان التطبيقات المحمولة

تقليل الأذونات (Android)

  • تم تقليل ACCESS_BACKGROUND_LOCATION إلى ACCESS_FINE_LOCATION فقط
  • تم إزالة WRITE_EXTERNAL_STORAGE إذا لم تكن مطلوبة
  • تم إزالة SYSTEM_ALERT_WINDOW إذا لم تكن مطلوبة
  • تم التحقق من طلب الأذونات في وقت التشغيل فقط
  • تم إضافة تبريرات المستخدم لكل أذن

تحديثات المكتبات

  • تم تحديث http من 1.2.2 إلى أحدث إصدار (2.0+)
  • تم تحديث firebase_core إلى آخر إصدار مستقر
  • تم تحديث encrypt إلى آخر إصدار
  • تم تحديث webview_flutter إلى آخر إصدار
  • تم فحص جميع المكتبات الأخرى للثغرات (pub.dev)
  • تم اختبار التطبيق بعد التحديثات

تثبيت الشهادة في تطبيقات Flutter

  • تم الحصول على شهادة الخادم الصحيحة
  • تم حساب hash SHA-256 للشهادة
  • تم تطبيق Certificate Pinning في الكود
  • تم اختبار الاتصال - النجاح ✓
  • تم اختبار شهادة وهمية - الفشل ✓

إزالة رموز التصحيح

  • تم إزالة print() و debugPrint() من رمز الإنتاج
  • تم التحقق من عدم وجود debugMode = true
  • تم إزالة رموز التطوير/الاختبار المؤقتة
  • تم إزالة معلومات الخادم الحساسة من الثوابت

الجزء 5: الأمان في التطبيق الويب

رؤوس الأمان

  • تم تطبيق Strict-Transport-Security (HSTS)
  • تم تطبيق X-Frame-Options: DENY
  • تم تطبيق X-Content-Type-Options: nosniff
  • تم تطبيق Content-Security-Policy
  • تم تطبيق X-XSS-Protection: 1; mode=block
  • تم تطبيق Referrer-Policy: strict-origin-when-cross-origin

حماية CSRF

  • تم تطبيق رموز CSRF على جميع نماذج POST
  • تم التحقق من رموز CSRF على جميع نقاط النهاية
  • تم اختبار هجوم CSRF - النتيجة: فشل الهجوم ✓

معالجة الأخطاء الآمنة

  • تم التحقق من عدم إظهار تتبع المكدس في الإنتاج
  • تم عدم الكشف عن أسماء الجداول/الأعمدة في الأخطاء
  • تم عدم الكشف عن الإصدارات/المكتبات المستخدمة
  • تم إنشاء صفحات خطأ عامة (404, 500, etc.)

الجزء 6: إدارة الأسرار

متغيرات البيئة

  • تم إنشاء ملف .env آمن
  • تم إضافة .env إلى .gitignore
  • تم التحقق من عدم اختيار .env في المستودع
  • تم استخدام load_env.php بشكل صحيح
  • تم تشفير حساسية متغيرات البيئة

مفاتيح التشفير

  • تم تخزين مفاتيح التشفير في .env أو نظام إدارة الأسرار
  • تم عدم وضع مفاتيح في الرمز المصدري
  • تم تدوير مفاتيح التشفير (تحديثها بانتظام)
  • تم إنشاء نسخ احتياطية آمنة من المفاتيح

مفاتيح API

  • تم تطبيق Scopes على مفاتيح API (أذونات محدودة)
  • تم تحديد عمر مفاتيح API
  • تم إضافة تدوير مفاتيح API
  • تم حذف المفاتيح القديمة غير المستخدمة
  • تم تسجيل مفاتيح API المستخدمة

الجزء 7: المراقبة والتسجيل

تسجيل التدقيق

  • تم تسجيل جميع محاولات تسجيل الدخول
  • تم تسجيل جميع تغييرات المحفظة
  • تم تسجيل جميع محاولات الوصول غير المصرح
  • تم تسجيل جميع تعديلات الحساب
  • تم حماية سجلات التدقيق من التلاعب

المراقبة والإنذارات

  • تم إعداد تنبيهات لمحاولات تسجيل دخول متعددة
  • تم إعداد تنبيهات لمعاملات مريبة
  • تم إعداد تنبيهات لرفع أخطاء SQL
  • تم إعداد تنبيهات لانتهاكات تحديد السرعة
  • تم إنشاء لوحة معلومات للمراقبة

الجزء 8: الامتثال والتوثيق

سياسات الخصوصية

  • تم مراجعة سياسة الخصوصية الحالية
  • تم تحديثها لتعكس ممارسات الأمان الجديدة
  • تم إضافة معلومات الاحتفاظ بالبيانات
  • تم إضافة حقوق المستخدم (GDPR/CCPA)
  • تم إضافة معلومات الاتصال (DPO)

شروط الخدمة

  • تم تحديث شروط الخدمة
  • تم إضافة شرط أمان المحفظة
  • تم إضافة مسؤولية المستخدم عن كلمات المرور
  • تم إضافة إخلاء المسؤولية عن MFA

التوثيق

  • تم توثيق جميع إصلاحات الأمان
  • تم توثيق إجراءات التشغيل (Runbooks)
  • تم توثيق خطة الاستجابة على الحوادث
  • تم توثيق سياسة الكشف عن الثغرات

الجزء 9: اختبار نهائي شامل

اختبار الأمان قبل النشر

  • تم إجراء مسح ثابت بـ Semgrep على جميع الملفات
  • تم إجراء فحص ديناميكي بـ Burp Suite
  • تم اختبار OWASP Top 10 (تعطل جميع الاختبارات)
  • تم اختبار الأداء (بدون اختناقات أمنية جديدة)
  • تم اختبار الاستعادة من الفشل

اختبار الانحدار

  • تم اختبار جميع ميزات تسجيل الدخول
  • تم اختبار جميع ميزات المحفظة
  • تم اختبار جميع ميزات الركوب
  • تم اختبار جميع واجهات برمجية API
  • تم اختبار تطبيقات الهاتف على أجهزة متعددة

اختبار الأداء

  • تم قياس وقت استجابة API (هدف: <100 مللي ثانية)
  • تم قياس الحمل على المحفظة (هدف: 1000+ معاملة/ثانية)
  • تم قياس استهلاك الذاكرة (بدون تسرب)
  • تم اختبار مع 10,000+ مستخدم متزامن

الجزء 10: خطة ما بعد النشر

المرحلة 1: الساعات الأولى

  • تم مراقبة السجلات في الوقت الفعلي
  • تم مراقبة الأخطاء في الوقت الفعلي
  • تم مراقبة الأداء في الوقت الفعلي
  • تم تعيين فريق للتعامل مع الحوادث
  • تم التحضير للعودة إلى الإصدار السابق إذا لزم الأمر

المرحلة 2: اليوم الأول

  • تم التحقق من عدم وجود أخطاء أمنية في السجلات
  • تم التحقق من عدم وجود انتهاكات محاولة
  • تم التحقق من الأداء مقبولة
  • تم تعطيل النسخة السابقة إذا كانت تشغل الإنتاج
  • تم إنشاء تقرير ما بعد النشر

المرحلة 3: الأسبوع الأول

  • تم مراجعة جميع السجلات
  • تم تحليل أي مشاكل حدثت
  • تم إنشاء خطة لمعالجة المشاكل
  • تم التحقق من الامتثال التنظيمي
  • تم إصدار بيان الأمان للمستخدمين (اختياري)

ملخص حالة الإصلاح

يتطلب قبل النشر (حرج - يجب أن تكون 100%):

  • الجزء 1: ✓ (إصلاحات حرجة)
  • الجزء 2: ✓ (مصادقة)
  • الجزء 3: ✓ (قاعدة البيانات)

مطلوب قبل النشر (عالي - يجب أن يكون 90%+):

  • الجزء 4: ✓ (الهاتف المحمول)
  • الجزء 5: ✓ (الويب)
  • الجزء 6: ✓ (الأسرار)

قبل إعلان الإصدار (متوسط - يجب أن يكون 80%+):

  • الجزء 7: ✓ (المراقبة)
  • الجزء 8: ✓ (الامتثال)
  • الجزء 9: ✓ (الاختبار)
  • الجزء 10: ✓ (ما بعد النشر)

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

معد البقائمة: ________________ التاريخ: __________

راجع من قِبل: ________________ التاريخ: __________

موافقة الأمان: ________________ التاريخ: __________

موافقة المشروع: ________________ التاريخ: __________


ملحوظة: يجب أكمال جميع المربعات المعلمة قبل نشر أي تغييرات للإنتاج.