نمایش حمله به ویرایشگرهای کد که منجر به نشت فایل هنگام باز کردن کدهای منبع می شود

روشی برای حمله به ویرایشگر کد VSCode نشان داده شده است که امکان انتقال فایل های دلخواه را در حقوق کاربر فعلی هنگام باز کردن کد منبع ویژه طراحی شده در ویرایشگر فراهم می کند. در این دمو، هنگام باز کردن کد Rust که از یک ماکرو رویه ای استفاده می کند، به هاست 127.0.0.1:8080 ارتباط برقرار می کند و محتویات فایل "~/.ssh/id_rsa" را با کلیدهای SSH کاربر ارسال می کند.

برای به خطر انداختن، کافی است به سادگی فایل را با کد باز کنید، بدون اینکه هیچ اقدام دیگری با پروژه انجام دهید. برای اینکه مثال کار کند، VSCode به پلاگین rust-analyzer (یک اتصال در بالای کامپایلر استاندارد rustc) و وجود ابزارهایی در سیستم برای کار با کد به زبان Rust نیاز دارد. مشکل به گسترش ماکروهای رویه ای در طول تحلیل کد اولیه مربوط می شود. اثر مشابهی را نیز می توان در زمان کامپایل با استفاده از دستور "Cargo build" به دست آورد.

خاطرنشان می شود که این مشکل ممکن است بر سایر ویرایشگرهای کد و زبان های برنامه نویسی تأثیر بگذارد. VSCode و rust-analyze فقط برای نشان دادن بردار حمله استفاده می شوند. در تئوری، هر ویرایشگر کدی که ماکروهای رویه‌ای را که به شما امکان ایجاد پسوندهای نحوی و اجرای کد در زمان کامپایل را می‌دهند، در معرض این مشکل قرار می‌گیرد. محقق در ابتدا احتمال انجام اقدامات مخرب در طول تدوین کد را بررسی کرد، اما متوجه شد که وقتی کد منبع در ویرایشگرهای کد پردازش می‌شود، ماکروهای رویه‌ای گسترش می‌یابند. این حمله احتمالاً می تواند سایر زبان های برنامه نویسی را تحت تأثیر قرار دهد؛ به عنوان مثال، در جاوا، پردازش حاشیه نویسی را می توان به روشی مشابه دستکاری کرد.



منبع: opennet.ru

اضافه کردن نظر