تست نفوذ برنامه های اندروید

چکیده

تست نفوذ اپلیکیشن های موبایلی نیازی رو به رشد است که با معرفی چارچوب های Android ، iPhone و iPad اخیرا توجه فراوانی را به سمت خود جلب کرده است. انتظار می رود که در آینده نزدیک، بازار اپلیکیشن های موبایل با افزایش نیاز به استفاده ازاپلیکیشن‌های تلفن‌های هوشمند مانند اپ های بانکی و تجاری، درآمدی بالغ بر 9 بیلیون دلار داشته باشد.
شرکت های زیادی از طریق توسعه‌ی اپلیکیشن های جدید یا وارد کردن دوباره‌ی اپلیکیشن‌های قدیمی درچارچوب تلفن های هوشمند در تلاشند تا بهره‌ی بیشتری را از این سود بیکران از آن خود کنند.
این اپلیکیشن‌ها اغلب با اطلاعات شناسایی شخصی، کارت اعتباری و دیگر دیتای حساس افراد سروکار دارند.
این مقاله به صورت اختصاصی برروی کمک به متخصصان امنیت در درک بیشتر ظرافت های تست اپلیکیشن های اندرویدی تمرکز دارد و تلاش می کند تا گام های کلیدی مورد نیاز خواننده نظیر برپایی محیط تست، نصب شبیه ساز اندروید ، تنظیم ابزارهای proxy و decompile کردن اپلیکیشن ها و غیره را پوشش دهد. همچنین این مقاله به معرفی ابزارهای امنیتی موجود برای چارچوب اندروید خواهد پرداخت. لازم به تذکر است که این مقاله به تشریح چارچوب امنیتی اندروید، یا شناساندن سیستم عامل اندروید یا پوشش تمام متدهای تست نفوذ اندروید نخواهد پرداخت.

تست نفوذ برنامه های اندروید
شکل 1: تست نفوذ برنامه های اندروید

مقدمه

اندروید یک چارچوب مبتنی بر لینوکس است که توسط شرکت گوگل و Open Handset Alliance توسعه داده شده است . برنامه نویسی اپلیکیشن‌های اندرویدی منحصرا در جاوا انجام می‌شود .ساختار نرم افزار سیستم عامل اندروید شامل اپلیکیشن های جاوایی است که برروی ماشین مجازی Dalvik (DVK) اجرا می‌شوند. این روزها تلفن های همراه در نقش کامپیوترهای کوچکی هستند که نرم افزار های اجرا شده بر روی آنها نقش اپلیکیشن های تحت وب یا اپلیکیشن های کوچک دسکتاپی را بازی می ‌کنند با دادن اپلیکیشن، شما تنها یک بارفرآیند تنظیم proxy و decompile کردن کد را درپیش رو خواهید داشت و تست امنیت تنها به اجرای تست نفوذ یا مرور کد اپلیکیشنی که می خواهید تست کنید، محدود خواهد شد.

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

  1. استفاده از زنجیره‌ی تست نفوذ اپلیکیشن های تحت وب (مرورگر و proxy)
  2. استفاده از WinWAP با proxy
  3. استفاده از شبیه ساز تلفن با یک proxy

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

نیازمندی ها

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

جاوا

Eclipse‌

SDK Android

Fiddler

نصب Android SDK

اولین گام قبل ازهر گونه تستی ، دانلود و نصب Android SDK است. برای اهداف این مقاله، ما از Microsoft windows برای تست استفاده خواهیم کرد. کامپیوتر شما جاوا و Eclipse به منظور نصب SDK نیاز دارد. پروسه‌ی نصب بر روی Microsoft windows بسیار آسان است. به سادگی Setup.exe را اجرا کنید سپس ANDROID_HOME را به متغیرهای سیستمی که به فولدر /tools اشاره می‌کنند اضافه کنید و %ANDROID_HOME% را به متغیر PATH همان گونه که در شکل زیر نشان می‌دهد، اضافه نمایید.

تست نفوذ برنامه های اندروید
شکل 2: متغیرهای سیستمی که به جهت اجتناب از مشخص کردن کل مسیر در هنگام اجرای فرامین Android SDK باید تنظیم شوند

شروع به کار شبیه ساز

