ارزیابی امنیت PWA موبایل ما یک اپلیکیشن وب پیشرونده را همانگونه میآزماید که مردم روی گوشی نصب و اجرا میکنند. این پیش از هر چیز یک وباپ است، پس آن را با کل راهنمای OWASP WSTG میآزماییم و سپس سطحی را میافزاییم که یک PWA پس از نصب روی صفحهی خانه و اجرای آفلاین میسازد: یک service worker که میان صفحه و شبکه مینشیند، یک Cache Storage و IndexedDB که داده را روی دستگاه نگه میدارند، یک web app manifest که تعیین میکند چگونه نصب میشود و به چه چیزی میتواند برسد، و مجوزهای موبایلی که درخواست میکند؛ push، موقعیت جغرافیایی، دوربین و مانند آن. روی گوشی، اپلیکیشن در یک پنجرهی مستقل اجرا میشود، اغلب روی دستگاهی مشترک یا گمشده، پس هم دادهی نگهداشته روی آن دستگاه و هم service workerی با دامنهی بیش از حد باز، هر دو اهمیت بیشتری مییابند. هر یافته را تا یک اثبات عملی دنبال میکنیم، در کنار اثر واقعیاش با CVSS رتبه میدهیم و همراه با یک رفع مشخص مینویسیم.
چه چیزی شامل میشود
تست کامل وباپلیکیشن بر پایهی OWASP WSTG: احراز هویت، مدیریت session، کنترل دسترسی، اعتبارسنجی ورودی، تزریق، XSS و CSRF
امنیت service worker: دامنهی ثبت، سازوکار بهروزرسانی، و شیوهی رهگیری و پاسخدهی به درخواستها
مسمومسازی کش و دادهی حساس یا کهنه که روی دستگاه از Cache Storage سرو میشود
دادهی آفلاین در حالت سکون در IndexedDB و local storage، و اینکه اصلاً باید آنجا باشد یا نه
بازبینی web app manifest: نشانی شروع، scope، حالت نمایش، قابلیت نصب و اپلیکیشنهای مرتبط
مجوزهای موبایلی که اپلیکیشن درخواست میکند؛ push، موقعیت جغرافیایی، دوربین و اعلانها؛ و شیوهی استفاده از آنها
زمینهی امن و اجبار HTTPS، و مسائل mixed-content
سوءاستفاده از push notification و background sync
منطق سمتکاربر و secretهای افشاشده در بستهی جاوااسکریپت
سیاست امنیت محتوا (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 در پسزمینه اجرا میشود و درخواستهای شبکهی اپلیکیشن را رهگیری میکند. اگر scope آن بیش از حد باز باشد، مسیر بهروزرسانیاش ضعیف باشد یا کشکردنش بیدقت باشد، میتواند پاسخهای کهنه یا مسموم سرو کند، دادهی حساس را در کشی که کاربر فراموشش میکند نگه دارد یا فراتر از یک نشست پابرجا بماند. هر یک از این مسیرها را میآزماییم.
میتواند باشد. دادهی ذخیرهشده در Cache Storage، IndexedDB یا local storage روی دستگاه میماند و برای هر اسکریپتی که در همان مبدأ اجرا شود خواندنی است، و روی یک گوشی مشترک یا گمشده، برای هرکسی که آن را در دست دارد. بررسی میکنیم چه چیزی ذخیره میشود، آیا لازم است، و آیا محافظت شده است.
هر یافته یک امتیاز CVSS برای یک مبنای مشترک میگیرد که با اثر واقعی در اپلیکیشن شما تعدیل میشود: مهاجم به چه میرسد، چقدر آسان، و چه داده یا حسابی در خطر است. به همین دلیل دو مسئله با CVSS یکسان ممکن است اولویت متفاوت بگیرند.
بله؛ پس از رفع، یافتههای گزارششده را دوباره تست میکنیم تا مطمئن شویم هر رفع پابرجاست. مدت زمان به اندازه و پیچیدگی اپلیکیشن بستگی دارد و پس از دامنهگذاری برآورد دقیق میدهیم.
سرویسهای مرتبط
خدمات تکمیلی که ممکن است برای شما مفید باشند