كيف اكتشفنا تسريب رخص القيادة لمستخدمي TeaOnHer في أقل من 10 دقائق

رخصتا قيادة، إحداهما من تكساس والأخرى من ماساتشوستس، تم إدراكها بواسطة TechCrunch، والتي تم كشفها بواسطة تطبيق TeaOnHer.

من المثير للسخرية أنه بينما كانت تطبيق “TeaOnHer” يهدف إلى كشف الأسرار حول من تواعده، كان هو نفسه يكشف المعلومات الشخصية لآلاف من مستخدميه على الويب المفتوح.

تم تصميم “TeaOnHer” للرجال لمشاركة الصور والمعلومات حول النساء اللاتي يزعمون أنهم كانوا يواعدونهن. ولكن مثل تطبيق “Tea”، الذي كان يحاول تقليده، كان “TeaOnHer” يعاني من ثغرات كبيرة في أمانه تعرض معلومات مستخدميه الشخصية، بما في ذلك صور رخص القيادة والمستندات الهوية الحكومية الأخرى، كما ذكرت “TechCrunch” الأسبوع الماضي.

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

وسوف تزداد هذه المخاطر سوءًا؛ حيث يتعين على التطبيقات والخدمات المشهورة الامتثال لقوانين التحقق من العمر التي تتطلب من الأشخاص تقديم مستندات الهوية الخاصة بهم قبل منحهم الوصول إلى محتوى مخصص للبالغين، على الرغم من المخاطر المتعلقة بالخصوصية والأمان المرتبطة بتخزين قواعد بيانات معلومات الأشخاص الشخصية.

عندما نشرت “TechCrunch” قصتنا الأسبوع الماضي، لم ننشر تفاصيل محددة عن الأخطاء التي اكتشفناها في “TeaOnHer”، متجنبين المساعدة في استغلال الأخطاء من قبل الجهات السيئة. بدلاً من ذلك، قررنا نشر إفصاح محدود، بسبب الشعبية المتزايدة للتطبيق والمخاطر الفورية التي يواجهها المستخدمون عند استخدام التطبيق.

في وقت الإفصاح، كان “TeaOnHer” يحتل المرتبة الثانية في تصنيفات التطبيقات المجانية على “Apple App Store”، وهو مركز يحتفظ به التطبيق حتى اليوم.

يبدو أن الثغرات التي وجدناها قد تم حلها. يمكن الآن لـ “TechCrunch” أن توضح كيف تمكنا من العثور على رخص قيادة المستخدمين في غضون 10 دقائق من إرسال رابط إلى التطبيق في “App Store”، بفضل الثغرات التي كانت سهلة الاكتشاف في نظام الواجهة العامة للتطبيق، أو API.

لم يرد مطور التطبيق، زافيير لامبكين، على عدة طلبات للتعليق بعد أن قدمنا تفاصيل الثغرات الأمنية، ولم يلتزم لامبكين بإخطار المستخدمين المتأثرين أو السلطات التنظيمية بشأن الثغرة الأمنية.

سألنا لامبكين أيضًا عما إذا كانت هناك أي مراجعات أمنية أجريت قبل إطلاق تطبيق “TeaOnHer”، لكنه لم يرد. (لدينا المزيد حول الإفصاح لاحقًا.)

حسنًا، لنبدأ العد التنازلي.

كشف “TeaOnHer” عن بيانات اعتماد “لوحة الإدارة”

قبل أن نقوم بتنزيل التطبيق، أردنا أولاً معرفة مكان استضافة “TeaOnHer” على الإنترنت من خلال النظر إلى بنيته الأساسية العامة، مثل موقعه الإلكتروني وأي شيء مستضاف على نطاقه.

هذا عادةً ما يكون نقطة انطلاق جيدة لأنه يساعد على فهم ما هي الخدمات الأخرى المرتبطة بالنطاق على الإنترنت.

للعثور على اسم النطاق، نظرنا أولاً (عن طريق الصدفة) إلى قائمة التطبيق في “Apple App Store” لنجد موقع التطبيق. وعادةً ما يمكن العثور على ذلك في سياسة الخصوصية الخاصة به، والتي يجب أن تشملها التطبيقات قبل أن تقوم “Apple” بإدراجها. (تدعي قائمة التطبيق أيضًا أن المطور “لا يجمع أي بيانات من هذا التطبيق”، وهو أمر خاطئ بشكل واضح، لذا خذ ذلك كما ترى مناسبًا.)