شبیه ساز موبایل به همراه بسته ی SDK به صورت package نصب می‌شود و یک ابزار شبیه ساز مبتنی برQEMU است که شما می‌توانید برای طراحی، debug و تست اپلیکیشن ها در یک محیط واقعی و زمان اجرای اندرویدی از آن استفاده کنید.
قبل از آغاز به کار با شبیه ساز شما نیاز به ایجاد یک ابزار مجازی اندرویدی (AVD) دارید. برای این کار به Eclipse> Window menu>Android SDK and AVD Manager> Virtual Devices مراجعه نموده و یک AVD جدید با تنظیمات پیش فرض بسازید. برای آغاز به کار شبیه ساز، فرمان های زیر را وارد کنید:

  emulator –avd testavd  

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

  C:\android-sdk-windows\tools>emulator -avd testavd  
تست نفوذ برنامه های اندروید
شکل 3: شبیه ساز اندروید

پس از آن یک اپلیکیشن اندرویدی را دانلود کرده یا یک اپلیکیشن خود را با استفاده از App Invertor بسازید تا بتوانید آنرا با استفاده از شبیه ساز و بقیه‌ی ابزارهای نامبرده شده در این مقاله تست کنید.

چگونه اپلیکیشن های اندرویدی را بر روی شبیه ساز نصب یا حذف کنیم

شما باید فایل apk. اپلیکیشن اندرویدی را به منظور انجام تست نفوذ بر روی آن در اختیار داشته باشید. از Android Debug Bridge(adb) (که با نصب SDK بر روی سیستم حاضر است) برای نصب فایل ها در شبیه ساز استفاده کنید.

یک command prompt باز کنید و فرمان زیر را برای نصب هر فایل apk وارد کنید

 adb install < path to the .apk file ‏>  
 C:\android-sdk-windows\tools> adb install C:\SyncClientBinary.apk
1144 KB/s (0 bytes in 750906.000s)
pkg: /data/local/tmp/SyncClientBinary.apk
تست نفوذ برنامه های اندروید
شکل 4: اپلیکیشنی که به تازگی بر روی شبیه ساز نصب شده است

اگر در حین نصب فایل apk به پیام خطایی برخوردید، فرمانهای زیر را امتحان کنید

 adb kill-server
adb start-server

اگر نصب اپلیکیشن به دلیل محدودیت سایز فایل apk ناموفق بود ، شبیه ساز را با استفاده از دستور زیر دوباره از نو راه اندازی کنید :

 emulator –partition-size 256 -memory 512 -avd testavd 
 C:\Documents and Settings\Consultant>emulator -partition-size 256 -memory 512 -avd testavd

شما می توانید با استفاده از command prompt یا شبیه ساز، اپلیکیشن را uninstall کنید. برای استفاده از از command prompt، adb shell را باز کرده، به فولدر app بروید و از فرمان rm برای حذف فایل apk مطابق شکل زیر استفاده کنید:

 C:\android-sdk-windows\tools>adb shell
cd data
cd app
ls
com.funambol.android-1.apk
rm com.funambol.android.apk
rm failed for com.funambol.android-1.apk, No such file or directory
rm com.funambol.android-1.apk

از سوی دیگر، برای حذف اپلیکیشن با استفاده از شبیه ساز، به گزینه‌ی Menu > Settings > Applications > Manage Applications مراجعه کرده و اپلیکیشن را انتخاب و گزینهuninstall را مطابق شکل زیر انتخاب کنید:

تست نفوذ برنامه های اندروید
شکل 5: uninstall یک اپلیکیشن با استفاده از شبیه ساز

تنظیم یک ابزار proxy

