دکتر علی مهرآبادی

دکتر علی مهرآبادی

معاونت فنی شرکت آشنا ایمن

لایه‌های پنهان امنیت در اپلیکیشن‌های مالی؛ آنچه هنوز جدی گرفته نمی‌شود

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

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

پاسخ کوتاه: امنیت اپلیکیشن‌های مالی فراتر از HTTPS و احراز هویت دوعاملی است. باید مقاومت در برابر مهندسی معکوس (Code & Data Protection) و حفاظت زمان اجرا (RASP) هم داشته باشد؛ وگرنه سرمایه‌گذاری امنیتی سمت سرور بی‌اثر می‌شود.

دکتر علی مهرآبادی، معاونت فنی شرکت آشنا ایمن و از متخصصان باسابقه امنیت، می‌گوید:

«ما برای حفاظت از داده‌ها که نهایتاً منجر به تأمین منافع سازمان و کاربران می‌شود، بودجه‌های قابل توجهی را در سطح دیتاسنتر، شبکه و سامانه‌های تحت وب صرف می‌کنیم. این‌ها بخش‌هایی هستند که دسترسی به آن‌ها برای صاحبان کسب‌وکار، آسان و برای مهاجمان نسبتاً دشوار است. اما یک اپلیکیشن موبایلی که مستقیم روی گوشی کاربر — که تحت کنترل ما نیست — نصب می‌شود و کد منبع آن به آسانی از طریق پلتفرم‌های آنلاین در دسترس مهاجم قرار دارد، اغلب با حداقل‌های امنیتی منتشر می‌شود. این یک ناهماهنگی خطرناک است.»

وی ادامه می‌دهد:

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

تهدیداتی که کمتر دیده می‌شوند

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

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

برای طبقه‌بندی دقیق‌تر همین تهدیدها، تیم‌های امنیتی می‌توانند به استاندارد OWASP MASVS مراجعه کنند. این استاندارد، مقاومت در برابر مهندسی معکوس را در کنار رمزنگاری ارتباطات، جزو الزامات پایه امنیت اپلیکیشن موبایل می‌داند.

آنچه باید فراتر از حداقل‌ها انجام شود

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

«به‌عنوان صاحب یک کسب‌وکار، کنترلی روی این‌که اپلیکیشن توسط چه کسی دانلود و در چه شرایطی اجرا می‌شود، ندارید. بنابراین باید قبل از انتشار آن تمامی تمهیدات امنیتی ضروری را روی آن پیاده‌سازی کنید. برخی از این تمهیدات متوجه درهم‌سازی (Obfuscation) متن برنامه و منطق کسب‌وکار آن و رمزنگاری داده‌های حساس درون کد است تا مهندسی معکوس اپلیکیشن — که از آن به‌عنوان مادر تمامی آسیب‌پذیری‌ها یاد می‌شود — را تا حد امکان غیرممکن سازد، و بخش دیگر مربوط به کنترل‌هایی است که ضمن بررسی محیط اجرای اپلیکیشن، جامعیت آن را در زمان اجرا بررسی می‌کنند تا از عدم دستکاری در کد اپلیکیشن یا جریان داده‌ها اطمینان حاصل شود. تمرکز بخش اول بر حفاظت از کد و داده‌هاست (Code & Data Protection) و بخش دوم بر حفاظت در زمان اجرا (Runtime Application Self-Protection – RASP) متمرکز است. فراهم کردن این سطح از حفاظت دیگر یک ویژگی لوکس نیست؛ یک ضرورت است. سازمان‌هایی که هنوز به حداقل‌ها بسنده می‌کنند، در واقع بخشی از سطح حمله خود را روی دستگاه‌های میلیون‌ها کاربر رها کرده‌اند. با افزایش تراکنش‌های موبایلی و وابستگی بیشتر مشتریان به این کانال، هزینه نادیده گرفتن امنیت در این لایه مهم، به‌مرور بالاتر خواهد رفت.»

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

راهنمای عملی OWASP MASTG هم فرآیندهای فنی تست همین دو حوزه — حفاظت از کد و حفاظت زمان اجرا — را گام‌به‌گام برای تیم‌های امنیتی مستند کرده است.

فاصله میان وضعیت موجود و سطح مطلوب و توصیه به مدیران امنیت

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

به همین دلیل، او به مدیران بانک‌ها، کارگزاری‌ها و شرکت‌های بیمه توصیه می‌کند امنیت اپلیکیشن موبایل را با همان جدیتی ببینند که امنیت مرکز داده را می‌بینند:

«باید از مرحله‌ای که فقط روی ارتباط امن و احراز هویت تمرکز می‌کنیم عبور کرده و به لایه‌هایی بپردازیم که خود برنامه را در برابر تحلیل و دستکاری مقاوم می‌سازند. این کار نیازمند تخصص و ابزارهای مناسب است و نباید به تأخیر بیفتد.»

جمع‌بندی

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

امنیت اپلیکیشن‌های مالی، یک ویژگی لوکس نیست — یک پیش‌نیاز است.