گسترش روزافزون استفاده از اپلیکیشنهای موبایلی در زندگی روزمره کاربران واقعیتی اجتنابناپذیر است، اما در کنار آن افزایش تهدیدات سایبری نیز موضوعی غیر قابل انکار است که باید برای محافظت در برابر آنها چارهاندیشی کرد.
منبع : وبسایت آشنا ایمن
گسترش روزافزون استفاده از اپلیکیشنهای موبایلی در زندگی روزمره کاربران واقعیتی اجتنابناپذیر است، اما در کنار آن افزایش تهدیدات سایبری نیز موضوعی غیر قابل انکار است که باید برای محافظت در برابر آنها چارهاندیشی کرد.
به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، در این میان امنیت اپلیکیشنهای حوزه بانکی و صنعت پرداخت که در آنها اطلاعات مالی و حساس مشتریان مبادله میشود، دارای اهمیتی ویژه هستند که باید به آن توجه شود. در این پژوهش تلاش شدهاست تا با بررسی شرایط امنیتی اپلیکیشنهای صنعت بانکداری و فعالان نظام پرداخت جمهوری اسلامی ایران و مقایسه آن با شرایط جهانی، دورنمایی از وضعیت امنیتی آنها ارائه شود. نتایج این پژوهش نشان میدهد که متأسفانه امنیت بهعنوان یک عامل اتکا و اعتماد مشتریان، توسط قسمت عمده فعالان این صنعت (اعم از صاحبان کسبوکار و توسعهدهندگان) جدی گرفته نمیشود. در انتها نیز پیشنهادهایی جهت بهبود شرایط امنیتی اپلیکیشنها ارائه شدهاست.
شاید شما هم جزو آن دسته از افراد باشید که بر این باورند، سیستم عامل اندروید دارای بدافزار نیست و یا تهدیداتی از قبیل آلوده شدن به ویروسها برای این سیستم عامل خیلی معنا ندارد، اما باید گفت متاسفانه این تفکر اشتباه است. وبسایت G-DATA به عنوان یکی از معتبرترین مراکز پژوهشی در حوزه امنیت اطلاعات، موضوع بدافزارها و ویروسها و روند رشد آنها در سیستم عامل اندروید را بررسی کردهاست. این گزارش نشان میدهد که در سه ماهه سوم سال ۲۰۱۷ شمارش فایلهای مخرب جدید به ۸۱۰۹۶۵ افزایش یافته که این رقم در مقایسه با سهماهه پیشین همین سال افزایش ۱۷ درصدی داشتهاست. در همین حال، اندروید با سهم ۷۳ درصدی از بازار سیستم عامل تلفنهای همراه با اختلاف زیاد در مقایسه با دیگر رقبای خود نظیر iOS و ویندوز به محبوبترین سیستم عامل تلفن همراه تبدیل شدهاست.
امروزه تهدیدات سایبری، بهعنوان بزرگترین تهدیدات در حوزههای مختلف بهویژه حوزه مالی شناخته میشوند. بسیاری از تحلیلگران یکی از دلایل عدم رغبت کاربران آمریکایی (حدود ۳۰درصد) به استفاده از خدمات بانکداری موبایل را، بیم آنها از حملات سایبری و نشت اطلاعات مالی خود میدانند. بر اساس مطالعات انجام شده نزدیک به ۴۰ درصد از مشتریان بانکهای آمریکا، نگرانیهای سایبری را دلیل اصلی خود برای عدم استفاده از اپلیکیشنهای موبایلی عنوان کردهاند. این مسئله در میان مشتریان مسنتر، بارزتر است. نزدیک به ۹۰ درصد از مشتریان اعلام کردهاند که از خدمات پرداخت بر بستر موبایل، استفاده نمیکنند.
استفاده مشتریان از خدمات بانکداری همراه، نشانگر اعتماد مشتریان به بانک و وفاداری آنهاست. به این مفهوم که علیرغم احتمال نشت اطلاعات از بستر همراه بانکها، مشتریان این ریسک را پذیرفته و از این سرویس استفاده میکنند. برای رسیدن به فراگیری متناسب با رشد خیرهکننده استفاده از اپلیکیشنهای موبایلی در زندگی روزمره کاربران، توسعهدهندگان اپلیکیشنهای حوزه پرداخت باید اطمینان لازم را برای مشتریان خود از جهت امنیت دادههای شخصی آنها، فراهم آورند.
توجه به ابعاد امنیتی و پوشش مخاطرات این حوزه، یک ضرورت اجتنابناپذیر است که متأسفانه از سوی مالکان و تیمهای توسعهدهنده این اپلیکیشنها کمتر مورد توجه قرار میگیرد؛ به این مفهوم که متأسفانه صاحبان و توسعهدهندگان این برنامهها، تمرکز اصلی خود را به قابلیتهای عملیاتی برنامه معطوف کرده و کمتر به موارد امنیتی آنها توجه میکنند. اگرچه هم مالکان و هم کاربران این برنامهها به اهمیت امنیت این برنامهها واقف هستند، اما متأسفانه توجه صاحبان آنها متناسب با این میزان اهمیت نیست.
آسیبپذیریهای اپلیکیشنهای موبایلی بسیاری از طراحان و برنامهنویسان برنامههای موبایل، بهویژه توسعهدهندگان حوزه اپلیکیشنهای بانکداری و پرداخت بر این باورند که با توجه به محدود بودن حجم و کد برنامههای موبایلی ایشان و انجام بسیاری از فعالیتها و فرایندها در سمت سرور، عملا آسیبپذیری اپلیکیشن کاهش یافته و امنیت برنامه موبایل تا حد زیادی حفظ میشود. اگرچه اطمینان از امنیت در سمت سرور یک ضرورت اجتنابناپذیر است، این موضوع نباید منجر به ایجاد این تفکر در ذهن توسعهدهندگان شود که برنامههای موبایلی در مقابل همه حملات مهاجمان مصون هستند و یا اصلا هک نمیشوند.
اپلیکیشن میتواند به عنوان یک راه نفوذ برای دستیابی و مورد مخاطره قرار دادن اطلاعات سمت سرور مورد سوءاستفاده قرار گیرد. به عنوان مثال در حملات دسته هوکینگ (Hooking) مهاجم سعی میکند عکسالعملها و نوع رفتار اپلیکیشن را در مواجهه با محرک ها و حالات مختلف را بررسی کرده و با کشف نقاط ضعف احتمالی از آن برای حمله استفاده کند. بدینترتیب فریمورکهای هوکینگ نظیر (Frida, Xposed و غیره)، این امکان را به مهاجمان میدهند تا با دسترسی به اطلاعات حافظه و بررسی آن، رفتار و نحوه برقراری ارتباط میان کلاینت و سرور را مورد مطالعه قرار دهند. در مرحله بعدی، مهاجم میتواند با استفاده از همان فریمورکها اقدام به تزریق و ارسال کدهای غیرمجاز به سمت سرور کند و موجب حملات DOS شده و یا رفتاری غیرطبیعی را در آن سمت اجرا کند.
یا اپلیکیشنهایی که درهم سازی نمی شوند و یا از رمز نگاری استفاده نمیکنند بهراحتی میتوانند توسط مهاجمان دستکاری شده و نسخه غیراصل از طرق مختلف در اختیار کاربران جدید قرار گیرد. بدین ترتیب مهاجمان میتوانند کدهای دستکاری شده خود را که عمدتاً حاوی بدافزارها و جاسوسافزارها (Spyware & Malware) هستند در برنامه شما قرار داده و از این طریق به اطلاعات کاربر دست پیدا کنند.
شاید کمتر کسی باشد که در دنیای امنیت اطلاعات، واژه OWASP را نشنیده باشد. در بسیاری از محافل امنیتی بهویژه زمانی که در خصوص امنیت برنامههای کاربردی و تست نفوذپذیری صحبت میشود و یا زمانی که به دنبال یک مرجع قوی برای لیستهای کنترلی و یا متدلوژیهای ارزیابی امنیتی هستیم، این نام به عنوان یکی از معتبرترین و اصلیترین مراجع به گوش میخورد. اگرچه OWASP به عنوان یک انجمن آنلاین و آزاد، اقدام به تولید و انتشار مقالات، متدلوژیها و فناوریهای حوزه امنیت برنامههای وب میکند، اما با این وجود در یکی از پروژههای خود اقدام به انتشار ۱۰ آسیبپذیری خطرناک (TOP 10) حوزه برنامههای موبایل میکند.
توجه به آسیبپذیریهای دهگانه مطرح شده توسط OWASP اگرچه یک ضرورت است، اما به هیچ وجه نمیتوان آن را کافی دانست. اما نگاهی به همین آسیبپذیریهای دهگانه نشان میدهد که ردیفهای ششم، هفتم و دهم این فهرست به مهندسی معکوس (Reverse Engineering) برنامه و امکان تغییر آن (Tampering) اشاره دارد. اگرچه OWASP فهرست جدیدتری را بعد از ۲۰۱۶ ارائه نکردهاست، اما بررسیهای میدانی نشان میدهد که همچنان این آسیبپذیریهای در این فهرست دهگانه، جای دارند و احتمالاً جایگاه آنها بالاتر آمدهاست.
اهمیت امنسازی برنامههای موبایلی متأسفانه بررسیها نشان میدهد که بخش عمده اپلیکیشنهای موجود در بازارهای مختلف از هیچگونه ابزار و مکانیزم امنسازی برای این دو آسیبپذیری اصلی استفاده نمیکنند. این موضوع بهویژه در حوزه صنعت بانکی که احتمال سوءاستفاده از برنامهها با سرقت اطلاعات و یا ارائه برنامههای تقلبی وجود دارد، مخاطرات امنیتی فراوانی را به همراه خواهد داشت.
بر اساس تحقیقات مؤسسه گارتنر تا پایان سال ۲۰۲۰ میلادی بیش از ۳۰ درصد شرکتهای بزرگ از ابزارهای امنساز برای بهبود امنیت اپلیکشنهای موبایلی، اینترنت اشیا (IOT) و یا دستورات جاوایی (JavaScript) خود بهره خواهند گرفت و این میزان در سال ۲۰۲۱ به حدود ۵۰ درصد خواهدرسید. شاید جالب باشد که بدانید در حال حاضر این مقدار، حدود ۵ درصد است! بنابراین نرخ رشد استفاده از ابزارهای امنسازی بسیار زیاد خواهدبود، اما همچنان بسیاری از اپلیکیشنهای موبایلی در معرض تهدیدات سایبری (مانند مهندسی معکوس) قرار خواهند داشت.
وضعیت اپلیکیشنهای صنعت مالی (بینالمللی) اخیراً بخش تحقیقات بازار شرکت گارداسکوئر بر روی بیش از ۳۰۰۰ اپلیکیشن صنعت بانکداری و پرداخت از سرتاسر جهان بررسی جالب و در خور توجهی را انجام دادهاست. این برنامهها بهصورت عمومی و از طریق بازارهای مختلف در دسترس مردم قرار دارند و از ۱۴۸ کشور جهان انتخاب شدهاند. این برنامهها گروههای هدف مختلفی ازجمله بانکها، شرکتهای ارائهدهنده خدمات پرداخت، فعالان حوزه رمز ارزها، شرکتهای سرمایهگذاری و سایر بخشهای حوزه مالی را مورد توجه قرار میدهند. تمامی این برنامهها بر روی پلتفرم اندروید بودهاند و توسط ابزار متنباز ApkID مورد تحلیل قرار گرفتهاند. نتایج حاکی از آن است که متأسفانه فقط بخش کوچکی از این اپلیکیشنها از ابزارهای امنساز و روشهای درهمسازی (Obfuscation) استفاده میکنند و مابقی در برابر سرقت اطلاعات، مهندسی معکوس و تولید برنامههای مشابه تقلبی، سرقت IP و سایر مخاطرات امنیتی بدون محافظ رها شدهاند.
منظور از امنسازی اپ چیست؟ در اینجا منظور ما از امنسازی، دشوارترکردن کار یک نفوذگر جهت دسترسی به کد برنامه و تغییر آن است. تکنیکهای مختلفی برای این کار وجود دارد که از آن جمله میتوان به امنسازی کد (Code Hardening) و ممانعت از تغییر برنامه (Anti-Tampering) اشاره کرد. این تکنیکها به صورت زیر تعریف میشوند:
درهمسازی کد و یا امنسازی کد: این روش بهصورت خلاصه عبارت است بهکارگیری مجموعهای از روشها جهت دشوارتر کردن کار خواندن، تحلیل و فهمیدن کد یک برنامه. هدف از بهکارگیری این روش، پیشگیری از لو رفتن اطلاعات حساس (مانند آدرس IP سرور میزبان) و همچنین مهندسی معکوس برنامه است. روشهای بهکار رفته در این تکنیک شامل مواردی همچون رمزنگاری، تغییر نام متغیرها، توابع و کلاسها، به هم ریختن ساختار کد و ... میشود. در واقع این روشها بر محافظت در برابر مخاطرات و حملات ایستا متمرکز هستند.
ممانعت از تغییر برنامه: این روشها بیشتر به تهدیدات و حملات پویای اپلیکیشن و مخاطراتی که در حین اجرای برنامه آن را تهدید میکند، اشاره دارد و به روشهای خود ایمنی برنامه در زمان اجرا (Run-time application self-protection) یا همان RASP معروف است. برخی از روشهای اصلی در این حوزه عبارتاند از: تشخیص محیط نصب (Jailbreak/Root detection) و تشخیص تغییر برنامه (Tamper Detection). این تکنیکها در کنار روشهای محافظت ایستا از کد برنامه، از تحلیل و تغییر برنامه در زمان اجرا توسط نفوذگران جلوگیری میکند.
در این پژوهش تمرکز ما بر روی تهدیدات ایستای اپلیکیشنهای موبایلی است؛ زیرا آن را به عنوان مادر تهدیدات میشناسیم و محافظت از برنامههای موبایلی در برابر این تهدیدات، گام اول در امنسازی آنهاست.
گزارش وضعیت درهمسازی اپلیکیشنها در این بخش به نتایج بهدست آمده در پژوهش شرکت گارداسکوئر میپردازیم که در آن میزان استفاده از درهمسازهای متداول را بهازای حوزههای مختلف کسب و مناطق جغرافیایی بینالمللی بررسی کردهاست.
تحلیل جغرافیایی بررسی کلی نشان میدهد که حدود نیمی از برنامههای مورد بررسی از مکانیزمها و ابزارهای درهمساز برای محافظت از متن برنامه خود بهره میبرند. اگرچه این میزان در کل جهان ثابت نیست، اما تفاوت معناداری نیز بین بخشهای مختلف آن مشاهده نمیشود.
چنانچه در نمودار زیر مشاهده میکنید، وضعیت اپلیکیشنهای اروپایی کمی بهتر از سایر نقاط جهان است که احتمالاً مربوط به پیادهسازی الزامات محافظت از دادهها (GDPR) است. تفکیک میزان استفاده از این روشها در تعدادی از کشورهای برگزیده در نمودار بعد نشان داده شدهاست. اپلیکیشنهای در دسترس در این کشورها از سایر کشورها بیشتر بوده و لذا دادههای آنها به شرایط واقعی نزدیکتر و قابل اتکاتر خواهدبود.
میزان استفاده به تفکیک حوزه فعالیت
اگرچه تمامی اپلیکشنهای مورد ارزیابی در حوزه مالی بودهاند، اما میتوان آنها را به زیر حوزههای مختلفی ازجمله صنعت بانکداری، بیمه، رمز ارز و غیره تقسیم کرد. میزان استفاده از امنسازها در این زیرحوزهها را میتوان در نمودار زیر مشاهده کرد. درصد استفاده از روشهای درهمسازی در اپلیکیشنهای زیرحوزههای مالی چنانکه در نمودار فوق مشخص است حوزه های پرداخت و همچنین کیف پولها، بیشترین استفاده از ابزارهای امنساز را دارند و در مقابل، حوزه سرمایهگذاری و رمز ارز، کمترین بهره را از امنسازها دارند. شاید توسعهدهندگان اپلیکیشنهای رمز ارز با تصور این موضوع که ماهیت فناوری زنجیره بلوک (Blockchain) متضمن امنیت در بالاترین سطح است، خود را بینیاز از ابزارهای امنساز تلقی میکنند؛ اگرچه که این تصور نادرست است و محافظت در برابر آسیبپذیری برای اپلیکیشنهای موبایلی حوزه رمز ارزها نیز مانند سایر حوزهها حائز اهمیت است.
ابزارهای امنسازی اپلیکیشنهای موبایلی ابزارهای مختلفی برای امنسازی اپلیکیشنهای موبایلی در برابر آسیبپذیریهای ایستا وجود دارد که بهصورت گستردهای در سطح جهان مورد استفاده قرار می گیرند. بیشترین سهم را در این میان، ابزار ProGuard به خود اختصاص دادهاست که محصول غیر تجاری شرکت گارداسکوئر است و بهصورت پیشفرض در بسیاری از سکوهای توسعه اپلیکیشنهای اندرویدی (مانند Android Studio) مورد استفاده قرار گرفتهاست. به همین دلیل بسیاری از توسعهدهندگان اپلیکیشنهای موبایلی با این ابزار آشنا هستند. لذا این شرکت با تکیه بر این آشنایی نسبی توسعهدهندگان، محصول تجاری خود تحت عنوان DexGuard را تولید و عرضه کرده که بیشترین سهم بازار را به خود اختصاص دادهاست. چنانکه در نمودار فوق مشخص است نزدیک به نیمی از اپلیکیشنهای حوزه مالی بدون هیچگونه درهم سازی به بازار عرضه می شوند! نزدیک به ۴۶% از این اپلیکیشنها از ابزارهای توسعه داده شده توسط شرکت گارداسکوئراستفاده می کنند. حدود ۵% از سهم بازار نیز به سایر محصولات موجود در بازار اختصاص دارد.
میزان استفاده از ابزارهای درهم سازی در اپلیکیشنهای حوزه مالی در سطح جهان چنانکه در نمودار فوق مشخص است نزدیک به نیمی از اپلیکیشنهای حوزه مالی بدون هیچگونه درهمسازی به بازار عرضه میشوند! نزدیک به ۴۶ درصد از این اپلیکیشنها از ابزارهای توسعه داده شده توسط شرکت گارداسکوئر استفاده میکنند. حدود ۵ درصد از سهم بازار نیز به سایر محصولات موجود در بازار اختصاص دارد.
شرایط اپهای صنعت بانکداری و پرداخت ایران به منظور تکمیل گزارش تحلیلی فوق و مقایسه شرایط برنامههای موبایلی صنعت مالی داخلی و بینالمللی از منظر امنیت اطلاعات، مجموعهای از ارزیابیهای امنیتی در دپارتمان ارزیابی امنیتی و تست نفوذپذیری شرکت آشنا ایمن بر روی تمامی اپلیکیشنهای رسمی صنعت بانکی (۲۳ مورد) و پرداخت (۹ مورد) داخلی انجام شدهاست. این ارزیابیها بر روی آخرین نسخه اپلیکیشنهای این بانکها و شرکتها که در دسترس عموم قرار دارند، انجام شدهاست. آنچه در ادامه آمدهاست، نتایج این ارزیابیها و نگاه تحلیلی به آنهاست. لازم به ذکر است بررسیهای انجامشده فقط بر روی اپلیکیشنهای موجود در بستر اندروید بوده و شامل سایر بسترهای موبایلی نمیشود.
نتایج حاصل از این ارزیابیها نشان میدهد که شرایط اپلیکیشنهای مورد استفاده در صنعت پرداخت کشور نیز تا حدود زیادی از شرایط جهانی تبعیت میکند. به این مفهوم که متأسفانه بخش عمده این اپلیکیشنها یا از هیچ ابزار امنسازی استفاده نمیکنند (۱۹درصد) یا به محافظت در برابر برخی از تهدیدات اکتفا کرده و از ابزارهای رایگان و غیر تجاری استفاده میکنند (۶۲ درصد). برای دقت بیشتر، این بررسی به تفکیک اپلیکیشنهای بانکی و اپلیکیشنهای ارائهدهنده خدمات پرداختی (متعلق به PSPها) انجام شدهاست.
نمودار زیر نشاندهنده نتیجه بررسیها برای اپلیکیشنهای بانکی است. این نتایج نشان میدهد که اگرچه بانکها به موضوع امنیت اپلیکیشنهای خود نیمنگاهی دارند، اما ترجیح میدهند برای آن هزینه زیادی نکنند! بنابراین الزامات درهمسازی را بهصورت کامل رعایت نکرده و اپلیکیشن آنها علاوهبر مخاطرات پویا در معرض مخاطرات ایستا نیز است. درصد استفاده بانکهای داخلی از ابزارهای درهمسازی البته شاید این نتیجه دور از انتظار نیز نباشد، زیرا اکثر برنامهنویسان و توسعهدهندگان برنامههای اندرویدی، با ابزار ProGuard آشنا هستند و استفاده از آن را مساوی با تضمین امنیت میدانند که البته تصوری نادرست است.
در نمودار بعد نتیجه بررسیهای برای اپلیکیشنهای شرکتهای ارائهدهنده خدمات پرداخت نشان داده شدهاست. این نتایج تا حد زیادی مشابه اپلیکیشنهای بانکی است؛ با این تفاوت که ظاهراً فعالان این صنعت توجه بیشتری به استفاده از ابزارهای تجاری و حرفهای دارند.
درصد استفاده شرکتهای PSP داخلی از ابزارهای درهمسازی
نکته مهم در این نمودار این است که همچنان توسعهدهندگان و صاحبان این اپلیکیشنها یا به امنیت بیتوجه هستند (۱۸ درصد از PSPها که از هیچ ابزار درهمسازی استفاده نمیکنند) و یا اینکه امنیت در اولویت آنها نبوده و برخورداری از امنیت نسبی را برای خود کافی میدانند (۴۵ درصد از PSPها که از ابزارهای غیرتجاری استفاده میکنند)، بنابراین به نظر میرسد با توجه به اهمیت دادههای مالی مشتریان، لازم است این موضوع و تبعات آن مورد توجه بیشتری قرار گیرد.
نکته قابل تأمل دیگر آن است که متأسفانه بسیاری از صاحبان اپلیکیشنها فقط بخشی از امنیت را مورد توجه قرار میدهند (توجه به تهدیدات ایستا) و از تهدیدات پویا غافل میشوند. از آنجا که امنیت یک موضوع چندبعدی و جامع است، لذا باید ابزارهای امنسازی امکان پوشش لایههای مختلف امنیتی را داشتهباشند.
با توجه به اهمیت دادههای شخصی مشتریان، لازم است فعالان این حوزه برای امنیت اپلیکیشنهای خود اهمیت بیشتری قائل شوند؛ موضوعی که با توجه به شرایط موجود به نظر میرسد نیازمند برنامهریزی دقیق برای سپردن راهی طولانی است.
تفاوت DexGuard و ProGurad با توجه به سهم بالای محصولات شرکت گارداسکوئراز بازار امنیت اپلیکیشنهای موبایلی بهصورت خلاصه به مقایسه دو محصول شناختهشده این شرکت میپردازیم که یکی بهصورت متنباز و دیگری به صورت تجاری در بستر اندروید مورد استفاده قرار میگیرد.
بهصورت کلی ProGuard یک بهینهساز عمومی است که برای پلتفرم جاوا توسعه داده شدهاست و میتوان گفت عمر آن به پیش از پیدایش اندروید برمیگردد؛ این ابزار بهصورت ابتدایی و اولیه صرفاً برنامه را در برابر بخش کوچکی از تهدیدات ایستا، محافظت میکند در صورتیکه DexGuard ابزار تخصصی امنیتی برای اپلیکیشنهای اندرویدی است و علاوهبر آسیبپذیریهای ایستا، تهدیدات پویا را نیز پوشش داده و بنابراین سطح امنیتی بالاتری را برای اپلیکیشنهای موبایلی به ارمغان میآورد.
در واقع DexGuard نه فقط کد برنامه را با استفاده از تکنیکهای مبهمسازی و رمزنگاری پیچیدهتر و ایمن میکند، بلکه یکسری از مکانیزمهای امنیتی زمان اجرا را نیز در آن ادغام میکند و بهصورت یکپارچه درمیآورد. این مکانیزمها، یکپارچگی برنامه و محیطی را که در آن اجرا میشود، بررسی میکنند و برنامه را قادر میسازند تا هر زمانی که فعالیت مشکوکی شناسایی شد از خود واکنش نشان دهد.
ProGuard فقط با مبهمسازی سطح پایین نام کلاسهای استفادهشده در برنامه، متن برنامه را در برابر تهدیدات ایستا تا حدی محافظت میکند؛ اما DexGuard نه فقط نام کلاسها، فیلدها و متدها، بلکه عبارات ریاضی و منطقی در کد و گردش کار (Workflow) درون برنامه را نیز در سطح بالا مبهم میکند. علاوهبر این، این ابزار تجاری، رشتهها (String) و کلاسها را رمز کرده و دسترسی به API های حساس را بسیار دشوار و پیچیده میسازد. درنتیجه خروجی بهدست آمده با توجه به استفاده از لایههای مختلف امنیتی یک محافظتشده و ایمنتر خواهدبود.
ProGuard یک ابزار متنباز است که بر روی بایتکد (bytecode) جاوا متمرکز میشود؛ اما DexGuard یک محصول تجاری است که تمام اجزای یک برنامه را پردازش کرده و ایمن میکند. در واقع DexGuard علاوهبر بایتکد، فایلهای manifast، کتابخانههای native، منابع و فایلهای منابع را بهینهسازی، مبهمسازی و رمزنگاری میکند.
با توجه به اینکه هر دو محصول توسط شرکت گارداسکوئر ارائه شدهاست، لذا ارتقا از ProGuard به DexGuard دشوار نبوده و میتوان به آسانی از تنظیمات موجود و فعلی استفاده کرده و به DexGuard مهاجرت کرده و شرایط امنیتی اپلیکیشن را ارتقا داد.
نتیجهگیری و پیشنهادها بررسی اپلیکیشنهای صنعت پرداخت در سطح بینالمللی و همچنین در سطح کشور نشانگر دو موضوع مهم است:
متأسفانه همچنان برخی از فعالان این حوزه از هیچ ابزار درهمسازی و مبهمسازی استفاده نمیکنند! اگرچه به نظر میرسد که وضعیت اپلیکیشنهای پرداختی کشورمان بهتر از میانگین جهانی است، اما این مسئله همچنان به چشم میخورد که حاکی از عدم اطلاع و یا توجه صاحبان آنها به موضوع امنیت است.
استفاده از ابزارهای رایگان برای درهمسازی اپلیکیشنها بیشترین سهم را در این حوزه دارد که نشان میدهد همچنان صاحبان کسبوکار پرداخت، اولویت را بر مسائل مالی قرار داده و کفه موضوعات مالی برایشان سنگینتر از کفه امنیت برنامه و داده های حساس مشتریانشان است.
ابزار رایگان مورد استفاده (ProGuard) عملا یک ابزار فشردهساز و بهینهسازی محسوب میشود و سهم بسیار بسیار اندکی (شاید کمتر از ۵ درصد) در امنسازی یک اپلیکیشن اندروید ایفا میکند، ولی متاسفانه به اشتباه بهعنوان تضمینکننده امنیت در میان برخی توسعه دهندگان یا صاحبان کسبوکار معرفی میشود.
بخشی از عدم توجه مناسب و کافی به موارد فوق را میتوان متوجه توسعهدهندگان دانست که به قابلیتهای کارکردی و کاربپسند بودن برنامه، بیش از امنیت آن بها میدهند و بخش دیگر را به عدم وقوع نشت اطلاعات سراسری و یا تبعات آن تاکنون دانست که نگاهها را به خود جلب کند، بنابراین به نظر میرسد که لازم است توسعهدهندگان نیز در کنار صاحبان کسبوکارها، این موضوع را مورد توجه قرار دهند.
با توجه به نتایج حاکی از این بررسیها، پیشنهادها زیر قابل ارائه است:
- تدوین الزامات امنیتی برای اپلیکیشنهایی که با دادههای حساس و شخصی کاربران سر و کار دارند (ازجمله اپلیکیشنهای صنعت پرداخت) توسط نهادهای حاکمیتی - الزام به اخذ تأییدیههای امنیتی از مراجع و آزمایشگاههای ذییصلاح قبل از انتشار عمومی اپلیکیشنهای بانکی - الزام بانکها و فعالان صنعت پرداخت به استفاده از ابزارها و روشهای امنسازی - با توجه به تصور عمومی نسبت به امنیت ذاتی در بستر iOS (که متاسفانه صحیح نیست) پیشنهاد میشود این پژوهش بر روی اپلیکیشنهای این بستر نیز صورت پذیرد.