در حال بارگذاری ...
شنبه 25 اسفند 1403
nus.ac.ir

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

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

روش های تست
روش های تست مختلفی می تواند برای ارزیابی برنامه های کاربردی مورد استفاده قرار گیرد. از طریق این فرآیند ارزیابی برنامه ها، سازمان ها می توانند تصمیم بگیرند که آیا این برنامه ها می توانند الزامات امنیتی سازمان را برآورده کنند یا نمی توانند.
در هنگام فرآیند تست و ارزیابی تمامی لایه ها از جمله کلاینت، کد و واسط کاربری باید مورد ارزیابی قرار گیرد و تمامی لایه ها می تواند به طور بالقوه تحت تاثیر آسیب پذیری امنیتی قرار  داشته باشند.
روش های تست از جمله تست ایستای امنیت برنامه (SAST) و تست پویای امنیت برنامه (DAST) برای تست برنامه های کاربردی تلفن همراه مناسب هستند. روش های تست رفتاری و تجزیه و تحلیل اجرای برنامه نیز برای برنامه های کاربردی تلفن همراه استفاده می شوند و می توانند اطلاعات ارزشمندی را در اختیار سازمان ها قرار دهند.
برای فرآیند ارزیابی برنامه ها باید از چندین روش تست بهره برد زیرا هر روش تست ممکن است تمامی جنبه ها را در نظر نگیرد و تنها یک الزام خاص را مورد بررسی قرار دهد. برای داشتن یک ارزیابی موفق و موثر باید در ابزارهای تست به زمان و ملاحظات امنیتی توجه شود.
روش های تست می تواند شامل موارد زیر باشد:
·         تست صحت سنجی
·         تجزیه و تحلیل کد منبع و کد باینری
·         تجزیه و تحلیل پویا یا ایستا
·         تست دستی
·         تست خودکار
روش تست
عملکرد
زمان استفاده از تست
مزایا و معایب تست
تست صحت سنجی
اجرای برنامه ای برای یافتن خطاها
- برای قبول کیفیت برنامه
- برای ارزیابی استقلال برنامه
- برای تایید عملکرد برنامه
- برای کشف آسیب پذیری های امنیتی
این نوع تست معمولا خصوصیات یکتای برنامه را مورد ارزیابی قرار می دهد. برای یافتن آسیب پذیری هایی که ممکن است در یک برنامه خاص یافت شود استفاده از برنامه های پیشرفته تر تست نسبت به تست های عمومی که نتایج کلی دارند ارجحیت دارد.
تجزیه و تحلیل کد منبع و کد باینری
- تجزیه و تحلیل کد منبع یا کد باینری با استفاده از روش ها و ابزارهای مختلف.
- باز بینی فایل های کد به صورت دستی
- استفاده از ابزارهای خودکار تجزیه و تحلیل ایستا
- مهارت و دانش پیشرفته در خصوص امنیت برنامه برای استفاده از این نوع تست اهمیت بسزایی دارد.
- هنگامیکه کد منبع در دسترس است و برای بازبینی کد منبع و یافتن آسیب پذیری های امنیتی موجود در کد منبع.
- هنگامیکه برنامه منبع باز است.
- به منظور تجزیه و تحلیل نتایج
- ابزارهای متعددی می تواند مورد استفاده قرار گیرد.
 
تجزیه و تحلیل ایستا
 
- بازرسی کد
- در صورت عدم دسترسی به کد، اغلب مهندسی معکوس استفاده می شود.
- تجزیه و تحلیل رفتار برنامه
 
- برای در نظر گرفتن تمامی سناریوهای بالقوه که ممکن است هنگام اجرا برنامه به وقوع بپیوندد.
- برای تجزیه و تحلیل رفتار برنامه و جستجوی هر ضعف قابل سوء استفاده ای
- تضمین درستی می دهد که برنامه چگونه صرف نظر از ورودی یا محیطی که در آن اجرا می شود رفتار می کند
- مهندسی معکوس کد می تواند بسته به نوع کد پیچیده باشد
- مهندسی معکوس بسیار مفید است و به افراد اجازه می دهد تا کد را بازبینی کنند
تجزیه و تحلیل پویا
- تجزیه و تحلیل ورودی
- در نظر گرفتن موارد استفاده مناسب از طریق ورودی های مختلف و تجزیه و تحلیل رفتار برنامه در مواجه شدن با این ورودی ها
- استفاده از نمونه ساز یا اجرای برناهه یا هر دو
برای مشاهده کارکرد کدی که اجرا می شود
- وقت گیر بودن به دلیل سناریوهای ورودی متعدد بالقوه
- دقت این روش مشکوک است زیرا ضمینی وجود ندارد که تمامی سناریوهای ممکن بررسی شده است و تجزیه و تحلیل کامل کد امکانپذیر نیست.
- برای کاهش نتیج مثبت کاذب استفاده از نمونه ساز و دستگاه های فیزیکی لازم است
تست دستی
 
