الملخص

  • حوّلت Log4Shell مكون تسجيل Java إلى اختبار عالمي للمساءلة، حيث لم تستطع العديد من المنظمات أن تقول بسرعة ما إذا كان Apache Log4j موجودًا مباشرة، أو مضمنًا في المنتجات، أو معبأً في الأجهزة، أو مخفيًا في الخدمات المُدارة من قبل الموردين.
  • جعلت التوجيهات العامة الصادرة عن CISA والتوجيه الطارئ 22-02 مشكلة الإصلاح مرئية: لم يكن التصحيح مجرد شعار. كان على الوكالات الفيدرالية المدنية المشمولة تحديد الأصول المتأثرة، وتخفيف الأثر أو التحديث، والإبلاغ عن الحالة، ومواصلة البحث مع تغير المنتجات والتوجيهات.
  • المشكلة المركزية للمساءلة هي الإصلاح القابل للتحقق. البيان العام بأننا "أصلحنا" لا يثبت اكتمال الجرد، أو اكتشاف التبعيات المتداخلة، أو الضوابط التعويضية، أو التنسيق مع الموردين، أو مراقبة الاستغلال، أو دليل الإغلاق.
  • كانت المساءلة موزعة. حافظ Apache على المشروع وأصدر التصحيحات. سيطرت الوكالات والشركات على اكتشاف الأصول. سيطر الموردون على إشعارات المنتجات. راقب موفرو الخدمات السحابية والأمن الاستغلال ومنعه. احتاج العملاء إلى دليل على أن مورديهم قللوا بالفعل من التعرض.
  • الدرس الدائم هو أن حوكمة سلسلة توريد البرمجيات تفشل عندما لا تستطيع المنظمات إثبات ما تشغله. جعلت Log4Shell من الجرد، وSBOM، وإدارة الثغرات، والمراقبة بعد التصحيح ضرورات تشغيلية بدلاً من شكليات الامتثال.

كانت حالة الطوارئ بقدر ما هي فشل في الجرد كما هي عيب في الكود

تبدأ قصة Log4Shell بثغرة، لكن قصة المساءلة تبدأ بالاكتشاف. تصفصفحة أمان Apache Log4jوالإدخال لـCVE-2021-44228الحقائق على مستوى المشروع: الإصدارات المتأثرة، والإصدارات المصححة، والثغرات ذات الصلة، وسياق التخفيف. يوفر سجلCVE-2021-44228 في NVDالبيانات الوصفية العامة للثغرة وإطار الخطورة. تثبت هذه المصادر لماذا كانت الثغرة طارئة. لكنها لا تثبت ما إذا كانت منظمة معينة قد عثرت على كل نسخة من Log4j كانت تشغلها.

ميّز هذا التمييز الأزمة. كانت العديد من المنظمات تعلم أن لديها تطبيقات Java. لكن القليل منها كان يعلم أي الخدمات الداخلية، والمنتجات الخارجية، والأجهزة، وأدوات التطوير، وأعباء العمل السحابية تضمّن Log4j. يمكن أن يكون المكون في تطبيقات لم يعد لها ملاك نشطون. يمكن أن يكون مضمنًا في منتجات تحت اسم مورد بدلاً من Apache. يمكن أن يكون موجودًا في بيئات اختبار، وإصدارات أقدم، ووحدات تحكم إدارية، ومجمعات سجلات، وبرامج تابعة لجهات خارجية. يمكن لفريق أن يصلح الخادم الواضح بينما يترك منتجًا مكشوفًا في مكان آخر.

التقطتنبيه التوجيه الأول لثغرة Apache Log4jالصادر عن CISA حالة الطوارئ العامة. جمع المورد الأوسع لـتوجيهات ثغرة Apache Log4jالخاص بالوكالة المراجع التشغيلية. لكن أعمق مساهمة لم تكن مجرد إصدار تنبيه آخر. ساعدت CISA في تحويل المحادثة من "هناك CVE حرجة" إلى "أظهروا عملكم". أصبح السؤال أي الأنظمة تم التحقق منها، وأي الأنظمة كانت ضعيفة، وأيها تم تصحيحها، وأيها كان لديها ضوابط تعويضية، وأيها كانت تنتظر الموردين.

