تعرف على المزيد عن كتاب بيني تشارني «الأمن السيبراني رأسًا على عقب»

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

ملف واحد، وجوه متعددة: لماذا يُعد الكشف عن التعدد اللغوي أمرًا مهمًا

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

المؤلفون

  • نهوت نغو | مدير قسم الهندسة في شركة Software ، OPSWAT
  • لين ها | Software مديرة هندسية، OPSWAT
  • تيدي دو | مهندس أول في قسم " Software "، OPSWAT

الملف الذي يجتاز كل الاختبارات

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

تخالف ملفات «بوليجلوت» هذا الافتراض. فقد يكون تيار بايت واحد ملف GIF صالحًا تمامًا وأ رشيف Java صالحًا تمامًا في آن واحد. وتنجح الحيلة نفسها مع ملف JPEG الذي يُعد أيضًا أرشيف RAR، أو ملف PDF يحمل ملف ZIP كاملًا يتجاوز نهايته المنطقية. فكل جزء من الملف متوافق مع المعايير بحد ذاته، لذا لا يكتشف أي محلل تنسيق فردي أي خطأ.

متعدد اللغات في صورة واحدة: صيغة GIF+JAR الكلاسيكية. محللان، نقطتا دخول، ملف واحد، وكل وجه صالح تمامًا.

والنتيجة الأمنية واضحة: يقوم خط الأنابيب بمسح الملف وفقًا للنوع الذي اكتشفه، بينما يمر التنسيق الآخر دون أن يُمس. فصورة تُعدُّ أيضًا نصًا برمجيًّا تتحول إلى هجوم XSS مخزّن عندما يعيد تطبيق الويب عرضها. أما الأرشيف المخفي وراء واجهة صورة، فينقل حمولته عبر مرشحات المحتوى. وسلسلة الهجمات المبنية على هذه الفكرة — بدءًا من التركيبة الكلاسيكية GIF+JAR وصولاً إلى توصيل الثغرات الأمنية بمساعدة تقنية إخفاء المعلومات — معروفة للجمهور منذ ما يقرب من عقدين. ولا تزال محركات مكافحة البرامج الضارة عمياءً عنها إلى حد كبير لأن كل صورة، عند فحصها بشكل مستقل، تبدو غير ضارة.

كيف يكتشف المحرك وجهًا ثانيًا

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

  • افحص الدفق بالكامل. يقوم الماسح الضوئي بمقارنة الملف بأكمله بقائمة من التوقيعات المميزة للتنسيقات. ويتم الكشف عن أي تنسيق ثانٍ يظهر في أي مكان ضمن الدفق مع تحديد إزاحة موقعه بدقة، حتى لو كان الملف قد تم تحديد نوعه مسبقًا. ويشمل ذلك التوقيعات الملحقة بعد علامة نهاية الملف في ملف PDF أو المخبأة خلف بيانات بكسل الصورة.
  • اعرف أين تنتهي الصيغة بشكل صحيح. Container تحتوي هذه الصيغ بشكل قانوني على ملفات أخرى بداخلها. فالصورة الموجودة داخل ملف ZIP تُعتبر محتوى عاديًا. ويحدد الكاشف النهاية الحقيقية لكل حاوية بناءً على بنية الحاوية نفسها. ويُشير كل من الجزء الختامي لملف PDF، والدليل المركزي لملف ZIP، وتخصيص القطاعات في الملف المركب OLE (ربط الكائنات وتضمينها) إلى تلك الحدود. ويأخذ تحليل ملفات PDF في الاعتبار التحديثات التزايدية. ولا تُعتبر سوى التوقيعات الموجودة خارج تلك البنية بمثابة وجه ثانٍ. وهذا الحد البنيوي هو ما يميز الحكم الحقيقي المتعدد اللغات عن الإنذار الكاذب في كل أرشيف عادي.
  • تأكد قبل أن تتهم. يقوم المحرك باستخراج كل وجه مرشح من الدفق وإعادة تحديده بشكل مستقل باستخدام محرك «نوع الملف» الخاص بنا قبل الإبلاغ عنه. يتم استبعاد المرشحين الذين يتم تحديدهم على أنهم بيانات غير منظمة. والحكم يعني أن تنسيقًا ثانيًا يتم تحليله فعليًّا عند ذلك الإزاحة. ولا تؤدي البايتات السحرية الشاردة وحدها أبدًا إلى إصدار مثل هذا الحكم.

مأخوذ من عينة حقيقية: ملف PDF يحتوي على صورتين مضمنتين بتنسيقي JPG و PNG، مع ملفين بتنسيقي ZIP و TIFF مرفقين بعد نهايته المنطقية. ويشير التقرير إلى ملفَي ZIP و TIFF، بينما لا يذكر شيئًا عن الصور المضمنة.

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

من الكشف إلى التشريح

يُعد الكشف نصف الحل فقط، لأن الحيلة الكاملة لـ «بوليجلوت» تكمن في أن كل وجه يبدو بحد ذاته غير ضار. بعد الكشف، يقوم المحرك بتحليل الملف. ويتم تصدير كل وجه مؤكد ككائن مستقل (polyglot_part_1.pdf، polyglot_part_2.zip، وهكذا دواليك) مع تنسيقه وإزاحته وحجمه. ثم يعيد المحرك كل كائن إلى مسار عملMetaDefender Core™ للمعالجة الكاملة وفقًا لطبيعته الحقيقية.

