تم اكتشاف ثغرة أمنية في عدد كبير من المجمعين الذين يسمحون لك بإخفاء التعليمات البرمجية الضارة

نشر خبراء من جامعة كامبريدج معلومات حول ثغرة خطيرة (CVE-2021-42574) ، مما يؤثر على الجميع تقريبًامترجمي الكود المصدري الحديث. تصف مقالة مصدر حصان طروادة هجومًا خبيثًا يسمح للقراصنة بإخفاء التعليمات البرمجية الضارة في التعليمات البرمجية المصدر لبرامج مختلفة.

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

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


</ img>

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

عند عرض وتحليل كود المصدر هذاسيرى المبرمج كودًا به تعليقات لا تثير أي شك، لكن المترجم أو المترجم سيعكس الترتيب المنطقي للرموز، وسيتحول التعليق البريء إلى كود إضافي يتم إدخاله في البرنامج. الخطأ موجود في جميع المترجمين تقريبًا &#8211; للغات البرمجة C وC++ (gcc و clang) وC# وJavaScript (Node.js) وJava (OpenJDK 16) وRust وGo وPython؛ في مجموعة متنوعة من برامج تحرير التعليمات البرمجية الشائعة، بما في ذلك VS Code وEmacs وAtom وواجهات عرض التعليمات البرمجية المصدر في GitHub وGitlab وBitBucket وجميع منتجات Atlassian.

المصدر: طروادة المصدر، zdnet

</ p>