گزارش تحلیلی از امنیت اپلیکیشن‌های بانکی و پرداخت داخلی و بین‌المللی

  • نویسنده: علی مهرآبادی
  • تاریخ انتشار: شنبه ، ۲۸ دی ماه ۹۸
  • تعداد بازدید: 3527
  • تعداد نظرها: 0
  • دسته بندی: امنیت برنامه های موبایل

مقدمه

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

شاید شما هم جزو آن دسته از افراد باشید که بر این باورند، سیستم عامل اندروید دارای بدافزار نیست و یا تهدیداتی از قبیل آلوده شدن به ویروس ها برای این سیستم عامل خیلی معنا ندارد، اما باید گفت متاسفانه این تفکر اشتباه است. باورهای غلط از سوی برنامه نویسان اپلیکیشن‌های موبایل در خصوص امن بودن پلتفرم های موبایلی بویژه در بستر iOS، ممکن است موجب توجه کمتر به این حوزه گردد (برای مطالعه بیشتر در این مقاله اقدام به دستکاری کد (Tampering) و Repackaging یک اپلیکیشن در هر دو پلتفرم اندروید و iOS شده است). وبسایت G-DATA به عنوان یکی از معتبرترین مراکز پژوهشی در حوزه امنیت اطلاعات، موضوع بدافزارها و ویروس های و روند رشد آنها در سیستم عامل اندروید را بررسی کرده است. این گزارش نشان می دهد که در سه ماهه سوم سال 2017 شمارش فایل‌های مخرب جدید به 810965 افزایش یافته که این رقم در مقایسه با سه ماهه پیشین همین سال افزایش 17 درصدی داشته است. در همین حال، اندروید با سهم 73 درصدی از بازار سیستم عامل تلفن های همراه، با اختلاف زیاد در مقایسه با دیگر رقبای خود نظیر iOS و ویندوز، به محبوب ترین سیستم عامل تلفن همراه تبدیل شده است(برای مطالعه جزئیات بیشتر این گزارش، اینجا را کلیک کنید).

امروزه تهدیدات سایبری، بعنوان بزرگترین تهدیدات در حوزه های مختلف به ویژه حوزه مالی شناخته می شوند. بسیاری از تحلیلگران یکی از دلایل عدم رغبت کاربران آمریکایی (حدود 30%) به استفاده از خدمات بانکداری موبایل را، بیم آنها از حملات سایبری و نشت اطلاعات مالی خود می دانند. بر اساس مطالعات انجام شده نزدیک به 40% از مشتریان بانکهای آمریکا، نگرانی های سایبری را دلیل اصلی خود برای عدم استفاده از اپلیکیشنهای موبایلی عنوان کرده اند. این مسأله در میان مشتریان مسن­تر، بارز تر است. نزدیک به 90% از مشتریان اعلام کرده اند که از خدمات پرداخت بر بستر موبایل، استفاده نمی کنند.

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

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

 

آسیب‌پذیری‌های اپلیکیشن‌های موبایلی

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

اپلیکیشن می تواند به عنوان یک راه نفوذ برای دستیابی و مورد مخاطره قرار دادن اطلاعات سمت سرور مورد سوءاستفاده قرار گیرد. به عنوان مثال در حملات دسته هوکینگ(Hooking) مهاجم سعی می کند عکس العمل‌ها و نوع رفتار اپلیکیشن را در مواجهه با محرک ها و حالات مختلف را بررسی نموده و با کشف نقاط ضعف احتمالی، از آن برای حمله استفاده نماید. بدین ترتیب فریم ورک های هوکینگ نظیر( Frida, Xposed و غیره) به مهاجمان این امکان را می‌دهند تا با دسترسی به اطلاعات حافظه و بررسی آن، رفتار و نحوه برقراری ارتباط میان کلاینت و سرور را مورد مطالعه قرار دهند. در مرحله بعدی، مهاجم می تواند با استفاده از همان فریم ورک‌ها اقدام به تزریق و ارسال کدهای غیرمجاز به سمت سرور نماید و موجب حملات DOS شده و یا رفتاری غیرطبیعی را در آن سمت اجرا نماید (برای مطالعه بیشتر به این مقاله رجوع شود).