لقد قمنا بالتحقق من ذلك من البداية إلى النهاية على مثيل « MetaDefender Core™» قيد التشغيل.

قام المحرك بتقسيم عينة ملف PDF كانت تحمل سراً مستند Word (ملف متعدد التنسيقات يضم PDF+JAR+DOCX) إلى جزء PDF وجزء ZIP. ونظرًا لأن JAR وDOCX كلاهما حاويات ZIP، فإن جزء ZIP الواحد يفي بكلا المعيارين. ثم حدد محرك «نوع الملف» هذا الجزء على أنه DOCX، وقامت تقنية Deep CDR™ بتطهيره بشكل منفرد. ويخضع الجزء المخفي لنفس المعالجة التي صُمم للتحايل عليها.

الدقة هي الجزء الأصعب

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

تم اختبارها على متحدثين متعددي اللغات حقيقيين

قمنا بتشغيل عينات حقيقية متعددة اللغات عبر نسخة حية من « MetaDefender Core™» مزودة بمحرك «File Structure Validation». تم اكتشاف كل عينة على حدة، مع تحديد الإزاحة الدقيقة لكل وجه بالبايت:

نموذج

الوجوه التي تم العثور عليها (الإزاحة)

النتيجة

ملف PDF يخفي مستند Word (PDF+JAR+DOCX في ملف واحد)

PDF @ 0 · ZIP @ 34,016

تم استخراج الوجوه؛ وتم تنقية ملف DOCX المخفي باستخدام تقنية Deep CDR™

صورة GIF تُخفي أرشيفًا وصورة ثانية

GIF89a @ 0 · ZIP @ 25,214 · TIFF @ 154,270

تم الكشف عن

مستند Office يخفي ملف PDF

OLE @ 0 · PDF @ 73,217

تم الكشف عن

إخفاء ملف PDF داخل ملف JPEG

ثلاثة وجوه، ملف PDF مرفق @ 26,830

تم الكشف عن

PoC‖GTFO العدد 3، المجلة المتخصصة في أبحاث الأمن، الصادرة بتنسيق PDF+ZIP متعدد اللغات، 26 ميغابايت

PDF @ 25 · ZIP @ 12,224,072

تم الكشف عن: تم العثور على الوجه الثاني على عمق 12 ميغابايت خلال الفحص الشامل

ملف GIF يحتوي على دفق GZIP وأرشيف Java

GIF89a @ 0 · GZIP @ 427,764 · ZIP @ 937,265

محجوب

ملف PDF يحتوي على صورة JPG وصورة PNG مدمجتين، مع ملفات ZIP وTIFF مرفقة

PDF @ 0 · ZIP @ 204,849 · TIFF @ 257,395

محجوبة؛ لم يتم الإبلاغ عن الصور المضمنة بشكل صحيح

الصف الأخير يوضح كيفية عمل قاعدة الاستبعاد: حيث يشير الحكم إلى ملفَي ZIP و TIFF المرفقين ويتجاهل الصور الموجودة داخل ملف PDF. وقد اعتبر مُحلل الحاويات هذه الصور جزءًا من محتوى ملف PDF نفسه. فيما يلي نص JSON الناتج من MetaDefender Core™ لهذا الملف (مختصر):

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

فيما يلي لقطات شاشة لكل نتيجة من النتائج النموذجية في برنامج « MetaDefender Core™»:

ملف PDF يخفي مستند Word (PDF+JAR+DOCX في ملف واحد)
صورة GIF تُخفي أرشيفًا وصورة ثانية
مستند Office يخفي ملف PDF
إخفاء ملف PDF داخل ملف JPEG
PoC‖GTFO العدد 3، المجلة المتخصصة في أبحاث الأمن، الصادرة بتنسيق PDF+ZIP متعدد اللغات، 26 ميغابايت
ملف GIF يحتوي على دفق GZIP وأرشيف Java  
ملف PDF يحتوي على صورة JPG وصورة PNG مدمجتين، مع ملفات ZIP وTIFF مرفقة

التغطية والتكوين

تشمل التغطية اليوم التنسيقات التي يجمعها المهاجمون فعليًّا: PDF، وZIP، والملفات المركبة OLE، وPNG، وGIF، وJPEG، وTIFF، وRAR، وGZIP، و7z.

تنطبق دقة تحديد نهاية الحاوية الهيكلية على تنسيقات الحاويات. يتم توفير هذه الميزة وفقًا لمبدأ «التكوين أولاً»: حيث يُعد كل من الكشف والحجب والمسح الكامل للملفات خيارات يمكن تفعيلها أو تعطيلها وفقًا للسياسة، لذا يختار المشغلون بين الرؤية والإنفاذ في كل عملية نشر.

خلاصة القول

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

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

اطلع على كيفية تعامل «التحقق من صحة بنية الملفات» مع تنسيقات الملفات التي تمر عبر بيئتك.

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

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