وب اگر اپلیکیشن ازHttp(s) استفاده می‌کند یا یک سایت است که بر روی مرورگر اندروید تست می شود، گام بعدی برای تست آن، تنظیم یک ابزار پروکسی مانند Fiddler یا Paros است. چهار شیوه‌ی اصلی برای تنظیم یک proxy وجود دارد:

  1. با استفاده از فرمان زیر جزئیات proxy را زمانی که شبیه ساز آغاز به کار کرد، مشخص کنید. این فرمان برای گوش دادن proxy برروی پورت 8888 (تنظیمات پیش فرض برای Fiddler) استفاده می‌شود. اگر شما از هر پورت proxy دیگری (به عنوان مثال پورت 8080 در Paros) استفاده می‌کنید، شماره پورت را تغییر دهید.
  2.  emulator -avd testavd –http-proxy http://localhost:8888 
     C:\android-sdk-windows\tools>emulator -avd testavd -http-proxy http://localhost:8888
  3. گزینه‌ی دوم این است که جزییات proxy را درقسمت APN شبیه ساز، مطابق زیرمشخص کنید
  4. به Home > Menu > Wireless & Networks > Mobile Networks > Access Point Names مراجعه کرده و تنظیمات زیر را به روزرسانی کنید:

    Name: Internet

    APN: Internet

    Proxy: IP address of your computer e.g. 192.168.1.3

    Username: < Not Set ‏>

    Password : < Not Set ‎>

    تست نفوذ برنامه های اندروید
    شکل 6: تنظیم یک ابزارproxy با استفاده از تنظیمات APN شبیه ساز
  5. گزینه‌ی سوم این است که تنظیمات را با استفاده ازadb shell و فرمان export برای تنظیم متغیرمحیطی انجام دهیم:
  6.  export HTTP_PROXY=http://localhost : 8888 
     C:\Documents and Settings\Consultant> adb shell
    # export HTTP_PROXY=http://localhost:8888
    export HTTP_PROXY=http://localhost:8888
  7. آخرین گزینه تغییر تنظیمات proxy در تنظیمات دیتابیسی است که مروگر وب اندرویدی از آنجا تنظیمات را می‌خواند. دیتابیس تنظیمات از SQLite استفاده می‌کند. اگر شما تصمیم به استفاده از این گزینه دارید، آشنایی با فرمان های پایه‌ی SQL توصیه می‌شود. hostname و اطلاعات port را متناسب با آن چه که در فرمان زیر بیان شده است، تغییر داده و بقیه را بدون تغییر رها کنید:
  8.   ‎>adb shell 
    ‎#sqlite3
    /data/data/com.google.android.providers.settings.db/
    sqlite> INSERT INTO system VALUES(99,'http_proxy','localhost:8888‎');
    sqlite> .exit

    تنها یکبار که شما یکی از گزینه های ذکر شده را برای تنظیم proxy خود استفاده کردید ، proxy شما باید آغاز به دیدن request ها و response ها کند. شکل زیرFiddler را نشان می‌دهد که درخواست‌های HTTP ای که توسط مرورگر شبیه ساز ارسال می‌شوند را intercept می‌کند. داشتن یک proxy وب که درخواست ها را intercept کند یک بخش کلید برای حل این معما است. از این نقطه به بعد تست نفوذ شبیه پروسه‌ی تست اپلیکیشن‌های تحت وب هست.

    تست نفوذ برنامه های اندروید
    شکل 7: intercept درخواست های ارسالی توسط مرورگر شبیه ساز در Fiddler

جعبه ابزار(Toolkit) تست نفوذ اپلیکیشن‌های اندرویدی

Android SDK به همراه چندین ابزار ارائه می‌شود که اگرچه به طور اختصاصی برای تست امنیت طراحی نشده اند، اما می‌توانند به عنوان ابزاری برای تست نفوذ استفاده شوند. به علاوه ، چندین ابزار دیگر خارج از SDK مانند Manifest explorer ، Intent Sniffer وIntent Fuzzer وجود دارند که شما می‌توانید به عنوان بخشی از جعبه ابزار خود از آن استفاده کنید.
قبل از اینکه به ابزارهای ویژه نگاهی بیندازیم، ذکر این نکته مفید است که بدانیم زمانی که یک اپلیکیشن تحت وب را برروی چارچوب اندرویدی تست می‌کنیم، از قدرت debug menu مخفی نهایت بهره را ببرید. به منظور گرفتن دسترسی به این menu مراحل زیر را دنبال کنید:

به مرورگر اندروید در شبیه ساز بروید

در مکان نمای آدرس، about : debug را وارد و کلیک کنید

به گزینه‌ی menu -> More -> Settings مراجعه کنید

به سمت پایین اسکرول کنید تا منوی now enabled debug را ببینید

تنظیمات UAString به شما اجازه می‌دهد تا رشته‌ی User Agent مرورگر را زمانی که در این منو هستید، تغییر دهید.

تست نفوذ برنامه های اندروید
شکل 8: منوی debug

Android Debug Bridge

