تقوم هواتف OnePlus التي تعمل بنظام OxygenOS بتسريب رقم IMEI الخاص بهاتفك عندما يبحث هاتفك عن تحديث. يستخدم الهاتف طلب HTTP POST غير آمن.
ال واحد زائد واحد كان واحدًا من أوائل الهواتف الذكية التي تعمل بنظام Android والتي أثبتت أن المستهلكين لا يحتاجون إلى إنفاق أكثر من 600 دولار أمريكي للحصول على تجربة رائدة. وبعبارة أخرى، حتى عند نقطة سعر أقل، يجب عليك ذلك لا يستوي أبدا لشراء منتج رديء.
ما زلت أتذكر الضجيج الذي أحاط بالكشف عن مواصفات هاتف OnePlus One، فقد استفادت الشركة من التعصب الذي أظهره عشاق Android عندما يتعلق الأمر بالتسريبات. قررت شركة OnePlus الكشف ببطء عن مواصفات الهاتف واحدًا تلو الآخر لبضعة أسابيع قبل الإطلاق الرسمي – وقد نجح الأمر.
في ذلك الوقت، لعابنا لعابنا لاستخدام الهاتف لمعالج Snapdragon 801 مع شاشة مقاس 5.5 بوصة بدقة 1080 بكسل بالإضافة إلى الشراكة الجذابة للغاية مع الشركة الناشئة Cyanogen Inc. (منهم كان عشاق Android جداً متحمس بسبب شعبية CyanogenMod). وبعد ذلك أسقطت OnePlus أكبر قنبلة علينا جميعًا – السعر المبدئي البالغ 299 دولارًا. هاتف واحد فقط أذهلني حقًا بسبب أدائه من حيث التكلفة - Nexus 5 - و
لقد قام OnePlus One بتفجيره خارج الماء. أتذكر العديد من عشاق Nexus الذين كانوا ممزقين بين إجراء الترقية إلى OnePlus One أو انتظار إصدار Nexus التالي.ولكن بعد ذلك قام OnePlus بعمل سلسلة من القرارات وعلى الرغم من أن بعضها كان مبررًا اقتصاديًا، إلا أنه قتل بعض الزخم للعلامة التجارية بين عشاق Android. في البداية كان الجدل الدائر حول نظام الدعوة، ثم جاءت الإعلانات المثيرة للجدل السقوط مع السيانوجين, ثم تلقت الشركة بعض الكراهية تجاه ون بلس 2 الافراج عن الذي في عيون كثير من الناس فشل في الارتقاء إلى لقب "القاتل الرئيسي"، و أخيراً هناك ابن الزوجة ذو الشعر الأحمر ون بلس اكس الهاتف الذكي الذي تلقيته للتو أندرويد مارشميلو أ قبل بضعة أيام.
خطوتان إلى الأمام، خطوة واحدة الى الوراء
يُحسب لشركة OnePlus أن الشركة كانت قادرة على ذلك إحياء الضجيج المحيطة بمنتجاتها مع ون بلس 3. هذه المرة، لم تتأكد OnePlus فقط من معالجة العديد من التظلمات التي قدمها المراجعون والمستخدمون ضد OnePlus 2، ولكنها ذهبت إلى أبعد من ذلك في معالجة شكاوى المراجعة المبكرة و الافراج عن شفرة المصدر لمطوري ROM المخصص. مرة أخرى، أنشأت OnePlus منتجًا مقنعًا بما يكفي لجعلي أعيد النظر في انتظار إصدار هاتف Nexus التالي، وجعل العديد من أعضاء فريق العمل لدينا يشترون واحدًا (او اثنين) لأنفسهم. ولكن هناك مشكلة واحدة يشعر بعض موظفينا بالقلق بشأنها - وهي البرنامج. نحن منقسمون جدًا حول كيفية استخدامنا لهواتفنا - فالبعض منا يعيش على حافة النزيف ويستخدم ذاكرة القراءة فقط (ROM) المخصصة Cyanogenmod 13 غير الرسمي الخاص بـ sultanxda لجهاز OnePlus 3، بينما يقوم الآخرون بتشغيل البرامج الثابتة الخاصة بالأوراق المالية على أجهزتهم فقط. هناك بعض الخلاف بين موظفينا حول جودة الإصدار الذي تم إصداره مؤخرًا بناء مجتمع OxygenOS 3.5 (والتي سنستكشفها في مقال مستقبلي)، ولكن هناك مشكلة واحدة نتفق عليها جميعًا: الحيرة المطلقة من حقيقة أن OnePlus يستخدم HTTP لإرسال IMEI الخاص بك أثناء التحقق من تحديثات البرامج.
نعم، لقد قرأت ذلك بشكل صحيح. IMEI الخاص بك، الرقم الذي يحدد بشكل فريد هاتفك الخاص، أرسل غير مشفرة إلى خوادم OnePlus عندما يبحث هاتفك عن تحديث (مع أو بدون إدخال المستخدم). وهذا يعني أن أي شخص يستمع إلى حركة مرور الشبكة في شبكتك (أو دون علمك، أثناء تصفحك لموقعنا) المنتديات أثناء الاتصال بنقطة اتصال عامة) يمكنها الحصول على IMEI الخاص بك إذا قرر هاتفك (أو أنت) أن الوقت قد حان للتحقق من وجود تحديث.
عضو فريق بوابة XDA ومدير المنتدى السابق، b1nny، اكتشف المشكلة بواسطة اعتراض حركة المرور على جهازه استخدام mitmproxy ونشرت عنه في منتديات OnePlus مرة أخرى في 4 يوليو. بعد إجراء المزيد من البحث في ما كان يحدث عندما كان هاتف OnePlus 3 الخاص به يبحث عن تحديث، اكتشف b1nny أن OnePlus لا يتطلب IMEI صالحًا لتقديم تحديث للمستخدم. لإثبات ذلك، استخدم b1nny ملف تطبيق Chrome يسمى Postman لإرسال طلب HTTP POST إلى خادم تحديث OnePlus وتحرير IMEI الخاص به باستخدام البيانات المهملة. الخادم لا يزال يعيد حزمة التحديث كما هو متوقع. قام b1nny باكتشافات أخرى تتعلق بعملية OTA (مثل حقيقة مشاركة خوادم التحديث مع أوبو)، ولكن الجزء الأكثر إثارة للقلق هو حقيقة أن معرف الجهاز الفريد هذا تم نقله عبره HTTP.
لا يوجد إصلاح حتى الآن في الأفق
بعد اكتشاف المشكلة الأمنية، بذل b1nny العناية الواجبة وحاول الاتصال بكليهما مشرفي منتدى OnePlus و ممثلي خدمة العملاء من قد يكون قادرًا على إحالة المشكلة إلى أعلى السلسلة إلى الفرق ذات الصلة. ادعى أحد المشرفين أنه سيتم تمرير الإصدار؛ ومع ذلك، لم يتمكن من الحصول على أي تأكيد بأن هذه القضية قيد النظر. عندما تم لفت انتباه Redditors إلى المشكلة في البداية على موقع Reddit /r/Android الفرعي، كان الكثيرون قلقين ولكنهم كانوا واثقين من أنه سيتم حل المشكلة بسرعة. في بوابة XDA، اعتقدنا أيضًا أن طريقة HTTP POST غير الآمنة المستخدمة لإجراء اختبار اتصال خادم OTA للحصول على تحديث سيتم إصلاحها في النهاية. تم الاكتشاف الأولي للمشكلة على إصدار OxygenOS 3.2.1 من نظام التشغيل (على الرغم من أنه كان من الممكن أن يكون موجودًا في الإصدارات السابقة كـ حسنًا)، ولكن b1nny أكد معنا بالأمس أن المشكلة لا تزال قائمة على الإصدار الأخير المستقر من نظام التشغيل Oxygen OS: version 3.2.4.
POST:User-agent: UA/ONEPLUS A3003/XXX/OnePlus3Oxygen_16.A.13_GLO_013_1608061823/V1.0.0_20150407
Content-Type: text/plain; charset=UTF-8
Host: i.ota.coloros.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 188
Raw
{"version":"1","mobile":"ONEPLUS A3003","ota_version":"OnePlus3Oxygen_16.A.13_GLO_013_1608061823","imei":"XXX","mode":"0","type":"1","language":"en","beta":"0","isOnePlus":"1"}
ANSWER:
Server: nginx
Date: Wed, 24 Aug 2016 18:20:24 GMT
Content-Type: application/json; charset=UTF-8
Connection: keep-alive
X-Server-ID: hz0231
No content
ومع ذلك، مع الإصدار الأخير من مجتمع OxygenOS 3.5، شعرنا بالفضول مرة أخرى لمعرفة ما إذا كانت المشكلة لا تزال قائمة. لقد تواصلنا مع OnePlus بخصوص هذه المشكلة وأخبرنا متحدث باسم الشركة أن المشكلة قد تم تصحيحها بالفعل. ومع ذلك، فقد طلبنا من أحد أعضاء بوابتنا إصدار أحدث إصدار من المجتمع واستخدام mitmproxy لاعتراض حركة مرور شبكة OnePlus 3 الخاصة به، ولدهشتنا اكتشفنا ذلك كان OxygenOS لا يزال يرسل IMEI في طلب HTTP POST إلى خادم التحديث.
POST http://i.ota.coloros.com/post/Query_Update HTTP/1.1.User-Agent: com.oneplus.opbackup/1.3.0
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Host: i.ota.coloros.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 188
Raw
{"version":"1","mobile":"ONEPLUS A3000","ota_version":"OnePlus3Oxygen_16.X.01_GLO_001_1608221857","imei":"XXX","mode":"0","type":"0","language":"en","beta":"0","isOnePlus":"1"}
وهذا، على الرغم من التأكيد الواضح على أن المشكلة قد تم حلها، يقلقنا بشدة في XDA. ليس من المنطقي أن يستخدم OnePlus HTTP لإرسال طلب إلى خوادمه، إذا أرادوا ذلك ما يفعلونه هو استخدام IMEI الخاص بنا لأغراض التنقيب عن البيانات، ومن ثم يمكنهم القيام بذلك بطريقة أكثر أمانًا طريقة.
تسريبات IMEI وأنت
لا يوجد شيء جوهريا خطير بشأن تسرب IMEI الخاص بك عبر شبكة عامة. على الرغم من أنها تحدد جهازك بشكل فريد، إلا أن هناك معرفات فريدة أخرى يمكن استخدامها بشكل ضار. يمكن للتطبيقات طلب الوصول لرؤية IMEI لجهازك بسهولة تامة. إذن ما هي المشكلة؟ اعتمادًا على المكان الذي تعيش فيه، يمكن استخدام IMEI الخاص بك لتتبعك من قبل الحكومة أو أحد المتسللين الذين يبدو أنهم مهتمون بك بدرجة كافية. لكن هذه ليست مخاوف حقيقية بالنسبة للمستخدم العادي.
قد تكون أكبر مشكلة محتملة هي الاستخدامات غير المشروعة لـ IMEI الخاص بك: بما في ذلك، على سبيل المثال لا الحصر، إدراج IMEI الخاص بك في القائمة السوداء أو استنساخ IMEI لاستخدامه في هاتف السوق السوداء. إذا حدث أي من السيناريوهين، فقد يكون من الصعب للغاية إخراج نفسك من هذه الحفرة. هناك مشكلة محتملة أخرى تتعلق بالتطبيقات التي لا تزال تستخدم IMEI الخاص بك كمعرف. واتس اب، على سبيل المثال، يستخدم لاستخدام نسخة معكوسة ومجزأة على MD5 IMEI الخاص بك ككلمة مرور لحسابك. بعد البحث عبر الإنترنت، تدعي بعض مواقع الويب المشبوهة أنها قادرة على اختراق حسابات Whatsapp باستخدام رقم هاتف ورقم IMEI، لكن لا يمكنني التحقق منها.
ما زال، من المهم حماية أي معلومات تحدد هويتك أو أجهزتك بشكل فريد. إذا كانت مشكلات الخصوصية مهمة بالنسبة لك، فيجب أن تكون هذه الممارسة من جانب OnePlus مثيرة للقلق. نأمل أن تفيدك هذه المقالة في إعلامك بهذه الآثار الأمنية المحتملة وراء ذلك الممارسة، وللفت انتباه OnePlus (مرة أخرى) إلى هذا الموقف حتى يمكن إصلاحه حالا.