كانت سياسة الخصوصية لـ “TeaOnHer” على شكل مستند منشور على “Google Doc”، والذي تضمن عنوان بريد إلكتروني ينتهي بنطاق teaonher.com، لكن لم يكن هناك موقع إلكتروني.

لم يكن الموقع عامًا في ذلك الوقت، لذا مع عدم تحميل أي موقع، نظرنا إلى سجلات DNS العلنية للنطاق، والتي يمكن أن تساعد في تحديد ما الذي يتم استضافته أيضًا على النطاق، مثل نوع خوادم البريد الإلكتروني أو استضافة الويب. أردنا أيضًا البحث عن أي نطاقات فرعية عامة قد يستخدمها المطور لاستضافة الوظائف للتطبيق (أو استضافة موارد أخرى ينبغي ألا تكون عامة)، مثل لوحات التحكم الإدارية، أو قواعد البيانات، أو خدمات الويب الأخرى.

ولكن عندما نظرنا إلى سجلات “TeaOnHer” العامة على الإنترنت، لم يكن لديها أي معلومات ذات مغزى بخلاف نطاق فرعي واحد، وهو appserver.teaonher.com.

عندما فتحنا هذه الصفحة في متصفحنا، ما تم تحميله كان صفحة الهبوط لواجهة برمجة التطبيقات (API) لـ “TeaOnHer” (للمهتمين، قمنا بتحميل نسخة هنا). تتيح واجهة برمجة التطبيقات ببساطة للأشياء على الإنترنت التواصل مع بعضها البعض، مثل ربط تطبيق بقاعدة بياناته المركزية.

وجدنا على هذه الصفحة المعرضة البريد الإلكتروني وكلمة المرور النصية (التي لم تكن بعيدة جدًا عن “password”) لحساب لامبكين للوصول إلى “لوحة الإدارة” الخاصة بـ “TeaOnHer”.

أظهرت صفحة واجهة برمجة التطبيقات أن لوحة الإدارة، المستخدمة لنظام التحقق من المستندات وإدارة المستخدمين، كانت موجودة في “localhost”، والذي يشير ببساطة إلى الكمبيوتر الفعلي الذي يقوم بتشغيل الخادم وقد لا يكون متاحًا مباشرةً من الإنترنت. من غير الواضح ما إذا كان بإمكان أي شخص استخدام بيانات الاعتماد للوصول إلى لوحة الإدارة، لكن هذا كان في حد ذاته اكتشافًا مقلقًا بما فيه الكفاية.

في هذه المرحلة، كنا قد مضى علينا دقيقتان فقط.

بخلاف ذلك، لم تفعل صفحة واجهة برمجة التطبيقات شيئًا سوى تقديم بعض الإشارات حول ما يمكن أن تفعله واجهة برمجة التطبيقات. كانت الصفحة تسرد عدة نقاط نهاية لواجهة برمجة التطبيقات التي يحتاجها التطبيق للعمل، مثل استرجاع سجلات المستخدمين من قاعدة بيانات “TeaOnHer”، للسماح للمستخدمين بترك مراجعات، وإرسال إشعارات.

مع معرفة هذه النقاط، يمكن أن يكون من الأسهل التفاعل مع واجهة برمجة التطبيقات مباشرة، كما لو كنا نقلد التطبيق نفسه. كل واجهة برمجة تطبيقات مختلفة، لذا فإن تعلم كيفية عمل واجهة برمجة التطبيقات وكيفية التواصل معها يمكن أن يستغرق وقتًا لفهم، مثل أي نقاط النهاية يجب استخدامها والمعلمات اللازمة للتحدث بلغتها بشكل فعال. يمكن أن تكون التطبيقات مثل “Postman” مفيدة للوصول والتفاعل مباشرة مع واجهات برمجة التطبيقات، ولكن ذلك يتطلب وقتًا ودرجة معينة من التجربة والخطأ (والصبر) لجعل واجهات برمجة التطبيقات تنتج بيانات عندما لا ينبغي أن تفعل ذلك.

