Mobile PWA Security Assessment

Security assessment for mobile Progressive Web Applications

حول هذه الخدمة

يختبر تقييم أمن تطبيقات الويب التقدمية (PWA) للجوّال لدينا تطبيق ويب تقدمياً بالطريقة التي يثبّته بها المستخدمون ويشغّلونه على الهاتف. فهو تطبيق ويب في المقام الأول، لذا نختبره وفق دليل OWASP الكامل لاختبار أمن الويب (WSTG)، ثم نضيف السطح الذي يستحدثه PWA بعد تثبيته على الشاشة الرئيسية وتشغيله دون اتصال: service worker يجلس بين الصفحة والشبكة، وCache Storage وIndexedDB يحتفظان بالبيانات على الجهاز، وweb app manifest يتحكّم في كيفية تثبيته وما يمكنه الوصول إليه، والأذونات الجوّالة التي يطلبها — push والموقع الجغرافي والكاميرا وغيرها. على الهاتف يعمل التطبيق في نافذة مستقلة، وغالباً على جهاز مشترك أو مفقود، لذا تزداد أهمية كلٍّ من البيانات المحفوظة على ذلك الجهاز وservice worker ذي النطاق الواسع أكثر من اللازم. نتابع كل اكتشاف حتى إثبات عملي، ونقيّم شدّته بـ CVSS إلى جانب أثره الحقيقي، ونوثّقه مع إصلاح ملموس.

ما الذي يشمله

اختبار كامل لتطبيق الويب وفق OWASP WSTG: المصادقة، وإدارة الجلسة، والتحكّم في الوصول، والتحقّق من المدخلات، والحقن، وXSS، وCSRF

أمن service worker: نطاق التسجيل، وآلية التحديث، وكيفية اعتراضه للطلبات وخدمتها

تسميم الذاكرة المؤقتة، والبيانات الحساسة أو القديمة التي تُقدَّم من Cache Storage على الجهاز

البيانات دون اتصال في حالة السكون داخل IndexedDB وlocal storage، وهل ينبغي وجودها هناك أصلاً

مراجعة web app manifest: عنوان البدء، وscope، ووضع العرض، وقابلية التثبيت، والتطبيقات المرتبطة

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

السياق الآمن وفرض HTTPS، ومشكلات mixed-content

إساءة استخدام إشعارات push ومزامنة الخلفية (background sync)

منطق جهة العميل والأسرار المكشوفة في حزمة جافاسكريبت

سياسة أمن المحتوى (CSP)، وسائر ترويسات الاستجابة الأمنية، والنصوص البرمجية من أطراف ثالثة على جهة العميل

كيف يعمل

1
تحديد النطاق والوصول
نتّفق على الحدود ونحدّد عمق الاختبار: صندوق أسود من الخارج، أو صندوق رمادي بحساب اختبار لكل دور، أو صندوق أبيض مع الوصول إلى الشيفرة المصدرية لأعمق تغطية. نسجّل الأدوار، والميزات التي تعمل دون اتصال، والأذونات الجوّالة المستخدَمة، وكل ما ينبغي تجنّبه. ويجري الاختبار عادةً على بيئة staging كي تبقى بيانات الإنتاج دون مساس.
2
اختبار تطبيق الويب
نختبر التطبيق بالطريقة التي يصنّفه بها OWASP WSTG — المصادقة والجلسة، والتحكّم في الوصول، ومعالجة المدخلات والحقن، والبرمجة النصية عبر المواقع، ومنطق الأعمال — لأن PWA تطبيق ويب في المقام الأول، ومعظم الاكتشافات الحقيقية تكمن هنا.
3
اختبار service worker والعمل دون اتصال
نفحص service worker: نطاقه ومسار تحديثه، وكيف يخزّن الاستجابات ويقدّمها، وهل يمكن دفعه إلى تقديم محتوى مسمّم أو قديم. ونتحقّق مما يحتفظ به التطبيق دون اتصال في Cache Storage وIndexedDB وهل تلك البيانات حساسة؛ وهو ما تزداد أهميته على هاتف مشترك أو مفقود.
4
manifest والأذونات والترويسات
نراجع manifest وكيفية تثبيت التطبيق وتشغيله في نافذة مستقلة، والأذونات الجوّالة التي يطلبها وكيفية استخدامه لها، والسياق الآمن وفرض HTTPS، وسياسة أمن المحتوى وسائر الترويسات الأمنية، وpush وbackground sync، وأي أسرار مكشوفة في حزمة جهة العميل.
5
التحقق والإبلاغ وإعادة الاختبار
يُتحقَّق من كل اكتشاف بإثبات مفهوم قابل لإعادة الإنتاج، ويُقيَّم بـ CVSS وبالأثر الفعلي على الأعمال، ويُوثَّق مع مسار معالجة مرتَّب حسب الأولوية. وبعد الإصلاح، نعيد الاختبار للتأكّد من ثبات الإصلاحات.
المُخرَجات
  • ملخّص تنفيذي مع نظرة عامة على المخاطر لصنّاع القرار
  • تقرير فني مفصّل، كل اكتشاف فيه بإثبات مفهوم قابل لإعادة الإنتاج
  • اكتشافات تطبيق الويب مرتبطة بـ OWASP WSTG
  • اكتشافات service worker والتخزين دون اتصال الخاصة بـ PWA المثبَّت
  • مراجعة manifest والأذونات الجوّالة والسياق الآمن والترويسات الأمنية
  • شدّة CVSS والأثر على الأعمال لكل اكتشاف
  • خارطة طريق معالجة مرتَّبة حسب الأولوية
  • إعادة الاختبار بعد المعالجة

