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

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

مسئاله امنیت در اپلیکیشن های موبایل هنوز هم دارای مشکلاتی بوده و نمی توان از امنیت کامل اپلیکیشن ها مطمئن بود، مبنی بر مطالعات (Hewlett Packard Enterprise (HPE در سال 2016، میزان 96 درصد از 36000 اپلیکیشن موبایل حداقل در یکی از 10 مورد مرتبط با حریم خصوصی و امنیت مشکل دارند. سال ها پیش مطالعات مشابه از سوی HPE میزان 97 درصد را برای 2000 اپلیکیشن به ثبت رسانید.

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

blog_18099_1

1. کامپوننت های سمت سرور

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

(Open Web Application Security Project (OWASP مجموعه ای آنلاین از مقالات، متدولوژی ها، مستندات، ابزارها و تکنولوژی ها در زمینه امنیت وب اپلیکیشن می باشد و برجسته ترین آسیب پذیری های اپلیکیشن های موبایل را فهرست نموده است.

آسیب پذیری های دربرگرفته شده در این دسته بندی شامل Cross-Site Scripting، احراز هویت ضعیف، حملات به سبک تزریقی و CSRF می باشند.

نحوه جلوگیری

ایمن کردن APIها و سرویس های وب نیازمند دانشی از امنیت وب اپلیکیشن است و باید از روش های امن برنامه نویسی وب اطلاع کامل داشته باشید، چرا که این شیوه ها ریسک آسیب بر روی سرور را کاسته و در برخی شرایط از بین می برند. با کمک وب سایت https://www.owasp.org قادر به تحقیق درباره این آسیب پذیری ها و استراتژی های کاهش خطر می باشید. ابزارهای تحلیل کد استاتیک نیز بسیاری از آسیب پذیری های امنیتی رایج را تشخیص می دهند، از این رو لازم است تا در چرخه حیات توسعه این ابزارها را نیز مورد استفاده قرار داد.

2. حفاظت از ترافیک شبکه

در شرایطی که ترافیک شبکه ارسال شده از سوی اپلیکیشن موبایل رمزگذاری نشده باشد، حتی با وجود سرور امن نیز احتمال session hijacking ،CSRF و حملات man in the middle وجود دارد. این نوع از حملات ممکن است در هر جایی مانند شبکه حامل و یا وای فای رایگان در یک کافی شاپ که گوشی موبایل در حال تبادل داده است به وقوع بپیوندند. حمله کننده تنها به یک access point نیاز دارد تا در هر بسته ارسال شده و دریافت شده از اپلیکیشن تداخل ایجاد نماید.

نحوه جلوگیری

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

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

3. نشتی داده

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

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

نحوه پیشگیری

مدیریت ذخیره سازی داده در انواع گوشی ها متفاوت می باشد، از این رو لازم است تا توسعه دهندگان از نحوه ذخیره سازی، کش و در دسترس قرار گرفتن داده ها اطلاع داشته باشند، این موضوع نه تنها برای هر گوشی منحصر به فرد لازم است بلکه برای هر فریم ورک توسعه نیز ضروری می باشد. انواع نشتی های داده های رایج شامل ثبت رویدادها و داده ها، بافرهای کپی و الحاق، کش HTTP، حافظه محلی و session در HTML5 و کوکی ها می باشد.

4. عدم وجود حفاظت باینری

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

نحوه پیشگیری

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

5. احراز هویت ناامن

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

نحوه پیشگیری

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

جمع بندی

تمامی ترفندهایی اشاره شده در این مقاله به شما در پیاده سازی یک اپلیکیشن موبایل با امینت قابل توجه یاری می رساند، تنها نکته این است که باید تمامی ترفندها را با جزئیات و به صورت دقیق در اپلیکیشن پیاده سازی نمایید.

 

https://appdevelopermagazine.com برگرفته از

اینها را هم بخوانید