قبلا این ابزار را هنگام نصب اپلیکیشن های اندرویدی دیده ایم و می‌دانیم که بخشی از Android SDK است و shell منحصر به فرد خود را دارد که به شما اجازه می‌دهد تا فرمان‌های لینوکسی مانند ls –l را اجرا کنید. راهنمای توسعه دهندگان اندروید تمام فرمان‌های ADB shell را لیست کرده ولی برای بخش کوچکی از فرمان‌های زیر اهمیت دارند.

ADB می‌تواند همه‌ی شبیه سازها و ابزارهای اندرویدی متصل به کامپیوتررا با استفاده از فرمان زیر تعیین کند:

 adb devices 
 C:\Documents and Settings\Consultant> adb devices
List of devices attached
emulator-5554 device

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

 adb –s emulator -5554 install Foobar.apk 

دستور مهم دیگری که توسط adb ارائه می‌شود، برای استخراج یا وارد کردن فایل‌ها از شبیه ساز/ابزار اندرویدی به فایل دیتای آن نمونه می باشد. این دستورات زمانی می‌توانند مفید باشند که شما بخواهید فایل ها را از شبیه ساز/ ابزار اندرویدی به کامپیوتر خود دانلود کرده و آنها را مروریا پردازش کنید. ما این قابلیت را با جزییات بیشتر زمان بحث بر روی پروسه‌ی decompilation امتحان خواهیم کرد.

فرمان‌های dumsys یا dumpstate می‌تواند دیتای سیستم را مانند شکل زیر برروی screen یا یک فایل دیگر قرار دهد. این فایل می‌تواند شامل اطلاعات مرتبط امنیتی مهمی باشد. به جای آن برای نیل به این هدف شما می‌توانید از Dalvik Debug Monitor Service(DDMS) استفاده نمایید.

تست نفوذ برنامه های اندروید
شکل 9: بخشی از خروجی دستور dumpsys

تست نفوذ برنامه های اندروید
شکل 10 : بخشی از خروجی دستور dumpstate

MKSDCARD

دستور mksdcard با ساخت یک FAT32 disk image به شما اجازه‌ی ساخت یک SD card مجازی برای شبیه ساز را می‌دهد. این احتمال وجود دارد که اپلیکیشنی که شما تست می‌کنید، نیاز به نصب یک دیتابیس یا سایر فایل‌های دیگر داشته باشد. بنابراین این دستور زمانی که می‌خواهید یک اپلیکیشن را برروی شبیه ساز به جای ابزار فیزیکی تست کنید، بسیار کارا خواهد بود.

از دستور mksdcard برای ساخت یک SD card مجازی استفاده کنید.

 mksdcard [-l lable] < size >[K][M] < file ‏> 

حالا از گزینه‌ی – sdcard برای آغاز به کار شبیه ساز با اختصاص فایل SD card استفاده کنید.

 emulator -sdcard < file specified in the command above ‏> 

ممکن است که در طول parsing در فایل های ذخیره شده در SD card توسط اپلیکیشن ، فایل های مخفی رمز شده ای را پیدا کنید. همواره در جستجوی password ها ، PIN ها ، PIIها و دیگر اطلاعات حساس باشید.

SQLITE3

از ترمینال adb shell شما می‌توانید دستور sqlite3 را برای کوئری زدن به دیتابیسی که توسط اپلیکیشن های اندرویدی به وجود آمده و در حافظه‌ی ابزار اندرویدی ذخیره شده است، اجرا کنید. این دستور ممکن است باعث افشای اطلاعات حساسی مانند پسوردها یا PIN ها به صورت hash شده یا clear text شود. این دیتابیس ها با پسوند .db ذخیره شده اند.

به /data/ data / < application > /databases/< nameofthedatabase > .db مراجعه کنید.

 C:\Documents and Settings\Consultant> adb -s emulator-5554 shell
#ls /data/data/com.android.quickserachbox/databases
ls /data/data/com.android.quickserachbox/databases
qsb-log.db
# sqlite3 /data/data/com.android.quicksearchbox/databases/qsb-log.db
sqlite3 /data/data/com.android.quicksearchbox/databases/qsb-log.db
SQLite Version 3.6.22
Enter ".help" for instructions
Enter SQL statemnets terminated with a ";"

دستور .table را برای لیست تمام جدول ها و . schema < tablename> را برای لیست ساختار جدول ها، مطابق شکل زیر استفاده کنید:

 # sqlite3 /data/data/com.android.quickserachbox/databases/qsb-log.db
