نشت عکس در اندروید زمانی اتفاق میافتد که یک پیامرسان، فایلهای چندرسانهای رمزنگاریشده را پس از رمزگشایی، بهجای نگهداری موقت در حافظه فرار (RAM)، روی دیسک داخلی یا فایلهای موقت سیستمعامل ذخیره میکند. حتی اگر پیامرسان از پیشرفتهترین پروتکلهای رمزنگاری سرتاسری (E2EE) استفاده کند، نوشتن دادههای خام روی دیسک باعث میشود سرویسهای پسزمینه اندروید یا ابزارهای استخراج جرمیابی دیجیتال (Digital Forensics) به تصویر رمزگشاییشده دسترسی پیدا کنند. راهکار بنیادین برای تامین امنیت فایل در اندروید، اجرای کامل فرآیند رمزگشایی در حافظه فرار و اجرای بلافاصله فرآیند پاکسازی رم چت پس از پایان نمایش فایل است.
Key takeaways
- ذخیرهسازی موقت روی دیسک رمزنگاری را خنثی میکند: ذخیرهسازی فایلهای رمزگشاییشده در حافظه کش داخلی یا خارجی اندروید، امکان نمایه سازی توسط
MediaStoreیا باقی ماندن داده در فایلهای پیشنمایش (Thumbnails) را فراهم میسازد. - خاطره ماندگار در خروج از حساب (Race Condition): در بسیاری از برنامهها، فرآیند حذف کش هنگام خروج از حساب کاربری با عملیات نوشتن ناهمگام دیسک موازی شده و دادههای خام دوباره روی دیسک بازنویسی میشوند.
- رمزنگاری RAM مانع بازیابی جرمیابی است: باز کردن فایل مستقیماً در بوفرهای حافظه اصلی و انجام عملیات صفرسازی (Zeroization)، امکان استخراج فایل را پس از بستن برنامه به صفر میرساند.
- مرز شفاف چت خصوصی و کانال عمومی: چتهای یکبهیک و گروهی در پیامرسانهای امن بهطور کامل E2EE هستند، در حالی که کانالهای انتشار عمومی برای امکان گزارشدهی و حذف محتوای مخرب، بدون رمزنگاری سرتاسری طراحی میشوند.
نشت عکس در اندروید چگونه رخ میدهد و سیستمعامل چه نقشی در آن دارد؟
نشت عکس در اندروید فرآیندی است که طی آن فایل چندرسانهای پس از دریافت و رمزگشایی، در مسیرهای ذخیرهسازی موقت سیستمعامل نظیر /data/data/app_package/cache یا حافظه اشتراکی باقی میماند. سیستمعامل اندروید بهمنظور بهینهسازی سرعت نمایش تصاویر، از کتابخانههای کش تصویر (مانند Glide یا Coil) و دیمونهای پسزمینه استفاده میکند که به محض شناسایی فایل تصویری جدید روی دیسک، اقدام به ساخت تصویر مصور کوچک (Thumbnail) مینمایند.
مطابق با مستندات تحلیل خطمشیهای پردازش رسانه در اندروید (Android Media Pipelines) منتشرشده در وبسایت HackTricks، زمانی که یک برنامه کاربردی فایل رمزگشاییشده را برای رندر شدن به کامپوننتهای نیتیو اندروید میسپارد، اگر این بایتها در قالب فایل موقت (Temp File) ذخیره شده باشند، پردازشگر تصویر سیستمعامل (Image Parser) نسخه کوتاهشده آن را در دیتابیس MediaStore ثبت میکند. در نتیجه، حتی با حذف پیام از داخل برنامه، تصویر کوچکشده آن در حافظه فلش دستگاه باقی میماند و با ابزارهای ساده فورنزیک قابل بازیابی است. برای درک بهتر مکانیسم رمزنگاری سرتاسری و مرزهای حفاظتی آن، مقاله رمزنگاری سرتاسری چیست و چه چیزهایی را محافظت نمیکند؟ را مطالعه کنید.