هنا أصبحت كلمة "تصحيح" صغيرة جدًا. تصحيح تطبيق مملوك داخليًا هو فعل. العثور على Log4j مضمنًا في جهاز من مورد هو فعل آخر. تطبيق تخفيف لأن الإصدار المصحح غير متوفر بعد هو فعل آخر. التحقق من السجلات للاستغلال هو فعل آخر. إعادة الاختبار بعد أن يقوم المورد بمراجعة توجيهاته هو فعل آخر. إزالة المكتبات القديمة الضعيفة من بناء هو فعل آخر. كان الجمهور بحاجة إلى مفردات يمكنها فصل هذه الأفعال.

السؤال المسؤول بعد Log4Shell لم يكن "هل قمت بالتصحيح؟" بل "هل يمكنك إثبات أن المكون الضعيف لم يعد قابلاً للاستغلال في الأنظمة التي تتحكم بها، وهل يمكنك إثبات ما لا يزال غير مؤكد؟" المنظمة التي استطاعت الإجابة على هذا السؤال كان لديها جرد وقاعدة أدلة. المنظمة التي لم تستطع كان لديها مشكلة حوكمة، حتى لو كان مهندسوها قد عملوا طوال عطلة نهاية الأسبوع.

جعل التوجيه الطارئ 22-02 الإصلاح قابلاً للقياس بالنسبة للوكالات المشمولة

طبقالتوجيه الطارئ 22-02الصادر عن CISA على وكالات السلطة التنفيذية المدنية الفيدرالية الأمريكية. هذا النطاق مهم. لم ينشئ التوجيه التزامات لجميع الشركات الخاصة على وجه الأرض، ولا ينبغي لمقال عام مسؤول أن يوحي بذلك. تكمن أهميته في نموذج الإصلاح الذي جعله مرئيًا: تحديد الأصول المتأثرة، والتخفيف، والإبلاغ، ومواصلة تحديث الحالة مع تغير المعلومات.

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

هذه هي مشكلة الدليل. إذا قالت وكالة إنها لا تملك أي أصول متأثرة، فأي جرد يدعم هذا البيان؟ إذا قالت إن أحد الأصول تم تخفيفه، فأي ضابط تم تطبيقه وكيف تم اختباره؟ إذا كان منتج مورد لا يزال ينتظر تصحيحًا، فأي ضابط تعويضي قلل من التعرض؟ إذا ظهر منتج متأثر جديد لاحقًا، كيف راجعت الوكالة التقييم؟ كان الإصلاح حلقة من الأدلة.

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

يعززكتالوج الثغرات المعروفة المستغلةهذه النقطة. عندما تكون الثغرة معروفة بأنها مستغلة، لم تعد إدارة الثغرات تمرين تصنيف نظري. تصبح واجبًا تشغيليًا. لا يثبت الكتالوج أي منظمة تم استغلالها. يخبر المدافعين أن الاستغلال النشط هو مدخل حوكمة. بالنسبة لـ Log4Shell، جعل سياق الاستغلال موقف "سنصلح لاحقًا" أضعف بكثير.

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

سيطر الموردون على حقائق لم يتمكن العملاء من رؤيتها بشكل مستقل

كشفت Log4Shell عن عدم تناسق أساسي في سلاسل توريد البرمجيات. يمكن للعملاء فحص أنظمتهم الخاصة، لكنهم غالبًا لا يستطيعون الرؤية داخل المنتجات الملكية أو الخدمات السحابية المدارة. يحتاجون إلى أن يقول المورد ما إذا كان المنتج متأثرًا، وما هي الإصدارات الضعيفة، وما إذا كان التصحيح موجودًا، وما إذا كان التخفيف آمنًا، وما إذا تمت ملاحظة الاستغلال. أصبحت إشعارات الموردين كائنات دليل.

سيطر Apache على سجل المشروع مفتوح المصدر لـ Log4j نفسه. سيطر موردو المنتجات على كيفية ظهور هذا المكون في برامجهم الخاصة. سيطر موفرو الخدمات السحابية على وضع الخدمات المدارة. سيطرت شركات الأمن على القياس عن بعد ونصائح الكشف. سيطر العملاء على النشر والتعرض والتخفيف المحلي. عبرت الثغرة كل هذه الطبقات. تطلبت المساءلة أن تكون كل طبقة محددة حول ما تعرفه.

