في أيلول/سبتمبر 2020، أجرَت منظّمة “سمكس” تحليلاً أمنياً لتطبيق “معاً” المخصّص لتتبُّع مخالطي مرضى كورونا، من أجل اختبار جوانبه الأمنية. بدت وزارة الصحّة العامّة في لبنان متجاوبة مع توصياتنا، ولكنْها في الواقع، لم تنفّذ أيّ تغييرات في التطبيق.
في هذا العام، وبدعمٍ من مؤسّسة “فريدريش نومان” (Friedrich Naumann Foundation) في لبنان وسوريا، نعيد تقييم المعايير الأمنية في تطبيق “معاً”، إلى جانب تطبيقات حكومية أخرى مُستخدَمة في لبنان. ونستعرض فيما يلي تفاصيل النتائج والتوصيات الجديدة، مقارنةً مع التحليل الأمني الذي أجريناه في العام الماضي لهذا التطبيق المخصّص لتتبّع المخالطين.
تحليل الأذونات في التطبيق
ينبغي ألّا يطلب التطبيق إذناً للدخول إلى تطبيقات أخرى، ما لم يكن ذلك ضرورياً لتشغيله. ومع ذلك، كانت معظم الأذونات التي أشرنا إليها في التقييم السابق لتطبيق “معاً” مبرّرة، غير أنَّ التطبيق يطلب إذن استخدام “النظام العالمي لتحديد المواقع” (GPS) الذي يسمح له بتحديد الموقع بشكل دقيق (ACCESS_FINE_LOCATION) باستخدام وحدات “جي بي إس” المُدمَجة في الأجهزة.
وهذا يعني أنَّ التطبيق يستطيع تحديد موقع كلّ مُستخدِم/ة بدقّة. نتفهّم الحاجة إلى هذا الإذن، لأنَّه يعمل على منهاج معيّن لقياس التقارُب من أجل تتبُّع المخالطين عبر تقنيّتَي “جي بي إس” و”بلوتوث”، ومع ذلك، يجب أن يعتمد التطبيق نهجاً أكثر شفافية لاستخدام خاصية تحديد المواقع الجغرافية.
التحليل الأمني
تمّ تفعيل إعدادات “حركة مرور النصّ الواضح” (Cleartext traffic) في تطبيق “معاً”، ما يعني أنّ البيانات التي يجمعها التطبيق ويرسلها إلى الخوادم يُحتمَل أن تتعرّض للاعتراض (interception) في حال كان المحتوى غير مُشفَّر. يعتزم التطبيق استخدام “حركة شبكة النصّ الواضح”، مثل “HTTP” و”Download Manager” و”MediaPlayer” لنظام “أندرويد”. وتجدر الإشارة أيضاً إلى أنَّ هذه الوظيفة مُفعَّلة تلقائياً ومُتاحة لواجهة برمجة تطبيقات “أندرويد” من المستوى 27 أو أقلّ، وغير مفعّلة تلقائياً لإصدارات “أندرويد” التي تعمل على مستوى أعلى من 28.
ينبغي تجنُّب إعدادات “حركة مرور النصّ الواضح” بسبب افتقارها إلى السرّية، فعملية الاعتراض قد تضرّ بحركة المرور وتنقل معلومات خاطئة، وقد تسمح على سبيل المثال للجهات الخبيثة بالتوغّل إلى بيانات التطبيق وتعديلها من دون أن يكتشف أحدٌ ذلك.
الثغرات الأمنية
تصحيح أخطاء عرض الويب عن بُعد (Remote WebView Debugging)
لاحظنا في تحليلنا أنّ شيئاً لم يتغيّر في تطبيق “معاً” مقارنةً بالتحليل الذي أُجري في العام الماضي. فالفريق المعني بتطبيق “معاً” لم يُنفِّذ أيّاً من توصياتنا السابقة، بالرغم من تواصلنا معهم سراً وعلانيةً في هذا الصدد.
لا تزال تقنية “تصحيح أخطاء عرض الويب عن بُعد” مُفعَّلة عبر مكتبة الأطراف الثالثة “وَن سيغنال” (OneSignal)، وهي ميزة تُعتبَر من أهمّ 10 تهديدات للأجهزة المحمولة قد تكون ناجمة عن “الاستخدام غير السليم” للمنصّة، وفقاً لـ”مشروع أمان تطبيقات الويب المفتوح” (OWASP).
قد يُساء استخدام المنصّة عندما يفشل أحد التطبيقات في استخدام الإمكانات أو الحقوق المُتاحة في منصّة معيّنة، بحيث يمكن أن تكون الميزات أو الأذونات نُفذّت بصورة خاطئة أو قد تكون غير مُستخدَمة.
يحدث ذلك من خلال ميزتَيْن في نظام “أندرويد”:
- المقاصد (Intents): تُستخدَم “مقاصد” “أندرويد” للرسائل التي تطلب إجراء أمرٍ ما من مكوّن أحد التطبيقات الأخرى. وقد تكون “المقاصد” خاصّة أو عامّة، ويمكن ضبطها للتواصل فقط بين تطبيقات من قِبَل المؤسّسة نفسها. قد تُخلّ المقاصد العامّة (public intents) بخصوصية المُستخدِمين/ات وقد تؤدّي إلى الكشف عن المعلومات الحسّاسة.
- أذونات الملفّات (File Permissions): إذا لم يحسن المُطوِّرون ضبط الوصولَ إلى ملفّات البرامج، قد تتمكّن الجهات الخبيثة من قراءة البيانات أو الكتابة فوقها. يسمح ذلك للبرنامج بكتابة رموز برمجية عشوائية، وهي ثغرة أمنية في البرمجيات أو الأجهزة، تمكّن المُهاجِم من تنفيذ أوامر النظام على جهاز مُستهدَف للحصول على وصول خاصّ أو معلومات غير مُصرَّح بها، مثل سرقة بيانات تسجيل الدخول على جهازٍ محلّي.
ينبغي على شركة “تيد موب” (TedMob) التي طوّرت تطبيق “معاً” إعادة النظر في حاجة التطبيق إلى “وَن سيغنال” (OneSignal)، لأنّ “تصحيح أخطاء عرض الويب عن بُعد” (Remote WebView debugging) يسمح للمهاجمين بإدخال نظام رمزي خبيث واختراق جهاز “أندرويد”.
تخزين المعلومات
في التحليل السابق، لاحظنا أيضاً أنَّ التطبيق يستخدم “فايربايز” (Firebase)، وهو “برمجية كخدمة” (SaaS) من “غوغل”، للتواصل الخلفي وتبادل المعلومات.
لكنَّ منصّة “فايربايز” المرتبطة بتطبيق “معاً” لم تُضبَط بطريقة سليمة وكان ينبغي التحقّق منها.
عنوان URL التالي [https://moph-tracer.firebaseio.com/.json] غير محميّ، وهو بالتالي مُعرَّض للاستغلال. أوقفنا تحليلنا عند هذا الحدّ لأنَّنا لا نستطيع قانونياً الغوص أكثر في التطبيق، لكنَّنا نستطيع أن نُشير إلى النقاط التالية:
بالنسبة إلى عنوان URL السابق، قد يظهر نوعان من الردود:
- “رفض منح الإذن” (Permission Denied) الذي يعني أنَّ نقطة النهاية مُقيَّدة، وموقع الويب مضبوط جيّداً.
- “لا ضوابط” (Null)، أو سلسلة JSON (ترميز الأشياء باستخدام جافا سكريبت JavaScript Object Notation، وهي صيغة تبادل بيانات بسيطة، ذات معيار مفتوح) التي تعني أنَّ قاعدة البيانات مُتاحة للعموم وعمليات الوصول للقراءة ممكنة. الوصول للقراءة هو ميزة في البرمجية كخدمة من “فايربايز” (Firebase SaaS) لقراءة البيانات من الوثيقة التي يستند إليها تطبيق “معاً” لقراءة البيانات وكتابتها. ويمكن للجهات الخبيثة محاولة الكتابة على نقطة نهاية “فايربايز”، ما يؤدّي إلى تلويث البيانات وربّما الإخلال بها.
إضافةً إلى ذلك، يستخدم التطبيق قاعدة بيانات “إس كيو إل لايت” (SQLite) ويُنفّذ “استعلامات إس كيو إل” (SQL query) الأوّلية، وهي قاعدة بيانات محلّية/مخزن بيانات تستخدمه تطبيقات “أندرويد”. تنتمي قاعدة البيانات هذه إلى نوع “إس كيو إل لايت”، كما أنَّ “بروتوكول” الاتّصال بين “إس كيو إل لايت” وتطبيق “أندرويد” يُسمّى “استعلام إس كيو إل” (SQL query). يمكن للمُستخدِمين/ات غير المُختبَرين إدخال “استعلامات إس كيو إل” أوّلية، ما يؤدّي إلى تسريب البيانات والتلاعب بالبيانات على جهاز المُستخدِم/ة محلّياً، وبالتالي إلى الكشف عن البيانات الشخصية للمُستخدِمين/ات ضمن تطبيق “معاً” لتطبيقات أخرى غير موثوقة. ولذلك، ينبغي على وزارة الصحّة العامّة، من خلال شركة “تيد موب”، أن تحسن إدارة “إس كيو إل لايت 3” (SQLite3) وتجعله أكثر أماناً، كما ينبغي تشفير المعلومات الحسّاسة قبل كتابتها في قاعدة البيانات.
التشفير
يستخدم التطبيق بالفعل “طبقة المنافذ الآمنة” (SSL) التي تُنشئ طبقات مصدّقة وآمنة بين الخوادم وأجهزة الكمبيوتر، في معظم نقاطها النهائية (end-points)، ما يعني أنّ بيانات التطبيق تُعتبر آمنة نسبياً أثناء نقل البيانات.
وجدنا أيضاً مشكلة مهمّة تتعلّق بتوقيع التطبيق، فقد لاحظنا أنَّ التطبيق موقّع بنظام التوقيع V1 الذي يجعله عُرضة لهجمات “جانوس” (Janus) لإصدارات “أندرويد” التي تسبق الإصدار السابع. وتُعتبَر “جانوس” ثغرة خطيرة في “أندرويد”، إذ تسمح للمهاجمين بإدخل ملفّ DEX (ملفّ يُستخدَم لتهيئة وتنفيذ التطبيقات المُطوَّرة لنظام تشغيل “أندرويد” للأجهزة المحمولة) في ملفّ APK (ملفّ حزمة أندرويد) من دون التأثير على التوقيع. وهذا يُسهِّل تعديل الرموز البرمجية في التطبيقات من دون التأثير على التكامل الرقمي للملفّ. تجدر الإشارة إلى أنَّ هذه الثغرة الأمنية تطال فقط إصدارات “أندرويد” التي تسبق الإصدار السابع، علماً أنّ الكثيرين ما زالوا يستخدمون هذا الإصدار في لبنان.
الخلاصة
إذا قارنّا المشاكل المُدرَجة مع تقييمنا السابق، حتّى بعد التوصيات التي قدّمناها بشأن تطبيق “معاً”، نُلاحظ تطوّراً ضئيلاً أو معدوماً في معالجة الثغرات في التطبيق وخصوصية المُستخدِم من الناحية التقنية. وهذا يشير إلى أنّ فريق تطبيق “معاً” لم يبذل أيّ جهد لتحديث الثغرات الأمنية والشوائب المُحتمَلة التي أشرنا إليها سابقاً.
انطلاقاً من التحليل الذي أجريناه على التطبيق، نوصي وزارة الصحّة العامّة والفريق المعني بتطبيق “معاً” ونطالبهما بتنفيذ ما يلي:
- تعديل الإعدادات على “فايربايز” لـ https://moph-tracer.firebaseio.com/.json من أجل إرجاع “رفض منح الإذن” بدلاً من استجابة القراءة الخالية من الضوابط “Null”.
- التخلّي عن “وَن سيغنال” (OneSignal) نظراً لما ينطوي عليه من خيارات “تصحيح أخطاء عرض الويب عن بُعد” (Remote WebView debugging)، وإيجاد حلّ بديل يُراعي الاعتبارات الأمنية بشكل أفضل.
- تعطيل حركة النصّ الواضح في AndroidManifest.xml.
- تطبيق التعزيز الأمني لـ”إس كيو إل لايت” (SQLite) على الأجهزة المحمولة.