Trojan Source: كود يُقرأ بغير ما يُنفَّذ
رموز اتجاه النص المخفية قد تجعل الكود يبدو بريئًا للمراجع بينما يرى المترجم شيئًا آخر.
نشر باحثون في جامعة كامبريدج الأسبوع الماضي هجوم Trojan Source. استخدموا رموز التحكم في اتجاه النص في Unicode، وهي التي تسمح بخلط العربية والعبرية مع الإنجليزية، ليظهر الكود المصدري بشكل يختلف عن طريقة قراءة المترجم له. المراجع يرى تعليقًا، والمترجم يرى كودًا.
وبصفتي أكتب بالعربية والإنجليزية كل يوم، أجد هذا الهجوم لافتًا جدًا. الرموز نفسها التي تجعل النص من اليمين إلى اليسار يعمل، تستطيع إخفاء المنطق.
ماذا تفعل:
- حدّث المحررات ومنصات الكود. GitHub وGitLab ومحررات كثيرة صارت تحذّر من هذه الرموز.
- أضف فحصًا في CI يرفض رموز التحكم في الاتجاه داخل ملفات الكود، ما لم يوجد سبب.
- كن أكثر حذرًا مع المساهمات الخارجية والكود المنسوخ.
مكان النص العربي الحقيقي في ملفات الترجمة والنصوص، لا في منتصف المنطق.