انتخاب زبان

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

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

  1. انگیزه ایجاد راهنمای تست امنیت موبایل
  2. چشم انداز تهدیدات فعلی موبایل

    چالشها

  3. راهنمای تست امنیت موبایل (MSTG)
  4. بررسی اجمالی

    جمع آوری اطلاعات، مدلسازی تهدید و تحلیل آسیب پذیری در موارد خاص

    ابزارها و مثال‌ها

  5. خلاصه

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

راهنمای تست امنیت موبایل

مستقل از موقعیت مکانی (موبایل)

"همیشه آنلاین" و قابل ردیابی

مصرف‌کنندگی (Consumerization) – دستگاه‌ها برای استفاده شخصی ساخته شده‌اند

تمرکز بر عملکرد و طراحی، به جای تمرکز بر امنیت

افزایش موارد کاربری (use cases) حساس برای برنامه های کاربردی

افزایش 163 درصدی نرم افزارهای مخرب (malware) موبایل در سال 2012

موارد تجاری "پنهان" برای برنامه های کاربردی رایگان

وضعیت تست امنیت موبایل

برنامه های کاربردی موبایل دارای برخی از ویژگیهای خاص در مورد تست نفوذ میباشند.

راهنماهای سفارشی در دسترس نیست.

سیستم‌های پیام (msg)، تصمیم به توسعه راهنما (MSTG) با کمک دانشگاه علوم کاربردی مونیخ گرفتند.

راهنماهای مشابه توسط OWASP منتشر شده است: تست امنیت موبایل OWASP

چالش های تست امنیت موبایل

شناسایی تفاوتها با استفاده از تست‌های نفوذ رایج

پیش شرطهای انعطافپذیر

امنیت برنامه کاربردی، به امنیت دستگاه (jailbreak، پلتفرمهای مختلف، نسخه ها، واسط‌ها، MDM، و غیره) بستگی دارد.

مهاجمان مختلف (داخلی، خارجی، دسترسی به شبکه یا دستگاه، جعبه سفید/ جعبه سیاه، و غیره)

نتیجه: فرایند کلی (اجباری) و پشتیبانی از ابزارها و شیوه ها (اختیاری)

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

راهنمای تست امنیت موبایل

جمع آوری اطلاعات

سعی کنید تا جایی که ممکن است، اطلاعات مربوط به برنامه را بدست آورید

این امر شامل دو نوع تحلیل است

راهنمای تست امنیت موبایل

تفاوتها با فرآیند سنتی

تمرکز اصلی بر روی بخش معماری/ فنی

در نظر نگرفتن نیازمندی‌های خاص موبایل

تحلیل محیط

تمرکز برروی شرکت تولید کننده‌ برنامه کاربردی و مورد کسب و کار آن‌ها و ذی‌نفعان مربوطه

تحلیل فرآیندها و ساختارهای داخلی

تحلیل معماری

برنامه کاربردی (واسط‌های شبکه، داده های مورد استفاده، ارتباط با سایر منابع، مدیریت نشست (Session)، تشخیص jailbreak/rooting، ...)

محیط زمان اجرا (MDM، jailbreak/rooting، نسخه os)

سرویس‌های Backend (سرور برنامه کاربردی، پایگاه داده، فایروال، ...)

جمع آوری اطلاعات-مثال

مثال‌هایی از جمع آوری اطلاعات از طریق تحلیل معماری برنامه کاربردی CRM

برنامه کاربردی

Session کاربر تا زمانی که بصورت دستی log offکند، باقی میماند.

شامل تراکنش‌های مالی نمیشود.

برروی یک دستگاه jailbroken اجرا و منجر می شود به عدم تشخیص jailbroken.

عملیات را بر روی اطلاعات CRM سمت سرور، جهت ایجاد، خواندن، به روزرسانی، حذف تماس‌ها، مورد‌ها، فراخوانی‌ها و غیره فراهم می‌سازد.

تحلیل زمان اجرای محیط مناسب نیست چرا که برنامه کاربردی توسط تستر بر روی یک دستگاه اجرا می‌شود.

سرویسهای Backend

جزئیات در مورد نسخه سرویس در حال اجرای CRM

مدل سازی تهدید

شناسایی تهدیدهای برنامه کاربردی - تهدیدات خاص یا آماده (مانند OWASP Top 10)

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

نرخ ریسک- مانند نرخ ریسک OWASP

توسعه اقدامات مخالف- به عنوان مثال، با بهترین شیوه ها یا راهنمایی‌های توسعه‌دهندگان

تفاوت‌ها با فرآیند سنتی

