تست امنیت اپلیکیشن های موبایل فرآیند بررسی برنامه و شناسایی کدهای آسیب پذیر است. در میان همه چیزهای خوبی که در دنیای اپلیکیشن های موبایل وجود دارد، گروه بزرگی از هکرها نیز در حال بررسی این فضاها هستند. هکرها از روش های جدیدتری برای ورود به موبایل ها استفاده می کنند. بنابراین توسعه دهندگان اپلیکیشن ها باید جانب احتیاط بیشتری را رعایت کنند.
اپلیکیشن های موبایل زمانی مستعد حمله می شوند که :
- نقص های امنیتی از مرحله تولید وجود داشته باشد.
- یک برنامه مجزا در پس زمینه اپلیکیشن ها اجرا شود و اقدامات مخربی را انجام دهد.
سازمان OWASP که مخفف Open Web Application Security Project است، در زمینه بهبود امنیت اپلیکیشن های موبایل فعالیت می کند. این سازمان موارد مورد نیاز برای برطرف کردن مشکلات امنیتی اپلیکیشن ها را معرفی می کند.
ده خطر مهم از نظر OWASP
این ده خطر لیستی از آسیب پذیری های است که در بوجود آمدن مشکلات امنیتی اپلیکیشن ها نقش دارند.
- ذخیره اطلاعات ناامن
- ضعف امنیتی از طرف سرور
- نقص در بخش انتقال اطلاعات
- نفوذ از سمت کاربر
- پسوردهای ضعیف
- برقراری ارتباط ناایمن
- امنیت در هر دو طرف برنامه
- نشت جانبی داده ها
- شکسته شدن رمزهای ورود
- افشای اطلاعات حساس
ذخیره اطلاعات ناامن
همانطور که از نام آن پیداست، به معنای ذخیره نامناسب اطلاعات است. اپلیکیشن های موبایل نباید هیچ نوع داده های را روی دستگاه های موبایل ذخیره کنند. باتوجه به گفته های OWASP:
” زمانی ذخیره اطلاعات ناامن رخ می دهد که نویسندگان اپلیکیشن ها تصور می کنند که کاربران به فایل های سیستمی موبایل دسترسی ندارند. در حالی که این فایل های سیستمی به راحتی قابل دسترس هستند و هکرها خیلی ساده می توانند به آنها نفوذ کنند. به راحتی می توان با اتصال گوشی موبایل به کامپیوتر این فایل های سیستمی را دید”
ضعف امنیتی از طرف سرور
اپلیکیشن های موبایل برای اجرا شدن نیاز به یک سرور دارند. اگر سرورهای مناسبی برای پشتیبانی اپلیکیشن تهیه نشود، سرور مستعد حمله است. که باعث ایجاد مشکلاتی زیادی برای کابران می شود.
نقص در بخش انتقال اطلاعات
مهمترین بخش در اپلیکیشن ها سیستم انتقال اطلاعات است. در هنگام تبادل اطلاعات که از طریق اینترنت صورت می گیرد، در صورت ناامن بود این انتقال امکان هک شدن اطلاعات توسط هکرها وجود دارد. (مثل فعال نبودن SSL). بهترین راهکار برای حفظ امنیت انتقال اطلاعات رمزگذاری آنهاست مخصوصن زمانی که قرار است نام کاربری، رمز و یا اطلاعات کارت بانکی وارد شود.
نفوذ از سمت کاربر
نفوذ از طرف کاربر به آسیب پذیر بودن اپلیکیشن اشاره می کند. حافظه های داخلی گوشی های موبایل هدف اصلی این نوع نفوذ ها هستند. اگر که اپلیکیشن توانایی ورود چندکاربره داشته باشد، حمله به پایگاه دادها یا SQL به سادگی اتفاق می افتد. به عنوان مثال، یک گوشی مشترک ممکن است بیش از یک حساب کاربری در پایگاه داده داشته باشد، که در صورت به هک شدن یک حساب ممکن است سایر حساب های کاربری نیز در معرض خطر قرار بگیرند.
پسوردهای ضعیف
احراز هویت به مجوزهای اعطا شده به کاربر برای استفاده از خدمات اپلیکیشن اطلاق می شود. اگر که این احراز هویت با پسوردهای ضعیف صورت بگیرد امکان نفوذ هکرها به سیستم پایگاه داده را فراهم می کنند. در زمان نوشتن برنامه برای اطمینان از عدم دسترسی کاربران غیرمجاز به سیستم، باید از سیستم احراز هویت های دقیق و مناسبی استفاده شود.
نشست ناایمن اطلاعات
تبادل اطلاعات در برنامه های موبایل خیلی بیشتر از برنامه های تحت وب است. عدم اجرای درست فرایند نشست و شناسایی نشست ها می تواند عامل هک شدن باشند. در بعضی از مواقع اپلیکیشن، شناسه دستگاه موبایل را به عنوان عامل شناسایی معرفی می کند. ولی مشاهده شده که شناسه گوشی موبایل توسط نرم افزارهای دیگری جعل شده است. منظور از نشست یعنی نگهداری اطلاعات کاربر برای مدت مشخصی بر روی اپلیکیشن.
امنیت در هر دو طرف برنامه
تتضیمات امنیتی ایجاد شده در یک اپلیکیشن نباید فقط به ورودی های کاربر وابسته باشد. اگر که این تنظیمات فقط در ناحیه کاربر صورت بگیرد مشکلات بسیار زیادی را برای سرور و پایگاه داده ایجاد می کند. در این مورد باید هر دو سمت مورد آزمایش قرار بگیرد هم بخش کاربر و هم بخش سرور.
نشت جانبی داده ها
نشت جانبی داده ها به محدوده بزرگی از اطلاعات مربوط می شود. این نشت می تواند شامل میزان مصرف باتری، زمان شارژ شدن گوشی موبایل و یا میزان و مدت زمان مصرف اینترنت را شامل شود. این اطلاعات ممکن است به هکرها برای تعیین برنامه زمانی حمله کمک کند.
شکسته شدن رمزهای ورود
رمزنگاری هنر محافظت از اطلاعات با تبدیل آن به قالبی ناخوانا است. متن رمز ممکن است مشابه متن اصلی نباشد. اما متن اصلی را می توان از روی متن رمزگذاری شده، رمزگشایی کرد. برای اطمینان از اینکه اپلیکیشن داده های کاربر را به صورت ایمن ذخیره می کنند، باید از فرایند رمزنگاری در برنامه ها استفاده شود. این رمزنگاری زمانی اجرا می شود که اپلیکیشن نمی تواند امنیت مناسب داده ها را تامین کند.
شکسته شدن رمزها به دو دلیل است:
- پیاده سازی ناقص الگوریتم ها، ممکن است نویسنده برنامه از الگوریتم های برای امنیت پایگاه داده استفاده کند که به صورت کامل نصب یا پیاده سازی نشده باشد.
- استفاده از الگوریتم های ضعیف، نویسنده از الگوریتم های ضعیف به جای الگوریتم های قوی استفاده کند. این الگوریتم ها به سادگی قابل شکستن و رمزگشایی هستند.
افشای اطلاعات حساس
افشای اطلاعات حساس به داده های مثل رمز عبور و یا اطلاعات کارت بانکی اطلاق می شود. برنامه های موبایل را می توان با اجرای مهندسی معکوس دوباره تولید کرد. با این روش هکرها به اطلاعات حساس کدگذاری شده دسترسی پیدا می کنند و امنیت اپلیکیشن های موبایل را تهدید می کنند.