اشتراک X IN
رمزنگاری هرچقدر هم قوی باشد، پیام را در مسیر انتقال محافظت می‌کند؛ بدافزارهای UI پیام را پس از رمزگشایی و دقیقاً از روی صفحه نمایش می‌دزدند.

حملات Overlay و سوءاستفاده از دسترسی Accessibility به هر بدافزار اندروید اجازه می‌دهد با دور زدن رمزنگاری، به سرقت پیام از UI بپردازد و امنیت صفحه نمایش پیام‌رسان را مختل کند. این تکنیک‌ها نیازی به شکستن ریاضیات رمزنگاری ندارند، بلکه با کپی کردن ساختار UI یا قرار دادن لایه‌ای شفاف روی برنامه، متون و کلیدهای ورودی را هنگام رندر روی صفحه می‌ربایند.

Key takeaways

  • بدافزارهای اندروید با سوءاستفاده از دسترسی Accessibility محتوای متنی موجود در درخت رابط کاربری (UI Hierarchy) را استخراج می‌کنند.
  • حملات Overlay با قرار دادن لایه گرافیکی جعلی روی برنامه، اطلاعات ورودی و کلیک‌های کاربر را می‌ربایند.
  • پرچم‌های امنیتی مانند FLAG_SECURE در اندروید اسکرین‌شات و ضبط صفحه را مسدود می‌کنند، اما جلوی تحلیل درخت رابط کاربری توسط سرویس‌های دسترسی‌پذیری را نمی‌گیرند.
  • برنامه‌های امن برای کاهش این تهدیدها باید دسترسی‌های غیرمجاز را شناسایی کرده و معماری پیام‌رسانی خود را بر اساس اصل کمترین دسترسی طراحی کنند.

بدافزار اندروید چگونه از دسترسی Accessibility برای سرقت پیام استفاده می‌کند؟

سرویس AccessibilityService در اندروید برای کمک به کاربران دارای معلولیت جهت خواندن صفحه یا اجرای دستورات حرکتی طراحی شده است. بر اساس مستندات رسمی گوگل برای توسعه‌دهندگان اندروید و گزارش تحلیلی شرکت Pradeo در سال ۲۰۲۴، بدافزارها با دریافت این مجوز، درخت رابط کاربری (AccessibilityNodeInfo) را پیمایش کرده و متون عناصر متنی نظیر TextView را استخراج می‌کنند. این فرایند الگوریتم‌های رمزنگاری سرتاسری را دور می‌زند، زیرا بدافزار پیام را پس از رمزگشایی و هنگام رندر روی UI می‌خواند. برای فهم بهتر مرزهای حفاظتی، راهنمای رمزنگاری سرتاسری را مطالعه کنید.

نمودار مفهومی نحوه استخراج متون UI توسط سرویس Accessibility در اندروید

حملات Overlay چیست و چگونه امنیت صفحه نمایش پیام‌رسان را تهدید می‌کند؟

حمله Overlay زمانی رخ می‌دهد که برنامه‌ای مخرب، پنجره‌ای شفاف یا شناور روی اپلیکیشن در حال اجرا بسازد. بر اساس استاندارد OWASP در سند MASTG-KNOW-0022، این روش به مهاجمان اجازه ربودن کلیک‌ها (Clickjacking) و ساخت فرم‌های ورود جعلی را می‌دهد. وقتی بدافزار لایه‌ای روی صفحه می‌گذارد، ورودی‌های کیبورد یا پیام‌های دریافتی را پیش از آگاهی کاربر ثبت می‌کند. تنظیم پرچم FLAG_SECURE در لایه Window اندروید مانع ضبط صفحه و اسکرین‌شات می‌شود، اما مقابله کامل با سرقت پیام از UI نیازمند مکانیزم‌های پیشرفته‌تر در سطح سیستم‌عامل است.

آیا رمزنگاری پیشرفته می‌تواند مانع از سرقت پیام از UI شود؟

خیر، رمزنگاری در سطح پروتکل - از جمله پروتکل‌های هیبریدی پساکوانتومی - امنیت داده‌ها را هنگام انتقال روی شبکه و ذخیره‌سازی روی سرور تضمین می‌کند. برای مثال، لیوارا در پیام‌های مستقیم از پروتکل LVR1 (ترکیب ECDH P-256 و ML-KEM-768 بر اساس FIPS 203) و در گروه‌ها از LGS1 استفاده می‌کند تا هیچ واسطه‌ای در شبکه به پیام دسترسی نداشته باشد. اما اگر بدافزاری در دستگاه مقصد مجوز دسترسی Accessibility داشته باشد، متن پیام را در نقطه پایانی و از روی صفحه رندر شده می‌خواند. از این رو ارزیابی چک‌لیست امنیت پیام‌رسان‌ها و پایش دسترسی‌های دستگاه اهمیت حیاتی دارد.

چگونه می‌توان از سرقت پیام از UI و حملات پوششی جلوگیری کرد؟

برای مقابله با سرقت پیام از UI و حملات Overlay، سیستم‌عامل اندروید از نسخه ۱۲ به بعد محدودیت‌های شدیدی روی پنجره‌های TYPE_APPLICATION_OVERLAY اعمال کرده است. توسعه‌دهندگان نیز می‌توانند با فعال‌سازی پرچم FLAG_SECURE از رندر شدن صفحه در برنامه‌های ضبط تصویر جلوگیری کنند و با برپایی سیستم‌های سنجش یکپارچگی برنامه، محیط اجرا را بسنجند. کاربران باید از اعطای مجوزهای Accessibility به برنامه‌های ناشناخته خودداری کنند. برای ارزیابی تهدیدات موجود در لایه دستگاه و شبکه، مدل تهدید لیوارا دیدی جامع ارائه می‌دهد.

Frequently asked questions

آیا فعال کردن FLAG_SECURE جلوی تمام حملات دسترسی Accessibility را می‌گیرد؟

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

بدافزارهای اندروید چگونه مجوز دسترسی Accessibility را دریافت می‌کنند؟

بدافزارها معمولاً با استفاده از تکنیک‌های مهندسی اجتماعی و جعل هویت برنامه‌های کاربردی (مانند به‌روزرسانی‌های دروغین)، کاربر را متقاعد می‌کنند تا در بخش تنظیمات اندروید، دستیار دسترسی‌پذیری را برای آن برنامه فعال کند.

آیا پیام‌های کانال‌های عمومی در برابر بدافزارها رمزنگاری می‌شوند؟

خیر، کانال‌های عمومی بر خلاف گفتگوهای خصوصی و گروهی، پخش عمومی محسوب می‌شوند و به صورت سرتاسری رمزنگاری نمی‌شوند تا امکان حذف محتوای سوءاستفاده‌کننده وجود داشته باشد. بدافزارها نیز برای خواندن محتوای عمومی نیازی به پیچیدگی خاصی ندارند زیرا این داده‌ها عموماً عمومی هستند.

چگونه می‌توان سلامت فایل نصب پیام‌رسان را در اندروید راستی‌آزمایی کرد؟

شما می‌توانید با مقایسه هش SHA-256 فایل APK نصب‌شده با هش رسمی منتشرشده توسط سازنده، از عدم دستکاری برنامه اطمینان حاصل کنید. لیوارا امکان بررسی آفلاین و محلی هش APK را در آزمایشگاه اثبات خود در آدرس /proof فراهم کرده است.

بررسی آزمایشگاه اثبات لیوارا
پایان / حملات Overlay و دسترسی Accessibility در اندروید: سرقت پیام از UI چگونه رخ می‌دهد؟ساختهٔ لیوار ↗