15 KiB
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: ✓ (ما بعد النشر)
التوقيع والموافقة
معد البقائمة: ________________ التاريخ: __________
راجع من قِبل: ________________ التاريخ: __________
موافقة الأمان: ________________ التاريخ: __________
موافقة المشروع: ________________ التاريخ: __________
ملحوظة: يجب أكمال جميع المربعات المعلمة قبل نشر أي تغييرات للإنتاج.