لماذا حافظ سيكيور

عمق تطبيق الويب والتطبيق المثبَّت
نختبر التطبيق بأكمله، لا الميزات اللامعة وحدها؛ فتطبيق الويب الكامن تحته هو موضع معظم المخاطر الحقيقية، وطبقة PWA المثبَّتة على الهاتف هي حيث يختبئ ما تبقّى.
خبرة في service worker والعمل دون اتصال
نفهم كيف يعترض service worker حركة المرور وكيف يحتفظ التخزين دون اتصال بالبيانات على الجهاز، فنكتشف المخاطر التي لا يبحث عنها ماسح ويب عام أبداً.
تغطية قائمة على المعايير
يتّبع اختبار الويب دليل OWASP WSTG، فتكون التغطية صريحة وقابلة للتحقق بدل أن تكون عشوائية، ويُختبر سطح PWA فوقها.
اكتشافات قابلة للتنفيذ ومرتَّبة حسب الأولوية
إرشاد واضح مرتَّب حسب المخاطر، مع إثبات مفهوم قابل لإعادة الإنتاج وإصلاح ملموس لكل اكتشاف.

الأسئلة الشائعة

ما هو تقييم أمن تطبيقات الويب التقدمية (PWA) للجوّال؟

يختبر تطبيق ويب تقدمياً بالطريقة التي يُثبَّت ويُشغَّل بها على الهاتف، مستخدماً OWASP WSTG لجزء الويب، إضافةً إلى السطح الذي يستحدثه PWA؛ service worker، والتخزين دون اتصال، وmanifest، والأذونات الجوّالة، وpush؛ ويُثبَت كل اكتشاف ويُقيَّم.

بماذا يختلف هذا التقييم عن تقييم PWA للويب لديكم؟

المنهجية مشتركة؛ فـ PWA تطبيق ويب على أي حال. يتركّز هذا التقييم على سلوك التطبيق بعد تثبيته على الهاتف: النافذة المستقلة، والأذونات الجوّالة التي يطلبها، والبيانات المحفوظة دون اتصال على جهاز يسهل مشاركته أو فقدانه. وإذا كان PWA لديكم يُستخدَم أساساً في متصفح سطح المكتب، فإن تقييم PWA للويب هو الخيار الأقرب.

كيف يختلف اختبار PWA عن اختبار تطبيق ويب عادي؟

PWA تطبيق ويب في المقام الأول، لذا يحتاج إلى اختبار الويب الكامل. وفوق ذلك، يضيف service worker والذواكر المؤقتة دون اتصال والتخزين على الجهاز مخاطر لا ينظر إليها اختبار ويب عادي: ذواكر مؤقتة مسمّمة، وبيانات حساسة محفوظة دون اتصال، وservice worker ذو scope واسع أكثر من اللازم.

ما المعايير التي تتّبعونها؟

دليل OWASP WSTG لتطبيق الويب، وإرشادات أمن PWA الحالية لـ service worker والتخزين دون اتصال وmanifest وميزات السياق الآمن.

ما الوصول الذي تحتاجونه، وهل تقدّمون اختبار الصندوق الأبيض؟

يمكننا العمل بالصندوق الأسود من الخارج، أو بالصندوق الرمادي بحساب اختبار لكل دور، أو بالصندوق الأبيض مع الوصول إلى الشيفرة المصدرية. والصندوق الرمادي هو الخيار المعتاد؛ أما الصندوق الأبيض مع الشيفرة فيمنح أعمق تغطية لمنطق جهة العميل وservice worker. ونتّفق على العمق والنطاق قبل أن نبدأ.

ما الخطر الأمني لـ service worker؟

يعمل service worker في الخلفية ويعترض طلبات الشبكة الخاصة بالتطبيق. فإذا كان نطاقه واسعاً أكثر من اللازم، أو كان مسار تحديثه ضعيفاً، أو كان تخزينه المؤقت مهملاً، فقد يقدّم استجابات قديمة أو مسمّمة، أو يحتفظ ببيانات حساسة في ذاكرة مؤقتة ينساها المستخدم، أو يبقى حياً بعد انتهاء الجلسة. نختبر كلاً من هذه المسارات.

هل البيانات المحفوظة دون اتصال على الهاتف خطر؟

قد تكون كذلك. البيانات المخزَّنة في Cache Storage أو IndexedDB أو local storage تبقى على الجهاز ويمكن قراءتها بواسطة أي نص برمجي يعمل في الأصل نفسه، وعلى هاتف مشترك أو مفقود، بواسطة من يمسك به. نتحقّق مما يُخزَّن، وهل يلزم ذلك، وهل هو محمي.

كيف تُحدَّد شدّة الاكتشافات؟

يحصل كل اكتشاف على درجة CVSS كأساس مشترك، تُعدَّل بالأثر الفعلي في تطبيقكم: ما الذي يصل إليه المهاجم، وبأي سهولة، وأي بيانات أو حسابات معرَّضة للخطر. ولهذا قد تُرتَّب مشكلتان لهما درجة CVSS نفسها بأولويتين مختلفتين.

هل إعادة الاختبار بعد المعالجة مشمولة؟

نعم؛ بعد المعالجة، نعيد اختبار الاكتشافات المبلَّغ عنها للتأكّد من ثبات كل إصلاح. وتعتمد المدة على حجم التطبيق وتعقيده، ونقدّم تقديراً محدداً بعد تحديد النطاق.

هل أنتم مستعدون للبدء؟
تواصلوا مع فريقنا لمناقشة احتياجات تقييم الأمان لديكم