عرض توضيحي لهجوم على برامج تحرير التعليمات البرمجية مما يؤدي إلى تسريب الملفات عند فتح شفرة المصدر

تم عرض طريقة لمهاجمة محرر كود VSCode، مما يسمح بنقل الملفات العشوائية ضمن حقوق المستخدم الحالي عند فتح كود مصدر مصمم خصيصًا في المحرر. في هذا العرض التوضيحي، عند فتح كود Rust الذي يستخدم ماكرو إجرائي، فإنه ينشئ اتصالاً بالمضيف 127.0.0.1:8080 ويرسل محتويات الملف "~/.ssh/id_rsa" مع مفاتيح SSH الخاصة بالمستخدم.

للتسوية، يكفي فقط فتح الملف بالكود، دون تنفيذ أي إجراءات أخرى مع المشروع. لكي يعمل المثال، يتطلب VSCode مكونًا إضافيًا لمحلل الصدأ (رابط أعلى مترجم Rustc القياسي) ووجود أدوات في النظام للعمل مع التعليمات البرمجية بلغة Rust. تتعلق المشكلة بتوسيع وحدات الماكرو الإجرائية أثناء التحليل الأولي للتعليمات البرمجية. يمكن أيضًا تحقيق تأثير مماثل في وقت الترجمة باستخدام أمر "cargo build".

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



المصدر: opennet.ru

إضافة تعليق