امنیت اپلیکیشن های مالی

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

بدافزار سیستم عامل اندروید

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

تهدیدات سایبری

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

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

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

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

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

فریم ورک های هوکینگ

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

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

OWASP

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

توجه به آسیب پذیری های دهگانه مطرح شده توسط OWASP اگرچه یک ضرورت است، اما به هیچ وجه نمی توان آنرا کافی دانست. اما نگاهی به همین آسیب پذیری های دهگانه نشان می دهد که ردیفهای ششم، هفتم و دهم این فهرست به مهندسی معکوس(Reverse Engineering)برنامه و امکان تغییر آن (Tampering) اشاره دارد. اگرچه این انجمن فهرست جدیدتری را بعد از 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)این تکنیکها در کنار روشهای محافظت ایستا از کد برنامه، از تحلیل و تغییر برنامه در زمان اجرا توسط نفوذگران جلوگیری می کند. در این پژوهش تمرکز ما بر روی تهدیدات ایستای اپلیکیشنهای موبایلی است؛ زیرا آنرا بعنوان مادر تهدیدات می شناسیم و محافظت از برنامه های موبایلی در برابر این تهدیدات، گام اول در امن سازی آنهاست.

گزارش وضعیت درهم‌سازی اپلیکیشن‌ها

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