قرصنة الذكاء الاصطناعي - كيف يستخدم القراصنة الذكاء الاصطناعي في الهجمات الإلكترونية

اقرأ الآن
نستخدمُ الذكاء الاصطناعي في ترجمات الموقع، ومع أننا نسعى جاهدين لبلوغ الدقة قد لا تكون هذه الترجمات دقيقةً بنسبة 100% دائمًا. تفهّمك لهذا الأمر هو موضع تقدير لدينا.

كشف النقاب عن SVG: فهم الثغرات الأمنية في XXE والدفاع عن قاعدة الرموز الخاصة بك

ب لوان فام، مختبِر اختراق مساعد، لوان فام
شارك هذا المنشور

تُعتبر ملفات الصور عادةً ملفات آمنة وغالبًا ما يتم التعامل معها دون الوعي بالمشاكل الأمنية المحتملة. تعد ملفات الصور هذه، وخاصة ملفات SVG، ناقلات هجوم شائعة لشن هجمات خطيرة مثل البرمجة النصية عبر المواقع (XSS) أو حقن الكيان الخارجي ل XML (XXE). على النقيض من هجمات XSS، لا تؤثر هجمات حقن XXE على جانب العميل، لكنها قد تؤثر بشكل كبير على جانب الخادم، مما يؤدي إلى العديد من التأثيرات الخطيرة. في منشور المدونة هذا، سنستكشف طبيعة هجمات XXE على وجه التحديد عبر ناقل هجوم الرسومات المتجهة القابلة للتطوير (SVG) ، وسنناقش مثالاً من العالم الحقيقي، ونقدم استراتيجيات التخفيف من حدة هذه الهجمات باستخدام منتجات OPSWAT . 

معلومات أساسية

قبل الخوض في الثغرة، سنقوم أولاً بفحص XML وتنسيق ملف SVG والسبب الجذري وراء تقنية حقن XXE. 

تنسيق ملف XML

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

مقتطف كود XML يعرض تفاصيل الموظف في هيكل قسم IT

كيانات XML

في XML، الكيانات هي عناصر نائبة للبيانات تسمح لك بتضمين نص أو مستندات كاملة في المستند الحالي. من الناحية التركيبية، يتم إحاطة الكيان في XML بحرف عطف (&) وفاصلة منقوطة (؛). في المثال أدناه، يتم تعريف كيانين في تعريف نوع المستند والإشارة إلى محتوى ملف XML. والفرق بين الكيانين هو أن الكيان الداخلي معرّف ومشار إليه داخل المستند الحالي، بينما محتوى الكيان الخارجي من مستند خارجي. بعد تحليل الكيانات وحلها، يتم استبدال الكيانات بالبيانات المقابلة. 

مثال برمجي لمستند XML يحتوي على كيانات داخلية وخارجية بما في ذلك التحية
مثال مبسط لرمز XML يسلط الضوء على بنية واستخدام الكيانات والمحتوى

تنسيق ملف SVG

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

صورة عينة توضح بنية ملف SVG أساسية مع محتوى نصي

تقنية الحقن 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 إلى تحويله إلى تنسيق آخر

الاستغلال 

وتكمن الثغرة في عملية تحليل ملف SVG، إذا تم تكوينها بشكل خاطئ، ستؤدي إلى تسريب البيانات الحساسة على الخادم ومن المحتمل أن تتسبب في ثغرات SSRF. بمزيد من الفحص للكود المصدري لحزمة svglib، فإن الثغرة الأمنية XXE ناتجة عن استخدام التكوين الافتراضي لتحليل تنسيق XML ومعالجته عند تحميل ملف SVG. وقد استخدمت الحزمة حزمة lxml، حيث تكون القيمة الافتراضية لسمات حل_كيانات لفئة XMLParser هي True.  

اختلاف التعليمات البرمجية التي تُظهر التغييرات في دالة Python لتحميل ملف SVG بخيارات دقة الكيان
مخطط انسيابي لعملية هجوم XXE باستخدام ملفات SVG في سياق أمني

الاصلاح

السبب الجذري للمشكلة هو تحليل 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) من البرمجيات الخبيثة والثغرات الأمنية، مما يعزز أمن التطبيقات والالتزام بالامتثال.  

لوحة معلوماتSupply Chain Software OPSWAT MetaDefender  التي تعرض نتائج فحص المستودع بحثًا عن الثغرات والتهديدات
تقرير أمانSupply Chain Software OPSWAT MetaDefender  لملف requirements.txt لا يظهر أي تهديدات أو أسرار تم اكتشافها

يكتشف MDSSC مكافحة التطرف العنيف الموجود في svglib. كما يضع علامة على مستوى خطورة مكافحة التطرف العنيف في تقرير SBOM ويحدد إصدار البرنامج الضعيف.

MetaDefender Core - Deep CDR

السبب الآخر الذي يجعل الاستغلال ممكنًا هو أن التطبيق يعالج ملف SVG محقونًا بحمولة ضارة. ونتيجةً لذلك، إذا تم تعقيم ملف الصورة قبل إدخاله إلى خدمة التحويل، فسيتم التخلص من الحمولة وبالتالي منع حدوث الهجوم. تحمي تقنية التعطيل العميق للمحتوى وإعادة البناء (CDR) في MetaDefender Core من التهديدات المعروفة والمجهولة التي تحملها الملفات من خلال تعقيم الملفات وإعادة بنائها. ومن خلال دعم أكثر من 160 نوعًا شائعًا من الملفات ومئات الخيارات لإعادة بناء الملفات، تعمل تقنية التعطيل العميق وإعادة البناء (Deep CDR) في OPSWATعلى تحييد أي تهديدات مضمنة محتملة، مما يضمن أن الملف المعقّم يحافظ على قابلية الاستخدام الكامل مع محتوى آمن. 

كود XML قابل للتحرير بتنسيق SVG مع ثغرة XXE موضحة في عنصر DOCTYPE
ملف SVG الضار
نسخة نظيفة من كود XML بتنسيق SVG بدون ثغرة XXE
ملف SVG بعد تعقيمه باستخدام MetaDefender Core - Deep CDR 
تقرير الأمان الذي يعرض ملف SVG الذي تم وضع علامة مسموح به ومعقّم بعد تقييم الثغرات الأمنية
MetaDefender Core - Deep CDR النتيجة المعقمة

السيرة الذاتية للمؤلف

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

لوان فام
مختبِر اختراق مساعد

ابق على اطلاع دائم OPSWAT!

اشترك اليوم لتلقي آخر تحديثات الشركة, والقصص ومعلومات عن الفعاليات والمزيد.