ولكن في هذه الحالة، كان هناك طريقة أسهل.

سمحت واجهة برمجة التطبيقات لـ “TeaOnHer” بالوصول غير المصرح به إلى بيانات المستخدمين

تضمنت صفحة هبوط واجهة برمجة التطبيقات نقطة نهاية تسمى /docs، والتي تضمنت الوثائق المستخرجة تلقائيًا للواجهة (مدعومة بمنتج يسمى “Swagger UI”) التي تضمنت القائمة الكاملة للأوامر التي يمكن تنفيذها على واجهة برمجة التطبيقات.

كانت هذه الصفحة الوثائقية بمثابة ورقة رئيسية لجميع الإجراءات التي يمكنك تنفيذها على واجهة برمجة التطبيقات لـ “TeaOnHer” كمستخدم عادي للتطبيق، والأهم من ذلك، كمسؤول التطبيق، مثل إنشاء مستخدمين جدد، والتحقق من مستندات الهوية للمستخدمين، وتحرير التعليقات، والمزيد.

تضمنت الوثائق أيضًا إمكانية استعلام واجهة برمجة التطبيقات لـ “TeaOnHer” واسترجاع بيانات المستخدم، مما سمح لنا أساسًا باسترجاع البيانات من خادم التطبيق الخلفي وعرضها في متصفحنا.

بينما ليس من غير المألوف أن ينشر المطورون وثائق واجهة برمجة التطبيقات الخاصة بهم، كانت المشكلة هنا أن بعض طلبات واجهة برمجة التطبيقات يمكن أن تتم دون أي مصادقة — لم تكن هناك كلمات مرور أو بيانات اعتماد مطلوبة لاسترداد المعلومات من قاعدة بيانات “TeaOnHer”. بمعنى آخر، كان بإمكانك تشغيل أوامر على واجهة برمجة التطبيقات للوصول إلى بيانات المستخدمين الخاصة التي لم يكن ينبغي أن تكون متاحة لمستخدم للتطبيق، ناهيك عن أي شخص على الإنترنت.

وكان كل هذا موثقًا بشكل ملائم وعام للكل لرؤيته.

على سبيل المثال، طلب قائمة المستخدمين الحاليين في قائمة التحقق من الهوية في “TeaOnHer” — لم يكن أكثر من الضغط على زر في صفحة واجهة برمجة التطبيقات، لم يكن هناك شيء معقد هنا — كان سيعيد العشرات من سجلات الحسابات لأشخاص قاموا مؤخرًا بالتسجيل في “TeaOnHer”.

احتوت السجلات المستردة من خادم “TeaOnHer” على المعرفات الفريدة للمستخدمين داخل التطبيق (وهو عبارة عن سلسلة من الحروف والأرقام العشوائية)، واسم المستخدم العام على ملفهم الشخصي، والعمر والموقع الذاتي، بالإضافة إلى عنوان بريدهم الإلكتروني الخاص. كما شملت السجلات روابط إلى عناوين الويب التي تحتوي على صور لرخص قيادة المستخدمين وصور سيلفي مقابلة.

والأسوأ من ذلك، كانت هذه الصور لرخص القيادة، والمستندات الصادرة عن الحكومة، وصور السيلفي مخزنة في خادم سحابي مستضاف على “Amazon S3” تم تعيينه ليكون متاحًا للجمهور لأي شخص لديه عناوين الويب الخاصة بهم. يتيح هذا الإعداد العام لأي شخص لديه رابط إلى مستندات هوية شخص ما فتح الملفات من أي مكان دون قيود.

رخصتا قيادة، إحداهما من تكساس والأخرى من ماساتشوستس، تم إدراكها بواسطة TechCrunch، والتي تم كشفها بواسطة تطبيق TeaOnHer.
رخصتا قيادة (تم إدراكها بواسطة TechCrunch) التي كشفت عنها الثغرات في تطبيق “TeaOnHer”.حقوق الصورة: TechCrunch (لقطة شاشة)

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

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