لهذا السبب أصبحت قوائم مكونات البرمجيات أكثر من مجرد عبارة سياسية. تصفموارد SBOMالخاصة بـ CISA وسيلة لتحسين الرؤية في مكونات البرمجيات. SBOM وحده لا يصلح ثغرة. لا يثبت أن المنتج آمن. ولكن عندما تحدث أزمة، يمكن لجرد موثوق للمكونات أن يقصر الوقت بين "Log4j ضعيف" و"هذه المنتجات والإصدارات والخدمات متأثرة". بدون هذا الجرد، يبحث العملاء والموردون يدويًا تحت الضغط.

يعطي NIST SP 800-161 مراجعة 1،ممارسات إدارة مخاطر سلسلة توريد الأمن السيبراني للأنظمة والمنظمات، إطار الحوكمة. مخاطر سلسلة التوريد ليست مجرد أوراق شراء. إنها حقيقة أن نتائج الأمن تعتمد على مكونات وموردين خارج السيطرة المباشرة للمشتري. أظهرت Log4Shell النسخة التشغيلية لهذه الحقيقة. بدأت ساعة الاستجابة للحوادث للمشتري قبل أن يعرف العديد من المشترين أي الموردين كانوا معنيين.

تضيف توجيهاتSecure by Designالخاصة بـ CISA عدسة واجب المورد. يجب على مصنعي البرمجيات تقليل العبء الذي يفرضونه على العملاء. خلال Log4Shell، كان هذا يعني إشعارات في الوقت المناسب، ومصفوفات واضحة للإصدارات المتأثرة، وتعليمات تخفيف آمنة، وتأكيدًا لاحقًا بأن التصحيحات كاملة. المورد الذي انتظر أو تردد أو أصدر بيانات غامضة قام بنقل التكاليف إلى العملاء الذين اضطروا إلى الاستمرار في السؤال عما إذا كانوا مكشوفين.

كان للاستجابة المسؤولة للمورد عدة خصائص. سمى المنتجات والإصدارات المتأثرة. ميز بين "غير متأثر" و"قيد التحقيق". حدد الحلول البديلة ومخاطرها. قام بتحديث الإشعارات عندما تغيرت الحقائق. شرح ما إذا تمت ملاحظة استغلال في منتج المورد. زود العملاء بطريقة للتحقق من الإصدارات المثبتة. احتفظ بالإشعارات القديمة متاحة للتدقيق. حولت هذه الخصائص اتصال المورد إلى أدلة إصلاح قابلة للاستخدام.

كانت مراقبة الاستغلال جزءًا من الإصلاح

تصحيح مكتبة ضعيفة لا يجيب على سؤال ما إذا كانت الثغرة قد استغلت قبل التصحيح. تطلبت الاستجابة لـ Log4Shell كلاً من الكشف والصيد. أظهرت توجيهات Microsoft،إرشادات لمنع واكتشاف وصيد استغلال CVE-2021-44228 Log4j 2، كيف تعامل المدافعون مع السجلات والمؤشرات والنشاط المشبوه. وصف مقالInside the Log4j2 vulnerabilityلـ Cloudflare ملاحظات الاستغلال والتخفيف من وجهة نظر مزود الحافة.

هذه المصادر مهمة لأنها تجعل الإصلاح ثنائي الأبعاد. أحد الأبعاد هو التعرض: أين كان Log4j الضعيف موجودًا وما إذا كان يمكن الوصول إليه. البعد الآخر هو الاختراق: ما إذا كان المهاجمون قد استغلوا الثغرة قبل أو أثناء أو بعد التصحيح. المنظمة التي صححت كل مثيل معروف لكنها لم تفحص السجلات قد لا تزال تفوت مهاجمًا دخل قبل التصحيح. المنظمة التي صادت الاستغلال لكنها تركت منتجات ضعيفة غير معروفة مكشوفة بقيت في خطر.

علنًا، غالبًا ما يُفقد هذا التمييز. قد تقول شركة إنها عالجت الثغرة. قد يسمع العملاء ذلك على أنه "لم يحدث أي حادث". هذه ادعاءات مختلفة. العلاج يعني أنه تم التعامل مع ثغرة. التحقيق يعني أنه تم فحص الأدلة للاستغلال. إغلاق الحادث يعني أن المنظمة لديها حقائق كافية لقول ما حدث، وما لم يحدث، وما لا يزال غير مؤكد. تطلبت Log4Shell الثلاثة.

