تم مؤخرًا أرشفة مستودع GitHub الخاص بالمشروع الشهير مفتوح المصدر، “ip”، أو جعله “للقراءة فقط” بواسطة مطوره.
بدأ فيدور إندوتني، بسبب تقرير مكافحة التطرف العنيف المقدم ضد مشروعه، في التعرض للملاحقة من قبل أشخاص على الإنترنت لجذب انتباهه إلى الثغرة الأمنية.
ولسوء الحظ، فإن حالة إندوتني ليست معزولة. في الآونة الأخيرة، واجه مطورو المصادر المفتوحة زيادة طفيفة في تلقي تقارير مكافحة التطرف العنيف المثيرة للجدل، أو في بعض الحالات، الزائفة الصريحة المقدمة لمشاريعهم دون تأكيد.
يمكن أن يؤدي ذلك إلى حالة من الذعر غير المبرر بين مستخدمي هذه المشاريع والتنبيهات التي يتم إنشاؤها بواسطة الماسحات الضوئية الأمنية، والتي تتحول جميعها إلى مصدر صداع للمطورين.
تم أرشفة مستودع GitHub ‘node-ip’
وفي وقت سابق من هذا الشهر، كتب فيدور إندوتني، مؤلف كتاب “العقدة الملكية الفكرية‘ مشروع أرشفة جيثب المشروع يؤدي هذا إلى تحويل المستودع إلى مستودع للقراءة فقط بشكل فعال، ويحد من قدرة الأشخاص على فتح مشكلات جديدة (مناقشات)، أو طلبات سحب، أو إرسال تعليقات إلى المشروع.
يوجد مشروع ‘node-ip’ في سجل npmjs.com باسم الحزمة ‘ip’والتي تسجل 17 مليون عملية تنزيل أسبوعيًا، مما يجعلها واحدة من أكثر الأدوات المساعدة شيوعًا لتحليل عناوين IP التي يستخدمها مطورو JavaScript.
في يوم الثلاثاء الموافق 25 يونيو، انتقل إندوتني إلى وسائل التواصل الاجتماعي للتعبير عن أسبابه وراء أرشفة “node-ip”:
“هناك شيء قد [sic] لقد أزعجتني خلال الأشهر القليلة الماضية، مما أدى إلى أرشفة عقدة IP repo على GitHub.” تم نشره المطور عبر حساب Mastodon الخاص به.
عليها أن تفعل معسي في إي-2023-42282، ثغرة تم الكشف عنها في المشروع في وقت سابق من هذا العام.
“قام شخص ما بتقديم CVE مشكوك فيه حول حزمة npm الخاصة بي، ثم بدأت في تلقي رسائل من جميع الأشخاص الذين حصلوا على تحذيرات من “تدقيق npm”،” كما ذكر المطور في نفس المنشور.
يمكن لمطوري Node.js الذين يستخدمون مشاريع مفتوحة أخرى، مثل حزم npm والتبعيات في تطبيقاتهم تشغيل “تدقيق npm” الأمر للتحقق مما إذا كان أي من هذه المشاريع التي يستخدمها تطبيقها قد تم الإبلاغ عن نقاط ضعف ضدها.
تتعلق المشكلة CVE بعدم قدرة الأداة المساعدة على تحديد عناوين IP الخاصة المقدمة إليها بشكل صحيح بتنسيق غير قياسي، مثل النظام السداسي عشري. سيؤدي هذا إلى جعل الأداة المساعدة “node-ip” تتعامل مع عنوان IP الخاص (بتنسيق سداسي عشري) مثل “0x7F.1…” (الذي يمثل 127.1…) باعتباره عنوانًا عامًا.
إذا كان التطبيق يعتمد فقط على العقدة IP للتحقق مما إذا كان عنوان IP المقدم عامًا، فقد تتسبب المدخلات غير القياسية في إرجاع نتائج غير متناسقة بواسطة الإصدارات المتأثرة من الأداة المساعدة.
“تأثير أمني مشكوك فيه”
تشير المصادر العامة إلى أن CVE-2023-42282 كان موجودًاتم تسجيله في الأصل كـ 9.8 أو “حرجة”.
على الرغم من إندوتني لقد تم إصلاحه بالفعلالمشكلة في الإصدارات اللاحقة من مشروعه، فقد جادل في أن الخطأ يشكل فِعليالضعف، والذي يعتبر أيضًا من الخطورة بمكان.
كتب المطور في وقت سابق: “أعتقد أن التأثير الأمني للخلل مشكوك فيه إلى حد ما”،طلب من GitHub إلغاء CVE.
“على الرغم من أنني لم أقصد حقًا استخدام الوحدة في أي عمليات فحص متعلقة بالأمان، إلا أنني أشعر بالفضول الشديد حول كيفية تمرير مدخلات غير موثوقة إلى ip.isPrivate أو ip.isPubliج [functions] “وبعد ذلك يتم استخدامها للتحقق من مصدر اتصال الشبكة.”
إن الطعن في CVE ليس بالمهمة السهلة أيضًا، كما هو الحال عضو فريق أمان GitHubتم شرح ذلك. يتطلب الأمر وجود مسؤول صيانة للمشروع لملاحقة هيئات ترقيم CVE (CNA) التي أصدرت في الأصل CVE.
تتألف CNAs تقليديًا من NVD وMITRE التابعين للمعهد الوطني للمعايير والتكنولوجيا. وعلى مدار السنوات القليلة الماضية، انضمت شركات التكنولوجيا وبائعو الأمن إلى القائمة وأصبحوا قادرين أيضًا على إصدار CVEs حسب الرغبة.
يتم بعد ذلك تجميع هذه التهديدات الخطيرة، بالإضافة إلى وصف الثغرة الأمنية وتقييم الخطورة المبلغ عنه، وإعادة نشرها بواسطة قواعد بيانات أمنية أخرى، مثلنصائح جيثب.
بعد منشور Indutny على وسائل التواصل الاجتماعي، قام GitHub بتخفيض مستوى الخطورة من CVE في قاعدة البيانات الخاصة بهم واقترح على المطور تشغيلالإبلاغ عن نقاط الضعف الخاصةلإدارة التقارير الواردة بشكل أفضل وخفض الضوضاء.
وفي وقت كتابة هذا التقرير، تظل خطورة الثغرة الأمنية في NVD “حرجة”.
إزعاج متزايد
تم تصميم نظام CVE في الأصل لمساعدة الباحثين الأمنيين على الإبلاغ عن الثغرات الأمنية في مشروع ما بشكل أخلاقي وفهرستها بعد الكشف عنها بشكل مسؤول، وقد جذب مؤخرًا شريحة من أعضاء المجتمع الذين قدموا تقارير غير مؤكدة.
في حين أن العديد من التهديدات الأمنية المشتركة يتم تقديمها بحسن نية من قبل باحثين مسؤولين وتمثل ثغرات أمنية موثوقة، إلا أن هناك نمطًا متزايدًا مؤخرًا يشتمل على المتحمسين للأمن المبتدئين وصائدي الأخطاء، الذين يقومون ظاهريًا “بجمع” التهديدات الأمنية المشتركة لإثراء سيرتهم الذاتية بدلاً من الإبلاغ عن الأخطاء الأمنية التي تشكل العالم الحقيقي. الأثر العملي من الاستغلال.
ونتيجة لذلك، قام المطورون والقائمون على صيانة المشروع بالضغط على هذا المشروع.
في سبتمبر 2023، انتقد دانييل ستينبرج، مبتكر مشروع البرمجيات الشهير “كيرل”، “مشكلة تجعيد الشعر الزائفة CVE-2020-19909“تم الإبلاغ عن خطأ في رفض الخدمة ضد المشروع.
تم تسجيله في الأصل على أنه 9.8 أو درجة حرجة في الشدة لكلتاريخ NVDتم تخفيض تصنيف CVE المتنازع عليه الآن إلى “مستوى منخفض” 3.3 بعد مناقشات تساءلت عن التأثير الأمني الملموس للخلل.
“لم تكن هذه حالة فريدة ولم تكن المرة الأولى التي يحدث فيها ذلك. فقد استمر هذا الأمر لسنوات”، كتب ستينبرج منتقدًا مدخل CVE.
“أنا لست من محبي تمارين الفكر الفلسفي حول نقاط الضعف.”
“إنها تشتت الانتباه عن الأمور الحقيقية وأجدها عديمة الفائدة إلى حد ما. ومن السهل اختبار كيفية عمل هذا الخلل على العديد من المنصات باستخدام العديد من المترجمين.”
“إنها ليست مشكلة أمنية على أي منهم.”
وبحسب ستينبرج، فإن التفاصيل الفنية لهذا “الخطأ السخيف” تعني أنه قد يؤدي إلى سلوك غير متوقع، وليس خللًا أمنيًا يمكن إساءة استغلاله.
مشروع npm آخر، ميكروماتشالذي يحصل على 64 مليون عملية تنزيل أسبوعيًا كان له خطورة “عالية” إعادة التنفيذ تم الإبلاغ عن نقاط ضعف ضدها، حيث يتم مطاردة منشئيها من قبل أعضاء المجتمع الذين يستفسرون عن المشكلات.
“هل يمكنك الإشارة إلى مكتبة واحدة على الأقل تنفذ micromatch أو الأقواس التي تكون عرضة للثغرة الأمنية حتى نتمكن من رؤية كيف أنها في الواقع ثغرة أمنية في العالم الحقيقي، وليس مجرد نظرية؟” طلبت رد فعل جون شلينكرت علىسي في إي-2024-4067قدم طلبًا لمشروعه، ميكروماتش.
في نفس الموضوع، يبدو أن المطور، بعد فشله في الحصول على دليل مُرضٍ على مفهوم الاستغلال من مراسل الثغرة الأمنية استجاب مع:
“أواجه هذه المشكلات طوال الوقت بسبب أشياء لا يمكن اعتبارها ثغرة أمنية إلا إذا قمت بها بنفسك. مثل التعبيرات العادية في المكتبات منخفضة المستوى والتي لن تكون متاحة للمتصفح أبدًا، إلا إذا كنت تسمح للمستخدمين بإرسال تعبيرات عادية في نموذج ويب يستخدمه تطبيقك فقط.”
“لقد طلبت أمثلة لكيفية مواجهة مكتبة في العالم الحقيقي لهذه “الثغرات الأمنية” ولم تجيب أبدًا بمثال.”
لقد قمت أيضًا بإرسال رسائل إلى مطوري micromatch مؤخرًا بعد أن أبلغنا طرف ثالث عن “خطر” محتمل يشكله المشروع، حيث بدا الأمر وكأنه الشيء المسؤول الذي يجب القيام به في ذلك الوقت.
لسوء الحظ، بدلاً من تمثيل ثغرة قابلة للاستغلال، انتهى الأمر إلى أن يكون تقريرًا مزعجًا (يشبه إلى حد كبير CVE-2024-4067) كان المطورون يتعرضون للملاحقة بشأنه بالفعل.
بخلاف كونه مجرد إزعاج لمشرفي المشروع، فإن إصدار CVEs لتقارير الثغرات الأمنية التي لم يتم التحقق منها يشبه إثارة رفض الخدمة (DoS) ضد المشروع ومنشئيه وقاعدة المستهلكين الأوسع، وذلك لأسباب وجيهة.
قد تؤدي حلول أمان المطورين (مثل npm audit) المصممة لمنع المكونات المعرضة للخطر من الوصول إلى تطبيقاتك إلى تشغيل التنبيهات إذا تم اكتشاف أي ثغرات أمنية معروفة، وبناءً على إعداداتك، قد تؤدي إلى إتلاف عمليات البناء الخاصة بك.
“واجه جاكسون هذه المشكلة قبل بضعة أشهر، حيث كان هناك شخص ما تم الإبلاغ عن CVE حرجة “ضد المشروع وكسر البناء في جميع أنحاء الكوكب” ، قال أحد المعلقين مكتوب في عام 2023، ردًا على تجعيد الشعر الوهمي CVE.
بدلاً من أن تكون مشكلة أمنية مع المشروع، كما صرح مطورون آخرون، تمثلت المشكلة في الطبيعة المتأصلة لهياكل البيانات المتكررة في Java.
أين التوازن؟
إن مثل هذه الحوادث المتكررة تثير السؤال، كيف يمكن تحقيق التوازن؟
إن الإبلاغ المستمر عن الثغرات النظرية قد يؤدي إلى إرهاق مطوري البرامج مفتوحة المصدر، والذين يعمل العديد منهم كمتطوعين، بسبب ضوضاء الفرز.
على الجانب الآخر، هل سيكون من الأخلاقي أن يجلس الممارسون الأمنيون، بما في ذلك المبتدئين، على ما يعتقدون أنه ثغرة أمنية، حتى لا يزعجوا القائمين على المشروع؟
وتنشأ مشكلة ثالثة في حالة المشاريع التي لا يوجد لها مشرف نشط. فالمشاريع البرمجية المهجورة التي لم يتم المساس بها لسنوات تحتوي على نقاط ضعف لن يتم إصلاحها أبدًا حتى عند الكشف عنها، ولا توجد وسيلة للاتصال بالمشرف الأصلي عليها.
في مثل هذه الحالات، يتم ترك الوسطاء، بما في ذلك CNAs ومنصات مكافآت الأخطاء، في طي النسيان.
عند تلقي تقرير عن ثغرة أمنية من أحد الباحثين، قد لا تتمكن هذه المنظمات دائمًا من فحص كل تقرير من هذا القبيل بشكل كافٍ بشكل مستقل. وفي غياب الاستماع إلى المشرفين على المشروع (الذين لم يعودوا موجودين الآن)، قد تضطر هذه المنظمات إلى تعيين ونشر نقاط الضعف الشائعة بعد انقضاء فترة “الإفصاح المسؤول”.
لا توجد إجابة بسيطة لهذه المشاكل حتى الآن.
وإلى أن تجتمع مجتمعات الأبحاث الأمنية والمطورين والبائعين معًا لتحديد حل فعال، لا بد أن يشعر المطورون بالإحباط بسبب التقارير الزائفة التي تحرقهم، ويغمر نظام مكافحة التطرف العنيف “بنقاط الضعف” المبالغ فيها التي قد تبدو ذات مصداقية على الورق ولكنها موضع نقاش فعال.