محمدرضا رازیان
محمدرضا رازیان
خواندن ۵ دقیقه·۴ سال پیش

کار با ابزار mobsf

معرفی

فریمورک هندی Mobsf(Mobile Security Framework)، یک فریمورک تست نفوذپایتونی به اصطلاح All-in-one برای تحلیل بدافزار، تحلیل ایستا و تحلیل پویای اپلیکیشن های اندرویدی/آی.اُ.اس/ویندوزی است. این فریمورک رایگان و متن باز است. سایتی که توسعه دهندگان آن برای ارائه مشاوره امنیتی و دریافت پروژه راه اندازی کرده‌اند https://opensecurity.in است. علی‌رغم اینکه شرکت بزرگی پشت این تیم نیست، صفحه گیت این ابزار، بروز و محبوبیت بالاییدارد. حساب donate این صفحه گیت نیز به نام Ajin Abraham که یک هندی ساکن کانادا است منتسب است. کد این فریمورک با جنگو نوشته شده است و دارای کیفیت رتبه A است.

طبق مخزن گیت این فریمورک ۴۶۵۶ستاره، ۱۴۱۵فورک و ۳۱ مشارکت کننده نشان دهنده فعال بودن این فریمورک در کامیونیتی است. از جمله امکاناتی که این فریمورک در اختیار قرار می‌دهد به شرح زیر است:

  • دارای Rest APIs
  • قابلیت انجام فازینگ با کمک CapFuzz
  • امکان نصب بر روی هر سه سیستم عامل
  • کارهایی که ابزار انجام می‌دهد در ترمینال نمایش داده می‌شود
  • برای تحلیل داینامیک صرفاً اپ اندرویدی را پشتیبانی می‌کند
    ای.پی.آی هایی که فراخوانی شده‌اند را نمایش می‌دهد.
    اینکه چه فایل‌هایی باز شده‌اند را نمایش می‌دهد
    الگوریتم های رمزنگاری استفاده شده نمایش داده می‌شود
    یک پراکسی هم برای دریافت کانکشن ها ران می‌کند
    چک بدافزار برای یو.آر.ال ها انجام می‌شود
    شما باید به قسمت‌های مختلف اپلیکیشن بروید. ایجنت در پس زمینه جریان ها را یاد می‌گیرد و تست امنیتی را برای آن جریان هایی که شما پیموده اید انجام می‌دهد.
  • قابلیت انجام تحلیل ایستا و پویا
  • dynamic ssl testing
  • Fuzzing REST API
  • Vulnerability detection XXE, SSRF, IDOR Directory traversal or path traversal, logic and session vulnerability, API rate limiting

نصب و راه اندازی

با توجه به اینکه این ابزار از کتابخانه‌های پایتون استفاده می‌کند توصیه می‌شود در یک محیط مجازی (virtual environment)‌ پایتون نصب شود تامشکلاتی نظیر تداخل نسخه های مختلف کتابخانه‌ها پیش نیاید. بدین ترتیب ابتدا یک محیط مجازی ایجاد میکنیم و مابقی مراحل نصب را بر روی آن انجام می دهیم. با کمک virtualenv یک محیط ایزوله برای پایتون می‌سازیم. Virtualenv یک پوشه که شامل همه فایل‌هایی که در اجرای یک پروژه پایتونی نیاز است را می‌سازد. این بین معناست که هر پروژه می‌تواند وابستگی‌های خود را داشته باشد بدون توجه به اینکه پروژه های دیگر چه وابستگی‌هایی را دارند.

git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git

cd Mobile-Security-Framework-MobSF

pip3 install virtualenv

virtualenv -p python3 venv

source venv/bin/activate

pip3 install -r requirements.txt

sudo python manage.py runserver

سپس به مرورگر رفته و آدرس زیر را وارد نمایید

http://localhost:8000/


ما فایل apk ‌نرم افزار keepass‌ را برای ارزیابی ایستا داده ایم. تصویر زیر بخشی از نتیجه ارزیابی را نشان می‌دهد. مواردی نظیر امتیاز امنیت با معیار cvss و همچنین آمار هایی از اپ نظیر تعداد سرویس ها و اکتیویتی های exported در گزارش ارزیابی به چشم می‌خورد.


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

sudo apt-get install wkhtmltopdf