یا اپلیکیشنهایی که درهم سازی نمی شوند و یا از رمز نگاری استفاده نمی کنند، به راحتی می توانند توسط مهاجمان دستکاری شده و نسخه غیراصل از طرق مختلف در اختیار کاربران جدید قرار گیرد. بدین ترتیب مهاجمان می توانند کدهای دستکاری شده خود که عمدتاً حاوی بدافزارها و جاسوس افزارها(Spyware & Malware) هستند را در برنامه شما قرار داده و از این طریق به اطلاعات کاربر دست پیدا نمایند.

شاید کمتر کسی باشد که در دنیای امنیت اطلاعات، واژه OWASP را نشنیده باشد. در بسیاری از محافل امنیتی به ویژه زمانی که در خصوص امنیت برنامه های کاربردی و تست نفوذپذیری صحبت می شود و یا زمانی که به دنبال یک مرجع قوی برای لیست های کنترلی و یا متدولوژی های ارزیابی امنیتی هستیم، این نام به عنوان یکی از معتبرترین و اصلی ترین مراجع به گوش می خورد. اگرچه OWASP به عنوان یک انجمن آنلاین و آزاد، اقدام به تولید و انتشار مقالات، متدولوژی ها و فناوری های حوزه امنیت برنامه های وب می‌نماید، اما با این وجود در یکی از پروژه های خود اقدام به انتشار 10 آسیب پذیری خطرناک (TOP 10) حوزه برنامه های موبایل می نماید.

توجه به آسیب پذیری های دهگانه مطرح شده توسط OWASP اگرچه یک ضرورت است، اما به هیچ وجه نمی توان آنرا کافی دانست. اما نگاهی به همین آسیب پذیری های دهگانه نشان می دهد که ردیفهای ششم، هفتم و دهم این فهرست به مهندسی معکوس(Reverse Engineering) برنامه و امکان تغییر آن (Tampering) اشاره دارد (برای مطالعه بیشتر، به این مقاله رجوع شود). اگرچه OWASP فهرست جدیدتری را بعد از 2016 ارائه نکرده است، اما بررسی های میدانی نشان می دهد که همچنان این آسیب پذیری های در این فهرست دهگانه، جای دارند و احتمالاً جایگاه آنها بالاتر آمده است.

 

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

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

بر اساس تحقیقات مؤسسه گارتنر، تا پایان سال 2020 میلادی بیش از 30% از شرکتهای بزرگ از ابزارهای امن ساز برای بهبود امنیت اپلیکشنهای موبایلی، اینترنت اشیا(IOT) و یا دستورات جاوایی(JavaScript) خود بهره خواهند گرفت (برای مطالعه جزئیات بیشتر، اینجا را کلیک کنید) و این میزان در سال 2021 به حدود 50% خواهد رسید. شاید جالب باشد که بدانید در حال حاضر این مقدار، حدود 5% است! بنابراین نرخ رشد استفاده از ابزارهای امن سازی بسیار زیاد خواهد بود. اما همچنان بسیاری از اپلیکیشنهای موبایلی در معرض تهدیدات سایبری (مانند مهندسی معکوس) قرار خواهند داشت.

 

وضعیت اپلیکیشن‌های صنعت مالی (بین‌المللی)

اخیراً بخش تحقیقات بازار شرکت گارداسکوئر بر روی بیش از 3000 اپلیکیشن صنعت بانکداری و پرداخت از سرتاسر جهان بررسی جالب و در خور توجهی را انجام داده است. این برنامه ها بصورت عمومی و از طریق بازارهای مختلف در دسترس مردم قرار دارند و از 148 کشور جهان انتخاب شده اند. این برنامه ها گروههای هدف مختلفی از جمله بانکها، شرکتهای ارائه دهنده خدمات پرداخت، فعالین حوزه رمز ارزها، شرکتهای سرمایه گذاری و سایر بخشهای حوزه مالی را مورد توجه قرار می دهند. تمامی این برنامه ها بر روی پلتفرماندروید بوده اند و توسط ابزار متن باز 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 را تولید و عرضه کرده که بیشترین سهم بازار را به خود اختصاص داده است.

میزان استفاده از ابزارهای درهم سازی در اپلیکیشنهای حوزه مالی در سطح جهان