sqlite3 /data/data/com.android.quickserachbox/databases/qsb-log.db
SQLite version 3.6.22
Enter ".help" for instructions
sqlite> .table
.table
android_metadata clicklog shortcuts sourcetotals
sqlite> .tables
.tables
android_metadata clicklog shortcuts sourcetotals
sqlite> .schema android_metadata
.schema android_metadata
CREATE TABLE android_metadata < locale TEXT > ;

شما همچنین می‌توانید دستورات SQL مانند select * from shortcuts ; را اجرا نمایید.

Manifest Explorer

هر اپلیکیشنی که برروی سیستم عامل اندروید اجرا می‌شود، یک فایل AndroidManifest.xml دارد . این فایل از دید امنیتی به دلیل تعریف سطح دسترسی های مورد نیاز اپلیکیشن دارای اهمیت زیادی است . ابزار Manifest Explorer برای تسهیل در مشاهده این فایل xml به کار می‌رود. زمان تست اپلیکیشن، مهم است که اپلیکیشن از اصل "least privilege" پیروی می‌کند و از دسترسی هایی که برای کارکرد خود به آنها نیاز ندارد، استفاده نکند.

تست نفوذ برنامه های اندروید
شکل 11: Manifest Explorer

Intent Sniffer

Intent sniffer مکانیزمی است که ازآن برای جابجایی دیتا بین پروسه ها استفاده می‌شود. این مکانیزم هسته مرکزی Android’s Inter Process(IPC) را تشکیل می‌دهد. Intent ها می‌توانند شماری از اکشن ها مثل startservice ، sendbroadcast و غیره را نمایان سازد. از این ابزار برای مانیتور کردن intent ها استفاده می‌شود.

PROCRANK

دستور procrank لیستی از پروسه هایی که برروی ابزار اندرویدی در حال اجرا است را، مثل شکل زیر نشان می‌دهد. این دستور شبیه دستور ps است اما ستون های اضافی ای مانند Vss (نشان دهنده‌ی میزان حافظه ی مجازی اختصاص داده شده به هر پروسه است) و Pss (Pss یک Rss کاهش یافته بر مبنای تعداد پروسه هایی است که صفحات فیزیکی را به اشتراک می‌گذارند).

تست نفوذ برنامه های اندروید
شکل 12: خروجی Procrank

STRACE

Strace ابزاری برای debug کردن است که فراخوان ها و سیگنال های سیستم را ردیابی می‌کند. این ابزار توسط Android SDK برروی سیستم نصب می‌شود. زمانی که می‌خواهید اپلیکیشنی را تست نمایید که رهگیری آن آسان نیست، استفاده از ابزارهایی نظیر Fiddler یا دیگر ابزارهای Http proxy بسیار مفید واقع خواهد شد. تنها کافی است که process ID اپلیکیشن مورد نظررا با دستور Procrank که بالاتر شرح داده شد، کشف کنیم.

تست نفوذ برنامه های اندروید
شکل 13: خروجی ابزار Strace

BUSYBOX

Busybox برخی از دستورات لینوکسی را که می‌توانند در طول پروسه‌ی تست نفوذ مفید واقع شوند، ارائه می‌دهد و برای افزایش ظرفیت جعبه ابزار اندروید به کار می‌رود. به منظور نصب busybox شما می‌توانید مراحل زیر را انجام دهید:

busybox binary را دانلود کنید

یک فولدر /data/busybox بسازید

آن فایل باینری رو به فولدر مرحله‌ی قبل منتقل کنید

مطمئن شوید که hاجازه های درست با استفاده از دستور Chmod 755 ./busybox تنظیم شده است

اپلیکیشن را با دستور ./busybox -install نصب کنید
سپس یک دستور در Busybox اجرا کنید. به مسیر پوشه‌ی busybox رفته و دستور زیر را وارد کنید :

 ‎. /< command ‏> 
تست نفوذ برنامه های اندروید
شکل 14: اجرای دستور watchdog که در Busybox قابل اجراست

Decompiling Android Application

فایل‌های اندرویدی با پسوند apk در حقیقت همان فایل های zip شده هستند. آنها میان سایر اجزا شامل فایل هایی نظیر AndroidManifest.xml classes.dex، resources.arsc هستند . شما می‌توانید پسوند .apk را تغییرنام دهید و آن را با یک ابزار ZIP مثل WinZip برای دیدن محتوای درون آن باز کنید.

