تست امنیت اپلیکیشن اندروید با مثال عملی

تست امنیت اپلیکیشن اندروید با مثال عملی

معرفی MOBSF


این ابزار یک ابزار قدرتمند گرافیکی مبتنی بر وب است که قابلیت های مختلفی را دارد که از جمله آن ها می توان به موارد زیر اشاره کرد:
• ظاهر خوب و سهولت کار با آن
• تست امنیتی اپلیکیشن مبتنی بر استاندارد تست اپلیکیشن های موبایل (MSTG)
• تحلیل بد افزار
• قابلیت تست به هر دو روش Static و Dynamic
• پشتیبانی از اندروید و iOS و فرمت های متنوع فایل
• ارائه Rest API و قابلیت Integration با محصولات CI/CD یا در DevSecOPS Pipeline (مناسب برای توسعه امن محصولات)
• امکان گرفتن گزارش با فرمت های مختلف
• قابل اجرا با Docker برای استفاده سریع
این ابزار بسیاری از آسیب پذیری ها در دسته بندی های مختلف را با استفاده از قواعدی که برای آن نوشته شده است تشخیص می دهد و در زمینه تشخیص آسیب پذیری ها به صورت Static یکی از بهترین ابزارهای متن باز است. البته به طور طبیعی، نباید از این ابزار انتظار کشف آسیب پذیری های ترکیبی و سخت را که به صورت دستی توسط متخصصین قابل کشف هستند داشته باشید. در ادامه ابتدا با هم یاد خواهیم گرفت که چگونه می توان این ابزار را به آسانی با استفاده از Docker اجرا کرد و برای بررسی قدرت این ابزار یکی از اپلیکیشن های آسیب پذیر را با آن تست خواهیم کرد.

نصب ابزار

برای نصب این ابزار آسان ترین راه استفاده از Docker است. ابتدا باید Docker را در لینوکس خود نصب کرده باشید (با استفاده از سرویس شکن تحریم Docker را دور بزنید). حال با استفاده از دستور زیر ایمیج این نرم افزار را دریافت کنید.


docker pull opensecurity/mobile-security-framework-mobsf:latest

سپس با استفاده از دستور زیر می توانید یک Container از این image را اجرا کرده و استفاده کنید.


docker run -it -d -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

حال با زدن آدرس 127.0.0.1:8000 در مرورگر خود مانند تصویر زیر ابزار به شما نمایش داده خواهد شد.


در تصویر بالا با زدن دکمه Upload & Analyze که با کادر قرمز رنگ مشخص شده است می توانید فایل APK خود را بارگذاری کنید و سپس صبر کنید تا نتیجه تحلیل نرم افزار به شما نمایش داده شود. علاوه بر این موضوع همان طور که در پایین تصویر مشاهده می کنید کادر جستجویی با محتوای Search MD5 وجود دارد که با جستجوی هش MD5 نرم افزار در آن، می توانید به سوابق قبلی اسکن فایل های مشابه دست پیدا کنید. با استفاده از گزینه RECENT SCANS در پایین تصویر می توانید به تاریخچه اخرین اسکن های انجام شده با این نرم افزار دسترسی پیدا کنید. گزینه DYNAMIC ANALYZER که در قسمت پایین تصویر بالا قابل مشاهده است در واقع قابلیت تحلیل پویای اپلیکیشن در زمان اجرا را به ما ارائه می دهد اما برای استفاده از این قابلیت نیاز به تنظیمات حرفه ای تر وجود دارد که در این مقاله از بیان آن صرف نظر خواهیم کرد.
یکی از ویژگی های خوب این اپلیکیشن داشتن API وب برای استفاده در سایر اپلیکیشن ها یا در فرایند DevSecOPS است. برای دسترسی به راهنمای API این اپلیکیشن، می توانید از آدرس /api_docs یا لینک موجود در پایین تصویر بالا استفاده کنید. نمایی از این راهنما را می توانید در تصویر زیر مشاهده کنید.