چنانکه در نمودار فوق مشخص است نزدیک به نیمی از اپلیکیشنهای حوزه مالی بدون هیچگونه درهم سازی به بازار عرضه می شوند! نزدیک به 46% از این اپلیکیشنها از ابزارهای توسعه داده شده توسط شرکت گارداسکوئراستفاده می کنند. حدود 5% از سهم بازار نیز به سایر محصولات موجود در بازار اختصاص دارد.

 

شرایط اپ‌های صنعت بانکداری و پرداخت ایران

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

نتایج حاصل از این ارزیابی ها نشان می دهد که شرایط اپلیکیشنهای مورد استفاده در صنعت پرداخت کشور نیز تا حدود زیادی از شرایط جهانی تبعیت می کند. به این مفهوم که متأسفانه بخش عمده این اپلیکیشنها یا از هیچ ابزار امن سازی استفاده نمی کنند (19%) یا به محافظت در برابر برخی از تهدیدات اکتفا کرده و از ابزارهای رایگان و غیر تجاری استفاده می کنند (62%). برای دقت بیشتر، این بررسی به تفکیک اپلیکیشنهای بانکی و اپلیکیشنهای ارائه دهنده خدمات پرداختی (متعلق به PSPها) انجام شده است.

نمودار زیر نشان دهنده نتیجه بررسی ها برای اپلیکیشنهای بانکی است. این نتایج نشان می دهد که اگرچه بانکها به موضوع امنیت اپلیکیشنهای خود نیم نگاهی دارند، اما ترجیح می دهند برای آن هزینه زیادی نکنند! بنابراین الزامات درهم سازی را بصورت کامل رعایت نکرده و اپلیکیشن آنها علاوه بر مخاطرات پویا، در معرض مخاطرات ایستا نیز می باشد.

درصد استفاده بانکهای داخلی از ابزارهای درهم سازی 

البته شاید این نتیجه دور از انتظار نیز نباشد، زیرا اکثر برنامه نویسان و توسعه دهندگان برنامه های اندرویدی، با ابزار ProGuard آشنا هستند و استفاده از آن را مساوی با تضمین امنیت می دانند؛ که البته تصوری نادرست است.

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

درصد استفاده شرکت های PSP داخلی از ابزارهای درهم سازی 

نکته مهم در این نمودار این است که همچنان توسعه دهندگان و صاحبان این اپلیکیشنها، یا به امنیت بی توجه هستند (18% از PSPها که از هیچ ابزار درهم سازی استفاده نمی کنند) و یا اینکه امنیت در اولویت آنها نبوده و برخورداری از امنیت نسبی را برای خود کافی می دانند (45% از PSPها که از ابزارهای غیر تجاری استفاده می کنند). بنابراین به نظر می رسد با توجه به اهمیت داده های مالی مشتریان، لازم است این موضوع و تبعات آن مورد توجه بیشتری قرار گیرد.

نکته قابل تأمل دیگر آن است که متأسفانه بسیاری از صاحبان اپلیکیشنها تنها بخشی از امنیت را مورد توجه قرار می دهند (توجه به تهدیدات ایستا) و از تهدیدات پویا غافل می شوند. از آنجا که امنیت یک موضوع چند بعدی و جامع است، لذا باید ابزارهای امن سازی امکان پوشش لایه های مختلف امنیتی را داشته باشند.

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

 

تفاوت DexGuard و ProGurad

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

بصورت کلی ProGuard یک بهینه ساز عمومی است که برای پلتفرم جاوا توسعه داده شده است ومی توان گفت عمر آن به پیش از پیدایش اندروید بر می گردد؛ این ابزار به صورت ابتدایی و اولیه صرفاً برنامه را در برابر بخش کوچکی از تهدیدات ایستا، محافظت می کند در صورتیکه DexGuard ابزار تخصصی امنیتی برای اپلیکیشنهای اندرویدی و علاوه بر آسیب پذیری های ایستا، تهدیدات پویا را نیز پوشش داده و بنابراین سطح امنیتی بالاتری را برای اپلیکیشنهای موبایلی به ارمغان می آورد. است.