و سپس از منوی سمت چپ گزینه PDF Export‌ انتخاب شود.

نکته بسیار مهم

در بررسی برخی از اپ ها متوجه شدیم که Mobsf‌ در یک اجرای بی پایان می‌ماند. با بررسی لاگ متوجه شدیم در مرحله تبدیل فایل .dex به فایل java با نرم‌افزار jadx این مشکل به وجود می‌آید. با طرح مسئله در پیج jadx، توسعه دهندگان پیشنهاد استفاده از نسخه جدیدتر که رفع باگ شده را دادند. اما این نسخه unstable است و mobsf نپذیرفت که آن را در پروژه خود قرار دهد. بنابراین ما آن را در سیستم خودمان با نسخه قبلی جایگزین کردیم.

انجام تحلیل پویا

در صورتی که از نسخه ۲.۰.۲ فریمورک MobSF استفاده می‌کنید تنها راه انجام تحلیل پویا استفاده از ایمولاتور جنی موشن (Genymotion) است.

در بخش تحلیل پویا، MobSF دیگر از ova پشتیبانی نمی کند و صرفا از genymotion استفاده می کند. این بدان معناست که تمامی آموزش هایی که مبنی بر ova‌ و تغییر تنظیمات فایل settings.py هستند بلا استفاده شده اند. مانند آموزش های موجود در لینک های زیر که البته مشابه اینها فراوان است! بنابراین به هیچ وجه از آموزش‌های دیگری که در وب است مانند موارد زیر استفاده نکنید!

http://abhi7435thakur.blogspot.com/2017/11/security-testing.html

https://kalilinuxtutorials.com/mobsf-mobile-security-framework/

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

مراحل نصب Genymotion

ابتدا Genymotion را از سایت https://www.genymotion.com دانلود نمایید. برای دانلود، باید در وبسایت آن یک اکانت برای استفاده شخصی بسازید. در صفحه اول این سایت گزینه Desktop Sign In‌ را بزنید و سپس در صفحه بعد، گزینه ساخت اکانت جدید را انتخاب کنید

سپس می‌توانید فایل را دانلود نمایید که احتمالاً یک فایل به نام genymotion-3.0.3-linux_x64.bin است. سپس دستورات زیر را اجرا نمایید

chmod +x genymotion-3.0.3-linux_x64.bin

$./genymotion-3.0.3-linux_x64.bin

انتقال به دایرکتوی هوم

$ mv genymotion ~/.genymotion

اضافه کردن آن به path.

$ vim ~/.bashrc

export PATH="/home/$USER/.genymotion:$PATH"

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

$ genymotion

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

ما بر روی مدل Galaxy S8‌ سامسونگ کار تحلیل پویا را انجام خواهیم داد.

آغاز تحلیل پویا

برای انجام تحلیل پویا، بهتر است فریمورک MobSF‌ را بعد از بوت گوشی اجرا کنید. پس در صورتی که MobSF در حال اجرا است آن را متوقف کنید. گوشی Galaxy S8 که در Genymotion‌ اضافه کرده‌اید را ران کنید. بعد از اینکه گوشی بالا آمد، MobSF‌ را اجرا کنید. سپس به بخش تحلیل پویا (Dynamic Analysis) در MobSF بروید. در صفحه‌ای که باز می‌شود لیستی از اپ هایی که قبلاً تحلیل ایستای آن‌ها را انجام داده‌اید برای شما نمایش می‌دهد که در سمت راست آن‌ها گزینه انجام تحلیل پویا قرار گرفته است.

گزینه Start Dynamic Analysis را بزنید. باید صفحه‌ای مانند صفحه زیر نمایش داده شود.

در این صفحه گزینه start instrumentation را بزنید. همچنین گزینه Show Screen‌ هم صفحه نمایش موبایل را به شما نشان میدهد (منظور همان گوشی Galaxy S8 است). گزینه های دیگری نیز برای تحلیل اکتیویتی ها و ای.پی.آی ها وجود دارند که می‌توانید از آن‌ها استفاده کنید و در نهایت گزارش خروجی بسیار مناسبی را با کمک گزینه Generate Report دریافت نمایید.

از تحلیل ایستا و پویای این ابزار لذت ببرید…

پایان

علاقمند به حوزه علوم و مهندسی رایانه
شاید از این پست‌ها خوشتان بیاید