اقبال کاربران به استفاده از خدمات مالی مبتنی بر اپلیکیشنهای موبایلی، در کنار ایجاد مزایای بسیار برای بانکها و شرکتهای پرداختی، دریچه ای جدید را نیز برای نفوذگران گشوده است. بنابراین لازم است جهت حفاظت از منافع ذینفعان (اعم از مشتریان و مؤسسات مالی)، توجه ویژه ای به امنیت برنامه های موبایلی شود تا در کنار ایجاد بستر لازم برای انجام تراکنشهای مالی الکترونیکی، اطمینان کافی از امنیت آن نیز فراهم گردد. تحقیقات ما در آزمایشگاه ارزیابی امنیتی آشنا ایمن نشان می دهد که متأسفانه شرایط امنیتی این اپلیکیشنها در سطح جهان و ایران، مطلوب نیست (برای مطالعه بیشتر اینجا را کلیک کنید). محصولات امنیتی DexGuard (در پلتفرم اندروید) و iXGuard (در پلتفرم iOS) به مالکان این اپلیکیشنها کمک می کنند که از جهت انطباق با الزامات امنیتی استانداردهای جهانی مانند PSD2، پروژه امنیت موبایل OWASP و PCI اطمینان حاصل نمایند. این محصولات با محافظت از برنامه ها و کاربران در برابر تهدیدات ایستا و پویا، شرایط لازم جهت انطباق با الزامات امنیتی (مانند PCI) را نیز فراهم می آورد تا صاحبان مؤسسات مالی و همچنین مشتریان آنها بتوانند با خاطری آسوده، از آنها استفاده کنند. در این مقاله چگونگی انطباق اپلیکیشنهای موبایلی با استفاده از محصولات مذکور با الزامات استاندارد امنیت پرداخت PCI بررسی خواهد شد.
انطباق با الزامات امنیتی PCI در برنامه های پرداخت موبایلی به معنای اطمینان از امنیت اطلاعات دارنده کارت و تراکنشهای وی در زمان استفاده از آنها توسط اپلیکیشن است که می تواند طیفی گسترده از سیاستهای امنیتی از رمزنگاری داده ها تا درهم سازی برنامه را شامل شود. بسیاری از این الزامات در دستورالعملهای امنیتی PCI در مورد برنامه های پرداختی موبایلی برای توسعه دهندگان، قابل دسترس است.
با توجه به فراگیری استفاده از اپلیکیشنهای موبایلی در حوزه های مختلف زندگی روزمره – به ویژه در حوزه های مالی و پرداخت- و همچنین با هدف اطمینان از امنیت آنها، مؤسسات معتبر بین المللی اقدام به تدوین استانداردهای جهانی نموده اند که الزامات PCI، یکی از مهمترین آنهاست. دو الزام مهم PCI در حوزه اپلیکیشنهای مالی موبایلی عبارتند از:
در این پست چگونگی انطباق اپلیکیشنهای موبایلی با استفاده از محصولات شرکت Guardsquare با الزامات پرداخت موبایلی PCI بررسی خواهد شد.
در ابتدا نحوه پوشش الزامات پذیرش پرداخت موبایلی (که در بخش چهارم از دستورالعملهای امنیتی PCI در مورد برنامه های پرداختی موبایلی برای توسعه دهندگان به آنها اشاره شده است) و سپس الزامات PCI SPoC مورد تحلیل قرار خواهد گرفت.
بخش چهارم از دستورالعملهای امنیتی PCI در مورد برنامه های پرداختی موبایلی برای توسعه دهندگان به معرفی الزامات امنیتی اختصاص یافته است که به توسعه دهندگان اپلیکیشنهای موبایلی کمک می کند تا بتوانند امنیت را برای استفاده کنندگان، تضمین نمایند. در ادامه راجع به برخی از این الزامات و همچنین نحوه پوشش آنها توسط محصولات Guradsquare اشاره خواهد شد.
برای پوشش این الزام، روشهای متنوع بر هم سازی قابل استفاده است که امکان استتار اطلاعات حساس داخل برنامه مانند APIهای حیاتی و فرآیندها و گردش کار آنرا فراهم می آورد. برهم سازی در کنار روشهای محافظت در برابر حملات پویا مانند شناخت محیط اجرا (Root Detection)، پیشگیری از تغییر برنامه در زمان اجرا (Tamper Detection)، تحلیل و عیب زدایی از برنامه (Application debugging) و تزریق کدهای مخرب (Code Injection) انطباق کاملی را با الزامات امنیتی این بخش فراهم می آورد.
قابلیت تشخیص دستگاه (Device Fingerprinting option) امکان شناسایی منحصر بفرد دستگاهها جهت ارتباط با سرور و یا هر سامانه مانیتورینگ را فراهم می آورد.
DexGurad و iXGuard قابلیت بررسی جامعیت برنامه (Integrity Check) را فراهم می کنند و مانع از اجرای برنامه در محیطهای نا امن و همچنین تهدیدات پویا می شوند. این بررسی نقشی حیاتی در ممانعت از گسترش سطح دسترسی کاربران دارد.
قابلیتهای متنوع ابزارهای DexGuard و iXGuard مانند شناسایی محیط اجرای برنامه، شناسایی تغییرات برنامه در زمان اجرا و شناسایی Repackaging برنامه می تواند در کنار دیگر سیاستهای امنیتی در سطح شبکه و سرور مانند SSL Pinning، امکانات مناسب و کاملی را برای امن سازی اپلیکیشن فراهم آورد.
بصورت مشخص این الزام، پوشش آسیب پذیری های مهندسی معکوس (Reverse Engineering) و تغییر کد (Code Tampering) را که موارد 8-M و M-9 از عناوین دهگانه OWASP TOP 10 هستند را مد نظر قرار می دهد که در محصولات Guardsquare راهکارهای محافظتی مختلفی برای آن پیش بینی شده است که درهم سازی، رمز نگاری، شناسایی تغییر در متن کد و ... نمونه هایی از این راهکارها هستند.
قابلیت شناسایی تغییر متن برنامه (Tamper Detection) امکان بررسی و تأیید جامعیت برنامه در زمان اجرا می شود و به این وسیله می توان از سلامت برنامه و عدم دستکاری متن آن در زمان اجرا اطمینان حاصل کرد.
با استفاده از قابلیت تشخیص دستگاه (Device Fingerprinting) که در محصولات Guardsquare ارائه می گردد، می توان از اتصال یکتای دستگاههای ورودی مجاز به گوشی تلفن همراه و ارتباط آن با اپلیکیشن، اطمینان حاصل نمود.
با توجه به اینکه اجرای برنامه در محیط ناامن، بهترین فرصت را در اختیار نفوذگران قرار می دهد که با تحلیل عملکرد برنامه، راههای نفوذ به آنرا یافته و آنرا مورد سوء استفاده قرار دهند؛ لذا یکی از مؤثرترین روشهای ممانعت از دسترسی نفوذگران برای تخریب برنامه، حفاظت از آن در برابر تهدیدات زمان اجراست (Runtime). با استفاده از امکانات متنوعی که در ابزارهای DexGuard و iXGuard برای حفاظت از اپلیکیشنهای اندرویدی و iOS در برابر تهدیدات زمان اجرا ارائه شده است، می توان از انطباق با این الزام استانداردی نیز اطمینان حاصل کرد.
ماتریس انطباق با PCI
جدول زیر نحوه پوشش دستورالعملهای امنیتی PCI در مورد برنامه های پرداختی موبایلی برای توسعه دهندگان با استفاده از محصولات DexGuard و iXGuard را بصورت خلاصه نشان می دهد:
با توجه به تغییر مستمر فناوری و تجهیزات حوزه بانکی و پرداخت، لازم است استانداردهای امنیتی و راهکارهای امن سازی نیز به تناسب آن به روز رسانی شده و عملیاتی شوند. یکی از این تغییرات، تغییر تجهیزات سخت افزاری و نرم افزاری در حوزه های مختلف از جمله ورود رمز اول کارت (PIN) موسوم به Software-based PIN entry on Commercial off-the-shelf devices (SPoC) است که در این بخش قصد داریم ضمن معرفی استاندارد PCI SPOC چگونگی انطباق با آن را از طریق بهره گیری از ابزارهای امنیت اپلیکیشن های موبایلی DexGuard وiXGuard بررسی نماییم.
PCI SPOC یک استاندارد امنیتی جدید است که توسط انجمن استاندارد های امنیت صنعتی کارت پرداخت (Payment Card Industry Security Standards Council (PCI SSC)) به منظور قانون گذاری در حوزه امنیت تراکنش های الکترونیکی با استفاده از قابلیتهای NFC تلفنهای همراه در پایانه های فروشگاهی موسوم به commercial off-the-shelf devices (COTS) تدوین شده است.
برای استفاده از خدمات پرداخت الکترونیکی، فروشندگان نوعاً باید از سخت افزارهای مورد تایید PCI و مطابق الزامات امنیت تراکنش PCI PIN – (PCI PTS) برای تایید و تصدیق PIN (PCI PTS POI) استفاده کنند. ابداع PCI SPOC به پذیرندگان اجازه می دهد که از قابلیت های NFC گوشی های هوشمند و تبلت های فروشگاهی برای تصدیق تراکنشها استفاده نمایند. این امر فروشندگان را از استفاده از صفحه کلیدهای سنتی جهت ورود رمز - که غالباً دارا قیمتهای قابل توجه هستند- بی نیاز می کند.
PCI SPOC شماری از اجزا و فرآیند های لازم جهت تصدیق تراکنش ها با استفاده از PIN در پایانه های فروشگاهی (COTS) را تعریف می کند. این سیستم حداقل شامل اجزای زیر است:
در PCI SPOC مصرف کننده کارتش را در یک کارت خوان ایمن PIN (SCRP) وارد می کند که اطلاعات حساب را خوانده و سپس PIN را وارد گوشی هوشمند یا تبلت فروشنده می نماید تا تراکنش را تایید کند. اطلاعات PIN توسط اپلیکیشن PIN CVM گرفته شده و به شکلی ایمن با SCRP و همینطور با سامانه Backend مبادله می شود. مجموعه این جریان داده، سبب می شود که فرآیند تأیید تراکنش در محیطی امن کامل شود.
مزیت اصلی PCI SPOC این است که به اطلاعات PIN اجازه می دهد به شکلی موثر از دیگر اطلاعات حساب جدا شود تا دیگر در معرض حملاتی که قادر به شکستن اطلاعات رمز دار می باشند، قرار نگیرد. بنابراین SPOC یکپارچگی برنامه ورود PIN که داده ها را دریافت می کند، را تضمین می کند.
به علاوه SPOC نیازمند مانیتورینگ فعال نیز هست تا کنترلهای امنیتی دیگری را در موارد ذیل اجرا کند:
این مانیتورینگ فعال در سامانه Backend انجام می شود.
سخت افزار موجود در پایانه های فروشگاهی (COTS)، ممکن است غیر قابل اعتماد باشند و یا تمامی الزامات امنیتی مربوطه را رعایت نکرده باشند. در نتیجه یک مهاجم می تواند به نرم افزار آن دسترسی کامل داشته باشد. بنابراین PCI SPOC موارد امنیتی را الزام می کند که برنامه نویسان باید برای تضمین محافظت از PIN نرم افزار مد نظر قرار دهند. بنابراین یک لایه امنیتی جدید را به اطلاعات مالی تراکنش اضافه می کند.
طبق تعریف SPOC "ایجاد محافظت ذاتی از کد که مهندسی معکوس و تغییر جریان داده آنرا پیچیده می کند، برای نرم افزار حائز اهمیت تلقی می گردد. این روند شامل فرآیندهای امن سازی مختلفی از جمله محافظت هایی با استفاده از مبهم سازی کد (Obfuscation)، بررسی یکپارچگی کد (Tampering)، جریان پردازش کد (processing flow) و رمزنگاری (Encryption) اجزای کد می شود."
شرکت گارد اسکوئر با محصولات مطرح خود در حوزه امنیت اپلیکیشن های موبایل، برنامه PIN CVM موبایل را در بر ابر مهندسی معکوس و تغییرات کد حفظ کرده و برای تضمین امنیت مبادله اطلاعات PIN در پایانه فروشگاهی (COTS)، کنترل های بی نقصی را ارائه می دهد.
DexGuard و iXGuard از طریق تکنیک های چند لایه پیشرفته، اپلیکیشنها را مبهم سازی کرده و پایانه های فروشگاهی (COTS) را در مقابل حملات استاتیک و دینامیک، ایمن می سازد.
اگرچه اپلیکیشنهای موبایلی تنها یکی از المانهای زنجیره پرداختهای الکترونیکی هستند، اما بدلیل افزایش رغبت مشتریان و توسعه استفاده از آنها توسط مؤسسات مالی از یکسو و در اختیار عموم بودن آن از دیگر سو، می توان آنرا بعنوان یکی از آسیب پذیرترین نقاط این زنجیره شناخت. لذا حفاظت از اطلاعات مالی مشتریان در برابر انواع تهدیدات ایستا و پویا، ضرورتی اجتناب ناپذیر است. اپلیکیشنهای موبایلی، امنیت آنها و انطباق آنها با الزامات استانداردی، در حال تبدیل شدن به یکی از ارکان اصلی مدل های کسب و کار در بخش های مختلف می باشد
در همین راستا در کنار الزامات امنیتی مختلفی که از سوی نهادهای بین المللی (مانند PCI) برای این حوزه تدوین شده، ابزارها و راهکارهای امنیتی متنوعی نیز ارائه شده است. از جمله معتبرترین این ابزارها، محصول DexGurad (برای پلتفرم اندروید) و محصول iXGuard (برای پلتفرم iOS) می باشد که توسط شرکت Guardsquare توسعه یافته و راهکارهای متنوعی را برای امن سازی اپلیکیشنهای موبایلی – به ویژه در صنعت پرداخت – در دسترس قرار می دهند. این ابزارها با ایمن سازی اپلیکیشنهای موبایلی در برابر حملات استاتیک و دینامیک، معماری امنیتی چند لایه متناسب با کسب و کارهایی که با اطلاعات مالی و هویتی کاربران سر و کار دارند را تکمیل می کند. این ابزارها با استفاده از رمز نگاری های پیچیده، مبهم سازی، بررسی یکپارچگی کد و محیط اجرا، از اطلاعات حساس مشتریان و صاحبان کسب و کارها محافظت می کنند و با استفاده از آنها، می توان از انطباق با الزامات امنیتی جهانی مانند PCI اطمینان حاصل نمود.