فخاخ مكتبات الطرف الثالث
Categories:
- فخاخ مكتبات الطرف الثالث
تحدثنا اليوم عن ثغرة ظهرت مؤخراً في مكتبة تسجيلات طرف ثالث، يمكن استغلالها بسهولة تامة لتنفيذ أوامر عن بعد. قد تبدو مكتبة التسجيلات وتنفيذ الأوامر عن بعد غير مرتبطين، ولكن مكتبات الطرف الثالث التي تزيد الطين بلة منتشرة في كل مكان.
كلما قرأت المزيد من الأكواد، شعرت أكثر بأن مستوى الكثير من الأكواد مفتوحة المصدر سيء للغاية، بغض النظر عن عدد “النجوم” (stars) التي يمتلكها؛ فالنجوم تمثل الطلب، ولا تمثل مستوى التطوير.
فائدة المصدر المفتوح هي وجود المزيد من الأشخاص للتطوير، والميزة هي زيادة سريعة في الميزات، وهناك من يصلح الأخطاء، وهناك من يراجع الكود، لكن المستويات تتفاوت.
إذا لم تكن هناك قيود قوية على التقديم، فمن الصعب ضمان جودة الكود.
كلما زاد الكود، زادت مساحة الهجوم.
على الرغم من أن إعادة اختراع العجلة أمر سيء، إلا أن متطلبات المنتج تشبه عجلة عربة أطفال؛ فالعجلة البلاستيكية لن تتلف مهما استخدمت، بينما تركيب إطار طائرة يزيد مساحة الهجوم وتكاليف الصيانة بلا داعي. لذلك، إذا كنت تحتاج فقط لعجلة عربة أطفال، فلا حاجة للمبالغة واستخدام شيء ضخم.
تكاليف الصيانة عالية، وتتطلب مكتبات الطرف الثالث عمليات وموظفين مخصصين للصيانة. في هواوي، أدى إطار عمل اختبار تم تعديله بشكل كبير (“ماغي” / Magic Mod) إلى فشل حالات الاختبار عند ترقية المترجم (compiler)، مما تسبب في تعارض بين ترقية إطار العمل وترقية المترجم، مما يستغرق وقتاً طويلاً لمواصلة طريق التعديل أثناء الصيانة. بصفتي مشاركاً، شعرت بعمق بصعوبة تعديل مكتبات الطرف الثالث بهذا الشكل. إذا كانت الميزة المعدلة يمكن دمجها مرة أخرى في المكتبة مفتوحة المصدر فذلك جيد، ولكن التطوير المخصص بشكل تدخلي لتلبية الاحتياجات الخاصة سيجعل الصيانة صعبة للغاية.
في التعامل مع مكتبات الطرف الثالث، أنشأت هواوي سلسلة من الإجراءات، ويمكن القول إن المعوقات كثيرة.
تم تشديد العتبة بشكل صارم للغاية، وتتطلب إضافة مكتبات طرف ثالث مراجعة من خبير من المستوى 18 ومدير من المستوى 20، وبشكل أساسي لا يمكن استخدام سوى مكتبات الطرف الثالث المشهودة لها بسمعة طيبة.
جميع مكتبات الطرف الثالث موجودة في مجلد thirdparty، ويتم مقارنتها بالمستودع المصدر عند التجميع الكامل (CI)، ويمنع التعديل التدخلي بشكل صارم.
توجد أدوات مخصصة لتتبع إصدارات جميع مكتبات الطرف الثالث، وتم الاستعانة بموظفين من موردين خارجيين لإدارة هذا الجزء، وإذا طلب المطور ترقية الإصدار، يجب عليه تقديم طلب ليقوم المدير بمراجعته.
من الصعب العثور على مدير للتعامل مع مثل هذه الأمور، وعندما تكون العملية مرهقة جداً، فهي في الواقع تنصحك بعدم القيام بذلك.
يجب الحفاظ على موقف عدم الثقة السهلة تجاه مكتبات الطرف الثالث، والثقة في تطوير أشخاصنا.