بررسی یک اپلیکیشن آسیب پذیر با MOBSF


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

لیست آسیب پذیری های این اپلیکیشن را در از اینجا می توانید مشاهده کنید.

البته توجه داشته باشید که بخشی از آسیب پذیری های بالا فقط به صورت Dynamic قابل کشف هستند و در این مقاله ما تنها به بررسی Static این اپلیکیشن خواهیم پرداخت. در ادامه بخش های مهم گزارش تست امنیتی اپلیکیشن Pivaa را بررسی خواهیم کرد تا کمی با ساختار گزارش آشنا شویم.
برای شروع کار، اپلیکیشن Pivaa را دانلود کنید و در MOBSF اپلود کنید. پس از اتمام اپلود اپلیکیشن، نرم افزار به حالت Analyzing خواهد رفت و در این قسمت از ماجرا کمی باید صبر کنیم تا خروجی تحلیل این اپلیکیشن به شکل زیر برای ما نمایش داده شود.

همان طور که در تصویر بالا مشاهده می کنید در گزارش خروجی ابتدا اطلاعاتی راجع به اپلیکیشن اندروید، حجم فایل آن، هش های مختلف و جزئیات پکیج آن اشاره شده است. در قسمت بعدی، اطلاعات مربوط به تعداد Activity ها، سرویس ها و ... قابل مشاهده است که در بخش های بعدی به جزئیات مربوط به آن ها خواهیم پرداخت. قسمت Decompiled Code اجازه دیدن کد بخش های متفاوت شامل فایل AndroidManifest.xml و سورس جاوایی اپلیکیشن و چندین قابلیت دیگر را به شما می دهد که برای ادامه تحلیل به صورت دستی بسیار کاربردی هستند. در ادامه به بررسی سایر بخش های گزارش خروجی خواهیم پرداخت.

همان طور که در تصویر بالا مشاهده می کنید قسمت SIGNER CERTIFICATE در گزارش خروجی، به بررسی Certificate مورد استفاده برای امضا کردن یک اپلیکیشن می پردازد و موارد مربوط به امنیت آن را به صورت لیستی نمایش می دهد. برای مثال همان طور که در ردیف اول جدول بالا مشاهده می کنید، برای امضا کردن اپلیکیشن Pivaa در مرحله Production از یک debug certificate استفاده شده است که کاری بسیار اشتباه برای نسخه Production یک اپلیکیشن، محسوب می شود. همچنین در ردیف های سوم و چهارم جدول هم اخطارهایی را می توانید مشاهده کنید که به ناامن بودن الگوریتم های رمزنگاری مورد استفاده اشاره می کند.

همان طور که در تصویر بالا مشاهده می کنید در قسمت Application Permissions به بررسی مجوزهای مورد نیاز اپلیکیشن پرداخته شده است که از لحاظ میزان خطرناک بودن برای کاربر، مورد بررسی قرار گرفته است. این اپلیکیشن مجوزهای متعددی مانند موقعیت یابی دقیق مبتنی بر شبکه و همینطور GPS را درخواست کرده است که در دسته بندی مجوزهای خطرناک قرار گرفته است. همچنین مطابق لیست بالا MOBSF خروجی کاملی از Permission های مورد نیاز یک اپلیکیشن را به ما می دهد. یکی از بهترین کارها قبل از نصب یک اپلیکیشن روی گوشی موبایل خودتان، بررسی فایل آن با MOBSF است که به شما اجازه می دهد Permission های مورد نیاز اپلیکیشن را بررسی کنید و با توجه به ماهیت اپلیکیشن در مورد نصب آن تصمیم گیری کنید.

