ارزیابی امنیتی و آزمون نفوذ برنامه کاربردی موبایل

ما با استفاده از متدولوژی‌های OWASP MASTG و MASVS، آسیب‌پذیری‌های امنیتی اپلیکیشن‌های Android و iOS شامل ذخیره‌سازی ناامن داده، رمزنگاری ضعیف، ریسک‌های مهندسی معکوس و نقص‌های امنیتی خاص پلتفرم را شناسایی و ارزیابی می‌کنیم.

OWASP MASTGOWASP MASVSAndroid & iOSCVSS Scoring
MASVS
استاندارد تأیید امنیت موبایل
۱۰ از ۱۰
ریسک OWASP Mobile Top 10
iOS و Android
سکوهای پوشش‌داده‌شده
۴
متدولوژی مرجع

پوشش کامل OWASP Mobile Top 10 (2024)

تست‌های ما تمام ده ریسک امنیتی برتر OWASP برای اپلیکیشن‌های موبایل را پوشش می‌دهد

M1

استفاده نادرست از اعتبارنامه

M2

زنجیره تأمین ناکافی

M3

احراز هویت ناامن

M4

ورودی/خروجی ناکافی

M5

ارتباطات ناامن

M6

کنترل‌های حریم نامناسب

M7

محافظت باینری ناکافی

M8

پیکربندی نادرست امنیتی

M9

ذخیره‌سازی داده ناامن

M10

رمزنگاری ناکافی

چرا امنیت اپلیکیشن موبایل مهم است؟

اپلیکیشن‌های موبایل دسترسی مستقیم به داده‌های حساس و قابلیت‌های دستگاه دارند

سطح حمله گسترده

اپلیکیشن‌های موبایل به داده‌های حساس، دوربین، میکروفون و سرویس‌های موقعیت دسترسی دارند. یک آسیب‌پذیری می‌تواند تمام داده‌های کاربر و قابلیت‌های دستگاه را افشا کند.

خطرات مهندسی معکوس

اپلیکیشن‌های موبایل می‌توانند دیکامپایل شوند تا کلیدهای API، اعتبارنامه‌های هاردکد و منطق تجاری استخراج شود. مهاجمان می‌توانند نسخه‌های تغییریافته بسازند یا از آسیب‌پذیری‌ها سوءاستفاده کنند.

اعتماد کاربر و حریم خصوصی

کاربران داده‌های شخصی و مالی حساس را به اپلیکیشن‌های موبایل می‌سپارند. نقض امنیتی به اعتبار آسیب می‌زند و مقررات حریم خصوصی مانند GDPR را نقض می‌کند.

انطباق با استورها

استورها به‌طور فزاینده استانداردهای امنیتی را اعمال می‌کنند. آسیب‌پذیری‌های امنیتی می‌توانند منجر به حذف اپلیکیشن شده و بر تداوم کسب‌وکار تأثیر بگذارند.

پوشش پلتفرم‌های موبایل

تست‌های تخصصی برای هر دو پلتفرم اصلی موبایل

Android
  • تحلیل APK و DEX
  • بررسی Root Detection
  • تست Certificate Pinning
  • ارزیابی Permission System
  • تحلیل Shared Preferences
  • بررسی Content Provider
  • تست Intent Security
  • ارزیابی ProGuard/R8
iOS
  • تحلیل IPA و Mach-O
  • بررسی Jailbreak Detection
  • تست SSL Pinning
  • ارزیابی Keychain Security
  • تحلیل Plist و Core Data
  • بررسی URL Schemes
  • تست App Transport Security
  • ارزیابی Code Signing

چه چیزهایی را تست می‌کنیم؟

پوشش جامع تمام جنبه‌های امنیتی اپلیکیشن موبایل بر اساس OWASP MASTG

امنیت ذخیره‌سازی داده
آنچه برنامه روی دستگاهی جا می‌گذارد که ممکن است بعداً دست دیگری باشد: پایگاه‌های داده، فایل‌های تنظیمات، حافظه‌ی نهان، لاگ‌ها، و تصویری که هنگام رفتن برنامه به پس‌زمینه گرفته می‌شود.
  • ذخیره‌سازی در SQLite
  • Shared Preferences/Keychain
  • فایل‌های موقت و کش
  • بک‌آپ‌های اپلیکیشن
  • کلیپ‌بورد و لاگ‌ها
رمزنگاری
اینکه کلیدها جایی که باید باشند هستند یا نه. الگوریتم قوی وقتی کلیدش داخل کد یا در فایل تنظیمات نشسته باشد از چیزی محافظت نمی‌کند.
  • الگوریتم‌های رمزنگاری
  • مدیریت کلید
  • Random Number Generation
  • Certificate Validation
  • TLS Implementation
احراز هویت و مجوزدهی
اینکه تصمیم واقعاً کجا گرفته می‌شود. برنامه می‌تواند صفحه‌ای را پنهان کند و درخواست پشت آن همچنان اجرا شود، پس هر بررسی روی سرور سنجیده می‌شود نه روی رابط کاربری.
  • Biometric Authentication
  • Session Management
  • Token Security
  • OAuth Implementation
  • Access Control
ارتباطات شبکه
اینکه ترافیک چه چیزی را به کسی که روی همان شبکه است نشان می‌دهد، و وقتی دستگاه همان دستگاهی نباشد که برنامه برایش منتشر شده، بر سر pinning چه می‌آید.
  • TLS/SSL Configuration
  • Certificate Pinning
  • API Security
  • WebSocket Security
  • Network Traffic Analysis
تعامل با پلتفرم
سطحی که سیستم‌عامل باز می‌کند: مؤلفه‌های صادرشده، پیوندهای عمیق، حافظه‌ی موقت، پیام‌های میان‌فرایندی، و مجوزهایی که برنامه می‌خواهد.
  • IPC Mechanisms
  • Deep Links/URL Schemes
  • WebView Security
  • Custom Permissions
  • Broadcast Receivers
کیفیت کد و تاب‌آوری
اینکه نسخه‌ی منتشرشده هنگام باز شدن چه چیزی لو می‌دهد، و برنامه روی دستگاه روت یا جیلبریک‌شده چه رفتاری نشان می‌دهد.
  • Obfuscation Assessment
  • Tampering Detection
  • Debugging Protection
  • Emulator Detection
  • Runtime Integrity

تست روی کدام نسخه و کدام دستگاه انجام شود؟

انتخاب میان این‌ها تعیین می‌کند که چه بخشی از برنامه اصلاً دیده شود.

همان نسخه‌ی فروشگاه
همان چیزی که کاربران اجرا می‌کنند

نزدیک‌ترین تصویر به وضعیت واقعی، و تنها راه دیدن اینکه نسخه‌ی منتشرشده چه چیزی لو می‌دهد. مبهم‌سازی و pinning سر راه‌اند، و همین هدف است.

نسخه‌ای با pinning آزاد
فقط برای بخشی از تست

pinning جلوی پراکسی را می‌گیرد، پس جلوی آزمون هر چیزی را هم که پشت آن است می‌گیرد. نسخه‌ای با pinning آزاد برای بخشی از کار یعنی ترافیک و API سنجیده می‌شوند نه خود pinning.

کد و خط انتشار
جایی که منطق اهمیت دارد

برای اطمینان از اینکه اصلاً بررسی‌ای وجود دارد یا نه، و برای کلیدها و نشانی‌هایی که بدون قصد کسی سر از نسخه‌ی نهایی درمی‌آورند.

دامنه‌ی ارزیابی و آنچه از شما لازم است

کیفیت نتیجه بیش از هر چیز به آماده‌بودن این چند مورد بستگی دارد.

نسخه‌ای که بتوانیم نصب کنیم

یک فایل APK یا IPA، با راهی برای نصب بیرون از فروشگاه. برای iOS این یعنی شناسه‌های دستگاه از پیش، که معمولاً بیشتر از آنچه تیم‌ها تصور می‌کنند طول می‌کشد.

برای هر سطح، دو حساب

جدی‌ترین یافته‌های یک برنامه‌ی موبایل معمولاً در API پشت آن است، و کنترل دسترسی میان دو کاربر با یک حساب قابل آزمون نیست.

آیا سرویس پشتی داخل دامنه است؟

این را صریح مشخص کنید. ارزیابی‌ای که در مرز خود برنامه متوقف شود، نیمه‌ی کوچک‌تر مسئله را آزمون کرده است، چون تصمیم‌هایی که اهمیت دارند روی سرور گرفته می‌شوند.

دستگاهی که اجازه‌ی تغییرش را داریم

آزمون ذخیره‌سازی، تاب‌آوری و تعامل با پلتفرم به دستگاه روت یا جیلبریک‌شده نیاز دارد. شبیه‌ساز بخشی از آن را پوشش می‌دهد، نه همه‌اش.

مسیری برای گزارش فوری

در هر دو طرف یک نفر مسئول ارتباط. کلیدی که داخل نسخه‌ی منتشرشده نوشته شده باشد همان روزی که پیدا شود گزارش می‌شود، نه در گزارش نهایی.

شدت هر یافته چطور تعیین می‌شود

عددی که پشتش روشی نباشد، به تصمیم‌گیری درباره‌ی ترتیب رفع کمکی نمی‌کند.

امتیاز CVSS نقطه‌ی شروع است

هر یافته با CVSS v3.1 امتیاز می‌گیرد تا زبان مشترکی با تیم فنی شما و ابزارهایی که از پیش دارید وجود داشته باشد.

سپس هزینه‌ی رسیدن به آن

ضعفی که به دسترسی فیزیکی به دستگاه قفل‌نشده نیاز دارد با ضعفی که از راه شبکه کار می‌کند یکی نیست. هر دو گزارش می‌شوند، اما در یک رتبه نمی‌نشینند.

اثبات‌شده، نه حدس

هر یافته با مراحل، وضعیت دستگاه و نسخه‌ای که روی آن پیدا شده همراه است. چیزی که بازتولید نشود، به‌عنوان یافته‌ی قطعی گزارش نمی‌شود.

ترتیب رفع

گزارش ترتیب کار را پیشنهاد می‌دهد و مشخص می‌کند کدام موارد به انتشار نسخه‌ی جدید نیاز دارند و کدام‌ها را می‌توان روی سرور و بدون انتشار به‌روزرسانی رفع کرد.

فرآیند کار ما

رویکرد ساختاریافته ما برای ارزیابی امنیت اپلیکیشن موبایل

1
تحلیل استاتیک

ما باینری اپلیکیشن را تحلیل کرده، کد را دیکامپایل می‌کنیم، اسرار هاردکد را بررسی کرده و آسیب‌پذیری‌های بالقوه را بدون اجرای اپ شناسایی می‌کنیم.

2
تست دینامیک

تحلیل زمان اجرا شامل شنود ترافیک، تست مبتنی بر hook و مانیتورینگ رفتار اپ در زمان واقعی روی دستگاه‌های واقعی.

3
تست API بک‌اند

تست جامع endpointهای API موبایل برای دور زدن احراز هویت، IDOR، آسیب‌پذیری‌های تزریق و نقص‌های منطق تجاری.

4
گزارش‌دهی و پشتیبانی

گزارش دقیق با امتیازات CVSS، رفع خاص پلتفرم، نمونه کد و تست مجدد رایگان پس از اعمال اصلاحات.

تحویل‌دادنی‌های پروژه

گزارش‌های جامع و عملیاتی برای تیم‌های فنی و مدیریتی

خلاصه مدیریتی

اینکه چه چیزی تست شد، چه یافته شد، و این یافته‌ها برای کسب‌وکار چه معنایی دارد، به زبانی که خواننده‌ی غیرفنی بتواند بر اساس آن تصمیم بگیرد.

گزارش فنی

هر یافته با امتیاز CVSS v3.1، مراحلی که آن را بازتولید می‌کند، و نسخه و وضعیت دستگاهی که روی آن دیده شده است.

راهنمای رفع

برای هر یافته یک راه‌حل مشخص برای همان پلتفرم، و تفکیک اینکه کدام موارد به انتشار نسخه‌ی جدید نیاز دارند و کدام‌ها روی سرور رفع می‌شوند.

تست مجدد رایگان

پس از رفع، هر یافته دوباره تست می‌شود و یا بسته‌شدن آن تأیید می‌شود یا با توضیح اینکه چه چیزی هنوز کار می‌کند دوباره باز می‌شود.

سوالات متداول

آیا به کد منبع ما نیاز دارید؟
چرا نسخه‌ای با pinning آزاد می‌خواهید؟
آیا تست را می‌توان روی شبیه‌ساز اجرا کرد؟
کتابخانه‌ها و SDKهای طرف سومی که استفاده می‌کنیم چه؟
چه نوع اپلیکیشن‌های موبایلی را تست می‌کنید؟
OWASP MASTG چیست و چگونه از آن استفاده می‌کنید؟
تفاوت MASTG و MASVS چیست؟
آیا هم اپلیکیشن‌های اندروید و هم iOS را تست می‌کنید؟
ارزیابی امنیتی اپلیکیشن موبایل چقدر زمان می‌برد؟
از چه ابزارهایی برای تست نفوذ موبایل استفاده می‌کنید؟
آیا می‌توانید اپلیکیشن‌هایی که نیاز به دور زدن تشخیص روت/جیلبریک دارند را تست کنید؟
پس از ارزیابی موبایل چه تحویل‌دادنی‌هایی دریافت می‌کنیم؟
آیا API بک‌اند موبایل را هم تست می‌کنید؟
هزینه تست نفوذ اپلیکیشن موبایل چقدر است؟
آیا اپلیکیشن موبایل شما امن است؟
با تیم متخصص ما تماس بگیرید تا ارزیابی امنیتی جامع اپلیکیشن موبایل شما را انجام دهیم