تست برای یافتن آسیب پذیری برنامه ها با ورودی دستی و تجزیه و تحلیل فردی
تست دستی برنامه برای یافتن آسیب پذیری ها
- وقت گیر بودن
- نیازمند نیروهای بسیار متخصص و ماهر
تست خودکار
- تست برای یافتن آسیب پذیری برنامه
- استفاده از شبیه ساز یا دسترسی راه دور به دستگاه
- انواع ابزارها شامل موارد زیر است:
ابزار تست Data-driven
ابزارهای تستinterface-driven کاربر
ابزارهای Fuzzing
ابزارهایFault injection
ابزارهای تست شبکه
ابزارهای تست نفوذ
برای تست برنامه و یافتن آسیب پذیری ها از ابزارهای مختلف خودکار استفاده می شود
- دریافت گزارش و ارزیابی خطر
-
 
پس از انتخاب ابزارهای مناسب ارزیابی و تست برنامه کاربردی و جمع آوری نتایج حاصل از آن باید این نتایج را نگهداری کنید. توصیه می شود تا این نتایج از طریق یک نرم افزار پایگاه داده جامع به اشتراک گذارده شود. بدین ترتیب متخصصان امنیت و سازمان ها می توانند از تلاش های صورت گرفته استفاده کنند و در زمان و هزینه صرفه جویی شود.
گزارش نتایج حاصله و ارزیابی خطر بسیار حیاتی است. نتایج باید مستقیما و به راحتی در اختیار متخصصان ارزیابی قرار گیرد تا بررسی شوند.
قبول شدن یا رد شدن برنامه کاربردی
باید رویه ای پیش از ارزیابی برنامه برای مدیریت یک برنامه مورد پذیرش واقع شده یا رد شده تنظیم شود. این مساله باید به عنوان بخشی از رویه های خط مشی سازمان برای امنیت برنامه کاربردی در نظر گرفته شود. این مساله از آن جهت ضرورت دارد تا بتوان قدم بعدی در مواجه با پذیرش برنامه یا رد آن را دانست و بتوان در صورت پذیرش برنامه را نصب و در غیراینصورت آن را از روی سیستم ها حذف نمود.
بازرس (توصیه می شود تا بیش از یک بازرس نتایج را ارزیابی کند) باید نتایج بدست آمده از گزارش ارزیابی و سطح ریسک استفاد از برنامه را به صورت قطعی بررسی کند  و باید با در نظر گرفتن عملکرد سازمان و الزامات امنیتی آن نتیجه قطعی خود را در خصوص پذیرش یا رد برنامه اعلام کند.
فرد ارزیاب باید با استفاده و رعایت ملاحظات زیر تصمیم خود را اعلام کند:
·         در صورت پذیرش برنامه و استفاده از آن باید سطح ریسک برنامه در نظر گرفته شود.
·         وضع امنیت برنامه
·         آستانه ریسک سازمان
·         الزامات ارزیابی سازمان
·         گزارش ها و ارزیابی ریسک خروجی تست برنامه
·         نوع داده ای که پردازش می شود
·         میزان حیاتی بودن برنامه برای سازمان
·         کسانی که از برنامه استفاده خواهند کرد
·         محیطی که برنامه قرار است در آن اجرا یا مستقر شود و نوع سخت افزاری که مورد نیاز است.
·         اسناد برنامه و توافقات سطح سرویس
در نهایت این سازمان است که باید با توجه به نتایج بدست آمده برنامه را مورد پذیرش قرار دهد یا آن را رد کند. گروه یا افرادی که در سازمان مسئول ارزیابی برنامه ها هستند باید این توصیه ها را با کسب و کارهای دیگری که ممکن است از این برنامه ها استفاده کنند به اشتراک بگذارد.
رویه های پیاده سازی یا حذف برنامه بسته به پذیرش یا رد برنامه باید اجرا شده و مورد قبول کل سازمان واقع شود.
 
مطالب مرتبط:
 
 
 
منابع: