التقرير 01 — Google Messages

معاينة رابط
تكشف عنوان IP.

يأتي Google Messages مثبتًا على نسبة كبيرة جدًا من هواتف Android. ينشئ معاينات الروابط على الجهاز نفسه، لذلك قد يكشف رابط واحد من جهة اتصال محفوظة عنوان IP ومعلومات الجهاز وتوقيت الطلب لمن يملك الرابط. يحدث ذلك دون الضغط على الرابط أو ظهور إشعار. يكفي فتح المحادثة مرة واحدة؛ وبعدها قد تُجلب الروابط الجديدة تلقائيًا. التسريب محدود بعنوان IP وبعض البيانات الوصفية، وخطورته متوسطة. لكنه جزء من التصميم الحالي لتطبيق موجود على مئات الملايين من الهواتف.

بقلم عباس حسيني·أبحاث أمنية مستقلة·الشركة: Google

Google Messages هو التطبيق الذي يدير الرسائل النصية ومحادثات RCS خلف أيقونة الرسائل في معظم هواتف Android، حتى لو لم يعرف المستخدم اسمه. معاينة الرابط ميزة مفيدة: بدل عنوان مجرد، تعرض المحادثة عنوان الصفحة ووصفًا وصورة صغيرة. لكن السؤال الحاسم للخصوصية هو: من يجلب الصفحة؟ إذا جلبها خادم وسيط، يراه مالك الرابط. أما إذا جلبها هاتفك مباشرةً، فيرى معلومات عنك: شبكتك وجهازك وتوقيت الطلب.

مجموعة هواتف مقفلة متشابهة، يظهر على بعضها رابط من جهة اتصال محفوظة
الشكل 1 — التطبيق نفسه على عدد كبير من الهواتف

التطبيق نفسه والمحادثات اليومية نفسها على عدد هائل من الهواتف. يصل رابط من جهة اتصال محفوظة إلى محادثة فُتحت من قبل، ولا يحتاج المستخدم إلى لمس شيء آخر.

تُنشأ المعاينة في Google Messages على الجهاز. يستخرج التطبيق الرابط ثم يرسل إليه طلب HTTPS عاديًا من الهاتف بعد تحقق الشروط المطلوبة. لا يمر الطلب عبر وكيل تابع لـGoogle. هذه هي الآلية؛ وما تبقى يتعلق بتحديد متى تعمل.

خطوط حمراء متقطعة تصل عدة هواتف بخادم واحد
الشكل 2 — طلبات صامتة تتكرر

يجلب كل هاتف الرابط بنفسه لإنشاء المعاينة. لا يظهر تنبيه ولا يُطلب إذن. تصل طلبات المحادثات المختلفة إلى الوجهة نفسها: الخادم الذي يستضيف الرابط.

هنا يجب التدقيق؛ فقد بالغت النسخة السابقة من التقرير في هذه النقطة. عند وصول الرسالة، يكتفي المعالج الأول غالبًا بإنشاء سجل مؤقت بحالة deferred، ثم ينتهي دون أي طلب شبكي. يبدأ الجلب الفعلي عبر مراقب يعمل عندما تصبح المحادثة تفاعلية، أي عند فتحها. يعمل هذا المراقب في الخلفية، ولا يظهر في الشيفرة التي فُحصت ما يوقفه عند مغادرة المحادثة. لذلك، بعد فتحها مرة واحدة، قد تُجلب الروابط اللاحقة مع قفل الشاشة وبقاء التطبيق في الخلفية.

سجل خادم تتكرر فيه IP المستلِم وUser-Agent الخاص بـGoogleMessages وأوقات تفصل بينها دقائق
الشكل 3 — السجل على الطرف الآخر

تتراكم الطلبات على خادم الرابط: عنوان IP للمستلِم وUser-Agent وأوقات تفصل بينها دقائق. لم يوافق المستلِم على إرسال هذه المعلومات.

يعطي الطلب الواحد معلومة تقريبية. لكن المعاينة تُحفظ لكل رسالة، لا لكل رابط؛ لذا يُجلب الرابط نفسه مجددًا إذا أُرسل في رسالة جديدة. يمكن لجهة اتصال محفوظة تكرار الإرسال على فترات، والحصول على سجل تقريبي للشبكات التي يتصل بها المستلِم وأوقات الاتصال.

هاتف مقفل مرتبط بخريطة فيها مناطق حمراء ضبابية، دون تحديد موقع دقيق
الشكل 4 — أثر تقريبي بمرور الوقت

عنوان IP ليس عنوان منزل. لكن الطلبات المتكررة قد تقدم دلائل عن المدينة والشبكة وتغير الاتصال. هذه كلفة تتعلق بالخصوصية عندما يجلب الهاتف المعاينة بدلًا من وكيل.

أُبلغت Google بالمشكلة في مارس 2026. ووفق التسلسل الزمني أدناه، قيّمت الشركة التقرير وأغلقته في 2026-03-17. ظل السلوك موجودًا في الإصدار المثبت على جهاز الاختبار عند إعادة فحصه في 29 أكتوبر 2026. توضح هذه الصفحة ما تثبته الشيفرة والاختبار على جهاز واحد، وما لا يثبتانه.

التقرير التقني

Google Messages — النتائج والتحليل

الملخص ودرجة الخطورة

فُحص Google Messages، بمعرّف الحزمة com.google.android.apps.messaging، على Samsung Galaxy A26 (SM-A266B) بنظام Android 16 والبنية BP4A.251205.006. كانت الحزمة المثبتة messages.android_20260910_03_RC02.phone_samsung_dynamic ورمز الإصدار 323089900. استُخدم RCS لنقل الرسائل. جرى تحليل ساكن لملف APK المثبت نفسه، مع SHA-256 للملف الأساسي 9e869a68…ff60b2 وتوقيع جرى التحقق من أنه أصلي من Google، إلى جانب ملاحظة السلوك على هذا الجهاز وحده.

المعرّفالنتيجةCWECVSS 3.1الخطورة
F-PREVIEWتسريب IP والبيانات الوصفية عبر معاينة الرابط على الجهاز200/3594.3متوسطة
F-UAيحمل طلب المعاينة User-Agent منتحلًا يُضبط عن بُعد، ومُدرج ضمن F-PREVIEW451—سياق إضافي
F-PREVIEW · CWE-200 / CWE-359

تسريب IP والبيانات الوصفية عبر معاينة الرابط على الجهاز

متوسطة · CVSS 4.3

الوصف

عند معالجة رسالة تحتوي على رابط، ينشئ Google Messages المعاينة بإرسال طلب HTTP(S) من نوع GET من الجهاز، وليس عبر وكيل على الخادم. يتلقى خادم الرابط عنوان IP الذي تخرج منه شبكة المستلِم حاليًا، وUser-Agent الخاص بالمعاينة، وAccept-Language، وتوقيت الطلب. وقد تتضمن الطلبات اللاحقة لجلب og:image أو أيقونة الموقع User-Agent من نوع Dalvik، يكشف إصدار Android وطراز الجهاز ورقم البنية.

ما الذي يفعّل الجلب فعليًا

يجب وصف هذه النقطة بدقة لأنها تؤثر في تقييم الخطورة. يتكون المسار من مرحلتين:

  1. عند الاستلام، تُجدول مهمة request_link_preview بعد تثبيت الرسالة في قاعدة البيانات (dfvl/bcnl → btlr.b()). للرابط الجديد، قد تضيف المرحلة الأولى سجل معاينة بحالة deferred ثم تنتهي قبل أي طلب شبكي (btln).
  2. عند فتح المحادثة ودخولها الحالة التفاعلية، تبدأ onMessageListInteractive مراقبًا (ahxw → aied) يتابع سجلات deferred الخاصة بها. ويجدول مهمة ثانية بالقيمة deferred=true (aieb → btlr.a())، يمكنها جلب الرابط بعد تحقق الشروط التالية.

يعمل المراقب ضمن نطاق coroutine في الخلفية، ولا يظهر إلغاء تسجيله عند مغادرة المحادثة. هذا يفسّر إمكانية الجلب مع قفل الشاشة والتطبيق في الخلفية بعد فتح المحادثة مرة واحدة. أما الجلب في محادثة لم تُفتح مطلقًا فغير مثبت في الشيفرة المتاحة، ولا يدّعيه هذا التقرير.

الشروط المسبقة

  • إعداد المعاينة. يجب تفعيل المعاينات التلقائية (aqck). يتيح Google Messages عرض جميع المعاينات، أو معاينات روابط الويب فقط، أو تعطيلها.
  • الثقة بالمرسِل. يجب أن يحقق المرسِل شرط btez.m(). وجود قيمة في lookup_key لجهة الاتصال إحدى الحالات المقبولة، إلى جانب حالتين أخريين للمشارك. وقد يحسب مسار منفصل تحكمه علامة إعداد عدد تحميلات المعاينة اليدوية، بعتبة افتراضية قدرها 3 في APK، محفوظة لكل مشارك. القيمة الافتراضية لـenable_link_preview_untrusted_senders هي false. فتح المحادثة أو وضع علامة مقروء على الرسالة ليس تحميلًا يدويًا للمعاينة. لم تُقرأ القيم الفعلية للإعدادات البعيدة.
  • مخطط الرابط. يقبل المحلل http/https فقط، ويعيد كتابة ws:/wss:. يرفض file:// وcontent://، وتمر الصور عبر العميل نفسه المقصور على HTTP.

الأثر الذي تدعمه الأدلة

يعرف خادم الرابط IP الخروج الحالي وUser-Agent واللغة والتوقيت. وقد تضيف طلبات الصورة أو الأيقونة طراز الجهاز وإصدار النظام ورقم البنية. لأن المعاينة مرتبطة بمعرّف الرسالة لا بالرابط، تؤدي إعادة الرابط في رسالة جديدة إلى طلب جديد. يستطيع مرسِل موثوق تكرار ذلك لبناء سجل تقريبي للشبكة والموقع عبر الزمن. استخدم الجهاز VPN في الاختبار المؤرشف من مارس؛ لذا كان العنوان المرصود عنوان خروج VPN، لا عنوان اتصال منزلي. لم يُثبت ولا يُدّعى الوصول إلى تطبيقات أخرى أو خدمات محلية، أو الاستيلاء على حساب، أو تنفيذ شيفرة.

