تخزين كلمات المرور بدون تشفير: إهمال يجب أن يتوقف!

تاريخ النشر: 27/03/2020    

 

(1)

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

هذه الممارسة اجتمعت فيها الأخطاء التالية: 

  1. حفظ كلمة مرور المستخدم بشكل غير مشفر وقابل للاطلاع من أي موظف لديه الصلاحية. وهذه فيها خرق كبير للخصوصية، خصوصا إذا كان المستخدم قام بتعيين كلمة المرور بنفسه، فيكون بذلك مهدد بشكل مباشر بالاختراق إذا قام بإعادة استخدام كلمة المرور هذه في مواقع/تطبيقات أخرى.
  2. سهولة الحصول على كلمة المرور من قبل الدخلاء/المخترقين بمجرد الاطلاع السريع فقط. قاعدة بيانات أي نظام معرضة على الدوام للاطلاع من أطراف خارجية سواء عن قصد أم عن غير قصد. وجودها محفوظة بدون تشفير يعني أنها وجبة دسمة في المتناول لأي طرف دخيل.
  3. إعادة إرسال كلمة المرور عبر طرف ثالث (مثلا رسائل نصية أو عبر البريد الإلكتروني) وحفظها هناك. من الممارسات المقبولة: إرسال كلمة مرور أو رمز مؤقت صلاحيته لا تتجاوز ساعات كحد أقصى، لكن من غير المقبول أبدا إرسال كلمة المرور الفعلية. ففي هذه الحالة تمت إعادة حفظ كلمة المرور في مكان آخر ينطبق عليه نفس المخاطر المذكورة في النقطة 1 و 2، بل بشكل أوسع. مثلا: أي شخص حصل على صلاحية الاطلاع فقط على رسائل جوالك أو بريدك الإلكتروني المحفوظ فيه كلمة سر بإمكانه الاستيلاء على حسابك المربوط بكلمة السر هذه بكل بساطة.

التبعات

أحد أسوأ القصص في هذا الموضوع هي فضيحة اختراق شركة سوني في مناسبتين عام 2011 و 2014. تم الوصول لبيانات أكثر من 70 مليون مستخدم ومن ثم 1 مليون، على التوالي. في كلا المناسبتين تم تخزين كلمات المرور التي وضعها المستخدمون بأنفسهم بدون أي تشفير.
بالإضافة إلى تلطيخ السمعة وتعرية الضوابط الداخلية للشركة بشكل مخجل بسبب تلك الاختراقات، سوني اضطرت حتى للتعويض المادي لموظفين سابقين رفعوا قضية عليها في المحاكم الأمريكية، بسبب ضعف السياسات الأمنية التي أدت لتسرب بياناتهم الخاصة.

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

الممارسة الصحيحة: تشفير الطريق الواحد One way hashing

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

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

التحذير ليس دائما مجدي: تطبيق يكشف لك المشكلة vulnerability 

 

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

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


للمطورين: لا تتساهل في هذا الموضوع أبدا. سيأتي يوم ستعض فيه أصابع الندم. أما المسؤول الذي يسمح بهذه الممارسات: ما أدري وش أقولك؟ كيف حالك؟!!

  • (1)مصدر الصورة الظريفة: https://memegenerator.net/instance/29284369/toy-story-everywhere-plain-text-passwords-plain-text-passwords-everywhere