كانت الصعوبة أن محاولات الاستغلال كانت صاخبة ومنتشرة. كان المهاجمون والباحثون يمسحون الإنترنت. كانت منتجات الأمن تمنع المحاولات. احتوت السجلات على مسابير وحمولات وأحيانًا سلاسل غامضة. بعض المنظمات لديها سجلات مفصلة؛ والبعض الآخر لا. بعض المنتجات سجلت الحقول الصحيحة؛ والبعض الآخر فقد الأدلة. بعض الأنظمة كانت متاحة على الإنترنت؛ والبعض الآخر كان متاحًا داخليًا فقط. وجود مسح لا يساوي دائمًا اختراق. غياب إدخال السجل لا يثبت دائمًا الأمان.

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

يجب أن ينطبق نفس المعيار على الموردين. إذا قال مورد منتج إن منتجًا كان متأثرًا لكن لم يتم ملاحظة أي استغلال، يجب على العميل أن يسأل كيف سيعرف المورد. هل كان للمنتج قياس عن بعد؟ هل تلقى المورد تقارير من العملاء؟ هل كانت السجلات متاحة؟ هل تم منع محاولات الاستغلال قبل الوصول إلى الوظيفة الضعيفة؟ هل كان البيان مبنيًا على غياب الدليل أم دليل الغياب؟ هذا المستوى من الدقة ليس تحذلقًا. إنها الطريقة التي يقرر بها العملاء ما إذا كان هناك حاجة إلى إجراء إضافي.

ملاحظة طباعية

يجب معاملة الجرد كضابط حي

أحرجت Log4Shell جرد الأصول. اكتشفت العديد من المنظمات أن قواعد بيانات إدارة الثغرات وسجلات المشتريات وجرد السحابة وجداول بيانات مالكي التطبيقات لم تكن متطابقة. يمكن أن تعرف اسم خدمة الأعمال ولكن ليس مكتباتها. يمكن أن تعرف خادمًا ولكن ليس حزمة Java داخل حاوية. يمكن أن تعرف منتج مورد ولكن ليس المكونات التي يضمّنها. يمكن أن تعرف الإنتاج ولكن ليس بيئات الاختبار القديمة.

NIST SP 800-40 مراجعة 4،دليل إدارة التصحيح في المؤسسات، مفيد لأنه يعامل إدارة التصحيح كبرنامج وليس كعجلة. البرنامج يحتاج إلى تحديد الأصول، والوعي بالثغرات، وتحديد الأولويات، والاختبار، والنشر، والتحقق، وإدارة الاستثناءات. أظهرت Log4Shell ما يحدث عندما تكون هذه الخطوات بطيئة جدًا لحالة طارئة. كان الاستغلال التقني سريعًا؛ كانت الخريطة التنظيمية غالبًا بطيئة.

يجب أن يشمل الإصلاح المسؤول بعد Log4Shell تحسين الجرد. أي الأنظمة تفتقر إلى ملاك؟ أي المنتجات لم يمكن مسحها؟ أي الموردين لم يتمكنوا من الاستجابة بسرعة؟ أي التطبيقات الداخلية لديها تبعيات قديمة؟ أي أعباء العمل السحابية كانت غير معروفة لفريق الأمن؟ أي الضوابط التعويضية تم ارتجالها لأن المنظمة لم تعرف ما تشغله؟ هذه الأسئلة غير مريحة لأنها لا تقتصر على CVE واحدة. إنها تكشف عن ضعف هيكلي.

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

يمكن أن تساعد SBOM، ولكن فقط إذا كانت محدثة وقابلة للاستخدام ومتصلة بالعمليات. قائمة مكونات PDF في ملفات الشراء لن تجد خادمًا مكشوفًا. يمكن لـ SBOM قابل للقراءة آليًا مرتبط بالمنتجات والإصدارات وتدفقات الثغرات والملاك تقصير الاستجابة. يجب أن يكون معيار المساءلة عمليًا: هل ساعد الجرد الفرق في العثور على Log4j بشكل أسرع من البحث اليدوي وحده؟ إذا لم يكن الأمر كذلك، فهو لم يكن تشغيليًا بعد.