سألنا، لكن لامبكين لم يقبل أن يقول ما إذا كان لديه القدرة التقنية، مثل السجلات، لتحديد ما إذا كان قد استخدم أي شخص (أو أساء استخدامه) واجهة برمجة التطبيقات في أي وقت للوصول إلى مستندات تحقيق هوية المستخدمين، مثل عن طريق جمع العناوين من واجهة برمجة التطبيقات.

في الأيام التي تلت تقريرنا إلى لامبكين، تمت إزالة صفحة الهبوط الخاصة بواجهة برمجة التطبيقات، بالإضافة إلى صفحة الوثائق الخاصة بها، وهي الآن تعرض فقط حالة الخادم الذي تعمل عليه واجهة برمجة التطبيقات لـ “TeaOnHer” كـ “صحية”. على الأقل في الاختبارات الأولية، يبدو أن واجهة برمجة التطبيقات تعتمد الآن على المصادقة، ولم تعد الاتصالات السابقة باستخدام واجهة برمجة التطبيقات تعمل.

تم أيضًا تقييد عناوين الويب التي تحتوي على مستندات الهوية المرفوعة من العرض العام.

نزع مطور “TeaOnHer” جهود الكشف عن الثغرات

نظرًا لأن “TeaOnHer” لم يكن لديه موقع رسمي في وقت اكتشافاتنا، اتصلت “TechCrunch” بعنوان البريد الإلكتروني المدرج في سياسة الخصوصية في محاولة للكشف عن الثغرات الأمنية.

لكن البريد الإلكتروني رد برسالة خطأ تفيد بأن عنوان البريد الإلكتروني لم يتم العثور عليه. حاولنا أيضًا الاتصال بلامبكين عبر عنوان البريد الإلكتروني على موقعه “Newville Media”، لكن بريدنا الإلكتروني رد بنفس رسالة الخطأ.

تواصلت “TechCrunch” مع لامبكين عبر رسالة “LinkedIn”، تسأل عنه لتقديم عنوان بريد إلكتروني حيث يمكننا إرسال تفاصيل الثغرات الأمنية. رد لامبكين بعنوان بريد إلكتروني عام خاص بـ “الدعم”.

عندما تكشف “TechCrunch” عن ثغرة أمنية، نتواصل أولًا للتأكيد أن شخصًا أو شركة ما هي المستلم الصحيح. خلاف ذلك، قد يؤدي إرسال تفاصيل خطأ أمني إلى الشخص الخطأ إلى خلق مخاطر. قبل مشاركة تفاصيل محددة عن الثغرات، سألنا المستلم لعنوان بريد “الدعم” إذا كان هذا هو العنوان الصحيح للكشف عن تسرب أمني يتعلق ببيانات مستخدمي “TeaOnHer”.

“يجب أن تكونوا قد اختلطتم علينا مع ‘تطبيق الشاي’”، رد لامبكين عبر البريد الإلكتروني. (لم نفعل.) “ليس لدينا اختراق أمني أو تسرب للبيانات”، قال. (كان هناك.). “لدينا بعض الروبوتات في أقصى الأحوال ولكننا لم نتوسع بما يكفي لنكون في تلك المحادثة بعد، آسف على المعلومات الخاطئة”. (لم نكن كذلك)

بعد أن تأكدنا من أننا قد أنشأنا اتصالًا بالشخص الصحيح (على الرغم من أننا لم نتلق الرد الذي تلقيناه)، شاركت “TechCrunch” تفاصيل الثغرات الأمنية، بالإضافة إلى العديد من الروابط لرخص قيادة مكشوفة، ونسخة من بيانات لامبكين الخاصة للتأكيد على خطورة المشكلات الأمنية.

“شكرًا لك على هذه المعلومات. هذا مثير للقلق للغاية. سنقوم بالتحرك بشأن ذلك الآن”، قال لامبكين.

على الرغم من عدة رسائل متابعة، لم نسمع من لامبكين منذ أن كشفنا عن الثغرات الأمنية.

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

إذا كان لديك دليل على تسريب أو كشف معلومات من تطبيق أو خدمة شهيرة، فلا تتردد في التواصل. يمكنك الاتصال بهذا المراسل عبر رسالة مشفرة على “Signal” على الرقم zackwhittaker.1337.


المصدر