من يُعدّ مرسِلًا «موثوقًا»؟

جهة الاتصال المحفوظة لا تعني الأصدقاء فقط؛ قد تكون متجرًا أو خدمة توصيل أو بنكًا حفظت رقمه سابقًا. لم يُختبر ما إذا كان المرسِلون التجاريون الموثّقون يحققون الشرط نفسه. المقصود خدمات SMS/RCS الجماعية التي ترسل باسم الشركة دون تحذير «مرسِل غير معروف». يبقى ذلك سؤالًا موجّهًا إلى Google. في جميع الأحوال، من يمكنهم تفعيل الجلب التلقائي أكثر من مجرد أصدقائك.

تفاصيل تقييم CVSS 3.1

AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N الدرجة الأساسية: 4.3، متوسطة

الأثر هو كشف IP وUser-Agent وبيانات الجهاز، أي C:Low، وهذا يبقي الخطورة متوسطة مهما قلّ التفاعل المطلوب لكل طلب. يعكس UI:R ما تظهره الشيفرة، إذ تعتمد سلسلة الجلب على فتح المحادثة. لا يمكن تبرير التصنيف السابق «حرج / دون نقرة»؛ فهو يفترض مسار UI:N لمحادثة لم تُفتح، وهو غير مثبت، وأثر C:High لا يصل إليه كشف IP والبيانات الوصفية.

كيف يمكن إصلاحه

  • جلب المعاينات عبر وكيل تابع لـGoogle، ليرى خادم الرابط بنية Google بدل جهاز المستلِم، كما يحدث في خدمات معاينة أخرى.
  • إذا استمر الجلب على الجهاز، فيجب أن يتطلب إجراءً صريحًا لكل رسالة، وألا يعيد مراقب في الخلفية تشغيله بعد إغلاق المحادثة.
  • شرح مسار البيانات بوضوح في إرشادات الخصوصية، حتى لا تُفهم «المعاينات التلقائية» على أنها معاينات لا يمكن أن تكشف IP.
الخطورة

حول درجة الخطورة

تعتمد الدرجة الأساسية في CVSS على مسار الهجوم والتفاعل والأثر على السرية والسلامة والإتاحة. كشف IP وبعض بيانات الجهاز هو C:Low، ولا يصبح مرتفعًا بسبب قلة التفاعل. عبارة «دون نقرة» تغيّر معيار التفاعل فقط، لا حجم الأثر. وهنا لا تثبت الشيفرة أصلًا حالة المحادثة التي لم تُفتح؛ لذا المعيار المبرر هو UI:R والدرجة الأساسية 4.3.

النتيجة حقيقية وتستحق الإصلاح، لكن خطورتها متوسطة. وصفتها مسودة سابقة بأنها حرجة، وهذا لا ينسجم مع حساب CVSS نفسه ولا مع أثر كشف IP والبيانات الوصفية. أفضّل نشر درجة يمكن تبريرها على درجة مبالغ فيها.

نطاق النتائج وحدودها

روجعت النقاط التالية أيضًا، لكنها ليست ضمن الآثار التي يدّعيها التقرير:

كيفية التحقق بنفسك

لا تُنشر لقطات شاشة هنا. يستند الاكتشاف إلى مسار الشيفرة أعلاه، ويمكن إعادة اختباره بأجهزة وعنوان تسجيل طلبات تملكها. الخطوات العامة:

لمنع هذه الطلبات، عطّل معاينات روابط الويب التلقائية في الإعدادات. خيار «عرض معاينات روابط الويب فقط» لا يوقف هذه الطلبات. انتبه إلى أن جهة اتصال محفوظة قد تحصل على معلومات عن شبكتك عبر رابط.

التسلسل الزمني للإفصاح

ما الذي أعتبره إصلاحًا

أفضّل تحديث هذه الصفحة على الدفاع عنها. سأصف المشكلة بأنها مُصلحة عندما تجلب النسخة المنشورة المعاينات عبر بنية Google، بحيث لا يرى خادم الرابط IP المستلِم، أو عندما يتطلب الجلب من الجهاز تفاعلًا صريحًا دون إعادة تفعيله في الخلفية بعد إغلاق المحادثة. لا يكفي وجود التغيير في نسخة داخلية.


أُجريت جميع الاختبارات على أجهزتي وحساباتي، وباستخدام عناوين أتحكم فيها. لم تُستخدم أجهزة أو حسابات أو بيانات تخص آخرين. لا يتضمن التقرير برنامجًا خبيثًا أو أداة هجوم جاهزة؛ فإعادة الاختبار تقوم على إرسال رابط عادي إلى عنوان تملكه. المعرّفات مختصرة.