واحدة من أقدم نصائح الأمان هي: “تنزيل البرامج من المصادر الرسمية فقط”. وعادةً ما تتمثل “المصادر الرسمية” في متاجر التطبيقات الرئيسية على كل نظام أساسي، لكن بالنسبة لملايين التطبيقات المفيدة والمجانية مفتوحة المصدر، فإن أكثر مصدر “رسمي” هو مستودع المطورين على موقع مخصص مثل GitHub أو GitLab. ويمكنك هناك العثور على التعليمات البرمجية المصدرية للمشروع، والإصلاحات والإضافات إلى التعليمات البرمجية، وغالبًا ما يوجد إصدار من التطبيق جاهزًا للاستخدام. وتعد هذه المواقع مألوفة لأي شخص لديه أدنى اهتمام بالكمبيوتر والبرامج والبرمجة. ولهذا السبب كان اكتشافًا مزعجًا للكثيرين (بما في ذلك متخصصي أمان تكنولوجيا المعلومات والمطورين أنفسهم) أن ملفًا يمكن الوصول إليه عبر رابط مثل github{.}com/{User_Name}/{Repo_Name}/files/{file_Id}/{file_name} يمكن نشره بواسطة شخص آخر غير المطور ويحتوي على… أي شيء.
بالطبع، استغل مجرمو الإنترنت ذلك على الفور.
تفصيل المشكلة
تم بناء مستودع GitHub وشبيهه GitLab على التعاون في مشاريع تطوير البرامج. ويستطيع أي مطور تحميل التعليمات البرمجية الخاصة به، ويستطيع الآخرون تقديم إضافات أو إصلاحات أو حتى إنشاء تفرعات – إصدارات بديلة للتطبيق أو المكتبة. وإذا عثر مستخدم على خطأ في أحد التطبيقات، فيمكنه إبلاغ المطور بذلك عن طريق إنشاء تقرير بالمشكلة. ويستطيع المستخدمون الآخرون تأكيد المشكلة في التعليقات. ويمكنك أيضًا التعليق على الإصدارات الجديدة من التطبيق. وإذا لزم الأمر، يمكنك إرفاق ملفات بالتعليقات، مثل لقطات شاشة توضح الخطأ أو المستندات التي أدت إلى تعطل التطبيق. ويتم تخزين هذه الملفات على خوادم GitHub باستخدام روابط من النوع الموضح أعلاه.
على الرغم من ذلك، يتمتع GitHub بميزة خاصة: إذا قام المستخدم بإعداد تعليق وتحميل الملفات المصاحبة، لكنه لم ينقر على “نشر”، فستظل المعلومات “عالقة” في المسودة – وهي غير مرئية لكل من مالك التطبيق ومستخدمي GitHub الآخرين. ومع ذلك، يتم إنشاء رابط مباشر للملف الذي تم تحميله في التعليق ويعمل بشكل كامل، وسوف يتلقى أي شخص الملف من شبكة توصيل المحتوى (CDN) الخاصة بموقع GitHub.
في الوقت نفسه، لا يستطيع مالكو المستودع الذي تم نشر هذا الملف عليه في التعليقات حذفه أو حظره. ولا يعرفون حتى عنه! ولا توجد أيضًا إعدادات لتقييد تحميل هذه الملفات للمستودع ككل. ويتمثل الحل الوحيد في تعطيل التعليقات بالكامل (على GitHub، يمكنك تعطيلها لمدة تصل إلى ستة أشهر)، لكن هذا من شأنه أن يحرم المطورين من تلقي الملاحظات.
تتشابه آلية التعليق في GitLab، مما يسمح بنشر الملفات عبر مسودة التعليقات. ويمكن الوصول إلى الملفات عبر رابط مثل gitlab.com/{User_Name}/{Repo_Name}/uploads/{file_Id}/{file_name}.
مع ذلك، يتم تخفيف المشكلة في هذه الحالة إلى حد ما من خلال حقيقة أن مستخدمي GitLab المسجلين والذين سجلوا الدخول فقط هم من يمكنهم تحميل الملفات.
هدية لحملات التصيد الاحتيالي
بفضل القدرة على نشر ملفات عشوائية على روابط تبدأ بـ GitHub/GitLab وتحتوي على أسماء المطورين المحترمين والمشاريع الشائعة (نظرًا لأنه يمكن ترك تعليق غير منشور يحتوي على ملف في أي مستودع تقريبًا)، يُتاح لمجرمي الإنترنت الفرصة لتنفيذ هجمات تصيد احتيالي مقنعة للغاية. وتم بالفعل اكتشاف حملات ضارة حيث يتم ترك “التعليقات”، التي من المفترض أنها تحتوي على تطبيقات للغش في الألعاب، في مستودعات Microsoft.
قد يتساءل مستخدم يقظ عن سبب وجود غش للألعاب في مستودع Microsoft: https://github{.}com/microsoft/vcpkg/files/…../Cheat.Lab.zip. لكن من المرجح أن الكلمتين الرئيسيتين “GitHub” و”Microsoft” ستطمئنان الضحية، الذي لن يفحص الرابط أكثر من ذلك. وقد يخفي المجرمون الأكثر ذكاءً برامجهم الضارة بعناية أكبر، على سبيل المثال، من خلال تقديمها كإصدار جديد من تطبيق يتم توزيعه من خلال GitHub أو GitLab ونشر الروابط عبر “التعليقات” على هذا التطبيق.
كيف تحمي نفسك من المحتوى الضار على GitHub وGitLab
على الرغم من أن هذا الخلل في التصميم لم يتم إصلاحه ويمكن لأي شخص تحميل ملفات عشوائية بحرية إلى شبكة توصيل المحتوى (CDN) الخاصة بموقعي GitHub وGitLab، إلا أن مستخدمي هاتين المنصتين بحاجة إلى توخي الحذر الشديد.
- تجنب تنزيل الملفات من روابط GitHub/GitLab المباشرة التي تجدها في مصادر خارجية – مواقع الويب أو رسائل البريد الإلكتروني أو الدردشات الأخرى. بدلاً من ذلك، افتح صفحة المشروع (github{.}com/{User_Name}/{Repo_Name} أو gitlab{.}com/{User_Name}/{Repo_Name}) وتأكد أنه يمكنك بالفعل تنزيل الملف من هناك. ويجب نشر الملفات الرسمية من المطورين وإظهارها في المستودع.
- تأكد أنك في صفحة المطور الصحيحة – في GitHub وGitLab والمستودعات مفتوحة المصدر الأخرى، يعد الخطأ الكتابي المقصود أمرًا شائعًا: إنشاء مشاريع مزيفة بأسماء تختلف عن الأصل بحرف واحد أو حرفين (على سبيل المثال، Chaddev بدلاً من Chatdev).
- تجنب تنزيل التطبيقات التي تحتوي على عدد قليل من النجوم (الإعجابات) والتي تم إنشاؤها حديثُا.
- استخدم الحماية ضد البرامج الضارة والتصيد الاحتيالي على جميع أجهزة الكمبيوتر والهواتف الذكية لديك. ويوفر Kaspersky Premium حماية شاملة للاعبين وهواة الكمبيوتر.