كانت زاوية استمرارية الخدمة العامة حقيقية

أثرت Log4Shell على أكثر من مجرد مخاطر الشركات الخاصة. الخدمات الحكومية والوكالات العامة والجامعات وأنظمة الصحة ومشغلي البنى التحتية الحيوية كان عليهم جميعًا تقييم التعرض. تُظهرملاحظة ثغرة Log4Shellمن ENISA وتوجيهاتثغرات Apache Log4jمن NCSC البريطاني كيف تعاملت سلطات الأمن السيبراني الوطنية مع القضية كنظامية. كان ذلك مناسبًا لأن المكون الضعيف يمكن أن يكون داخل أنظمة يعتمد عليها المواطنون.

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

لذلك لم يكن دور CISA في الولايات المتحدة تقنيًا فقط. ساعدت في خلق توقعات مشتركة للوكالات المشمولة ونقطة مرجعية للآخرين. أعطى التوجيه والإشعارات ومركز الموارد الوكالات هيكلًا للعمل. كما أعطوا الكونغرس وهيئات الرقابة والجمهور وسيلة للسؤال عما إذا كانت الوكالات تتابع. هذه وظيفة حوكمة.

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

لذلك طمست Log4Shell الخط الفاصل بين إدارة الثغرات والمرونة. فرق الإصلاح كان عليها التصحيح دون كسر الإنتاج. فرق الأمن كان عليها التخفيف دون حظر حركة المرور المشروعة. الموردون كان عليهم إصدار إشعارات دون إثارة الذعر. القيادة كان عليها تخصيص موارد طارئة. فرق الاتصال كان عليها تجنب اليقينيات الخاطئة. السلطات العامة كان عليها تنسيق التوجيهات عبر الولايات القضائية. لم يكن مجرد تحديث برمجي. كان تمرينًا في الاستمرارية.

المجهولات المتبقية والسؤال المسؤول

من المحتمل ألا يعرف الجمهور أبدًا ملف الإصلاح العالمي الكامل لـ Log4Shell. لا نعرف أي المنظمات عثرت على كل مثيل بسرعة، وأيها تركت منتجات ضعيفة مكشوفة، وأيها تم استغلالها دون أن يتم اكتشافها أبدًا، أو أي إشعارات موردين كانت متأخرة جدًا لمنع الضرر. لا نعرف عدد الأنظمة الداخلية فقط التي كانت ضعيفة ولكن يتعذر على المهاجمين الوصول إليها. لا نعرف عدد المكونات الضعيفة القديمة التي بقيت خاملة حتى وقت لاحق.

هذه المجهولات لا تجعل المساءلة مستحيلة. إنها تحدد الأدلة التي تهم. من كان يتحكم في جرد البرمجيات؟ من كان يتحكم في إشعارات الموردين؟ من كان يتحكم في التخفيف الطارئ؟ من كان يتحكم في الاحتفاظ بالسجلات؟ من كان يتحكم في التنسيق مع الموردين؟ من قرر متى كان النظام آمنًا بدرجة كافية للعودة إلى التشغيل الطبيعي؟ من تحقق من أن التصحيح طبق على المكون الفعلي قيد التشغيل، وليس فقط على قائمة الحزم؟

كانت الإجابة موزعة. سيطر Apache على تصحيحات المشروع وسجل الإفصاحات لـ Log4j. سيطرت CISA على توجيهات الطوارئ الفيدرالية في نطاقها والتنسيق العام الأوسع. سيطرت الوكالات والشركات على جردها الخاص وتخفيفها ومراقبتها. سيطر الموردون على الإشعارات الخاصة بالمنتجات والتصحيحات. سيطر موفرو الخدمات السحابية والأمن على القياس عن بعد الدفاعي ونصائح العملاء. سيطر العملاء على أسئلة المتابعة الخاصة بهم وقبول المخاطر المتبقية.

لم يتمكن أي فاعل واحد من إغلاق المخاطر العالمية بأكملها. لكن كل فاعل يمكنه تقديم دليل أفضل للطبقة التي يتحكم بها. هذا هو معيار المساءلة الدائم بعد Log4Shell. لا يكفي أن يقول "لقد أصلحنا". يجب على الجمهور أن يسأل: ماذا وجدتم، وماذا أصلحتم، وماذا خففتم، وماذا راقبتم، وماذا فاتكم، وكيف تعرفون؟

