تُعتبر ملفات الصور عادةً ملفات آمنة وغالبًا ما يتم التعامل معها دون الوعي بالمشاكل الأمنية المحتملة. تعد ملفات الصور هذه، وخاصة ملفات SVG، ناقلات هجوم شائعة لشن هجمات خطيرة مثل البرمجة النصية عبر المواقع (XSS) أو حقن الكيان الخارجي ل XML (XXE). على النقيض من هجمات XSS، لا تؤثر هجمات حقن XXE على جانب العميل، لكنها قد تؤثر بشكل كبير على جانب الخادم، مما يؤدي إلى العديد من التأثيرات الخطيرة. في منشور المدونة هذا، سنستكشف طبيعة هجمات XXE على وجه التحديد عبر ناقل هجوم الرسومات المتجهة القابلة للتطوير (SVG) ، وسنناقش مثالاً من العالم الحقيقي، ونقدم استراتيجيات التخفيف من حدة هذه الهجمات باستخدام منتجات OPSWAT .
معلومات أساسية
قبل الخوض في الثغرة، سنقوم أولاً بفحص XML وتنسيق ملف SVG والسبب الجذري وراء تقنية حقن XXE.
تنسيق ملف XML
XML (لغة ترميز قابلة للتكيف) هو تنسيق ملف مستقل عن المنصة لتخزين وتبادل البيانات المنظمة. تدعم XML البنية الهرمية، مما يجعلها مثالية لتمثيل علاقات البيانات المعقدة. يتم تنظيم البيانات بتنسيق XML في علامات وسمات ومحتوى بنفس طريقة HTML. ومع ذلك، فإن XML قابل للتخصيص والتوسعة بشكل كبير، مما يسمح للمستخدمين بتحديد العلامات والسمات الخاصة بهم لتتناسب مع متطلباتهم. يوضح الشكل أدناه بيانات قسم IT بتنسيق XML.
كيانات XML
في XML، الكيانات هي عناصر نائبة للبيانات تسمح لك بتضمين نص أو مستندات كاملة في المستند الحالي. من الناحية التركيبية، يتم إحاطة الكيان في XML بحرف عطف (&) وفاصلة منقوطة (؛). في المثال أدناه، يتم تعريف كيانين في تعريف نوع المستند والإشارة إلى محتوى ملف XML. والفرق بين الكيانين هو أن الكيان الداخلي معرّف ومشار إليه داخل المستند الحالي، بينما محتوى الكيان الخارجي من مستند خارجي. بعد تحليل الكيانات وحلها، يتم استبدال الكيانات بالبيانات المقابلة.
تنسيق ملف SVG
SVG (الرسومات المتجهة القابلة للتطوير)، هو تنسيق ملف متعدد الاستخدامات يستخدم على نطاق واسع في تطوير الويب والتصميم الجرافيكي وتصور البيانات. على عكس تنسيقات الصور التقليدية مثل JPEG أو PNG، يستخدم SVG تنسيق XML لوصف الرسومات المتجهة ثنائية الأبعاد. على وجه التحديد، تتكون صور SVG من أشكال هندسية مثل الخطوط والمنحنيات والمضلعات، والتي يتم تعريفها بواسطة معادلات رياضية بدلاً من وحدات البكسل الفردية. ونتيجة لذلك، يمكن تحجيم رسومات SVG إلى ما لا نهاية دون فقدان الجودة، مما يجعلها مثالية لتصميم الويب سريع الاستجابة وشاشات العرض عالية الدقة. نظرًا لطبيعة XML لتنسيق SVG، فإنه يوفر أيضًا نواقل هجوم محتملة لعمليات الاستغلال المتعلقة ب XML.
تقنية الحقن XXE وتأثيراتها
تسيء تقنية حقن XXE استخدام آلية حل الكيانات الخارجية. على وجه التحديد، عندما يلتقي المحلل اللغوي بكيان خارجي، فإنه يجلب المحتوى المقابل بناءً على نوع ملف المورد.
إذا كان ملف المورد محليًا، فسيقوم المحلل باسترداد محتوى الملف واستبدال الكيان بالبيانات المقابلة. وهذا من شأنه أن يسمح للمهاجم بإظهار بيانات حساسة مثل تكوين الخادم وبيانات الاعتماد وما إلى ذلك. لاستغلال الثغرة الأمنية بنجاح، يقوم المهاجم بإعلان كيان خارجي يشير إلى محتوى ملفات حساسة، /etc./password على سبيل المثال.
ومع ذلك، إذا كان المورد بعيدًا أو خدمة داخلية، سيحاول المحلل جلب البيانات عن طريق طلب عنوان URL المحدد. يمكن استغلال ذلك لتنفيذ تزوير الطلبات من جانب الخادم (SSRF). في هذه الحالة، بدلاً من الإشارة إلى ملف محلي، سيقوم المهاجم بتغيير الحمولة إلى عنوان URL الخاص بالخدمة الضعيفة لطلبها نيابةً عن الخادم.
هجوم XXE عبر إساءة التعامل مع ملف SVG: دراسة حالة
سنقوم بالتحقيق في ثغرة في حالة واقعية وهي مكتبة SVGLIB حتى الإصدار 0.9.3. تم اكتشاف الثغرة في عام 2020 وتم تعيينها CVE-2020-10799. سنقوم أولاً بفحص تدفق المكتبة، وتحليل مقتطف التعليمات البرمجية الضعيفة، وأخيراً إثبات الاستغلال عبر خدمة تحويل SVG إلى PNG. الهدف هو تطبيقات الويب المنفذة ذاتيًا باستخدام إصدارات SVGLIB الضعيفة للتحويل.
حزمة svglib
svglib عبارة عن مكتبة Python نقية مصممة لتحويل تنسيق SVG إلى تنسيقات أخرى مثل PNG و JPG و PDF وغيرها باستخدام مجموعة أدوات Report Lab مفتوحة المصدر. نظرًا لأن ملفات SVG تستخدم تنسيق XML، فإن تحليل XML والتعامل معه هو أيضًا جزء مهم من التدفق الرئيسي للمكتبة. الخطوات الثلاث الرئيسية في المكتبة هي كما يلي:
الاستغلال
وتكمن الثغرة في عملية تحليل ملف SVG، إذا تم تكوينها بشكل خاطئ، ستؤدي إلى تسريب البيانات الحساسة على الخادم ومن المحتمل أن تتسبب في ثغرات SSRF. بمزيد من الفحص للكود المصدري لحزمة svglib، فإن الثغرة الأمنية XXE ناتجة عن استخدام التكوين الافتراضي لتحليل تنسيق XML ومعالجته عند تحميل ملف SVG. وقد استخدمت الحزمة حزمة lxml، حيث تكون القيمة الافتراضية لسمات حل_كيانات لفئة XMLParser هي True.
الاصلاح
السبب الجذري للمشكلة هو تحليل XML غير الآمن، والذي يتم تنفيذه بشكل غير صحيح في مكتبة svglib وجزء من تبعية lxml. ونتيجةً لذلك، قد يؤدي استخدام إصدار ضعيف من هذه المكتبة إلى الكشف عن معلومات حساسة أو تزوير الطلبات من جانب الخادم أو حتى تنفيذ التعليمات البرمجية عن بُعد، وذلك اعتماداً على البيئة المنشورة ووظائف التطبيق. تعتبر الثغرات الأمنية التي يتم إدخالها من مكتبات الطرف الثالث مشكلة خطيرة بالنسبة لأمن التطبيقات الكبيرة لأن تبعياتها قد تكون معقدة وغير شفافة.
MetaDefender Software Supply Chain
OPSWAT MetaDefender Software Supply Chain يوفر رؤية موسعة ودفاعًا قويًا ضد مخاطر سلسلة التوريد من خلال مجموعة من التقنيات المتعددة. يساعد برنامج OPSWAT Software Bill of Materials (SBOM) في الحصول على رؤية واضحة لحزم البرامج مفتوحة المصدر من طرف ثالث وتحديد تبعيات البرامج أو الثغرات أو المخاطر المحتملة الأخرى الموجودة تحت كل طبقة من صورة الحاوية. مع تكامل أكثر من 30 محركاً لمكافحة الفيروسات مجتمعة، يصل معدل اكتشاف البرمجيات الخبيثة في تقنيةMultiscanning إلى أكثر من 99.99%. علاوة على ذلك، تحدد تقنيةProactive DLP (منع فقدان البيانات) بيانات الاعتماد مثل كلمات المرور أو الأسرار أو الرموز المميزة أو مفاتيح API أو غيرها من المعلومات الحساسة المتبقية في التعليمات البرمجية المصدرية. وبفضل تقنياتنا للكشف عن التهديدات والوقاية منها بدون ثقة، يتم تأمين دورة حياة تطوير البرمجيات (SDLC) من البرمجيات الخبيثة والثغرات الأمنية، مما يعزز أمن التطبيقات والالتزام بالامتثال.
يكتشف MDSSC مكافحة التطرف العنيف الموجود في svglib. كما يضع علامة على مستوى خطورة مكافحة التطرف العنيف في تقرير SBOM ويحدد إصدار البرنامج الضعيف.
MetaDefender Core - Deep CDR
السبب الآخر الذي يجعل الاستغلال ممكنًا هو أن التطبيق يعالج ملف SVG محقونًا بحمولة ضارة. ونتيجةً لذلك، إذا تم تعقيم ملف الصورة قبل إدخاله إلى خدمة التحويل، فسيتم التخلص من الحمولة وبالتالي منع حدوث الهجوم. تحمي تقنية التعطيل العميق للمحتوى وإعادة البناء (CDR) في MetaDefender Core من التهديدات المعروفة والمجهولة التي تحملها الملفات من خلال تعقيم الملفات وإعادة بنائها. ومن خلال دعم أكثر من 160 نوعًا شائعًا من الملفات ومئات الخيارات لإعادة بناء الملفات، تعمل تقنية التعطيل العميق وإعادة البناء (Deep CDR) في OPSWATعلى تحييد أي تهديدات مضمنة محتملة، مما يضمن أن الملف المعقّم يحافظ على قابلية الاستخدام الكامل مع محتوى آمن.

شارك لوان فام في برنامج زمالة الخريجين في مجال الأمن السيبراني للبنية التحتية الحرجة OPSWAT ، وهو يعمل حالياً كمختبر اختراق مشارك في OPSWAT. وهو متحمس لحماية منتجات OPSWAT من التهديدات المحتملة ومشاركة معرفته.