موبایل

معرفی

طبق گزارش‌های منتشرشده توسط We Are Social و Hoot suite در ژانویه ۲۰۱۸ تعداد کاربران اینترنت حال حاضر جهان به بیش از ۴ میلیارد نفر رسیده است. بنابراین بیش از نیمی از جمعیت جهان آنلاین هستند. نکته جالب‌توجه این است که ۵۲ درصد از جمعیت آنلاین جهان از دستگاه‌های موبایل هوشمند بدین منظور استفاده می‌کنند. بنابراین موبایل‌ها و نرم‌افزارهای موبایل امروزه نقش مهمی در زندگی انسان‌ها دارد.

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

اهمیت ارزیابی امنیتی نرم‌افزارهای موبایل

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

در این راستا مرکز پژوهشی آپای دانشگاه امیرکبیر اقدام به تأسیس گروه تخصصی ارزیابی امنیتی نرم‌افزارهای موبایل کرده است.  همکاران این گروه از اساتید و فارغ‌التحصیلان رشته امنیت فناوری اطلاعات دانشگاه صنعتی امیرکبیر هستند. در این مستند جزئیات فنی این خدمت شرح داده می‌شود.

موارد ارزیابی امنیتی و آزمون نفوذ نرم‌افزار موبایل تحت اندروید

اندروید

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

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

موارد آزمون عمومی

۱) ارزیابی مبهم سازی کد

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

مبهم سازی کد۲) بررسی وجود کد مخرب در فایل APK نرم‌افزار

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

APK۳) بررسی مجوزهای نرم‌افزار

مجوزها  در اندروید دارای دو سطح امنیتی معمولی  و خطرناک است. مجوزهای خطرناک به اطلاعات خصوصی دسترسی دارند و ممکن است اثری بر روی امنیت و اطلاعات خصوصی کاربر بگذارند. بنابراین مجوزهای تعیین‌شده برای نرم‌افزار نسبت به هدف و عملکرد نرم‌افزار سنجیده می‌شود.

مجوز۴) بررسی ترافیک شبکه نرم‌افزار

در این بخش ابتدا بسته‌های ارسالی و دریافتی نرم‌افزار موبایل جمع‌آوری  و سپس ارتباطات از لحاظ امنیت موردبررسی قرار خواهد گرفت.

ترافیک۵) ارزیابی پیکربندی ایمن پروتکل SSL/TLS

در حال حاضر مهم‌ترین پروتکل رمزنگاری که در سطح اینترنت برای رمزنگاری داده‌های لایه کاربرد و تأمین امنیت ارتباطات استفاده می‌شود، پروتکل SSL/TLS است. ‌پیاده‌سازی و استفاده ایمن از این پروتکل دارای جزئیات فنی متعددی است که می‌بایست به‌درستی رعایت شود. در صورت عدم رعایت ملاحظات و نکات امنیتی در پیاده‌سازی این پروتکل، محرمانگی و یکپارچگی داده‌های مبادله شده به خطر می‌افتد. در این بررسی پیکربندی این پروتکل در نرم‌افزار موردبررسی ارزیابی می‌گردد.

۶) بررسی حمله مردی در میان

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

مردی در میان۷) بررسی اطلاعات نشت شده در لاگ‌ها

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

لاگ‌ها ۸) بررسی پایگاه داده نرم‌افزار

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

پایگاه داده نرم‌افزار۹) بررسی sslpinning

به‌منظور جلوگیری از حملات مردی در میان نرم‌افزارهای موبایل می‌توانند از certificate pinning استفاده کنند. در این روش اطلاعات گواهینامه به‌صورت یک فایل در نرم‌افزار hardcode می‌شود. برنامه در تمام ارتباطات، انطباق گواهینامه دریافت شده از سرور با گواهینامه هاردکد شده را بررسی می‌کند. درنتیجه حتی اگر گواهینامه معتبری از سوی سرور ارائه شود، با توجه به این‌که با گواهینامه هاردکد شده همخوانی ندارد، امکان برقراری ارتباط را نخواهد داد. در این بررسی وجود و یا عدم وجود sslpinning و صحت و درستی عملکرد آن موردبررسی قرار می‌گیرد.

sslpinning۱۰) انجام بررسی‌های سمت سرویس‌دهنده

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

عنوان آزمون جزئیات
بررسی وجود مکانیزم‌های امن برای تصدیق اصالت
  • بررسی امنیتی پروتکل Authentication مورداستفاده
  • بررسی ذخیره‌سازی ایمن کلمات عبور در پایگاه داده
  • بررسی ایمنی الگوریتم‌های Hash و رمزنگاری متقارن یا نامتقارن مورداستفاده
  • بررسی خط‌مشی امنیتی در رابطه با کلمات عبور
  • بررسی خط‌مشی امنیتی در رابطه با Access Control
  • بررسی خط‌مشی امنیتی در رابطه با Authorization
بررسی وجود و درستی مکانیزم‌های Input Validation برای مقابله با حملات IVA
  • بررسی ایمنی از لحاظ حمله SQL Injection
  • بررسی ایمنی از لحاظ حمله Cross Site Scripting
  • بررسی سایر حملات IVA شامل LDAP Injection ،XPath Injection و Command Execution
بررسی ایمنی مدیریت خطاها و سیستم ثبت وقایع
  • بررسی نحوه Exception Handling در نرم‌افزار و نشت اطلاعات به کاربر
  • بررسی وجود مکانیزم Logging و ثبت وقایع برای رخدادهای مهم در سیستم
بررسی امنیت مدیریت نشست (Session management)
  • Bind کردن آدرس IP به Session برای افزایش امنیت
  • Timeoutهای درست
  • بررسی مدیریت درست نشست در هنگام کار با صفحات مختلف (Back-Next)
بررسی شبکه
  • معماری ایمن شبکه(تعریف درست Zoneها و قواعد دسترسی با توجه به تهدیدات موجود)
  • پیکربندی درست دیواره آتش
  • ایمن بودن تجهیزات شبکه (کلمه عبور، Update بودن و غیره)
بررسی پایگاه داده
  • مکانیزم Authentication مناسب
  • تعریف درست مجوزها و کاربران در داخل DBMS
  • ارتباط امن نرم‌افزار با DBMS
  • بررسی آسیب‌پذیری‌ها و امکان Exploit آن‌ها
بررسی سیستم‌عامل
  • بررسی کلیه‌ی آسیب‌پذیری‌های شناخته شده در هر سیستم‌عامل
  • بررسی Minimize بودن سیستم‌ها
  • بررسی ایمن بودن کلمات عبور
  • سایر کنترل‌های امنیتی تا حد زیادی وابسته به نوع سیستم‌عامل‌هاست

موارد آزمون اختصاصی 

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

۱) بررسی پیام‌های کوتاه دریافتی و ارسالی نرم‌افزار

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

۲) ارزیابی امنیتی بخش ثبت‎‌نام و ورود به نرم‌افزار

به‌عنوان مثالی دیگر درصورتی‌که به‌منظور کار با نرم‌افزار نیاز باشد تا ابتدا مراحل ثبت‌نام انجام شود نیاز است تا این مراحل ازلحاظ امنیتی موردبررسی قرار گیرد.

۳) بررسی امنیت کد فعال‌سازی

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

۴) ارزیابی موارد امنیتی مربوط به تراکنش‌های پولی و بانکی

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

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

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