من الطوارئ إلى الإصلاح المستدام

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

لذلك يجب أن يغير الإصلاح المستدام الميزانيات والحوكمة. يجب أن يتضمن جرد الأصول رؤية المكونات. يجب أن يطلب الشراء الإفصاح السريع عن الثغرات وأدلة مكونات المنتج. يجب على فرق التطوير تقليل انتشار التبعيات وتحديث المكتبات القديمة. يجب على فرق التشغيل اختبار إجراءات التصحيح والتراجع الطارئ. يجب على فرق الأمن الاحتفاظ بسجلات مفيدة والحفاظ على محتوى الكشف. يجب على القيادة معرفة أي الأنظمة سيكون الأصعب في التقييم خلال الثغرة النظامية القادمة.

هنا تصبح مشكلة الدليل منتجة. الدليل ليس فقط للمدققين. إنه يخبر المنظمة ما إذا كانت تستطيع التصرف. إذا استطاع فريق إثبات أين يعمل المكون، يمكنه التصحيح بشكل أسرع. إذا استطاع مورد إثبات أي المنتجات متأثرة، يمكن للعملاء تحديد الأولويات. إذا استطاعت السجلات إثبات عدم حدوث استغلال مشبوه في نافذة محددة، يمكن للقادة اتخاذ قرارات أكثر هدوءًا. إذا تم توثيق عدم اليقين المتبقي، يمكن لمالكي المخاطر اتخاذ قرار بإضافة مراقبة أو ضوابط تعويضية.

كانت Log4Shell مخيفة لأنها كانت في كل مكان وطارئة. كانت أيضًا توضيحية. أظهرت أن الاستجابة للثغرات هي سلسلة من الأدلة: إفصاح المشروع، وبيانات الثغرة الوصفية، وجرد الأصول، وإشعارات الموردين، والتصحيحات، والتخفيفات، ومراقبة الاستغلال، وإخطار العميل، ومراجعة الحوكمة. اكسر أي حلقة ويضعف ملف الإصلاح.

جعل الدور العام لـ CISA هذه السلسلة أصعب في تجاهلها. من خلال تقديم Log4Shell كحالة طوارئ تتطلب إجراءً منظمًا وتقريرًا للوكالات المشمولة، ساعدت في تحويل المحادثة من شعارات التصحيح إلى إصلاح قابل للقياس. هذا هو المعيار الذي يجب أن ترثه الثغرة النظامية القادمة.

المفسرون الأوائل حولوا التجريد إلى مخاطر تشغيلية

أحد الأسباب التي جعلت Log4Shell تنتشر بسرعة في انتباه القيادة هو أن الممارسين ترجموا الثغرة إلى عواقب تشغيلية ملموسة. الشرح التقني المبكر من LunaSec،Log4Shell: RCE 0-day exploit found in log4j، ساعد العديد من القراء على فهم لماذا يمكن أن يصبح تسجيل المدخلات غير الموثوقة تنفيذًا عن بعد للكود في التكوينات المتأثرة. النقطة بالنسبة للمساءلة ليست أن كل قائد كان عليه فهم كل تفصيل Java. إنه أن القادة كان عليهم استيعاب لماذا يمكن لمكون روتيني أن يحول معالجة الطلبات العادية إلى تعرض خطير.

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

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

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

كانت الاستثناءات جزءًا من ملف المخاطر

كل موجة إصلاح كبيرة تخلق استثناءات. بعض الأنظمة لا يمكن تصحيحها فورًا لأن المورد لم ينشر تصحيحًا. بعض الأنظمة هشة وتحتاج إلى اختبار. بعضها لم يعد مدعومًا. بعضها لديها ملاك تشغيليون غير متاحين. بعضها معزول بما يكفي لتكون الضوابط التعويضية مقبولة مؤقتًا. بعضها حاسم للمهمة ولا يمكن إيقافها دون ضرر عام. الاستثناءات ليست تلقائيًا فشلًا. الاستثناءات غير المدارة هي الفشل.