در واقع DexGuard نه تنها کد برنامه را با استفاده از تکنیک های مبهم سازی و رمزنگاری پیچیده تر و ایمن می کند، بلکه یک سری از مکانیزم های امنیتی زمان اجرا را نیز در آن ادغام می کند و به صورت یکپارچه در می آورد. این مکانیزم ها، یکپارچگی برنامه و محیطی را که در آن اجرا می شود، بررسی می کنند و برنامه را قادر می سازند تا هر زمانی که فعالیت مشکوکی شناسایی شد، از خود واکنش نشان دهد.

ProGuard تنها با مبهم سازی سطح پایین نام کلاس های استفاده شده در برنامه، متن برنامه را در برابر تهدیدات ایستا، تا حدی محافظت می کند؛ اما DexGuard نه تنها نام کلاس ها، فیلدها و متدها، بلکه عبارات ریاضی و منطقی در کد و گردش کار (Workflow) درون برنامه را نیز در سطح بالا مبهم می کند. علاوه بر این، این ابزار تجاری، رشته ها (String) و کلاس ها را رمز نموده و دسترسی به API های حساس را بسیار دشوار و پیچیده می سازد. در نتیجه خروجی بدست آمده با توجه به استفده از لایه های مختلف امنیتی یک محافظت شده و ایمن‌تر خواهد بود.

ProGuard یک ابزار متن باز است که بر روی بایت کد (bytecode) جاوا متمرکز می شود؛ اما DexGuard یک محصول تجاری است که تمام اجزای یک برنامه را پردازش کرده و ایمن می کند. در واقع DexGuard علاوه بر بایت کد، فایل های manifast، کتابخانه های native، منابع و فایل های منابع را بهینه سازی، مبهم سازی و رمزنگاری می کند. (برای مطالعه بیشتر در خصوص تفاوت های این دو ابزار اینجا را کلیک کنید)

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

 

نتیجه گیری و پیشنهادات

بررسی اپلیکیشنهای صنعت پرداخت در سطح بین المللی و همچنین در سطح کشور نشانگر دو موضوع مهم است:

  • متأسفانه همچنان برخی از فعالین این حوزه از هیچ ابزار درهم سازی و مبهم سازی استفاده نمی کنند! اگرچه به نظر می رسد که وضعیت اپلیکیشنهای پرداختی کشورمان بهتر از میانگین جهانی است، اما این مسأله همچنان به چشم می خورد که حاکی از عدم اطلاع و یا توجه صاحبان آنها به موضوع امنیت است.
  • استفاده از ابزارهای رایگان برای درهم سازی اپلیکیشنها بیشترین سهم را در این حوزه دارد که نشان می دهد همچنان صاحبان کسب و کار پرداخت، اولویت را بر مسائل مالی قرار داده و کفه موضوعات مالی برایشان سنگینتراز کفه امنیت برنامه و داده های حساس مشتریانشان است.
  • ابزار رایگان مورد استفاده (ProGuard) عملا یک ابزار فشرده ساز و بهینه سازی محسوب می شود و سهم بسیار بسیار اندکی (شاید کمتر از 5 درصد) در امن سازی یک اپلیکیشن اندروید ایفا مینماید ولی متاسفانه به اشتباه به عنوان تضمین کننده امنیت در میان برخی توسعه دهندگان یا صاحبان کسب و کار معرفی می شود.

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

با توجه به نتایج حاکی از این بررسی ها، پیشنهادات زیر قابل ارائه است:

  • تدوین الزامات امنیتی برای اپلیکیشنهایی که با داده های حساس و شخصی کاربران سر و کار دارند (از جمله اپلیکیشنهای صنعت پرداخت) توسط نهادهای حاکمیتی
  • الزام به اخذ تأییدیه های امنیتی از مراجع و آزمایشگاههای ذیصلاح قبل از انتشار عمومی اپلیکیشنهای بانکی
  • الزام بانکها و فعالان صنعت پرداخت به استفاده از ابزارها و روشهای امن سازی
  • با توجه به تصور عمومی نسبت به امنیت ذاتی در بستر iOS (که متاسفانه صحیح نمی باشد) پیشنهاد می شود این پژوهش بر روی اپلیکیشن های این بستر نیز صورت پذیرد.

امید است نتایج این تحقیق کمکی هر چند کوچک به ارتقای سطح امنیت اپلیکیشنهای موبایلی صنعت پرداخت کشور، نماید.