إذا كنت تمتلك هاتفًا ذكيًا من Google Pixel منذ ظهور السلسلة 3 في عام 2018 ، فهناك أخبار سيئة: يمكن استعادة أي لقطة شاشة قمت بقصها أو تحريرها على Pixel دون الكثير من الجلبة.
اكتشف المهندسان العكسيان سيمون آرونز وديفيد بوكانان الخطأ وطورا أداة لاستعادة إثبات المفهوم ، على التوالي. أكروبروبسو مذكور “هذا الخطأ هو المشكله” لأولئك المهتمين بشأن خصوصيتهم.
أوضح بوكانان في مقال أن تطبيق تحرير الصور من Google ، Markup ، المتاح لخط Pixel ، معيب في كيفية قصه لملفات PNG بعد التحرير. كتابة عطلة نهاية الاسبوع.
بشكل أساسي ، إذا كنت تستخدم التطبيق لاقتصاص أشياء مهمة من لقطة شاشة ، فلن يقوم رمز Google بضغط الملف الفعلي بشكل صحيح ، تاركًا الجزء الذي تم اقتصاصه في نهاية سلسلة البيانات ، والذي يمكن إعادة بنائه. حتى إذا لم تتمكن من رؤية المنطقة التي تم اقتصاصها في عارض الصور ، فإن البيانات لا تزال موجودة في الملف ويمكن استردادها.
هذا يعني أنه إذا حصل شخص ما على صورتك التي تم اقتصاصها ، فيمكنه محاولة استرداد الجزء المفقود. إذا تم تحرير الصورة عن طريق الكتابة فوق بعض المناطق ، فستكون تلك المناطق مرئية في الصورة المستعادة. إنه ليس رائعًا للخصوصية.
قامت Google بتصحيح aCropalypse ، والذي قال بوكانان إنه سيتم مراقبته CVE-2023-21036فى خلال ذلك تحديثات أمان March Pixel. كل هذا جيد وجيد ، المضي قدمًا – الآن يمكنك اقتصاص صورك المستقبلية وتحريرها ومشاركتها دون خوف من أنها قد تعود – ولكن لا. حذف حصة مثل لقطات الشاشة القابلة للاستغلال التي قمت بالفعل بنقلها وتحميلها إلى Discord.
قال بوكانان إن جوجل لم تصدر بعد تحذيرًا أمنيًا بشأن الخطأ. لقد سألنا شركة الإعلانات عن كيفية تعاملها مع إشعار مالكي Pixel المتأثرين بأن بيانات حساسة قد تطفو على الإنترنت ، لكننا لم نتلق ردًا في وقت الصحافة.
T مخصص لقطع الاتصال ، ولم يتم وضع علامة عليه (في Android 10+).
تحتوي كتابات بوكانان على تفاصيل كبيرة حول كيفية اكتشافه لما يعتقد أنه مصدر الأكروبروبس: انتقال سلمي من Android 9 إلى Android 10 ، وظائف Java التي يوفرها نظام التشغيل parseMode()
الآن عندما يريد أحد التطبيقات الكتابة فوق ملف واقتطاعه ، فإنه يحتاج إلى الوسيطة “wt” لطول أقصر ، وليس فقط “w”.
في الماضي ، كان “w” يقتطع الملف على أي حال ؛ من Android 10 ، تتطلب الوظيفة “وزن” صريح. يستخدم ترميز Google “w” عندما يجب أن يستخدم “wt” ، لذلك لا يتم اقتطاع Android 10+ على الإطلاق ، مع ترك بيانات الصورة السابقة في نهاية ملف PNG.
وفقًا لآرونز ، “عند اقتصاص لقطة شاشة وحفظها ، [Markup] يحل الإصدار الجديد محل الصورة ، لكنه يترك باقي الملف الأصلي في مكانه “لأن الترميز لا يخبر Android باقتطاع الملف عند كتابة التغييرات.
(من الناحية الفنية ، parseMode()
يحول سلسلة تصف الوصول الذي يريده التطبيق ، على سبيل المثال “wt” ، إلى قناع البت المراد استخدامه open()
. parseMode()
(لا يقوم بالوصول الفعلي إلى الملف ، إنه يساعد فقط في إعداد التطبيق.)
“النتيجة النهائية هي أن ملف الصورة يفتح بدون أي ملف [truncate] علم ، لذلك عند كتابة الصورة التي تم اقتصاصها ، لا يتم قطع الصورة الأصلية. “إذا كان ملف الصورة الجديد صغيرًا ، فسوف يتأخر عن النتيجة الأصلية.”
تم العثور على أجزاء الملف التي يجب فك ضغطها كصور بعد بعض الهندسة العكسية لمنهجية مكتبة ضغط zlib ، والتي يقول بوشان إنه كان قادرًا على القيام بها “بعد بضع ساعات من العبث”. والنتيجة النهائية هي إثبات المفهوم الذي يمكن لأي شخص لديه جهاز Pixel مصاب القيام به يحاول لأنفسهم.
أثناء تواجدك فيه ، حدِّث جهاز Pixel أو ثبِّت آخر جولة من تحديثات أمان Android.
ماذا نفعل معها؟ إذا كان لديك جهاز Pixel متأثر وقمت بقص أو تعديل لقطات الشاشة ومشاركتها ، فيمكن لمن يمتلكها استرداد تلك البيانات. بمجرد تثبيت التحديث ، ستكون لقطات الشاشة المستقبلية صحيحة. ®