بیشتر فرآیندهای تست نرم افزاری شامل مدلسازی تهدید نیستند

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

راهنمای تست امنیت موبایل

مدلسازی تهدید- مثال

مثال فرایند مدل سازی تهدید برای برنامه کاربردی CRM

آگاهی از طریق جمع آوری اطلاعات

برنامه کاربردی، عملیاتی بر روی اطلاعات CRM در سمت سرور انجام می‌دهد

تهدید خاص

خواندن غیرمجاز اطلااعات CRM بر روی ترافیک شبکه در هنگام برقراری ارتباط با پس‌زمینه CRM

در رابطه با اقدام مخالف

پیاده‌سازی حفاظت امن لایه انتقال (transport) (مانند SSL، TLS)

در رابطه با مورد آزمون

سعی کنید ترافیک شبکه میان برنامه کاربردی CRM و backend را بخوانید

تحلیل آسیب پذیری

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

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

راهنمای تست امنیت موبایل

تفاوت‌ها با فرآیند سنتی

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

روشهای ایستا

مهندسی معکوس

تحلیل کد منبع به صورت خودکار و دستی

گشت و گذار: ابزارهایی برای روشهای ایستا

مهندسی معکوس

اندروید: dex2jar، JD-GUI

iOS: otool، class-dump-z

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

اندروید: Androwarn، Andrubis، ApkAnalyser

iOS: Flawfinder، Clang Static Analyzer

روشهای پویا

تحلیل و مانیتورینگ منفعل (passive) شبکه

تحلیل ترافیک شبکه در مکانهای مختلف شبکه (در دستگاه، دروازه (gateway) و یا در خود VPN)

ضبط و دستکاری فعال (Active) شبکه (wifi و cellular)

مشکلات

برنامه های کاربردی بومی همیشه از تنظیمات پروکسی دستگاه استفاده نمیکنند.

اتصالات SSL رمزگذاری شده.

راهکارها

برنامه های ویژه ای که از تنظیمات پروکسی دستگاه استفاده میکنند یا اینکه اتصالات رمزگذاری شده SSL را قطع میکنند (عمدتا برای دستگاه‌های jailbroken یا rooted)

تحلیل زمان اجرا

با تحلیل فرآیند ارتباطاتی اجزای داخلی(اندروید: Intents و:iOS objc_msg calls)

دستکاری زمان اجرا

فراخوانی یا دستکاری توابع خاص

خواندن و نوشتن مقادیر متغیر

تحلیل فعالیت فایل

تحلیل تغییرات سیستم فایل در طی زمان اجرا

روشهای پویا-مثال برنامه کاربردی CRM

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

ابزارها: Wireshark، BurpSuite و ...

تأیید هویت کاربر میتواند از طریق دستکاری در زمان اجرا دور زده شود.

ابزارهای iOS: GNU debugger، Snoop-it، Cycript و ...

ابزارهای اندروید: Mercury، Intent Sniffer، Intent Fuzzer و ...

تحلیل فعالیت فایل نشان میدهد که اعتبار کاربر (نام کاربری و رمز عبور) در Keychain iOS ذخیره شده و از طریق آن نیز مورد استفاده قرار می‌گیرد.

ابزارهای iOS: filemon.iOS، Snoop-it

ابزارهای اندروید: androidAuditTools

روشهای قانونی

تحلیل TimeLine

تحلیل timestamp های ایجاد شده توسط سیستم فایل

تحلیل انواع مختلف فایل‌ها

پایگاه‌داده‌های SQLite

فایلهای log

کوکی‌ها

Screenshotها (iOS)

کَش صفحه کلید (iOS)

SharedPreferences (اندروید)

Keychain ‎(iOS)‎

روشهای قانونی - مثال برنامه کاربردی CRM

تحلیل TimeLine نشان میدهد که برنامه کاربردی در طی زمان اجرای خود، چندین فایل را به روز رسانی می‌کند (فایل *.plist و پایگاه داده)

ابزارها: mac-robber، mactime

تحلیل فایلهای شناسایی شده و انواع فایلهای استاندارد، نشان میدهد که اعتبار کاربر به صورت متن ساده در keychain iOS ذخیره میشود.

ابزارها: Keychain dumper، keychain viewer و ...

خلاصه:

راهنمای تست امنیت موبایل ...

ویژگیهای موبایل را در نظر می گیرد، اما مستقل از فناوری است.

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

یک رویکرد جامع با انعطاف پذیری مناسب است.

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




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

Jtest

Checkmarx

WebInspect


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


مراجع

[1]-Florian Stahl and Johannes Ströher, Security Testing Guidelines for mobile Apps

نوشتن دیدگاه

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