تست نفوذ برنامه های اندروید
شکل 15: محتوای یک فایل .apk

معمولا مرسوم است که فایل‌های .dex را به منظور decompile کردن آنها به کامپیوتر منتقل می‌کنند. فایل های classes.dex یک اپلیکیشن نصب شده در زیرشاخه‌ی /data/Dalvik-cache قرار دارند.

تست نفوذ برنامه های اندروید
شکل 16: محل پیش فرض برای فایل‌های .dex

پسوند .dex فرمت اجرایی dalvik است. به منظور کشیدن فایل های .class از ابزار dexdump که با SDK ارائه شده استفاده کنید .از دستور زیر به منظور خالی کردن فایل های .class مطابق شکل استفاده کنید:

 # dexdump -d -f -h data@این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید
 @classes.dex >> sync.apk.dump

حالا از دستور pull برای گذاشتن فایل به دست آمده از مرحله‌ی قبل در کامپیوتر مطابق شکل استفاده نمایید:

 C:\Documents and Settings\Consultant>adb pull /data/dalvik-cache/sync.apk.dump
:\sync.apk.dump
1529 KB/s (0 bytes in 7074192.004s )
تست نفوذ برنامه های اندروید
شکل 17: فایل .dump

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

شما همچنین می‌توانید از baksmali decompiler استفاده کنید که خروجی خیلی بهتری ارائه می‌دهد. برای این منظور فایل .dex را به کامپیوتر بکشید . سپس دستوری که در ادامه می آید را اجرا کنید:

 C:\>java -jar baksmali-1.2.3.jar -o C:\decompileddex C:\SyncClientBinary\classes.dex

خروجی decompile شده‌ی فایل .dex در زیر نشان داده شده است. برای بسیاری از افراد کد خروجی بسیار خواناتر از بایت کدهای Dalvik می باشد. بر اساس تحقیقات ما در حال حاضر هیچ راهی برای گرفتن کد جاوای منطبق با یک فایل .dex وجود ندارد و ما معتقدیم که بهترین گزینه‌ی موجود همین است. گزینه ی بعدی که همین کار مشابه را انجام می‌دهد dedexer است.

تست نفوذ برنامه های اندروید
شکل 18: خروجی بعد از decompile کردن فایل .dex که از baksmali decompiler استفاده شده است

دسترسی های فایل در Android

دسترسی های فایل اندروید از مدلی مشابه لینوکس استفاده می‌کند. برای بررسی اختیارات یک فایل، به adb shell بروید و دستور ls –l را تایپ کنید. هر فایل .apk که بر روی شبیه ساز نصب شده باشد USER ID یکتای خود را دارد. این باعث می‌شود که هر اپلیکیشنی نتواند دیتای یک اپلیکیشن دیگر را بخواند و به صورت نرمال توسط اپلیکیشن های دیگر قابل دسترسی نباشد. اگرچه یک فایل جدید با APIهای getSharedPreferences() ، OpenFileOutput() یا CreateDatabase() ساخته شود، شما می‌توانید برای اینکه بقیه package ها اجازه‌ی خواندن یا نوشتن در این فایل را به صورت سراسری داشته باشند، پرچم های MODE_WORLD_WRITEABLE و MODE_WORLD_READABLE را مشخص کنید. این کار باعث به وجود آمدن یک نشان هشدار برای زمانی که می‌خواهید سورس کد را بررسی کنید، می‌شود. بنابراین جستجوی رشته های MODE_WORLD_WRITABLE و MODE_WORLD_READABLE در کد را مورد ملاحظه قرار دهید و از خود بپرسید آیا آنها واقعا مورد نیازند. باید توجه داشته باشید که چنین بررسی تنها زمانی ممکن است که شما دسترسی به سورس کد اپلیکیشن داشته باشید زیرا این نشان ها در کد decompile شده دیده نخواهند شد.




شرکت مهندس پیشگان آزمون افزار یاس، ابزارهای پیشرفته زیر را در حوزه تست نفوذ موبایل ارائه می دهد:

Jtest

Checkmarx

WebInspect


نویسنده : شرکت مهندس پیشگان آزمون افزار یاس


مراجع

[1]-Penetration Testing Android Applications, Kunjan Shah, Foundstone Professional Services

نوشتن دیدگاه

تصویر امنیتی
تصویر امنیتی جدید