12 نکته برای ایمن کردن برنامه موبایل خود از هوش داده PlatoBlockchain. جستجوی عمودی Ai.

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

حملات سایبری و سرقت داده ها این روزها بسیار رایج شده است، به خصوص در مورد برنامه های تلفن همراه. در نتیجه، برنامه‌های موبایلی که با نقض امنیت مواجه می‌شوند ممکن است متحمل ضرر مالی شوند. با توجه به اینکه بسیاری از هکرها به سرقت اطلاعات مشتریان چشم دوخته اند، ایمن سازی این برنامه ها به اولویت شماره یک سازمان ها و چالشی جدی برای توسعه دهندگان تبدیل شده است. طبق تحقیقات اخیر گارتنر، چرخه هایپ برای امنیت برنامهسرمایه گذاری در امنیت برنامه ها طی چند سال آینده بیش از دو برابر افزایش می یابد، از 6 میلیارد دلار در سال جاری به 13.7 میلیارد دلار تا سال 2026. علاوه بر این، در این گزارش آمده است: "امنیت برنامه اکنون برای توسعه دهندگان و امنیت در درجه اول اهمیت قرار دارد. حرفه‌ای‌ها، و اکنون تاکید بر روی برنامه‌هایی است که در ابرهای عمومی میزبانی می‌شوند.» این مهم است که مؤلفه‌های اساسی امنیت DevOps را به درستی انجام دهیم. در اینجا 12 نکته برای ایمن سازی برنامه تلفن همراه شما آورده شده است: 

1. برنامه ها را از منابع قابل اعتماد نصب کنید:

معمول است که برنامه های Android در بازارهای جایگزین بازنشر می شوند یا APK و IPA آنها برای دانلود در دسترس قرار می گیرند. هر دو APK و IPA ممکن است از مکان‌های مختلفی دانلود و نصب شوند، از جمله وب‌سایت‌ها، سرویس‌های ابری، درایوها، رسانه‌های اجتماعی و شبکه‌های اجتماعی. فقط Play Store و App Store باید مجاز به نصب فایل‌های APK و IPA قابل اعتماد باشند. برای جلوگیری از استفاده از این برنامه‌ها، هنگام شروع برنامه، باید یک تشخیص منبع (فروشگاه Play یا App Store) داشته باشیم.

همچنین بخوانید ، https://andresand.medium.com/add-method-to-check-which-app-store-the-android-app-is-installed-from-or-if-its-sideloaded-c9f450a3d069

2. تشخیص ریشه:

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

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

اطلاعات بیشتر در مورد شناسایی ریشه https://owasp.org/www-project-mobile-top-10/2016-risks/m8-code-tampering

3. ذخیره سازی داده ها:

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

4. کلیدهای مخفی ایمن:

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

اینجا یک لینک مرجع است: https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

5. کد مبهم

مهاجم ممکن است فایل APK را دیکامپایل کند و کد منبع برنامه را استخراج کند. این ممکن است اطلاعات حساس ذخیره شده در کد منبع برنامه را در معرض مهاجم قرار دهد که ممکن است برای انجام حملات سفارشی استفاده شود. 

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

6. ارتباط امن:

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

7. پین کردن SSL:

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

لطفا مراجعه کنید: 

https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning

8. اطلاعات درخواست و پاسخ API ایمن

روش استاندارد استفاده از HTTPS برای حفاظت از خط پایه تماس های REST API است. اطلاعات ارسال شده به سرور یا دریافت شده از سرور ممکن است بیشتر با AES رمزگذاری شوند، و غیره. برای مثال، اگر محتویات حساسی وجود دارد، ممکن است آنهایی را برای رمزگذاری انتخاب کنید تا حتی اگر HTTPS به نحوی شکسته شده باشد یا پیکربندی اشتباهی داشته باشد، شما یک لایه دیگر از محافظت در برابر رمزگذاری خود داشته باشید.

9. احراز هویت امن اپلیکیشن موبایل:

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

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

ii) طول عمر جلسه را بلافاصله پس از خروج از سیستم خاتمه دهید. 

iii) از یک نشانه جلسه برای دو یا چند آدرس IP استفاده نکنید. 

iv) زمان انقضا را برای هر نشانه جلسه محدود کنید.

10. Allow Backup 

در صورتی که از یک برنامه حاوی داده های حساسی است، به کاربران اجازه ی نسخه پشتیبان نگیرید. با دسترسی به فایل‌های پشتیبان (یعنی زمانی که android:allowBackup=”true”) دسترسی داشته باشید، می‌توانید محتوای یک برنامه را حتی در یک دستگاه غیر روت شده تغییر دهید/ بخوانید. بنابراین توصیه می‌شود که اجازه پشتیبان‌گیری را false کنید. 

11. دسترسی به صفحه نمایش برنامه های اندروید را از سایر برنامه ها محدود کنید

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

12. نصب بسته ها از برنامه اندروید را محدود کنید

REQUEST_INSTALL_PACKAGES مجوز به برنامه ها اجازه می دهد بسته های جدید را روی دستگاه کاربر نصب کنید. ما متعهد به جلوگیری از سوء استفاده در پلتفرم Android و محافظت از کاربران در برابر برنامه‌هایی هستیم که با استفاده از هر روشی غیر از مکانیسم به‌روزرسانی Google Play یا دانلود فایل‌های APK مضر، خودبه‌روزرسانی می‌شوند.

نتیجه: 

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

درباره نویسنده:

Raviteja Aketi یک مهندس نرم افزار ارشد در Mantra Labs است. او تجربه زیادی در پروژه های B2B دارد. Raviteja عاشق کشف فناوری های جدید، تماشای فیلم و گذراندن وقت با خانواده و دوستان است.

آخرین وبلاگ ما را بخوانید: پیاده سازی یک معماری پاک با Nest.JS

دانشی که ارزش ارائه را در صندوق ورودی شما دارد

تمبر زمان:

بیشتر از آزمایشگاه های مانترا