لذلك يجب أن يشمل ملف إصلاح Log4Shell حوكمة الاستثناءات. أي الأنظمة المتأثرة لم يمكن تصحيحها بحلول التاريخ المستهدف؟ لماذا؟ أي الضوابط التعويضية تم تطبيقها؟ من وافق على التأخير؟ أي الأدلة أظهرت أن الضابط التعويضي يعمل؟ أي تاريخ تم تعيينه للعلاج النهائي؟ من تلقى التصعيد إذا انزلق التاريخ؟ بيان أن "الأنظمة المتبقية قيد العلاج" أضعف من سجل استثناءات مع ملاك ومواعيد نهائية.

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

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

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

أهمية إعادة التحقق لأن الحقائق كانت تتغير باستمرار

الاستجابة لـ Log4Shell لم تكن تمرينًا ليوم واحد. ظهرت منتجات متأثرة جديدة. تم نشر إشعارات موردين جديدة. دخلت ثغرات Log4j إضافية وإصدارات مصححة إلى السجل العام. تطور محتوى الكشف. تحسنت الماسحات. المنظمات التي تحققت مرة واحدة وتوقفت خاطرت بفقدان حقائق لاحقة. لهذا السبب كان مركز موارد CISA ونموذج التوجيه مهمين: عملية الإصلاح كان يجب أن تبقى حية مع تغير الأدلة.

يجب أن تكون إعادة التحقق رسمية. يجب أن يعرف الفريق متى بحث آخر مرة عن الأصول المتأثرة، وأي مصدر استخبارات ثغرات استخدمه، وأي إشعارات موردين تم فحصها، وأي نتائج مسح تم تأكيدها، وأي أنظمة تم إعادة اختبارها بعد التصحيح. إذا ظهر إشعار مورد جديد يسمي منتجًا تستخدمه المنظمة، لا ينبغي للمنظمة الاعتماد على ذاكرة "كل شيء واضح" سابقة. يجب إعادة فتح العنصر.

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

هنا تتصل إدارة الثغرات بالتطوير الآمن. مسح التبعيات، وتثبيت الإصدارات، وجرد القطع الأثرية، والصور الأساسية المعتمدة، ومراجعة الإصدار ليست ضوابط براقة. إنها تمنع نفس الثغرة من الظهور مرة أخرى بعد حالة طوارئ عامة. منظمة لا تستطيع منع إعادة الإدخال لم تصلح بيئة التحكم؛ لقد نجت فقط من الموجة الأولى.

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

يجب الاحتفاظ بالأدلة للتدقيق القادم

أدلة الإصلاح التي تم إنشاؤها خلال Log4Shell لا ينبغي أن تختفي بعد الأزمة. السجلات ونتائج المسح وإشعارات الموردين وتذاكر التصحيح وموافقات الاستثناء وإخطارات العملاء وإحاطات القيادة مفيدة بعد أشهر. تساعد المدققين في تقييم ما إذا كانت المنظمة استجابت بشكل معقول. تساعد المستجيبين للحوادث في فهم ما إذا كان النشاط المشبوه اللاحق قد يعود إلى نافذة الثغرة. تساعد فرق الشراء في تحديد الموردين الضعفاء. تساعد المهندسين في تحسين جرد المكونات.

الاحتفاظ ليس هو نفسه تخزين كل شيء إلى الأبد. يجب على المنظمة الحفاظ على الأدلة اللازمة لإعادة بناء القرارات. أي الأنظمة كانت متأثرة؟ أي إجراء تم اتخاذه؟ متى تم اتخاذه؟ من وافق على الاستثناءات؟ أي مراقبة تمت؟ أي اتصال مع العملاء أو الجهات التنظيمية حدث؟ ما الذي بقي غير مؤكد؟ يجب تخزين هذه الأدلة بطريقة تبقى على قيد الحياة لتداول الموظفين وانتشار أدوات الطوارئ.

يجب أن يقارن التدقيق طويل المدى أيضًا القدرة المتوقعة بالقدرة الفعلية. هل عرفت قاعدة بيانات الثغرات أين كان Log4j؟ هل وجدت الماسحات ما وجده مالكو التطبيقات يدويًا؟ هل تطابقت سجلات الموردين مع النشر الفعلي؟ هل شملت جرد السحابة جميع أعباء العمل الجارية؟ هل دعمت السجلات فحص الاستغلال؟ هل وصلت قنوات الاتصال إلى الفرق الصحيحة؟ كل فجوة يجب أن تصبح بند تحسين ضابط.

