یکی از مهمترین موضوعات در حوزه امنیت سایبری، تأمین امنیت سایبری تلفن همراه و دیگر دستگاهها و گجتهای همراه است. امروزه از دستگاههای همراه برای کارهای مختلفی استفاده میشود و این دستگاهها، حاوی اطلاعات حساسی هستند.
یکی از سادهترین و رایجترین روشهای نفوذ به تلفنهای همراه و دیگر دستگاههای اندرویدی توسط هکرها، استفاده از اپلیکیشنهای بدافزاری یا آسیبپذیر است. با این حال، دستگاههای اندرویدی بدون اپلیکیشنها، کاربرد چندانی ندارند و همه ما نیاز داریم که برای کارهای مختلف، اپلیکیشنهایی را روی گوشیهای هوشمند یا تبلتهای خود، نصب کنیم.
شرکت دانشبنیان سایبرنو برای برای حل این مشکل، محصولی به نام آزمایشگاه تلفن همراه یا MOBSL توسعه داده است. MOBSL یک سرویس آنلاین برای اسکن فایلهای APK اپلیکیشنهای اندرویدی و ارائه گزارشی از ریسکهای امنیتی، آسیبپذیریها و دیگر اطلاعات مرتبط با اپلیکیشن است.
در ادامه، پس از بیان اهمیت امنیت سایبری و به ویژه، امنیت سایبری دستگاههای همراه، به معرفی کامل این محصول میپردازیم.
امنیت سایبری، شامل تمامی فناوریها و اقداماتی است که برای ایمن نگه داشتن دادههای الکترونیکی و دادههای سیستمهای کامپیوتری انجام میشود. در دنیایی که روز به روز، کسب و کارها و زندگی ما، بیشتر با دنیای دیجیتال و فضای مجازی، گره میخورند، اهمیت امنیت سایبری نیز هر روز، بیشتر از دیروز است.
امنیت سایبری را میتوان حفاظت از سیستمهای متصل به اینترنت در مقابل تهدیدات سایبری دانست. امنیت سایبری، شامل حفاظت از نرمافزارها، دادهها و سختافزارها و کمک به جلوگیری از دسترسی مجرمین سایبری به دستگاهها یا شبکهها است.
بر اساس تعریف آژانس امنیت سایبری و امنیت زیرساختی (CISA)، «امنیت سایبری، هنر حفاظت از شبکهها، دستگاهها و دادهها در مقابل دسترسی غیر مجاز یا استفاده مجرمانه و اقدام برای تضمین محرمانگی، درستی و در دسترس بودن اطلاعات است».
پر واضح است که حفاظت از اطلاعات، دادهها و دستگاهها، تا چه اندازه اهمیت دارد. در دنیای امروز، اشخاص حقیقی و نیز اشخاص حقوقی مثل سازمانهای نظامی و دولتی و شرکتهای خصوصی، دادههای بسیار زیاد و مهمی را روی رایانهها و دستگاههای متصل به اینترنت، مثل گوشیهای همراه، نگه میدارند. بسیاری از این دادهها، مثل گذرواژهها و اطلاعات مالی، حساسیت بسیار بالایی دارند.
در صورتی که مجرمان سایبری، به این دادهها دسترسی پیدا کنند، میتوانند مشکلات زیادی برای شخصیتهای حقیقی یا حقوقی، ایجاد نمایند. آنها میتوانند اطلاعات حساس شما را به اشتراک بگذارند، از گذرواژههای شما برای سرقت داراییهایتان استفاده کنند و حتی، دادههای شما را به نفع خودشان، تغییر دهند.
شرکتها برای ایمن نگه داشتن دادهها، منابع مالی و مالکیت فکری و معنوی خود، نیاز شدیدی به امنیت سایبری در کاملترین و بهترین حالت آن دارند. افراد حقیقی نیز به دلایل مشابهی، باید به امنیت سایبری، اهمیت دهند. بارها شنیدهایم که بیاحتیاطی اشخاص حقیقی در فضای سایبری، چگونه منجر به سرقت داراییهای آنها یا انتشار محتواهای محرمانه مثل فایلها، عکسها و فیلمهای خصوصی شده و مشکلات زیادی را برای آنها، ایجاد کرده است.
هر چه از اهمیت امنیت سایبری برای سازمانهای دولتی، نظامی، قضایی و دیگر سازمانهای حکومتی و نظارتی کشورها، بگوییم، کافی نیست. در کشور ما، هر سه قوه مجریه، قضاییه و مقننه، ارگانهای نظامی مثل ارتش، سپاه پاسداران انقلاب اسلامی و نیروی انتظامی و نیز، نهادهای فرا قوهای دیگر مثل مجلس خبرگان، شورای نگهبان و صدا و سیما، به ویژه با در نظر گرفتن شرایط سیاسی خاص حاکم بر کشور و حجم بالای تهدیدات سایبری داخلی و خارجی، باید از بالاترین امنیت سایبری ممکن، برخوردار باشند.
به عنوان مثال، حملات سایبری به زیرساختهای کشور، مثل نیروگاههای هستهای، نیروگاههای تولید برق، بانکها، مراکز نظامی و انتظامی و ... میتوانند صدمات جبران ناپذیری به کشور وارد کنند.
شخصیتهای حقیقی و حقوقی، با پیادهسازی امنیت سایبری میتوانند از خودشان در مقابل طیف گستردهای از تهدیدات سایبری که در ادامه، در رابطه با آنها صحبت خواهیم کرد، محافظت کنند. شرکتهای خصوصی و سازمانهای دولتی، با داشتن امنیت سایبری، نیازی نیست که نگران دسترسیهای غیرمجاز کاربران به دادهها یا شبکههای خود باشند. بنابراین، تأمین امنیت سایبری به تأمین امنیت داراییهای سازمان، تأمین امنیت پرسنل و تأمین امنیت کاربران و مشتریان سازمان، کمک میکند.
حتی زمانی که امنیت سایبری نتواند جلوی یک حمله سایبری و نفوذ به شبکه سازمان را بگیرد، زمان بازیابی شبکه بعد از حمله را بهبود میبخشد. به علاوه، مشتریان و کاربران، به سازمانهایی که امنیت سایبری بالاتری دارند، بیشتر اعتماد میکنند.
از مهمترین مزایای امنیت سایبری برای سازمانها میتوان به موارد زیر، اشاره کرد:
امروزه، تقریبا همه ما یک گوشی هوشمند همراهمان داریم و زندگی ما، عملا وابسته به آن است. بسیاری از شرکتها، خدمات خود را از طریق اپلیکیشنهای اندرویدی ارائه میدهند و حتی بخش زیادی از خدمات دولتی نیز تنها با گوشیهای هوشمند قابل استفاده هستند.
امروزه، کاربرد گوشیهای همراه، بسیار فراتر از تماسهای تلفنی است و به همین دلیل، بدون یک گوشی هوشمند، نمیتوان یک زندگی معمولی و راحت در جوامع انسانی داشت. به گوشیهای هوشمند، تبلتها، ساعتهای هوشمند و دیگر پوشیدنیها و گجتهای هوشمند همراه را نیز اضافه کنید.
با اینکه همه این دستگاهها، زندگی را برای ما بسیار راحتتر کردهاند، نقش غیرقابل جایگزینی در جریان اطلاعات دارند و امکان چند وظیفهای (Multitasking) را بیش از هر زمان دیگری در تاریخ فرآهم آوردهاند، اما مشکل بزرگی به نام تهدیدات سایبری نیز ایجاد کرده است.
جالب است بدانید که امروزه، دستگاههای همراه، هدف اصلی حملات سایبری هستند. نفوذ به دستگاههای همراه افراد، بسیار سادهتر از نفوذ به شبکهها و سیستمهای رایانهای سازمانها است و همین دستگاههای همراه، میتوانند نقش پل را برای دسترسی مجرمین سایبری به حساسترین اطلاعات سازمانی، ایفا کنند.
دستگاههای همراه با قابلیتهای اتصالی متعددی مثل وایفای، بلوتوث، شبکه تلفنهمراه و... همیشه، همراه شما هستند و پیوسته، از شبکهای به شبکه دیگر وصل میشوند. بنابراین، یکی از راحتترین اهداف حملات سایبری هستند. به علاوه، احتمال سرقت یا گم شدن این دستگاهها، بیش از دستگاههای دیگری مثل کامپیوترها است.
هر دستگاه همراه، اطلاعات بسیار زیادی در رابطه با مالک خود دارد که بسیار فراتر از تصور شما است. بسیاری از اپلیکیشنهایی که به صورت پیشفرض روی گوشی خود نصب دارید یا آنها را از پلیاستور، اپ استور، بازار یا دیگر منابع نصب میکنید، به اطلاعات حسابهاب بانکی شما و دیگر حسابهای کاربری حامل اطلاعات حساس، دسترسی دارند.
تمامی تلفنهای همراه میتوانند حتی زمانی که خاموش هستند، موقعیت شما را نقطه به نقطه و لحظه ثبت کرده و در اختیار سرورهای نامشخصی قرار دهند. از این دستگاهها میتوان به راحتی برای شنود و حتی فیلمبرداری بدون اطلاع مالک دستگاه، استفاده کرد. به علاوه، در هنگام نصب خیلی از اپلیکیشنها، دسترسیهای بسیار زیادی مثل دسترسی به مخاطبین شما، پیامکها، تماسها، دوربین، موقعیت مکانی و... خواسته میشود.
امروزه حتی روشهایی برای سرقت اطلاعات از طریق راههای ارتباطی دستگاه همراه شما مثل وایفای، بلوتوث و شبکههای تلفن همراه، توسعه یافته است.
خلاصه اینکه، دستگاههای همراه، چه تلفنهای ساده و چه دستگاههای هوشمند، با یا بدون اپلیکیشنهای مختلف، آسیبپذیری بسیار زیادی در مقابل حملات سایبری، شنود و دیگر انواع سرقت اطلاعات دارند. اما چرا امنیت دستگاههای همراه، با اینکه این دستگاهها معمولا دستگاههایی شخصی و غیر سازمانی هستند، باید مورد توجه سازمانها قرار داشته باشد؟
اهمیت امنیت سایبری دستگاههای همراه برای شخصیتهای حقیقی که دستگاههای آنها به شبکههای سازمانی متصل نمیشوند یا در مراکز حساسی کار نمیکنند، پر واضح است. بیشترین تهدیدات سایبری علیه این شخصیتهای حقیقی معمولا، لو رفتن فایلها، عکسها و فیلمهای خصوصی یا اطلاعات حسابهای بانکی و اکانتهای شبکههای اجتماعی است که فقط خود آن شخص و اطرافیان او را درگیر میکند.
در مقابل، افرادی که تلفنهای همراه آنها به شبکههای سازمانهای تجاری، دولتی، نظامی یا دیگر سازمانهای حساس وصل میشود و افرادی که صرفا در چنین سازمانهایی کار میکنند (نه الزاما به کمک دستگاههای موبایل خود) و دستگاههای تلفن همراه آنها وارد چنین سازمانهایی میشوند، نیاز بسیار بیشتری به امنیت سایبری دستگاههای همراه دارند زیرا نفوذ به گوشیهای آنها میتواند خسارات عظیمی را به سازمانهای تجاری و حتی امنیت ملی یک کشور، وارد کند.
دستگاههای همراه این اشخاص حقیقی، میتواند همانند یک پل ارتباطی، به مهاجمان امکان دسترسی به شبکهها و سیستمهای رایانهای سازمانی را بدهند. از آنجایی که نفوذ به دستگاههای همراه شخصی، کار بسیار سادهتری در مقایسه با نفوذ به این شبکههای سازمانی است، مجرمین سایبری، مهاجمان یا هکرها، خیلی از مواقع، با نفوذ به دستگاههای همراه کارکنان این سازمانها، تلاش میکنند تا به شبکهها و رایانههای سازمانی نفوذ کرده، اطلاعات را سرقت کنند یا کنترل شبکه را در دست بگیرند.
به دلیل تهدیدات سایبری از طرف گوشیهای موبایل، خیلی از سازمانهای نظامی و مراکز حساس اطلاعاتی، به پرسنل خود، اجازه ورود این دستگاهها را نمیدهند. با این حال، با توجه به وابستگی بسیار زیاد زندگی و حتی مسائل کاری کارکنان به این دستگاهها، چنین قوانینی، همیشه اجرایی نمیشوند و خیلی از سازمانها، مثل شرکتهای تجاری نیز نمیتوانند چنین قوانینی را وضع کنند.
در نتیجه، تأمین امنیت سایبری تلفنهای همراه کارکنان، باید جزء اولویتهای امنیت سایبری در چنین سازمانهایی باشد. اجازه دهید که برای درک بهتر نسبت به اهمیت امنیت سایبری گوشیهای همراه، نگاهی به آمار و ارقام زیر، داشته باشیم:
با اینکه خیلی وقتها، تهدیدات سایبری علیه دستگاههای همراه را به عنوان یک دسته کلی از تهدیدات سایبری در نظر میگیرند اما خود این دسته نیز به ۴ دسته اصلی، تقسیم میشود که اشخاص و سازمانها باید از خودشان در مقابل آنها محافظت کنند. این چهار دسته، به شرح زیر هستند:
همانطور که گفتیم، یکی از مهمترین تهدیدات سایبری برای دستگاههای همراه، اپلیکیشنها بدافزاری، جاسوسافزارها یا اپلیکیشنهای دارای دسترسیهای بسیار زیاد هستند. بنابراین، توصیه میشود که پیش از نصب هر نرمافزاری که فایل آن را از یک منبع ناشناخته دانلود کردهاید، حتما از یک سرویس بررسی امنیت نرمافزار، مثل آزمایشگاه امنیت تلفن همراه سایبرنو یا mobsl، برای بررسی مشکلات امنیتی آن، استفاده کنید. شما میتوانید در این سرویس، فایل APK اپلیکیشن اندرویدی مورد نظر خود را آپلود کرده و mobsl آن را تحلیل کرده و مشکلات امنیتی آن را به شما گزارش میکند.
به علاوه، همانطور که گفتیم، حتی بسیاری از اپلیکیشنهایی که در بازار، اپ استور و پلی استور موجود هستند نیز میتوانند مشکلاتی امنیتی برای دستگاه موبایل شما ایجاد کنند. شما میتوانید نتایج تحلیل بسیاری از این اپلیکیشنها را در صفحه سرویس mobsl سایبرنو ببینید.
سایبرنو با ارائهی سرویس بررسی امنیتی برنامههای تلفن همراه تلاش بر رفع نیاز توسعهدهندگان و همچنین دغدغههای کاربران عمومی تلفن همراه کرده است. نسخه رایگان سرویس mobsl میتواند حدود 80 آسیبپذیری متداول در برنامههای تلفن همراه را شناسایی نماید. همچنین شما میتوانید جهت تست نفوذ برنامه تلفن همراه خود مطابق با استاندارد MASVS با ما تماس حاصل فرمایید.
برخی از مواردی که در آزمایشگاه امنیت تلفن همراه مورد بررسی قرار میگیرد، عبارت است از:
همچنین این سامانه دارای امکان تعیین بدافزار یا سالم بودن فایل اجرایی با استفاده از قابلیتهای جعبه شن تعاملی و سامانه پویشگر چندموتوره نیز میباشد.
گزارش آزمایشگاه تلفنهمراه امن سایبرنو، شامل بخشهای مختلفی است که در ادامه، در رابطه با هر یک از آنها، به طور مفصل، صحبت میکنیم.
پس از تحلیل هر اپلیکیشن اندرویدی توسط سرویس mobsl سایبرنو، یک گزارش کامل، شامل ریسکها و آسیبپذیریهای برنامه، و نیز، جزئیات مختلفی در رابطه با اپلیکیشن به شما ارائه میشود. ریسکها و آسیبپذیریها در این گزارش به چهار دسته زیر، تقسیم میشوند:
۱- آسیبپذیریها
منظور از آسیبپذیری اپلیکیشن، هرگونه ضعف امنیتی در اپلیکیشن است که مهاجمان یا هکرها بتوانند از آن برای نفوذ به اپلیکیشن، استفاده کنند. در صورتی که یک اپلیکیشن اندرویدی دارای هر گونه آسیبپذیری باشد، مهاجمان میتوانند با استفاده از آن، نه تنها به سرور اپلیکیشن حمله کنند، بلکه با استفاده از اپلیکیشن، به دستگاه همراه شما نیز دسترسی داشته باشند و سطح دسترسی آنها از این طریق، به میزان دسترسیهای مجاز اپلیکیشن، وابسته نیست.
دقت داشته باشید که آسیبپذیریها با تهدیدات سایبری تفاوت دارند. آسیبپذیریها از ابتدا و پس از پایان توسعه، در اپلیکیشن وجود دارند و میتوان آنها را نوعی حفرات امنیتی نامید. کمتر پیش میآید که آسیبپذیریها در نتیجه اقدامات مجرمین سایبری باشند، بلکه اکثر این حفرات امنیتی به دلیل ضعف در برنامهنویسی و توسعه اپلیکیشن، ایجاد میشوند. در مقابل، تهدیدات سایبری به دلیل یک عامل خارجی، مثل دانلود یک بدافزار، رخ میدهند.
پچ کردن یا بروز رسانی اپلیکیشنهای اندرویدی به کاهش آسیبپذیری آنها کمک میکند. در واقع، در صورتی که اپلیکیشن، توسط یک سازمان معتبر منتشر شده باشد، معمولا کار توسعهدهندگان، بعد از انتشار اپلیکیشن، به پایان نمیرسد، بلکه آنها سعی میکنند با ارائه پچها و آپدیتهای جدید، آسیبپذیریهای موجود در اپلیکیشن را به مرور زمان، کمتر و کمتر کنند.
در ادامه، ۱۰ تا از مهمترین آسیبپذیریها در اپلیکیشنهای موبایل را به شما معرفی میکنیم.
۱- کنترلهای ضعیف سمت سرور
منظور از کنترلهای ضعیف سمت سرور یا بکاند (Back-end) اپلیکیشن اندرویدی، تمامی نقطه ضعفهای مربوط به اپلیکیشن است که مربوط به فرانت اند اپلیکیشن نیستند، بلکه در سروری که اپلیکیشن به آن متصل میشود، قرار دارند.
یکی از مشکلاتی که در توسعه بسیاری از اپلیکیشنها وجود دارد، بیتوجهی توسعهدهندگان به امنیت سرور است. از مهمترین دلایل کنترلهای ضعیف سمت سرور میتوان به موارد زیر، اشاره کرد:
راحتترین راه برای ضربه نخوردن از ضعف در کنترلهای سمت سرور یک اپلیکیشن اندروید، اسکن کردن آن با سرویسهایی مثل mobsl است.
توسعهدهندگان نیز برای اینکه اپلیکیشنهایی با کمترین ضعف در کنترلهای سمت سرور تولید کنند، باید در مراحل توسعه، از یک چرخه حیات توسعه کدنویسی ایمن (SDLC) پیروی کنند. با اینکه کدنویسی ایمن، زمانبرتر است اما به طور قابل توجهی به کاهش آسیبپذیریهای اپلیکیشن کمک میکند.
۲- ذخیره غیر ایمن دادهها
ذخیرهسازی دادههای حساس یا شخصی مثل اطلاعات حسابها و کارتهای بانکی و گذرواژهها، نیازمند یک سازوکار ایمن است. معمولا، توسعهدهندگان از فایلها و پایگاههای داده برای ذخیرهسازی چنین اطلاعاتی در فرانتاند (front-end) اپلیکیشنهای اندرویدی استفاده میکنند تا دسترسی مهاجمان به این دادهها، دشوارتر شود.
با این حال، اخیرا نشان داده شده است که اکثر نفوذهای امنیتی به اپلیکیشنهای اندرویدی، به دلیل ذخیرهسازی غیر ضروری چنین دادههایی در دستگاههای کاربران است.
مهاجمان به راحتی میتوانند دستگاه همراه قربانی را روت یا جیلبریک (jailbreak) کرده و سدهای امنیتی اپلیکیشنهای اندرویدی را دور بزنند. راه دیگر دسترسی به این دادهها، دسترسی فیزیکی مهاجم به دستگاه همراه است. در این صورت، مهاجم میتواند تنها با وصل کردن دستگاه همراه به یک رایانه و با استفاده از نرمافزارهایی که به راحتی در دسترس هستند، چنین اطلاعاتی را استخراج کند.
به طور کلی، توصیه میشود که در مواقع غیر ضروری، دادهها را روی دستگاههای همراه خود، ذخیره نکنید. توسعهدهندگان باید اپلیکیشن را طوری طراحی کنند که چنین اطلاعاتی را در سرور بکاند ذخیره کرده و هر بار که کاربر، درخواست دسترسی به این اطلاعات را دارد، باید با استفاده از یک API، احراز هویت شود یا به درون سیستم، لاگین کند.
زمانی که کش کردن یا ذخیرهسازی دادهها ضروری باشد، بهتر است که از یک کتابخانه رمزنگاری مثل کتابخانه CryptoKit برای iOS، استفاده شود. با این حال، در اپلیکیشنهای بسیار حساس، از ابزارهای رمزنگاری جعبه سفید استفاده میشود.
برای ذخیرهسازی دادههای کاربر در دستگاه شخصی او، باید از یک API مدیریت تجاری دستگاه اندرویدی برای رمزنگاری تمامی فایلهای حاوی داده از طریق setStorageEncryption استفاده شود. به علاوه، توسعهدهندگان باید کلیدهای رمزنگاری/رمزگشایی این دادهها را کاملا ایمن نگه دارند و هرگز آنها را به صورت کد یا فایلهای کانفیگ، ذخیره نکنند.
۳- ناکافی بودن حفاظت لایه انتقال
ناکافی بودن حفاظت لایه انتقال، یکی از آسیبپذیریها در اپلیکیشنهای دستگاههای همراهی است که از ترافیک شبکه خود، محافظت نمیکنند.
اصولا، امکان تبادل داده فرانتاند و بکاند یا سرور اپلیکیشن وجود دارد. در صورتی که توسعه اپلیکیشن اندرویدی، ضعیف باشد، مهاجمان میتوانند از این آسیبپذیری استفاده کرده و دادههای حساس را در طول فرآیند انتقال، ببینند.
با اینکه بسیاری از توسعهدهندگان از گواهینامههای SSL/TLS در توسعه اپلیکیشنهای خود استفاده میکنند، معمولا، نمیتوانند که این گواهینامهها را به طور کامل، به کار بگیرند. این مسئله، سبب در معرض خطر قرار گرفتن ترافیک شبکه میشود.
خوشبختانه، پیشگیری از آسیبپذیریهای ناکافی بودن حفاظت لایه انتقال، بسیار ساده است. همیشه فرض را بر این بگیرید که لایه شبکه، ایمن نیست و در مقابل نشت اطلاعات، آسیبپذیری دارد.
توسعهدهندگان باید TLS را برای لایههای انتقال که اپلیکیشنی که از آنها استفاده میکند، به کار بگیرند. استفاده از گواهینامههایی که توسط تأمینکنندگان مطمئن CA امضاء شده باشند، این نوع آسیبپذیریها را به حداقل میرساند.
۴- نشت ناخواسته اطلاعات
وقتی یک توسعه دهنده، به صورت غیر عمد، دادههای حساسی را در یک موقعیت غیر ایمن در دستگاه کاربر قرار میدهد، میتواند منجر به نشت ناخواسته اطلاعات شود.
ممکن است که دیگر اپلیکیشنها در آن دستگاه، به آن موقعیت غیر ایمن دسترسی داشته باشند و در نتیجه، دستگاه، در مقابل حملات سایبری، آسیبپذیر میشود.
بعضی از رایجترین انواع نشت ناخواسته اطلاعات در اپلیکیشنهای دستگاههای همراه به شرح زیر هستند:
توسعهدهندگان اپلیکیشن برای پیشگیری از نشت ناخواسته اطلاعات، باید انواع مناسبی از ورودیهای داده، مثل انواع گذرواژهها را به کار ببرند. با این کار، کشینگ به صورت خودکار بلاک میشود و نمیتواند دادهای را روی کلیپبورد، کپی کنند.
۵- ضعف در احراز هویت یا مجوزدهی
ضعف در احراز هویت به مهاجمان امکان میدهد تا پروتکلهای احراز هویت را دور بزنند و به دادههای حساس در اپلیکیشن، دسترسی داشته باشند. آنها، این کار را از طریق اجرای ناشناس قابلیتهای عملکردی درون سرور بکاند یا اپلیکیشن انجام میدهند.
در بسیاری از اپلیکیشنهای اندرویدی از پینهای ۴ یا ۶ رقمی برای احراز هویت استفاده میشود. انجام احراز هویت در سمت کاربر، ایمن نیست زیرا با این کار، پین در دستگاه موبایل، ذخیره میشود و خطر لو رفتن آن، بالا میرود. به علاوه، اپلیکیشنهایی که از احراز هویت آفلاین استفاده میکنند نیز با مشکل مشابهی، مواجه هستند.
برای پیشگیری از این نوع آسیبپذیریها، تست کنندههای اپلیکیشن باید حملاتی را علیه اپلیکیشن، در حالت احراز هویت آفلاین، انجام دهند تا آسیبپذیریهای آن، مشخص شود. به یاد داشته باشید که ایمنترین پروتکلهای احراز هویت، تنها در سمت سرور ممکن هستند. با این حال، در صورتی که به احراز هویت به دادههای ذخیره شده در دستگاه کاربر نیاز داشته باشد، این دادهها باید رمزنگاری شوند.
۶- رمزنگاری شکننده
امنیت داده و رمزنگاری، دو مفهوم کاملا وابسته به هم دیگر هستند. رمزنگاری غیر ایمن یا رمزنگاری شکننده، یکی از رایجترین آسیبپذیریها در اپلیکیشنهای اندرویدی است.
معمولا، توسعهدهندگان اپلیکیشنها، از یک کلید هاردکد شده در کد منابع رمزنگاری و رمزگشایی استفاده میکنند. این کار، رمزنگاری انجام شده را در مقابل حملات مهاجمانی که میتوانند اپلیکیشنهای اندرویدی را مهندسی معکوس کنند، آسیب پذیر میکند.
استفاده از الگوریتمهای رمزنگاری شخصی به جای الگوریتمهای مدرنی که به عنوان الگوریتمهایی قوی، مورد پذیرش انجمنهای امنیت سایبری قرار گرفتهاند، نوع دیگری از استفاده اشتباه از رمزنگاری است.
نشان داده شده است که بسیاری از الگوریتمها، پروتکلهای رمزنگاری و هشها، ضعفهای قابل توجهی دارند یا برای حفاظت از اپلیکیشنهای موبایل امروزی، مناسب نیستند. بعضی از آنها عبارتند از:
بهترین راه پیشگیری از سوء استفاده هکرها از این نوع آسیبپذیریها، اجتناب از ذخیره دادهها روی دستگاههای همراه، در مواقع غیر ضروری است. توسعهدهندگان باید از استانداردهای رمزنگاری که در مقابل حملات مدرن مقاوم هستند، استفاده کنند. همچنین، پیروی از دستورالعملهای NIST برای انتخاب الگوریتم رمزنگاری، بسیار مهم است.
۷- تزریق سمت کاربر
با استفاده از این نوع آسیبپذیری، مهاجمان، کد بدافزار را به شکل دادههای ورودی، به فرانتاند اپلیکیشن تزریق میکنند. اپلیکیشن، همانند هر نوع داده دیگری، این دادهها را پردازش کرده و فریمورک زمینه، کد بدافزار را به عنوان یک فایل قابل اجرا میشناسد. در نتیجه، کد بدافزار، توسط اپلیکیشن، اجرا میشود. با اجرای چنین کدهایی، مهاجم میتواند بدون اطلاع کاربر، به کل دستگاه تلفن همراه، دسترسی پیدا کند.
روشهای مختلفی برای پیشگیری از آسیبپذیریهای تزریق سمت کاربر وجود دارد که برای iOS و اندروید، متفاوت هستند. این روشها در سیستم عامل iOS عبارت است از:
در سیستم اندروید نیز این روشها عبارتند از:
۸- تصمیمات امنیتی از طریق دادههای غیر مطمئن
معمولا، توسعه دهندگان موبایل از مقادیر، فایلها یا دیگر قابلیتهای عملکردی مخفی برای تمایز قائل شدن بین کاربران سطح بالا و کاربران سطح پایین استفاده میکنند.
در صورتی که مهاجم بتواند IPC یا فراخوانیهای سرویس وب را دستکاری کند، میتواند به اپلیکیشن، دسترسی غیر مجاز داشته باشد.
به کار گیری ضعیف این قابلیتهای عملکردی مخفی، میتواند منجر به رفتار نامناسب اپلیکیشن و دسترسی غیر مجاز به اپلیکیشن شود و دسترسیهای بیشتری در اختیار مهاجم بگذارد. در نتیجه، مهاجم میتواند سازوکارهای امنیتی اپلیکیشن را دور بزند و کل پلتفرم، تحت کنترل مهاجم قرار بگیرد.
با استفاده از پروتکلهای امنیتی مثل اعتبارسنجی ورودی، کنترلهای مجوزدهی، سازوکارهای احراز هویت، کنونیکالسازی و ایمنسازی دادههای خروجی، میتوان از این نوع آسیبپذیری، جلوگیری کرد. به علاوه، توسعهدهندگان باید در پذیرش و تأیید الگوهای URLها، بسیار احتیاط کنند.
۹- مدیریت نامناسب نشست
خیلی از توسعهدهندگان اپلیکیشن، برای افزایش کاربرپسند بودن اپلیکیشن خود، امکان نشست (session) بلند مدت یا بدون زمان انقضاء را فرآهم میآورند. در اپلیکیشنهای موبایل از توکنهای OAUTH، سرویسهای SSO و کوکیها برای مدیریت نشست، استفاده میشود.
مدیریت نامناسب نشست (improper session handling) زمانی رخ میدهد که مهاجم بتواند در طول یک تراکنش بین اپلیکیشن و سرورهای بکاند، به توکن نشست، دسترسی پیدا کند. با این کار، مهاجم میتواند خودش را جای مخاطب جا بزند، کنترل حساب کاربری او را در دست بگیرد و تراکنشهای حساس انجام دهد.
برای مدیریت مناسب نشست باید زمانهایی برای خروج خودکار از حساب کاربری تنظیم شود. به علاوه، استفاده از توکنهای قوی که به راحتی قابل حدس زدن نباشند، بسیار مهم است. توکن نشست باید آنتروپی بالایی داشته و غیر قابل پیشبینی باشد. به علاوه، باید اپلیکیشن، پس از پایان هر نشست، این توکنها را به طور کامل، پاک کند.
۱۰- فقدان حفاظت باینری
فقدان حفاظت باینری میتواند اطلاعات حساس کاربر روی دستگاه همراهش را در اختیار مهاجمان قرار دهد. مهاجمان میتوانند از طریق مهندسی معکوس، اطلاعات حساسی را از دستگاه همراه، استخراج کنند.
ممکن است که مهاجم از ابزارهای خودکار برای مهندسی معکوس اپلیکیشن و تغییر آن برای انجام اقدامات بدافزاری، استفاده کند.
در صورتی که کد اپلیکیشن اندرویدی در یک محیط ناایمن، مثل دستگاه همراه قربانی، ذخیره شود، احتمال دسترسی مهاجم به این کد و مهندسی معکوس آن، وجود دارد.
یکی از بهترین روشهای پیشگیری از آسیبپذیری فقدان حفاظت باینری، ذخیره اطلاعات حساس مثل کلیدهای API روی سرور و نه دستگاه کاربر است. به علاوه، گذرواژهها نیز نباید در باینری اپلیکیشن ذخیره شوند. همچنین، اپلیکیشن نیز نباید اطلاعات حساس را روی فایلهای log بنویسید. برای ایمنی بیشتر باید از تکنیکهای کدنویسی امن برای مؤلفههای امنیتی زیر، استفاده شود:
گذشته از همه اینها، اپلیکیشن باید بتواند در زمان اجرا، تغییرات در کد را شناسایی کرده و واکنش مناسبی داشته باشد.
۲- ریسکهای امنیتی
آزمایشگاه امنیت تلفن همراه سایبرنو، در تحلیل اپلیکیشنهای اندرویدی، ریسکهای امنیتی آن را نیز گزارش میکند. اما منظور از ریسک امنیتی دقیقا چیست؟
مهاجمان، از مسیرهای مختلفی برای نفوذ به دستگاههای اندرویدی، استفاده میکنند. هر کدام از این مسیرها، یک ریسک محسوب میشوند که میتواند بسیار بیاهمیت یا بسیار مهم باشد.
گاهی اوقات، پیدا کردن این ریسکها و استفاده کردن از آنها، برای مهاجم، بسیار راحت و بعضی وقتها، بسیار دشوار است. همچنین، آسیبی که مهاجم میتواند از طریق این ریسکها وارد کند، میتواند بسیار خفیف یا بسیار جدی باشد.
به طور کلی، میتوان ریسک را به صورت زیر، تعریف کرد:
«احتمال رخداد یک رویداد با اثری منفی روی یک هدف».
در دنیای امنیت سایبری، ریسک امنیتی به صورت زیر، تعریف میشود:
«احتمال آسیب در صورتی که مهاجم، یک آسیبپذیری را پیدا کند».
ریسک امنیتی، سه مؤلفه اصلی دارد:
۹ ریسک امنیتی رایج در اپلیکیشنهای تلفن همراه
۳- آسیبپذیری کتابخانهها
بخش دیگر گزارش تحلیل اپلیکیشن سرویس آزمایشگاه امنیت تلفن همراه سایبرنو مربوط به آسیبپذیریها یافت شده در کتابخانههای مورد استفاده اپلیکیشن است.
۴- درصد ریسکپذیری
درصد ریسکپذیری پارامتری است که با استفاده از فرمولی مشخص و بر اساس هر سه پارامتر تعداد آسیبپذیریها، تعداد ریسکهای امنیتی و تعداد آسیبپذیریهای کتابخانه محاسبه میشود. البته این پارامتر به صورت وزنی محاسبه میشود. در واقع، به هر کدام از انواع آسیبپذیریها، وزن خاصی نسبت داده میشود و هر چه آن آسیبپذیری خطرناکتر باشد، وزن آن بیشتر و تأثیر آن در درصد ریسکپذیری گزارش شده، بالاتر خواهد بود.
۵- ضدویروسها
در بخش دیگری از گزارش تحلیل اپلیکیشن آزمایشگاه امنیت تلفن همراه سایبرنو، میتوانید نتیجه بررسی اپلیکیشن با چند ضدویروس را مورد بررسی قرار داده تا احیانا حاوی بدافزار نباشد.
۶- دیگر جزئیات اپلیکیشن
آزمایشگاه امنیت تلفن همراه سایبرنو، در بخش دیگری از گزارش تحلیل نرمافزار، جزئیات نسبتا کاملی از اپلیکیشن را ارائه میدهد. این جزئیات شامل مواردی همانند نوع فایل، نسخه اپلیکیشن، کد نسخه، حجم اپلیکیشن، زبان برنامهنویسی مورد استفاده در توسعه اپلیکیشن، مجوزها، اکتیویتیها، گیرندگان پخش، سرویسها، تأمینکنندگان محتوا، قابلیتها، لینکها، گواهینامهها و... هستند.
بسیاری از این اطلاعات، در بررسی امنیت سایبری اپلیکیشن، اهمیت زیادی دارند. برای مثال، فهرست مجوزها یا دسترسیهای اپلیکیشن به شما میگوید که اپلیکیشن مورد نظر، به کدام بخشها و قابلیتها در گوشی شما، دسترسی خواهد داشت.
همانطور که پیش از این گفتیم، شما میتوانید پس از آپلود کردن فایل APK اپلیکیشن مورد نظر خود در سرویس mobsl سایبرنو، گزارش کاملی شامل آسیبپذیریها، ریسکهای امنیتی و دیگر جزئیات اپلیکیشن، دریافت کنید. حداکثر حجم آپلود فایل در این سرویس، ۱۵ مگابایت است.
به علاوه، در صفحه اصلی این سرویس به آدرس https://mobsl.cyberno.ir/ میتوانید فهرستی از اپلیکیشنهایی که قبلا توسط آزمایشگاه امنیت تلفن همراه سایبرنو پویش شدهاند را ببینید.
با کلیک کردن روی گزینه «مشاهده همه» در این صفحه و در زیر لیست برنامههای پویش شده، لیست آخرین برنامههای پویش شده و لیست آسیبپذیرترین برنامهها به شما نمایش داده میشوند. به علاوه، در این صفحه میتوانید نام اپلیکیشن، هش یا بسته یا... را جستجو کنید.
بسیاری از خدمات آزمایشگاه امنیت تلفن همراه سایبرنو که در بالا به آنها اشاره کردیم، کاملا رایگان هستند و بدون ساخت حساب کاربری نیز میتوانید از آنها استفاده کنید. با این حال، این آزمایشگاه، خدمات دیگری نیز مثل پویش محرمانه یا ارسال پست الکترونیکی به توسعهدهنده، ارائه میدهد که برای استفاده از آنها باید حساب کاربری داشته باشید.
به علاوه، گزارشی که آزمایشگاه امنیت تلفن همراه سایبرنو پس از پس از تحلیل برنامه به شما میدهد، شامل یک گزارش رایگان و یک گزارش کامل است. برای دریافت گزارش رایگان، نیازی به داشتن حساب کاربری در سایبرنو ندارید اما برای دریافت گزارش کامل، باید در سایبرنو ثبت نام کرده باشید.
تفاوت گزارش رایگان با گزارش کامل این است که در گزارش کامل، میتواند تمامی آسیبپذیریها و ریسکهای امنیتی اپلیکیشن پویش شده را مشاهده کنید ولی گزارش رایگان، فقط شامل تعدادی از این موارد است.
همچنین شما میتوانید با خرید بستههای تجاری آزمایشگاه امنیت تلفن همراه سایبرنو از امکانات کامل این سرویس آنلاین استفاده کنید.
به طور کلی، میتوان کاربران خدمات آزمایشگاه امنیت تلفن همراه سایبرنو را به سه گروه اصلی، تقسیمبندی کرد:
به هیچ وجه نباید صفحه نمایش گوشی شما بدون گذرواژه یا پین قوی باز شود. در غیر این صورت، هر کسی که حتی برای مدتی کوتاه، به گوشی دسترسی فیزیکی داشته باشد، به راحتی میتواند به گوشی شما نفوذ کند. به علاوه، با قفل کردن صفحه نمایش، بسیاری از قابلیتهای دیگر درون گوشی نیز قفل میشوند و حتی اگر هکر به گوشی ما نفوذ کرده باشد، نمیتواند به سادگی از این قفلهای امنیتی عبور کند.
باز کردن قفل صفحه نمایش با استفاده از حسگر اثر انگشت
حسگر اثر انگشت، نسبت به گذرواژه یا پین، بسیار ایمنتر و شکستن آن برای هکرها، بسیار دشوارتر است. به علاوه، باز کردن قفل صفحه نمایش با حسگر اثر انگشت نیز برای خود شما، راحتتر است.
آیا میدانستید حتی زمانی که از وایفای یا بلوتوث گوشی خود استفاده نمیکنید، در صورت فعال بودن، آنها در حال مخابره اطلاعات و حتی تلاش برای وصل شدن به دستگاههای دیگر هستند؟ مجرمین سایبری و مهاجمان میتوانند از این قابلیتهای ارتباطی برای رهگیری موقعیت مکانی و حتی دسترسی به گوشی شما سوء استفاده کنند.
تصور کنید که در مکانی عمومی مثل پاساژ یا بیمارستان هستید. اگر وایفای یا بلوتوث شما روشن باشد، هکرها میتوانند با تکنیکهای خاص خود، بدون متوجه شدن شما، به گوشی شما وصل شده و اطلاعات شما را سرقت کنند یا حتی کنترل گوشی را در دست بگیرند.
بنابراین، زمانی که در حال استفاده از وایفای یا بلوتوث نیستید، آنها را خاموش کرده و هرگز به شبکههای وایفای عمومی وصل نشوید. ایمنترین حالت گوشی شما زمانی است که روی حالت پرواز قرار داشته باشد.
هرگز اپلیکیشنها را از منابع ناشناس دانلود نکنید. حتی «بازار» نیز با توجه به آسیبپذیریها و ریسکهای امنیتی متعددی که توسط آزمایشگاه امنیت تلفن همراه سایبرنو کشف شده، اصلا اپلیکیشن مناسبی برای دانلود و نصب اپلیکیشنهای اندرویدی نیست. به شما توصیه میکنیم که برای نصب اپلیکیشنهای اندرویدی، فقط از پلی استور گوگل استفاده کنید.
حتما پیش از نصب اپلیکیشن، وضعیت امنیت سایبری آن را با سرویس آزمایشگاه تلفن همراه سایبرنو، بررسی کنید تا از ریسکهای امنیتی، آسیبپذیریها، دسترسیها و دیگر جزئیات آن، آگاه شوید.
مهاجمان میتوانند از سرویسهای لوکیشن دستگاههای همراه نیز برای نفوذ به گوشی همراه شما استفاده کنند. به علاوه، شما با روشن کردن این سرویسها، موقعیت مکانی خود را به مهاجمان اعلام میکنید. بنابراین، بهتر است که فقط در مواقع ضروری، این سرویسها را روشن کنید.
در صورتی که دادههای مهم و حساسی روی گوشی خود دارید، حتما فایل پشتیبان از گوشی تهیه کنید تا در صورتی که هر مشکلی برای گوشی شما پیش آمد یا مجبور شوید که اطلاعات روی گوشی خود را به دلایل امنیتی پاک کنید، با استفاده از فایل پشتیبان، میتوانید دوباره به آنها دسترسی داشته باشید.
بسیاری از آسیبپذیریها و ریسکهای امنیتی در اپلیکیشنهای گوشی یا سیستم عامل، با بروزرسانی آنها یا نصب پچهای امنیتی، برطرف میشوند. بنابراین، به ویژه آپدیتهای سیستم عامل را جدی بگیرید و حتما گوشی خود را به روز نگه دارید.
بسیاری از گوشیهای هوشمند امروزی دارای قابلیتی هستند که در صورت فعال کردن آن، میتوانید تمامی دادههای روی گوشی را از راه دور، پاک کنید. این ویژگی، در صورتی که گوشی خود را گم کنید یا گوشی شما سرقت شود، بسیار کاربردی خواهد بود و حتما آن را فعال کنید.