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)، وسائر ترويسات الاستجابة الأمنية، والنصوص البرمجية من أطراف ثالثة على جهة العميل
كيف يعمل
- ملخّص تنفيذي مع نظرة عامة على المخاطر لصنّاع القرار
- تقرير فني مفصّل، كل اكتشاف فيه بإثبات مفهوم قابل لإعادة الإنتاج
- اكتشافات تطبيق الويب مرتبطة بـ OWASP WSTG
- اكتشافات service worker والتخزين دون اتصال الخاصة بـ PWA المثبَّت
- مراجعة manifest والأذونات الجوّالة والسياق الآمن والترويسات الأمنية
- شدّة CVSS والأثر على الأعمال لكل اكتشاف
- خارطة طريق معالجة مرتَّبة حسب الأولوية
- إعادة الاختبار بعد المعالجة
لماذا حافظ سيكيور
الأسئلة الشائعة
يختبر تطبيق ويب تقدمياً بالطريقة التي يُثبَّت ويُشغَّل بها على الهاتف، مستخدماً OWASP WSTG لجزء الويب، إضافةً إلى السطح الذي يستحدثه PWA؛ service worker، والتخزين دون اتصال، وmanifest، والأذونات الجوّالة، وpush؛ ويُثبَت كل اكتشاف ويُقيَّم.
المنهجية مشتركة؛ فـ PWA تطبيق ويب على أي حال. يتركّز هذا التقييم على سلوك التطبيق بعد تثبيته على الهاتف: النافذة المستقلة، والأذونات الجوّالة التي يطلبها، والبيانات المحفوظة دون اتصال على جهاز يسهل مشاركته أو فقدانه. وإذا كان PWA لديكم يُستخدَم أساساً في متصفح سطح المكتب، فإن تقييم PWA للويب هو الخيار الأقرب.
PWA تطبيق ويب في المقام الأول، لذا يحتاج إلى اختبار الويب الكامل. وفوق ذلك، يضيف service worker والذواكر المؤقتة دون اتصال والتخزين على الجهاز مخاطر لا ينظر إليها اختبار ويب عادي: ذواكر مؤقتة مسمّمة، وبيانات حساسة محفوظة دون اتصال، وservice worker ذو scope واسع أكثر من اللازم.
دليل OWASP WSTG لتطبيق الويب، وإرشادات أمن PWA الحالية لـ service worker والتخزين دون اتصال وmanifest وميزات السياق الآمن.
يمكننا العمل بالصندوق الأسود من الخارج، أو بالصندوق الرمادي بحساب اختبار لكل دور، أو بالصندوق الأبيض مع الوصول إلى الشيفرة المصدرية. والصندوق الرمادي هو الخيار المعتاد؛ أما الصندوق الأبيض مع الشيفرة فيمنح أعمق تغطية لمنطق جهة العميل وservice worker. ونتّفق على العمق والنطاق قبل أن نبدأ.
يعمل service worker في الخلفية ويعترض طلبات الشبكة الخاصة بالتطبيق. فإذا كان نطاقه واسعاً أكثر من اللازم، أو كان مسار تحديثه ضعيفاً، أو كان تخزينه المؤقت مهملاً، فقد يقدّم استجابات قديمة أو مسمّمة، أو يحتفظ ببيانات حساسة في ذاكرة مؤقتة ينساها المستخدم، أو يبقى حياً بعد انتهاء الجلسة. نختبر كلاً من هذه المسارات.
قد تكون كذلك. البيانات المخزَّنة في Cache Storage أو IndexedDB أو local storage تبقى على الجهاز ويمكن قراءتها بواسطة أي نص برمجي يعمل في الأصل نفسه، وعلى هاتف مشترك أو مفقود، بواسطة من يمسك به. نتحقّق مما يُخزَّن، وهل يلزم ذلك، وهل هو محمي.
يحصل كل اكتشاف على درجة CVSS كأساس مشترك، تُعدَّل بالأثر الفعلي في تطبيقكم: ما الذي يصل إليه المهاجم، وبأي سهولة، وأي بيانات أو حسابات معرَّضة للخطر. ولهذا قد تُرتَّب مشكلتان لهما درجة CVSS نفسها بأولويتين مختلفتين.
نعم؛ بعد المعالجة، نعيد اختبار الاكتشافات المبلَّغ عنها للتأكّد من ثبات كل إصلاح. وتعتمد المدة على حجم التطبيق وتعقيده، ونقدّم تقديراً محدداً بعد تحديد النطاق.
خدمات ذات صلة
خدمات تكميلية قد تكون مفيدة لكم