معرفی
طبق گزارشهای منتشرشده توسط We Are Social و Hoot suite در ژانویه ۲۰۱۸ تعداد کاربران اینترنت حال حاضر جهان به بیش از ۴ میلیارد نفر رسیده است. بنابراین بیش از نیمی از جمعیت جهان آنلاین هستند. نکته جالبتوجه این است که ۵۲ درصد از جمعیت آنلاین جهان از دستگاههای موبایل هوشمند بدین منظور استفاده میکنند. بنابراین موبایلها و نرمافزارهای موبایل امروزه نقش مهمی در زندگی انسانها دارد.
نرمافزارهای موبایل میتوانند بهمنظور انجام عملیات بانکی، خرید اجناس، برقراری تماسهای صوتی، تصویری و یا متنی و … مورداستفاده قرار گیرند. این برنامهها ممکن است از اطلاعات خصوصی و حساس افراد و یا اطلاعات تجاری استفاده کنند که در این صورت این نرمافزارها میتوانند هدف مناسبی برای مجرمین سایبری باشد. به این دلیل که این نرمافزارها ممکن است بهصورت ناخواسته و یا از روی عمد اطلاعات حساس اشخاص را سرقت و یا فاش کنند، امنیت این نرمافزارها بسیار حائز اهمیت است.
اهمیت ارزیابی امنیتی نرمافزارهای موبایل
زمانی که یک نرمافزار موبایل آماده میشود ممکن است دارای آسیبپذیریهایی باشد. مهاجمین با کشف آسیبپذیریها اقدام به سو استفاده کرده و به اشخاصی که با نرمافزار در تعامل هستند ممکن است آسیبهایی جدی برسانند. بنابراین انجام ارزیابی امنیتی نرمافزارها راهکاری مناسب بهمنظور جلوگیری از حملات احتمالی در آینده است. همچنین ممکن است نرمافزار آمادهشده دارای اشکالاتی باشد که طی انجام عملیات ارزیابی این اشکالات میتوانند شناسایی شوند و در ادامه برطرف شوند. درنتیجه راهاندازی نرمافزار بدون نگرانی و با آرامش خاطر بیشتری انجام خواهد شد.
در این راستا مرکز پژوهشی آپای دانشگاه امیرکبیر اقدام به تأسیس گروه تخصصی ارزیابی امنیتی نرمافزارهای موبایل کرده است. همکاران این گروه از اساتید و فارغالتحصیلان رشته امنیت فناوری اطلاعات دانشگاه صنعتی امیرکبیر هستند. در این مستند جزئیات فنی این خدمت شرح داده میشود.
موارد ارزیابی امنیتی و آزمون نفوذ نرمافزار موبایل تحت اندروید
نرمافزارهای موبایل با اهداف خاص و متفاوتی طراحی و دارای عملکردی متفاوت با توجه به هدفشان هستند. اما در میان برخی موارد امنیتی وجود دارند که هر نرمافزار موبایلی با هر هدفی نیاز است تا نسبت به آنها موردبررسی قرار گیرد که میتوان این دسته از موارد ارزیابی را موارد آزمون عمومی بیان کرد. از طرفی همانطور که گفته شد هر نرمافزار موبایلی با هدف خاصی طراحی و عملکرد خاص و متفاوتی دارد بنابراین نیاز است تا با توجه به اهداف و عملکرد نرمافزار موبایل موارد امنیتی خاص آن موردبررسی قرار گیرد که این دسته از موارد ارزیابی را موارد آزمون اختصاصی مینامیم.
بهطورکلی ارزیابی امنیتی نرمافزارها، ممکن است با استفاده از تحلیل پویا، ایستا و یا ترکیبی از این دو تحلیل انجام شود. در ادامه به جزئیات موارد آزمون خواهیم پرداخت.
موارد آزمون عمومی
۱) ارزیابی مبهم سازی کد
در این آزمون به بررسی کدهای منبع پرداخته و مبهمسازی کد موردبررسی قرار میگیرد تا امنیت نرمافزار موبایل نسبت به مهندسی معکوس سنجیده شود.
۲) بررسی وجود کد مخرب در فایل APK نرمافزار
طی این بررسی مشخص میشود که آیا فایل APK شامل کد مخربی است یا خیر. با توجه به اینکه در توسعه نرمافزارهای موبایل ممکن است از کتابخانههای مختلفی استفاده شود، نیاز است تا فایل APK نرمافزار نسبت به کد مخرب بررسی شوند.
۳) بررسی مجوزهای نرمافزار
مجوزها در اندروید دارای دو سطح امنیتی معمولی و خطرناک است. مجوزهای خطرناک به اطلاعات خصوصی دسترسی دارند و ممکن است اثری بر روی امنیت و اطلاعات خصوصی کاربر بگذارند. بنابراین مجوزهای تعیینشده برای نرمافزار نسبت به هدف و عملکرد نرمافزار سنجیده میشود.
۴) بررسی ترافیک شبکه نرمافزار
در این بخش ابتدا بستههای ارسالی و دریافتی نرمافزار موبایل جمعآوری و سپس ارتباطات از لحاظ امنیت موردبررسی قرار خواهد گرفت.
۵) ارزیابی پیکربندی ایمن پروتکل SSL/TLS
در حال حاضر مهمترین پروتکل رمزنگاری که در سطح اینترنت برای رمزنگاری دادههای لایه کاربرد و تأمین امنیت ارتباطات استفاده میشود، پروتکل SSL/TLS است. پیادهسازی و استفاده ایمن از این پروتکل دارای جزئیات فنی متعددی است که میبایست بهدرستی رعایت شود. در صورت عدم رعایت ملاحظات و نکات امنیتی در پیادهسازی این پروتکل، محرمانگی و یکپارچگی دادههای مبادله شده به خطر میافتد. در این بررسی پیکربندی این پروتکل در نرمافزار موردبررسی ارزیابی میگردد.
۶) بررسی حمله مردی در میان
حمله مردی در میان زمانی رخ میدهد که فرد مهاجم مابین ارتباط دو شخص و یا مابین ارتباط کلاینت و سرور قرار میگیرد و اطلاعاتی که بین آن دو منتقل میشود را میتواند شنود و یا همچنین تغییراتی روی پیامها اعمال کند. در این فاز از ارزیابی به بررسی این حمله پرداخته میشود.
۷) بررسی اطلاعات نشت شده در لاگها
در این بررسی کدهای منبع و لاگهای دستگاه اندرویدی موردبررسی قرار میگیرد تا مشخص شود آیا اطلاعات حساسی در رابطه با نرمافزار موردبررسی در لاگهای سیستم وجود دارد یا خیر.
۸) بررسی پایگاه داده نرمافزار
نرمافزارهای موبایل نیز از پایگاه دادههای محلی، بهمنظور نگهداری محلی برخی اطلاعات استفاده میکنند با توجه به اینکه از نظر امنیتی نباید اطلاعات حساسی در این بخش نگهداری شود، در این بررسی پایگاه دادههای نرمافزار و اطلاعاتی که در آنها ذخیره میشود موردبررسی قرار میگیرد.
۹) بررسی sslpinning
بهمنظور جلوگیری از حملات مردی در میان نرمافزارهای موبایل میتوانند از certificate pinning استفاده کنند. در این روش اطلاعات گواهینامه بهصورت یک فایل در نرمافزار hardcode میشود. برنامه در تمام ارتباطات، انطباق گواهینامه دریافت شده از سرور با گواهینامه هاردکد شده را بررسی میکند. درنتیجه حتی اگر گواهینامه معتبری از سوی سرور ارائه شود، با توجه به اینکه با گواهینامه هاردکد شده همخوانی ندارد، امکان برقراری ارتباط را نخواهد داد. در این بررسی وجود و یا عدم وجود sslpinning و صحت و درستی عملکرد آن موردبررسی قرار میگیرد.
۱۰) انجام بررسیهای سمت سرویسدهنده
با توجه به اینکه عمده نرمافزارهای موبایل دارای حداقل یک سرویسدهنده هستند، بنابراین امنیت نرمافزار موبایل بسیار وابسته به امنیت سرویسدهنده آن است. درنتیجه نیاز است تا بررسیهای سمت سرویسدهنده نیز بررسی گردد. در جدول زیر موارد آزمون سمت سرویسدهنده و جزییات آن ارائه شده است.
عنوان آزمون | جزئیات |
بررسی وجود مکانیزمهای امن برای تصدیق اصالت |
|
بررسی وجود و درستی مکانیزمهای Input Validation برای مقابله با حملات IVA |
|
بررسی ایمنی مدیریت خطاها و سیستم ثبت وقایع |
|
بررسی امنیت مدیریت نشست (Session management) |
|
بررسی شبکه |
|
بررسی پایگاه داده |
|
بررسی سیستمعامل |
|
موارد آزمون اختصاصی
موارد آزمون اختصاصی نرمافزارهای موبایل بسیار وابسته به اهداف و عملکرد نرمافزار موردبررسی است. در ادامه به چند نمونه از چنین آزمونهایی اشاره میکنیم.
۱) بررسی پیامهای کوتاه دریافتی و ارسالی نرمافزار
امروزه در بسیاری از نرمافزارهای موبایل از ارسال و دریافت پیامک استفاده میشود. بنابراین درصورتیکه عملیاتی توسط پیامکها در نرمافزار انجام شود، در این بخش از ارزیابی محتوای پیام ارسالی بهمنظور سنجش میزان امنیت آن بررسی میگردد.
۲) ارزیابی امنیتی بخش ثبتنام و ورود به نرمافزار
بهعنوان مثالی دیگر درصورتیکه بهمنظور کار با نرمافزار نیاز باشد تا ابتدا مراحل ثبتنام انجام شود نیاز است تا این مراحل ازلحاظ امنیتی موردبررسی قرار گیرد.
۳) بررسی امنیت کد فعالسازی
درصورتیکه در نرمافزار موبایل برای انجام تصدیق اصالت از کد فعالسازی استفاده شود، نیاز است تا امنیت آن موردبررسی قرار گیرد.
۴) ارزیابی موارد امنیتی مربوط به تراکنشهای پولی و بانکی
برخی نرمافزارهای موبایل با هدف انجام تراکنشهای پولی و بانکی طراحی شدهاند. بررسی امنیتی موارد مختلف چنین نرمافزارهایی حیاتی است. بهعنوان نمونه سناریو زیر را میتوانیم یکی از موارد ارزیابی امنیتی تراکنشهای پولی و بانکی در نظر گرفت.
مهاجم در نرمافزار تعیین میکند که قصد دارد مبلغی به کاربر دیگری منتقل کند. اگر در مراحل پرداخت آسیبپذیری وجود داشته باشد، میتواند در نرمافزار مبلغ ناچیزی را بهمنظور انتقال بهحساب انتخاب کند و طی مراحل پرداخت مبلغ را افزایش دهد. بنابراین از حساب او مبلغ ناچیزی کم خواهد شد درحالیکه مبلغ موردنظر او به دست کاربر موردنظرش رسیده است.
بهطورکلی موارد آزمون اختصاصی نرمافزارهای موبایل میتواند بسیار متفاوت باشد و با توجه به اهداف و عملکرد نرمافزار مشخص میشود. بنابراین با انجام بررسیهای اولیه نرمافزار چکلیست موارد آزمون اختصاصی آن تهیه میشود.
ثبت ديدگاه