از دسترسی به میکروفون، دوربین، و مکان دستگاه کاربر گرفته تا ساختن شبیهسازی برنامههای کاربردی متقاعدکننده، سیستمهای متعددی وجود دارد که برنامهنویسان برای دسترسی و بهرهبرداری از دادههای شخصی کاربران برنامههای تلفن همراه ناآگاه از آن استفاده میکنند.
در زیر برخی از تهدیدات امنیتی مهم برنامه های تلفن همراه آورده شده است که باید در مورد آنها بدانید.
1. عدم احراز هویت چند عاملی
بسیاری از ما از استفاده از رمز عبور ناامن یکسان در چندین حساب راضی نیستیم. حالا تعداد کاربرانی که دارید را در نظر بگیرید. صرف نظر از اینکه رمز عبور کاربر از طریق شکست در یک سازمان دیگر به خطر افتاده است، برنامه نویسان اغلب رمزهای عبور را روی برنامه های دیگر آزمایش می کنند که می تواند منجر به حمله به سازمان شما شود.
احراز هویت چند عاملی، که اغلب از دو عنصر از سه عنصر بالقوه تأیید استفاده می کند، قبل از اطمینان از هویت کاربر، کاملاً به رمز عبور کاربر بستگی ندارد. این لایه اضافی از احراز هویت میتواند پاسخ به یک درخواست شخصی، یک کد تأیید پیامکی برای گنجاندن، یا احراز هویت بیومتریک (اثر انگشت، شبکیه چشم و غیره) باشد.
2. عدم رمزگذاری صحیح
رمزگذاری راهی برای تبدیل اطلاعات به یک کد غیرقابل کشف است که ترجیحاً پس از ترجمه مجدد با استفاده از کلید مخفی قابل مشاهده است. به این ترتیب، رمزگذاری توالی قفل ترکیبی را تغییر می دهد، با این حال، محتاط باشید، برنامه نویسان در انتخاب قفل مهارت دارند.
همانطور که توسط سیمانتک نشان داده شده است، 13.4 درصد از دستگاه های خریدار و 10.5 درصد از دستگاه های بزرگ سازمانی رمزگذاری فعال ندارند. این بدان معناست که اگر برنامه نویسان به آن دستگاه ها دسترسی داشته باشند، اطلاعات شخصی به صورت متن ساده قابل دسترسی خواهند بود.
متأسفانه، شرکت های نرم افزاری که از رمزگذاری استفاده می کنند، از اشتباه مصون نیستند. توسعه دهندگان انسان هستند و مرتکب خطاهایی می شوند که برنامه نویسان می توانند از آنها سوء استفاده کنند. با توجه به رمزگذاری، مهم است که ارزیابی کنید که شکستن کد برنامه شما چقدر ساده است.
این آسیب پذیری امنیتی رایج می تواند پیامدهای جدی از جمله سرقت نوآوری محافظت شده، سرقت کد، نقض حریم خصوصی و آسیب به اعتبار داشته باشد.
3. مهندسی معکوس
ایده برنامه نویسی برنامه های متعددی را به روی تهدید مهندسی معکوس باز می کند. مقدار مناسبی از ابرداده داده شده در کد در نظر گرفته شده برای اشکال زدایی نیز به مهاجم کمک می کند تا نحوه عملکرد یک برنامه را درک کند.
از مهندسی معکوس می توان برای آشکار کردن نحوه عملکرد برنامه در قسمت پشتی، نشان دادن الگوریتم های رمزگذاری، تغییر کد منبع و موارد دیگر استفاده کرد. کد شما می تواند علیه شما استفاده شود و راه را برای هکرها هموار کند.
4. قرار گرفتن در معرض تزریق کد مخرب
محتوای تولید شده توسط کاربر، شبیه به فرم ها و محتواها، اغلب می تواند به دلیل تهدید مورد انتظار برای امنیت برنامه های تلفن همراه نادیده گرفته شود.
برای مثال باید از ساختار ورود استفاده کنیم. هنگامی که کاربر نام کاربری و رمز عبور خود را وارد می کند، برنامه با داده های سمت سرور برای احراز هویت صحبت می کند. برنامههایی که کاراکترهایی را که کاربر میتواند به طور مؤثر وارد کند، محدود نمیکنند، خطر تزریق کد توسط هکرها برای دسترسی به سرور را دارند.
اگر یک کاربر مخرب خطی از جاوا اسکریپت را در ساختار ورود وارد کند که در برابر کاراکترهایی مانند علامت معادل یا دو نقطه محافظت نمی کند، بدون شک می تواند به اطلاعات خصوصی دسترسی پیدا کند.
5. ذخیره اطلاعات
ذخیره سازی ناامن داده می تواند در مکان های متعددی در داخل برنامه شما رخ دهد. این شامل پایگاه های داده SQL, فروشگاه های کوکی، ذخیره سازی داده های باینری و موارد دیگر.
اگر یک هکر به یک دستگاه یا پایگاه داده دسترسی پیدا کند، می تواند برنامه معتبر را به اطلاعات قیف به ماشین های خود تغییر دهد.
حتی اوراق بهادار رمزگذاری مدرن نیز زمانی که دستگاهی جیلبریک یا راهاندازی میشود، بیفایده تحویل داده میشوند، که به هکرها اجازه میدهد محدودیتهای سیستم عامل را دور بزنند و رمزگذاری را دور بزنند.
معمولاً ذخیرهسازی ناامن داده به دلیل عدم وجود فرآیندهایی برای مقابله با حافظه پنهان دادهها، تصاویر و فشار دادن کلید ایجاد میشود.
موثرترین روش برای محافظت از موبایل شما
صرف نظر از نبرد مداوم برای تحت کنترل نگه داشتن هکرها، برخی رشته های رایج از بهترین شیوه های امنیتی وجود دارد که شرکت های بزرگ موبایل را تضمین می کند.
بهترین شیوه های امنیت اپلیکیشن موبایل
1. از احراز هویت سمت سرور استفاده کنید
در دنیایی عالی، درخواستهای احراز هویت چندعاملی در سمت سرور مجاز هستند و مجوز فقط در دسترس موفقیت آمیز است. اگر برنامه شما انتظار دارد داده ها در سمت سرویس گیرنده ذخیره شده و در دستگاه قابل دسترسی باشد، مطمئن شوید که داده های رمزگذاری شده تنها زمانی قابل دسترسی هستند که اعتبارنامه ها با موفقیت تأیید شوند.
2. از الگوریتم های رمزنگاری و مدیریت کلید استفاده کنید
یکی از راهبردهای مبارزه با شکست های مربوط به رمزگذاری این است که سعی کنید داده های حساس را روی تلفن همراه ذخیره نکنید. این شامل کلیدها و گذرواژههای رمزگذاریشده میشود که میتوانند در متن ساده قابل دسترسی باشند یا توسط مهاجم برای دسترسی به سرور استفاده شوند.
3. مطمئن شوید که همه ورودی های کاربر با استانداردهای چک مطابقت دارند
هکرها هنگام آزمایش تایید اطلاعات شما تیزبین هستند. آنها برنامه شما را برای هرگونه احتمالی برای تأیید اطلاعات تحریف شده بررسی می کنند.
اعتبار سنجی ورودی روشی است که تضمین می کند فقط اطلاعاتی که عادی هستند از طریق یک فیلد ورودی عبور کنند. به عنوان مثال، هنگام آپلود یک تصویر، فایل باید پسوندی داشته باشد که با پسوندهای استاندارد فایل تصویر مطابقت داشته باشد و باید اندازه معقولی داشته باشد.
4. ساخت مدل های تهدید برای دفاع از داده ها
مدلسازی تهدید تکنیکی است که برای درک عمیق دشواریهایی که به آن پرداخته میشود، مواردی که ممکن است مسائل وجود داشته باشد و روشهایی برای محافظت در برابر آنها استفاده میشود.
یک مدل تهدید آگاهانه از تیم میخواهد که ببیند سیستمهای عامل، پلتفرمها، چارچوبها و APIهای خارجی چگونه دادههای خود را انتقال و ذخیره میکنند. گسترش در بالای چارچوب ها و اتصال با API های شخص ثالث می تواند شما را در معرض شکست آنها نیز قرار دهد.
5. مبهم سازی برای جلوگیری از مهندسی معکوس
در بسیاری از موارد، توسعهدهندگان تواناییها و ابزارهای ضروری برای ساختن کپیهای متقاعدکننده از UI یک برنامه تلفن همراه بدون دسترسی به کد منبع را دارند. منطق کسب و کار انحصاری، باز هم نیاز به ایده ها و تلاش های بسیار بیشتری دارد.
توسعهدهندگان از تورفتگی استفاده میکنند تا کد خود را برای مردم خواناتر کنند، اگرچه رایانه شخصی به قالببندی مناسب اهمیت نمیدهد. به همین دلیل است که Minification که تمام فضاها را حذف میکند، عملکرد را حفظ میکند و در عین حال درک کد را برای هکرها سختتر میکند.
برای وبلاگ های فناوری جالب تر، از ما دیدن کنید سایت اینترنتی.