لوگوی ارتباط افزار افق
بستن

بررسی درپشتی در ابزار XZ توزیع‌های لینوکس

ابزار XZ یک درپشتی خطرناک دارد!

فهرست مطالب

XZ Utils چیست؟

XZ Utils یک ابزار کامند لاینی و کتابخانه منبع باز است که به صورت پیش فرض بروی بسیاری از توزیع‌های لینوکسی نصب می‌باشد. در تاریخ 29 مارچ 2024 بکدوری در این ابزار شناسایی شد که سیستم را در معرض حملات اجرای کد از راه دور قرار می‌دهد. این بکدور درنسخه‌های 5.6.0 و 56.6.1 این ابزار می‌باشد که از glibc،  Systemd و OpenSSh استفاده می‌کنند. این در پشتی در شرایط خاصی فعال می‌شود و بروی کارایی و امنیت سیستم عامل تاثیر می‌گذارد. این موضوع وابستگی زیر ساخت‌های حیاتی پیچیده به ابزارای ساده که توسط توسعه دهندگان منفرد و به صورت اوپن سورس نگهداری می‌شود را بیش از پیش برجسته می‌کند.

نحوه کشف

توسعه دهنده‌ و مهندس نرم افزاری  به نام Andres Frend که بروی پروژه PostgreSQL کار می‌کند، در حال حل مشکلاتی مربوط به ارتباط از راه دور SSH بروی سیستم دبیان بود. پروتکل SSH یکی از پر استفاده‌ترین پروتکل‌های ارتباط از راه دور از طریق اینترنت می‌باشد. این توسعه دهنده مشاهده می‌کند که پردازه SSHD مصرف CPU خیلی زیادی دارد. او با بررسی بیشتر گزارشات و لاگ‌های ثبت شده متوجه می‌شود که liblzma مصرف خیلی بالایی دارد. این کتابخانه مربوط به ابزار xz می‌باشد. او سریع مشکوک می‌شود و بخاطر می‌آورد که پس از نصب آپدیت جدید این ابزار در طی هفته‌های پیش با چنین چیزی مواجه شده است. اون سریعا کد منبع xz utils را بررسی می‌کند و موفق به کشف این بکدور می‌شود.

این بکدور چگونه کار می‌کند؟

کد مخرب اضافه شده به این ابزار، عملکرد برنامه را دستکاری می‌کند و فایل اجرایی sshd که وظیفه برقراری ارتباط SSH را دارد تحت تاثیر قرار می‌دهد. این کد مخرب یک در پشتی در sshd ایجاد می‌کند که به هکر اجازه تزریق کد به درون سیستم را بدون نیاز به احراز هویت می‌دهد. کد تزریق شده به این روش اجازه هر کاری را دارد از سرقت کلید‌های رمزنگاری تا نصب بدافزار بروی سیستم قربانی.

این بکدور بسیار هوشمندانه و ظریف است. هنگامی که sshd در حال صحت سنجی کلید عمومی است، اگر کلید عمومی با اثرانگشت‌های خاصی مطابقت داشته باشد، از یک کلید پیش- تعریف شده برای رمزگشایی استفاده می‌شود که نیاز به صحت سنجی کلید عمومی را از بین می‌برد. پس از آن محتوای رمزگشایی شده به طور مستقیم به سیستم هدایت می‌شود. این بکدور از توابع کمتر شناخته شده‌ای از glibc استفاده می‌کند که و تنها وقتی فعال می‌شود که کتابخانه xz توسط sshd بارگذاری شده باشد. بکدور ایجاد شده در این نسخه کدهای مخرب درون فایل‌های تست جعلی  xz تعیبه شده و و در هنگام اجرا، کدهای صحت سنجی ssh را دستکاری می‌کند و یک کلید عمومی خاصی را برای آن تنظیم می‌کند که به هکر اجازه دسترسی می‌دهد. این آسیب پذیری با کد CVE-2024-3094 ثبت شده است.

چگونه ابزار xz چنین کاری می‌کند؟

هر کتابخانه‌ای که توسط فایل‌های اجرایی استفاده می‌شود می‌توان بروی فرآیندهای درونی آن تاثیر بگذارد. توسعه دهندگان در هنگام استفاده از یک کتابخانه در کد پروژه، آن را فراخوانی می‌کنند و سپس از توابع و متدهای ارائه شده توسط آن در کدنویسی برنامه خود بهره می‌برند. OpenSSH به عنوان یکی از پر استفاده‌ترین ابزارهایی که پروتکل ssh را پیاده سازی کرده است به طور مستقیم از کتابخانه liblzma استفاده نمی‌‌کند، ولی در توزیع دبیان و توزیع‌های دیگر یک آپدیت، سرویس sshd را به systemd که وظیفه مدیریت سرویس‌ها را دارد لینک کرده است. از طرفی دیگر systemd از کتابخانه liblzma استفاده می‌کند که اجازه می‌دهد ابزار xz  همراه با سیستم اجرا شود و بروی sshd کنترل داشته باشد.

بکدور xz چگونه ایجاد شد؟

شخصی با نام کاربری JiaT75 بیش از یکسال زمان برای ایجاد این بکدون صرف کرده است. اون با ملحق شدن به جمع داوطلبین توسعه ابزارهای منبع باز کار خود را شروع کرد. با بررسی فعالیت‌های او در پروژه xz، به لطف شفافیت پروژه‌های منبع باز، متوجه می‌شویم که اولین تغییرات JiaT75 در پروژه xz utils با ماه جوآن سال 2023 باز می‌گردد. این توسعه دهنده که خود را Jia Tan معرفی می‌کند به طور فزاینده‌ای در توسعه ابزار xz که تا پیش از این، توسعه دهنده اصلی آن به سختی و با سرعت خیلی کمی آن را به روز می‌کرد، دخالت می‌کند به گونه‌ای که اطلاعات خود در پروژه oss-fuzz که پروژه‌ای برای اسکن آسیب پذیری پروژه‌های منبع باز است ثبت می‌کند. در فوریه سال جاری، این توسعه دهنده دو نسخه جدید از ابزار را منتشر می‌کند، یعنی نسخه‌های 5.6.0 و 5.6.1. این آپدیت‌ها دارای کدهای مخربی هستند که یک در پشتی در ابزار ایجاد می‌کند. اون کارشناسان توزیع‌های همچون Ubuntu  ، Red Hat و Debian را مجاب می‌کند که آپدیت نسخه جدید را در مخازن خود قرار بدهند. این توزیع‌های پر استفاده ترین توزیع‌های لینوکسی هستند و کاربران خانگی و سازمانی بسیاری در سرتاسر دنیا دارند.

تاثیر ابزارهای کوچک در امنیت زیر ساخت

نتیجه گیری

بکدور ایجاد شده در این پروژه بسیار هوشمندانه و خطرناک است لذا پیشنهاد می‌شود سریعا نسبت به آپدیت این ابزار در سرورهای لینوکسی خود اقدام نمائید. شاید با خودتان فکر کنید که منبع باز بودن چنین ابزار مهمی ریسک‌های امنیتی زیادی بوجود می‌آورد. اما باید یادآورد شد که منبع باز بودن چنین ابزارهایی می‌تواند در کشف سریع‌تر آسیب پذیری‌های آن کمک کننده باشد چرا که تمامی توسعه دهندگان از سرتاسر دنیا می‌تواند کدهای منبع آن را مطاله کنند و نقص‌های امنیتی آن را شناسایی کنند. جنبه دیگری که این آسیب پذیری را بسیار با اهمیت می‌کند این است که، چنین ابزار کوچکی که به صورت عمومی در زیرساخت‌های حساس و حیاتی مورد استفاده قرار می‌گیرد می‌تواند آسیب پذیری‌های جدی در شبکه سازمان‌ها ایجاد کند. لذا لزوم بهره‌مندی از تیم امنیت سایبری که به صورت فعلانه و مداوم نسبت به تست و شناسایی آسیب پذیری‌ها و وصله کردن آن‌ها مشغول باشد بیش از پیش احساس می‌شود.

0 دیدگاه

دیدگاهتان را بنویسید

Avatar placeholder

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *