اشتراک X IN
حتی قوی‌ترین رمزنگاری سرتاسری نیز اگر متن پیام به صورت پیش‌نمایش در اعلان سیستم‌عامل نشان داده شود، در برابر دسترسی NotificationListenerService آسیب‌پذیر است.

عنوان: سرقت پیام از اعلان اندروید: راهنمای امنیت نوتیفیکیشن پیام رسان و حفظ حریم خصوصی اعلان چت

برنامه‌های مخرب در سیستم‌عامل اندروید با سوءاستفاده از دسترسی‌های خاص، تهدیدی جدی برای امنیت نوتیفیکیشن پیام رسان ایجاد می‌کنند. این بدافزارها از طریق NotificationListenerService spying، متن پیام‌های دریافتی، نام فرستنده و کدهای تایید یک‌بارمصرف (OTP) را بدون نیاز به مجوز پیامک یا حافظه استخراج کرده و حریم خصوصی اعلان چت را به خطر می‌اندازند. پیشگیری از سرقت پیام از اعلان اندروید نیازمند مدیریت دسترسی‌های سیستم‌عامل و غیرفعال‌سازی پیش‌نمایش پیام‌ها است.

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

  • دسترسی NotificationListenerService به برنامه‌ها اجازه می‌دهد تمامی اعلان‌های دستگاه شامل متن پیام‌ها و کدهای تایید را بازخوانی کنند.
  • رمزنگاری سرتاسری پیام را روی شبکه و سرور محافظت می‌کند، اما پس از رمزگشایی روی گوشی، اعلان سیستم‌عامل در دسترس بدافزار قرار می‌گیرد.
  • طبق مستندات رسمی توسعه‌دهندگان اندروید، مجوز دسترسی به اعلان‌ها جزو دسترسی‌های حساس (Special App Access) است و نباید به برنامه‌های ناشناس داده شود.
  • پنهان کردن پیش‌نمایش پیام‌ها (Message Preview) در تنظیمات سیستم‌عامل یا پیام‌رسان، اصلی‌ترین راهکار پیشگیری از سرقت پیام است.

دسترسی NotificationListenerService در اندروید چگونه کار می‌کند؟

سرویس NotificationListenerService یک قابلیت رسمی در سیستم‌عامل اندروید است که به برنامه‌های مجاز اجازه می‌دهد اعلان‌های صادر شده توسط سایر برنامه‌ها را دریافت، مشاهده و مدیریت کنند. طبق گزارش نشریه فنی PTKD Journal درباره امنیت سرویس اعلان اندروید، این دسترسی برخلاف مجوزهای معمولی، نیازمند تایید کاربر در صفحه اختصاصی Special App Access است. زمانی که برنامه‌ای این دسترسی را دریافت می‌کند، می‌تواند به تمام داده‌های موجود در اعلان شامل عنوان، متن، نماد و حتی دکمه‌های پاسخ سریع دسترسی پیدا کند. این قابلیت برای ساعت‌های هوشمند یا ابزارهای مدیریت اعلان طراحی شده، اما در صورت سوءاستفاده به ابزاری خطرناک برای حریم خصوصی اعلان چت تبدیل می‌شود.

تصویر مفهومی از نحوه بازخوانی متن اعلان‌ها توسط سرویس اعلان اندروید

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

بدافزارها با پنهان شدن در قالب ابزارهای کاربردی مانند برنامه‌های تغییر تم، پاک‌سازی حافظه یا ابزارهای مدیریت فایل، کاربر را ترغیب به اعطای دسترسی اعلان می‌کنند. گزارش تحقیقاتی Phone Monitor Pro درباره سوءاستفاده از سرویس اعلان اندروید نشان می‌دهد که مهاجمان از این طریق حتی کدهای تایید ورود (OTP) و لینک‌های بازیابی حساب را بدون داشتن دسترسی مستقیم به پیامک استخراج می‌کنند. برنامه‌های مخرب با ثبت یک Listener اختصاصی، متن هر پیام دریافتی از برنامه‌های پیام‌رسان را استخراج کرده و آن را به سرور فرماندهی مهاجم ارسال می‌نمایند. این حمله فرآیند NotificationListenerService spying را بدون ایجاد هیچ‌گونه نشانه ظاهری مشکوک روی گوشی اجرا می‌کند.

چرا رمزنگاری سرتاسری جلوی NotificationListenerService spying را نمی‌گیرد؟

رمزنگاری سرتاسری (E2EE) پیام‌ها را در مسیر انتقال بین فرستنده و گیرنده کاملاً ایمن می‌سازد، اما آسیب‌پذیری اعلان‌ها پس از مرحله رمزگشایی رخ می‌دهد. برای درک بهتر مرزهای حفاظتی می‌توانید مقاله مفاهیم رمزنگاری سرتاسری را مطالعه کنید. پیام‌رسان‌هایی مانند لیوارا از پروتکل LVR1 برای چت‌های مستقیم (مبتنی بر ترکیب ECDH P-256 و ML-KEM-768 طبق استاندارد NIST FIPS 203) استفاده می‌کنند تا مطمئن شوند هیچ سرور یا واسطه‌ای در شبکه به متن پیام دسترسی ندارد. اما زمانی که پیام توسط برنامه دریافت و رمزگشایی می‌شود، پیام‌رسان برای آگاه‌سازی کاربر، متن آن را تحویل سیستم‌عامل اندروید می‌دهد. در این نقطه، اگر سیستم‌عامل متن را در اعلان نمایش دهد، هر برنامه‌ای که دسترسی NotificationListenerService داشته باشد می‌تواند متن خام را بخواند. بنابراین مسئله سرقت پیام مربوط به شکاف در لایه سیستم‌عامل است، نه لایه رمزنگاری شبکه. همچنین برای ارزیابی تهدیدات متاداده می‌توانید به توضیحات متاداده پیام‌رسانی مراجعه کنید.

چگونه امنیت نوتیفیکیشن پیام رسان خود را ارتقا دهیم؟

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

  1. بررسی دسترسی‌های ویژه: در اندروید به مسیر Settings > Apps > Special app access > Notification access بروید و دسترسی تمام برنامه‌های غیرضروری یا مشکوک را لغو کنید.
  2. غیرفعال کردن پیش‌نمایش پیام‌ها: در تنظیمات پیام‌رسان یا اندروید، نمایش متن پیام در اعلان‌ها را خاموش کنید تا فقط نام فرستنده یا عبارت پیام جدید نمایش داده شود.
  3. استفاده از پیام‌رسان‌های امن: برای بررسی استانداردهای امنیتی اپلیکیشن‌ها، چک‌لیست ۱۲ سوال امنیتی پیام‌رسان‌ها را بررسی کنید. پیام‌رسان‌هایی که امکان پنهان‌سازی هوشمند اعلان را دارند، خطر افشا را به حداقل می‌رسانند.
  4. بررسی صحت برنامه: همیشه برنامه‌ها را از منابع معتبر دانلود کنید و برای اطمینان از اصالت فایل‌ها می‌توانید به آزمایشگاه اثبات لیوارا مراجعه کنید.

سوالات متداول

آیا غیرفعال کردن پیش‌نمایش پیام جلوی سرقت پیام از اعلان اندروید را می‌گیرد؟

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

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

اگر متن پیام‌های گروهی در اعلان دستگاه نمایش داده شود، بدافزار می‌تواند آن را بخواند. پیام‌رسان لیوارا برای گروه‌ها از پروتکل LGS1 استفاده می‌کند تا پیام‌ها سرتاسر رمزنگاری شوند، اما کنترل نمایش اعلان در اختیار سیستم‌عامل است و کاربر باید پیش‌نمایش را پنهان کند.

آیا اپلیکیشن‌های پخش‌کننده موسیقی یا ساعت هوشمند به NotificationListenerService نیاز دارند؟

بله، ابزارهایی مانند ساعت‌های هوشمند برای نمایش پیام‌ها روی دستبند و برنامه‌های پخش موسیقی برای کنترل پخش از طریق اعلان به این دسترسی نیاز دارند. اما باید دقت کنید که این دسترسی فقط به برنامه‌های کاملاً معتبر اعطا شود.

فرق بین دسترسی SMS و NotificationListenerService چیست؟

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

آشنایی با مدل تهدید لیوارا

تیم لیوارا نویسنده جمعی داخلی این مطلب است. این نام به معنای بازبینی مستقل نیست؛ ادعاها را با منابع و محدودیت‌های ذکرشده بسنجید.

پایان / بدافزارهای Notification Listener: چگونه اعلان‌های گوشی متن پیام‌های چت را لو می‌دهند؟ساختهٔ لیوار ↗