قسمت MANIFEST ANALYSIS در تصویر بالا، به بررسی تنظیمات اپلیکیشن در فایل AndroidManifest.xml می پردازد که در صورت سهل انگاری در این تنظیمات، اپلیکیشن دچار مشکلات امنیتی متعدد می شود. برای مثال در تصویر بالا مشاهده می کنید که در ردیف اول جدول به فعال بودن قابلیت Debug در این اپلیکیشن اشاره شده است که اجازه می دهد تا مهندسی معکوس نرم افزار به آسانی قابل انجام باشد. در ردیف های سوم تا پنج این جدول نیز مشاهده می کنید که یک سرویس، یک Broadcast Receiver و یک Content Provider یافت شده اند که Protected نیستند و به آسانی توسط سایر اپلیکیشن های روی گوشی می توانند مورد سو استفاده قرار بگیرند.

قسمت CODE ANALYSIS که در تصویر بالا قابل مشاهده است در واقع نتیجه بررسی Static کد اپلیکیشن را نمایش می دهد. همان طور که مشاهده می کنید آسیب پذیری های متفاوتی در فایل های مختلف اپلیکیشن رخ داده است که همراه با کد OWASP MASVS به کاربر نمایش داده می شود. با داشتن کد OWASP MASVS می توانید این آسیب پذیری را در گوگل یا MSTG جستجو کرده و جزئیات آن را مطالعه کنید و در نهایت ایراد موجود را در اپلیکیشن خود رفع کنید.

MOBSF علاوه بر قابلیت Pentest اپلیکیشن های اندروید، امکان Malware Analysis هم دارد که بخشی از آن بررسی دامنه های مورد استفاده در اپلیکیشن ها است. همانطور که در تصویر بالا مشاهده می کنید دامنه های مورد استفاده در اپلیکیشن Pivaa چک شده اند تا در لیست دامنه ها و IP های مورد استفاده Malware ها نباشند.

همان طور که در تصویر بالا مشخص است در قسمت Reconnaissance، لیستی از URLها، دیتابیس های Firebase، ایمیل ها و سرویس های ردیابی مورد استفاده در اپلیکیشن به ما نمایش داده می شود که برای ادامه فرایند Pentest به صورت دستی، بسیار کاربردی است.

مطابق تصویر بالا، در گزارش قسمتی با نام APKiD ANALYSIS وجود دارد که اپلیکیشن را از لحاظ Packerها، Obfuscatorها، کامپایلرهای مورد استفاده و ... مورد بررسی قرار می دهد.

همانطور که در تصویر بالا مشاهده می کنید قسمت دیگری به نام A STRINGS وجود دارد که در آن لیستی از رشته های مورد استفاده در این اپلیکیشن نمایش داده می شود. این قسمت برای پیدا کردن ایمیل ها و اطلاعات حساس بسیار کاربردی و قابل استفاده است.
برای خروجی گرفتن از این گزارش به صورت یک فایل PDF، مانند تصویر زیر باید روی بخش PDF Report که با کادر قرمز رنگ مشخص شده است کلیک کنید. در صورت نیاز برای چاپ کردن نیز می توانید از گزینه Print Report استفاده کنید.

جمع بندی

در نهایت پس از جمع بندی آسیب پذیری های یافت شده از اپلیکیشن Pivaa و مقایسه آن با لیست موجود در گیت هاب خود Pivaa، متوجه شدیم که از میان 27 آسیب پذیری موجود در این اپلیکیشن، 18 مورد توسط MOBSF یافت شده که عدد بسیار خوب و مناسبی برای یک تحلیل صرفا Static است. البته 2 مورد از آسیب پذیری های  ساده در سورس کد که با بررسی Static قابل کشف بودند در گزارش خروجی یافت نشد که نشان از ضعف این ابزار در برخی از بخش ها دارد که البته با توجه به Open Source و رایگان بودن آن قابل چشم پوشی است. این ابزار برای تیم های توسعه نرم افزار و حتی افراد حرفه ای نیز می تواند بسیار کاربردی و مفید باشد.

نظرات
اگر login نکردی برامون ایمیلت رو بنویس: