پنهان کردن آسیب‌پذیری‌ها در کد منبع توسط هکرها با تکنیک جدید Trojan Source

دسته‌ی جدیدی از آسیب‌پذیری‌ها ممکن است توسط عاملان تهدید مورد استفاده قرار بگیرند تا بدافزارهایی با ظاهر فریبنده طوری تزریق شوند که از نظر موقعیتی مجاز باشد اما منطقی که توسط کد منبع تعریف شده است را تغییر بدهند و به طور کارآمد، دری را به سمت ریسک‌های First-Party و زنجیره‌ی تأمین باز کنند.

نیکولاس باچر و راس اندرسون، پژوهشگران دانشگاه کمبریج در یک مقاله که به تازگی منتشر شده است، گفتند: «این تکنیک که حملات Trojan Source نام گرفته، با بهره‌گیری از ظرافت‌هایی در استانداردهای رمزگذاری متن، مثل Unicode،  کد منبعی را ایجاد می‌کند که Tokenهای این تکنیک به‌طور منطقی با ترتیبی متفاوت از ترتیب نمایش آنها کدگذاری می‌شوند. این امر به آسیب‌پذیری‌هایی منجر می‌شود که نمی‌توان مستقیماً توسط بررسی‌کننده‌های کد انسانی قابل شناسایی نیست.»

آسیب‌پذیری‌هایی که به‌عنوان CVE-2021-42574 و CVE-2021-42694 ردیابی شده‌اند روی کامپایلرهای تمام زبان‌های برنامه‌نویسی محبوب مثل C، C++، C#، JavaScript، Java، Rust، Go و Python تأثیر می‌گذارند.

کامپایلرها برنامه‌هایی هستند که کد منبع سطح بالایی را که توسط انسان قابل‌ درک باشد، به کدهای سطح پایین‌تری ترجمه می‌کنند، مثل زبان اسمبلی، کد Object یا کد ماشین که بتوان آن را توسط سیستم عامل اجرا نمود.

این مسئله در اصل به الگوریتم دوطرفه‌ی Unicode یا Bidi مربوط است که پشتیبانی را هم برای زبان‌های چپ به راست (مثل انگلیسی) و هم زبان‌های راست به چپ (مثل فارسی) فراهم می‌کند و همچنین دارای یک ویژگی به نام Bidirectional Override است که اجازه می‌دهد کلمات چپ به راست درون جملات راست به چپ یا برعکس نوشته شوند و بدین صورت این امکان را فراهم می‌کند که متنی با جهت‌ مخالف را درون یک متن طولانی قرار داد.

بااینکه انتظار می‌رود خروجی یک کامپایلر به‌درستی کد منبعی که برایش فراهم شده است را به کار بگیرد، مغایرت‌هایی که با وارد کردن حروف Unicode Bidi Override درون Commentها و رشته‌ها ایجاد می‌شوند، می‌توانند باعث ایجاد شرایطی شوند که کد منبعی ارائه شده از نظر دستوری معتبر و ترتیب نمایش حروف، منطقی را نمایش دهد که از منطق اصلی فاصله داشته باشد.

به ‌عبارت ‌دیگر نحوه‌ی کار حمله این است که کدگذاری فایل‌های کد منبع را هدف می‌گیرد تا آسیب‌پذیری‌های هدف‌داری را ایجاد نماید، نه اینکه عمداً Bugهایی منطقی را معرفی کند؛ هدف از این کار این است که به‌طور بصری ترتیب Tokenهایی را در کد منبع تغییر دهد که هرچند به‌طور کاملاً قابل قبولی ارائه شده‌اند، کامپایلر را فریب می‌دهد تا کد را به‌شیوه‌ی متفاوتی پردازش نماید و جریان برنامه را به‌شدت تغییر دهد؛ مثلاً کاری کند که یک Comment به شکل کد به نظر برسد.

یکی از پژوهشگران گفت: «عملاً ما برنامه A را در برنامه B آناگرام می‌کنیم. اگر تغییر در منطق آنقدری نامحسوس باشد که در تست‌های بعدی شناسایی نشود، یک تهدید می‌تواند بدون شناسایی شدن، آسیب‌پذیری‌های هدفمندی را معرفی کند.»

پژوهشگران هشدار می‌دهند که این کدگذاری‌های مخرب می‌توانند تأثیری جدی روی زنجیره‌ی تأمین داشته باشند؛ وقتی آسیب‌پذیری‌های نرم‌افزاری نامرئی به یک نرم‌افزار متن باز Inject می‌گردند، به حرکت خود ادامه داده و ممکن است تمام کاربران نرم‌افزار را آلوده نمایند. خبر بدتر این است که اگر یک مهاجم از هموگلیف‌ها استفاده کند تا عملکردهای موجود در یک بسته‌ی Upstream را مجدداً تعریف نماید و از برنامه‌ی یک قربانی به آن‌ها استناد کند، حملات Trojan Source می‌توانند شدیدتر شوند.

یک عامل تهدید می‌تواند با جایگزین کردن حروف لاتین با حروف مشابهی از خانواده‌های Unicode دیگر (مثلاً جایگزین کردن H با H سیریلیک)، یک عملکرد هموگلیف بسازد که ظاهراً شبیه به عملکرد اصلی است اما در حقیقت حاوی کد مخربی باشد که م بدون جلب توجه زیاد، به یک پروژه‌ی متن باز اضافه شود. این مقاله اشاره کرد که وقتی چنین حمله‌ای در مقابل یک عملکرد متداول اعمال شود که از طریق یک Library یا وابستگی ورودی قابل‌دسترسی باشد، می‌تواند فاجعه‌بار گردد.

پژوهشگران بیان کردند: «اینکه آسیب‌پذیری Trojan Source تقریباً روی همه‌ی زبان‌های رایانه‌ای تأثیر می‌گذارد، باعث می‌شود فرصت نادری برای مقایسه‌ی پاسخ‌های بین پلتفرم‌ها و بین Vendorها در سطح سیستم و معتبر از نظر زیست محیطی باشد. ازآنجایی‌که با استفاده از این تکنیک می‌توان حملات زنجیره‌ی تأمین قدرتمندی را اجرا کرد، حیاتی است که سازمان‌هایی که در یک زنجیره‌ی تأمین نرم‌افزاری شرکت می‌کنند سیستم‌های دفاعی را اعمال کنند.»

ایمیل خود را وارد کنید و عضو خبرنامه شوید.
Start typing to see posts you are looking for.

جهت ثبت درخواست همین حالا فرم را تکمیل نمایید.

با تکمیل فرم و ارسال درخواست خود، همکاران و کارشناسان ما در اسرع وقت با شما تماس خواهند گرفت.

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

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

در دنیای امنیت چه خبر؟
جهت دریافت آخرین اخبار دنیای امنیت شبکه و اطلاعات ایمیل خود را وارد کنید.