اهمیت آزمون نفوذپذیری موبایل اپلیکیشن
یکی از مهمترین داراییهای اطلاعاتی که بهویژه طی سالهای اخیر شمار کاربران آن با سرعت قابلتوجهی روبهرشد بوده است، دستگاههای موبایل هستند. همگام با رشد استفاده از این دستگاهها، سطح جذابیت آنها برای نفوذگران نیز در حال افزایش بوده است. کمتر فردی را میتوان پیدا کرد از این دستگاههای هوشمند به صورت روزمره استفاده نکند. بر همین اساس، امروزه دستگاههای موبایل یکی از مهمترین و رایجترین نقاط برای بهرهبرداری از اشخاص و حتی از سازمانها محسوب میشود. دستگاه موبایلی که به آن نفوذ شده است، مستقیما دادهها و امنیت کاربر آن دستگاه را تحت تاثیر میگذارد. علاوه بر این، در صورتی که این کاربر از دستگاه خود در محیط کار و شبکه سازمان استفاده کند، شبکه سازمان نیز میتوان مورد نفوذ واقع شود. بنابراین، آشکار است که حفاظت از امنیت اطلاعاتی مربوط به دستگاههای موبایل اهمیت بسزایی دارد. در همین خصوص، یکی از شاخصترین خدمات شرکت امین رای، ارائه خدمات آزمون نفوذپذیری برنامههای موبایل مبتنی بر پلتفرمهای مختلف ازجمله Android، iOS و PWA است.
فرایند آزمون نفوذپذیری موبایل اپلیکیشن
برای آزمون نفوذپذیری یک برنامه موبایل از مراجع و استانداردهای شناختهشدهای مانند MASVS، MSTG و OWASP Top 10 استفاده میشود. هرچند، به دلیل ماهیت بسیار پویا و تغییرپذیر دنیای امنیت سایبری، لازم است تا آزمونگر همواره فراتر از این مراجع گام بردارد. بر همین اساس، آزمونگران همواره باید در حال تحقیق و گسترش اطلاعات و شناخت خود از تکنولوژیها، دستگاههای موبایل و بروزرسانیهایی باشند که روی آنها اعمال میشوند.
آزمون نفوذپذیری برنامههای موبایل صرفنظر از نوع آنها، در سه رویکرد آزمونهای جعبه سیاه، جعبه سفید و جعبه خاکستری اجرا میشود. در روش جعبه سفید، آزمونگر به بسیاری از اطلاعات مربوط به برنامه ازجمله کدهای منبع و حسابهای کاربری دسترسی کامل داشته و در روش جعبه سیاه آزمونگر هیچ دسترسی بیشتر از یک کاربر عادی به برنامه هدف ندارد. آزمون جعبه خاکستری بین این دو قرار میگیرد.
صرفنظر از سطح اطلاعات و دسترسی آزمونگر به سامانه هدف، تستهایی که روی برنامه هدف اجرا میشوند را میتوان در دو فاز کلی تحلیل ایستا و تحلیل پویا دستهبندی کرد. در طی فرایندهای مربوط تحلیل ایستا، برنامه هدف اجرا نمیشود و کدهای منبع و فایلهای مرتبط با برنامه هدف از دیدگاه امنیتی بررسی میشوند؛ بدون آنکه خود برنامه روی دستگاه خاص یا محیط شبیهساز اجرا شود. بدین منظور، از ابزارهای مختلفی استفاده میشود که برخی از آنها کدهای منبع را بهصورت خودکار بررسی کرده و در صورت کشف آسیبپذیری، آن را گزارش میکنند. علاوه بر این، ابزارهای دستی نیز استفاده میشوند که کار با آنها نیاز به افراد با تخصص، دانش و تجربه بیشتر است. در سمت مقابل تحلیلهای ایستا، تحلیلهای پویا قرار میگیرند که معمولا (ولی نه لزوما) پس از تحلیلهای ایستا انجام میشوند. در خلال این بخش از آزمون، برنامه هدف روی یک دستگاه فیزیکی یا در محیط شبیهسازیشده اجرا میشود و آسیبپذیریهای احتمالی شناسایی میشوند. در اینجا نیز هم از ابزارهای اسکن خودکار آسیبپذیری استفاده میشود و هم آزمونهای دستی برای شناسایی آسیبپذیریهای پیچیدهتر اجرا میشوند.
مراحل آزمون نفوذپذیری موبایل اپلیکیشن
مراحلی که برای آزمون نفوذپذیری موبایل اپلیکیشن طی میشوند، شباهت چشمگیری به مراحل آزمون نفوذپذیری وباپلیکیشمها دارند؛ ولی با این حال، تفاوتهای کوچک، ولی مهمی نیز میان آزمون نفوذپذیری این دو دسته داراییهای اطلاعات وجود دارد. در ادامه به چهار مرحله کلی آزمون نفوذپذیری موبایل اپلیکیشنها اشاره شده است.
- گردآوری اطلاعات: در مرحله نخست از آزمون نفوذپذیری موبایل اپلیکیشن، تلاش میشود تا با استفاده از ابزارهای مختلف، بیشترین اطلاعات ممکن از سامانه هدف کسب شود. از این مرحله، اصطلاحا با نام Reconnisance نیز یاد میشود و منظور از اطلاعات، چارچوبها و تکنولوژیهای استفادهشده، انواه پایگاه داده، دسترسیهای موردنیاز موبایل اپلیکیشن به دستگاه، سایر اطلاعات Manifest، فهرست Activityها، Intentها، Serviceها و Content Providerها است. علاوه بر این، در صورتی که اپلیکیشن با سرویسهای آنلاین در ارتباط باشد، شناخت نوع و نسخه وبسرور، سیستم عامل، پایگاه داده، آدرس IP، پورتهای باز و مکانیزمهای پایش ترافیک مانند WAF و ID/PS نیز اهمیت دارند. بدین منظور، بنا به نیاز از ابزارهای بسیار متنوعی استفاده میشود که معمولا از آنها با نام OSINT Tools یاد میشود. از مهمترین ابزارهای میتوان به apktool و adb اشاره کرد. علاوه بر اینها، از مراجع ثالثی مانند shodan، github و شبکههای اجتماعی نیز در این مرحله استفاده میشود. همچنین، لازم است تا نفوذگران در این مرحله از ماهیت سامانه هدف و عملکردهای آن نیز مطلع شوند.
- کشف آسیبپذیری: پس از آنکه اطلاعات کافی از اپلیکیشن هدف گردآوری شد، نفوذگران تلاش میکنند تا بخشهای مختلف آن را برای کشف آسیبپذیریهای شناختهشده یا آسیبپذیریهای جدید، آزمایش کنند. این مرحله از آزمون نفوذپذیری معمولا سختترین، تخصصیترین و زمانبرترین بخش از کل فرایند آزمونپذیری است.مرحله کشف آسیبپذیری در موبایل اپلیکیشنها خود به دو بخش تحلیل ایستا و تحلیل پویا تقسیم میشوند.
- در خلال آزمونهای مربوط به تحلیل ایستا، اپلیکیشن موبایل به کدها و فایلهای تشکیلدهنده آن تجزیه شده و هر کدام از اینها بدون اجرای اپلیکیشن بررسی میشوند تا آسیبپذیری کدها شناسایی شود. به عبارت دیگر، در این بخش از تکنیکهای مهندسی معکوس برای شناسایی آسیبپذیریها استفاده میشود. به عنوان نمونه، برای استخراج کدهای smali از یک فایل apk از ابزار apktool استفاده میشود. همچنین برای دیدن کدهای اپلیکیشن به زبان جاوا از jadx استفاده میشود. برای این بخش از ابزارهای پیشرفتهتری مانند IDA Pro و Ghidra نیز حتما استفاده میشود. برخی اسکنرهای خودکار مانند MobSF نیز میتوانند اطلاعات خوبی درباره موارد امنیتی در یک موبایل اپلیکیشن ارائه دهند.
- گروه دوم بررسیها، به شکل پویا انجام میشوند؛ بدین معنی که موبایل اپلیکیشن روی یک دستگاه واقعی یا روی یک شبیهساز نصب و اجرا میشود و آسیبپذیریهای احتمالی حین اجرای اپلیکیشن شناسایی میشوند. بخش عمده بررسیهای این بخش به صورت دستی انجام میشوند و ابزارها توان قابلتوجهی برای این بخش ندارند. هرچند، برای اجرای موراد دستی مربوط به این بخش نیز از ابزارهای قدرتمندی مانند MobSF و Burp Suite استفاده میشود. اجرای موبایل اپلیکیشنها روی شبیهسازها و انتقال ترافیک آنها روی ابزارهای ثالث مانند Burp Suite و ZAP معمولا با دشواریهای و محدودیتهایی (مانند SSL Pinning و Root Detection) روبرو است که لازم است پیش از شروع فرایند کشف آسیبپذیری بایپس و برطرف شوند. بدین منظور نیز بسته به نوع پلتفرم، نسخه SDK و ماهیت اپلیکیشن، از ابزارهای متنوعی مانند Xposed Faramewok، Cydia Substrate، Introspy و غیره استفاده میشود.
- بهرهبرداری از آسیبپذیریهای کشفشده: پس از شناسایی آسیبپذیری در یک وباپلیکیشن، تلاش میشود تا سناریوهای مختلف برای بهرهبرداری از آسیبپذیری کشفشده بررسی شوند. هدف از اجرای این مرحله در آزمونهای نفوذپذیری وباپلیکیشن، تهیه شواهد لازم برای اثبات آسیبپذیری و همچنین امکانسنجی بهرهبرداری از آسیبپذیری برای نفوذ بیشتر در سامانه هدف (Lateral movement و Privilege Escalation) است. بهعنوان نمونه، پس از کشف آسیبپذیری SQL Injection در یک سامانه، ممکن است بتوان از آن آسیبپذیری برای اجرای سناریوهای حمله دیگری مانند RCE و OS Command Injection استفاده کرد. برای این بخش نیز ابزارهای بسیار مختلفی استفاده میشوند که از مهمترین آنها میتوان به Metasploit و Powersplot اشاره کرد.
- ارائه گزارش: درنهایت، تمامی یافتههای نفوذگران از مراحل قبلی، پس از بررسی و نهاییسازی، در قالبهای ویژهای برای کارفرما گزارش میشوند. ازجمله مواردی که در این گزارش ارائه میشوند، میتوان به تشریح آسیبپذیری کشفشده، شواهد مربوط به آسیبپذیری، علت ریشهای ایجاد آسیبپذیری، شدت آسیبپذیری بر اساس بردار CVSS v3.1 و راهکارهای کلی برای رفع آسیبپذیری کشفشده اشاره کرد.