خلال عطلة نهاية الأسبوع ، علمنا أن أحد المتسللين انتهك موقع التواصل الاجتماعي اليميني المتطرف Gab وقم بتنزيل 70 غيغابايت من البيانات عن طريق استغلال ثغرة أمنية تشبه الحديقة تُعرف باسم حقن SQL. تُظهر مراجعة سريعة لشفرة المصدر المفتوح لـ Gab أن الثغرة الخطيرة – أو على الأقل مشابهة جدًا – تم تقديمها من قبل CTO في الشركة.
التغيير ، الذي يعرف في لغة تطوير البرمجيات باسم “git الالتزام” ، تم إجراؤه في فبراير من حساب Fosco Marotto ، مهندس برمجيات سابق في Facebook والذي كان في نوفمبر أصبح CTO من Gab. يوم الاثنين ، سحب جاب بوابة الالتزام من موقعه على الإنترنت. فيما يلي صورة توضح تغيير برنامج فبراير ، كما هو مبين من موقع يوفر لقطات التحقق المحفوظة.
يُظهر الالتزام مطور برامج يستخدم اسم Fosco Marotto وهو يقدم بالضبط نوع الخطأ الصاعد الذي قد يؤدي إلى نوع الانتهاك الذي تم الإبلاغ عنه في نهاية هذا الأسبوع. على وجه التحديد ، يزيل السطر 23 رمز “الرفض” و “التصفية” ، وهما من وظائف API التي تنفذ ملف لغة البرمجة الذي يحمي من هجمات حقن SQL.
المطورون: قم بتطهير مدخلات المستخدم
يسمح هذا المصطلح للمبرمجين بتكوين استعلام SQL بطريقة آمنة “تنظف” الإدخالات التي يدخلها زوار موقع الويب في حقول البحث وحقول الويب الأخرى لضمان إزالة جميع الأوامر الضارة قبل إرسال النص إلى الخوادم الرئيسية. بدلاً من ذلك ، أضاف المطور استدعاءًا إلى وظيفة ريلز التي تحتوي على طريقة “find_by_sql” ، والتي تقبل الإدخال غير المعقم مباشرةً في سلسلة استعلام. ريلز هي مجموعة أدوات لتطوير مواقع الويب مستخدمة على نطاق واسع.
“من المحزن أن وثائق ريلز لا تحذرك من هذا الأمر فخ، ولكن إذا كنت تعرف أي شيء عن استخدام قواعد بيانات SQL في تطبيقات الويب ، فقد تكون قد سمعت عن إدخال SQL ، وليس من الصعب العثور على تحذيرات بأن طريقة find_by_sql هي غير امنكتب ديمتري بوروداينكو ، مهندس الإنتاج السابق في Facebook الذي لفت انتباهي إلى الالتزام في رسالة بريد إلكتروني. “لم يتم التأكيد بنسبة 100٪ على أن هذه هي الثغرة الأمنية التي تم استخدامها في خرق بيانات Gab ، ولكن من المؤكد أنها كانت كذلك ، ويتم إرجاع هذا التغيير في الرمز في أحدث التزام كان موجودًا في مستودع GitLab الخاص بهم قبل نقله إلى وضع عدم الاتصال. “
ومن المفارقات أن فوسكو في عام 2012 حذر زملائه المبرمجين من القيام بذلك استخدام الاستعلامات ذات المعلمات لتجنب الثغرات الأمنية حقن SQL. لم يرد Marotto على رسالة بريد إلكتروني تطلب تعليقًا على هذا المنشور. فشلت محاولات الاتصال مباشرة بـ Gab.
التاريخ التنقيحي
إلى جانب الالتزام بإثارة الأسئلة حول عملية Gab لتطوير كود آمن ، يواجه موقع التواصل الاجتماعي أيضًا انتقادات لإزالة الالتزامات من موقعه على الإنترنت. يقول النقاد إن الحركة تنتهك شروط رخصة أفيرو العامة، الذي يحكم جاب إعادة استخدام المستودون، أ حزمة برامج مفتوحة المصدر لاستضافة منصات التواصل الاجتماعي.
يقول النقاد الإزالة تنتهك الشروط التي تتطلب ربط شفرة المصدر المتشعبة مباشرة من الموقع. تهدف المتطلبات إلى ضمان الشفافية والسماح لمطوري البرامج مفتوحة المصدر الآخرين بالاستفادة من عمل أقرانهم في Gab.
لطالما قدم جاب التزامات لـ https://code.gab.com/. بعد ذلك ، يوم الإثنين ، حذف الموقع فجأة جميع الالتزامات ، بما في ذلك تلك التي أنشأت ثغرة أمنية مهمة لإدخال SQL ثم أصلحها. وبدلاً من ذلك ، قدم Gab الكود المصدري في شكل ملف أرشيف مضغوط كان محميًا بكلمة مرور “JesusChristIsKingTrumpWonTheElection” (بدون علامات الاقتباس).
لم يرد ممثلو مشروع ماستودون على الفور على رسالة بريد إلكتروني يسألون فيها عما إذا كانوا يشاركون النقاد مخاوفهم.
بصرف النظر عن الأسئلة حول التشفير الآمن والامتثال للترخيص ، يبدو أن التزامات Gab git تظهر أيضًا أن مطوري الشركة يكافحون من أجل إصلاح التعليمات البرمجية الخاصة بهم. تُظهر الصورة أدناه شخصًا يستخدم اسم المستخدم “developer” الذي يحاول دون جدوى تصحيح الكود الذي يحتوي على ثغرة إدخال SQL.
يرد المشاركون في المناقشة بسخرية بالإشارة إلى الصعوبة التي يبدو أن المطور يواجهها.
يوفر عيب جاب الأمني وإدارة الشفرات وراء الكواليس قبل وبعد الحادث دراسة حالة للمطورين حول كيفية القيام بذلك لا للحفاظ على أمان وشفافية رمز موقع الويب. كان الدرس أكثر ثقلًا منذ أن استخدم التقديم حساب المدير الفني لشركة Gab ، والذي كان ، من بين أي شخص آخر ، على دراية أفضل.
Social media junkie. Zombie fanatic. Travel fanatic. Music obsessed. Bacon expert.