يحول هذا Log4Shell من أزمة معزولة إلى بروفة للقادم. الثغرة النظامية القادمة قد تؤثر على لغة مختلفة، أو مدير حزم، أو خدمة سحابية، أو مكتبة مصادقة، أو مكون أجهزة. سيختلف التصحيح المحدد. ستكون سلسلة الأدلة مألوفة: تحديد التعرض، تنسيق الموردين، التصحيح أو التخفيف، مراقبة الاستغلال، إدارة الاستثناءات، التواصل حول النطاق، وإثبات الإغلاق. المنظمات التي احتفظت بأدلة Log4Shell وراجعتها يجب أن تكون أفضل استعدادًا.

أسئلة العملاء يجب أن تصبح لغة تعاقدية

طرح العملاء أسئلة عاجلة على الموردين خلال Log4Shell: هل أنتم متأثرون؟ أي المنتجات؟ أي الإصدارات؟ ماذا يجب أن نفعل؟ متى ستأتي التصحيحات؟ هل رأيتم استغلالًا؟ هل ستخبروننا إذا تغيرت الحقائق؟ لا ينبغي أن تختفي هذه الأسئلة بعد الطوارئ. يجب أن تصبح متطلبات تعاقدية وتأمينية.

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

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

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

هذا هو قوس المساءلة لـ Log4Shell: ثغرة في مكون واسع الاستخدام كشفت عن جرد ضعيف، وأدلة مورد ضعيفة، وحوكمة استثناءات ضعيفة. الإصلاح ليس مجرد إصدار مصحح. إنه اتفاق أفضل حول من يجب أن ينتج أي حقائق عندما يكون الوقت محدودًا.

يجب أن يكون معيار الدليل إنسانيًا لكن حازمًا

سيكون من الظلم الادعاء أن كل منظمة يمكنها العثور فورًا على جميع المكونات المتأثرة في ديسمبر 2021. كانت الثغرة خطيرة، والمكون منتشر، والمعلومات العامة كانت تتطور بسرعة. العديد من المدافعين عملوا تحت ضغط شديد. المساءلة يجب أن تعترف بهذه الحقيقة. لا ينبغي أن تتطلب المعرفة المطلقة المثالية.

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

هذا المعيار عادل لأنه يركز على التحكم على مر الزمن. منظمة صغيرة قد لا يكون لديها جرد كامل للمكونات في اليوم الأول. يمكنها إنشاء واحد أفضل. مورد قد يحتاج إلى وقت لاختبار تصحيح. يمكنه نشر تخفيفات مؤقتة وحالة صادقة. وكالة عامة قد يكون لديها أنظمة قديمة. يمكنها تتبع الاستثناءات والإبلاغ عن المخاطر. القياس ليس ما إذا كان كل فاعل مثاليًا. إنه ما إذا كان كل فاعل حول اكتشاف الطوارئ إلى تحسن دائم.

تستحق Log4Shell البقاء في ملف المخاطر لهذا السبب. إنها تذكير بأن أخطر عبارة بعد ثغرة نظامية ليست "نحن نحقق". هذه العبارة يمكن أن تكون صادقة. العبارة الخطيرة هي "لقد أصلحنا" عندما لا يستطيع أحد أن يُظهر ما تم العثور عليه، وما تم تفويته، وما تمت مراقبته، وأي أدلة تدعم الإغلاق.

الثغرة النظامية القادمة ستأتي باسم مختلف. قد تتضمن مكتبة هوية، أو صورة حاوية، أو عنصر تحكم سحابي، أو حزمة تبدو عادية جدًا بحيث لا تكون استراتيجية. المنظمة المسؤولة ستكون تلك التي تستطيع الاستجابة بسرعة لأنها تعرف بالفعل مكوناتها، وملاّكها، ومورديها، وسجلاتها، واستثناءاتها، وواجبات الإثبات. هذا هو الإصلاح الحقيقي الذي يشير إليه ملف Log4Shell الخاص بـ CISA، وهو القياس الذي يستحق الاحتفاظ به للمرونة.