تکنولوژی

کشف آسیب‌پذیری io_uring : روت‌کیت Curing چگونه سیستم‌های امنیتی لینوکس را دور می‌زند؟

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

دنیای امنیت لینوکس همیشه در حال تغییر است، و گاهی تهدیدها از جایی سر بر می‌آورند که کمتر انتظار می‌رود. یکی از این موارد، مکانیزمی به نام io_uring است — قابلیتی که در ابتدا برای سریع‌تر کردن عملیات ورودی/خروجی (I/O) طراحی شد، اما حالا به ابزاری برای مخفی کردن حملات تبدیل شده است.

🧩شرکت ARMO اخیراً یک روت‌کیت آزمایشی به نام Curing معرفی کرده که می‌تواند با استفاده از io_uring، بدون نیاز به system callهای معمول، با سرور فرماندهی و کنترل (C2) ارتباط برقرار کند و دستورات مخرب را اجرا کند.
این یعنی بسیاری از ابزارهای امنیتی که فعالیت‌ها را از طریق پایش system callها بررسی می‌کنند، در برابر این نوع حمله کاملاً نابینا هستند.

در این مقاله از سلام دیجی، بررسی می‌کنیم که چگونه Curing کار می‌کند، چرا io_uring باعث ایجاد یک شکاف امنیتی شده، و چه اقداماتی می‌توان برای مقابله با این تهدید انجام داد.

🛡️io_uring چیست و چه نقشی در امنیت لینوکس دارد؟

io_uring  یک رابط مدرن در هسته لینوکس است که امکان انجام عملیات I/O را به صورت غیرهمگام و بدون نیاز به system call  مستقیم فراهم می‌کند. این فناوری با معرفی در نسخه 5.1 هسته لینوکس (مارس 2019)، کارایی I/O را بهبود داد، اما به گفته کارشناسان امنیت، «زمینه‌ای تازه برای حملات» نیز فراهم کرده است و چالش‌های امنیتی جدیدی را نیز به وجود آورده است.

🚨چگونه روت‌کیت Curing از io_uring سوءاستفاده می‌کند؟

شرکت ARMO یک اثبات مفهومی از روت‌کیت جدیدی منتشر کرده که از io_uring برای ارتباط با سرورهای C2 و اجرای فرمان‌ها استفاده می‌کند، بدون اینکه ردپایی در system callها برجا بگذارد. این ویژگی باعث می‌شود ابزارهای معروف نظارت بر زمان اجرا، مانند Falco و Tetragon، کاملاً نسبت به این تهدید کور باشند.

رئیس تحقیقات امنیتی ARMO :

"بسیاری از تولیدکنندگان راهکارهای امنیتی مسیر ساده‌تر را انتخاب می‌کنند: اتصال مستقیم به system callها. این روش هرچند دید اولیه سریعی فراهم می‌کند، اما محدودیت‌های جدی دارد. همانطور که io_uring نشان می‌دهد، همیشه فراخوان سیستم تضمین‌شده نیست."

🧠چرا ابزارهای امنیتی لینوکس در برابر io_uring آسیب‌پذیر هستند؟

بسیاری از ابزارهای امنیتی زمان اجرا برای تشخیص فعالیت‌های مخرب به hooking system callها تکیه دارند. اما مکانیزم‌هایی مانند io_uring مسیرهای غیرقابل مشاهده‌ای ایجاد می‌کنند که این مدل‌های نظارتی سنتی را ناکارآمد می‌سازند.

حتما بخوانید: 

⚡ پیشینه هشدارها درباره io_uring

این اولین بار نیست که خطرات io_uring مطرح می‌شود. در ژوئن 2023، گوگل اعلام کرد که به دلیل فراهم شدن «ابتکارهای قوی بهره‌برداری» توسط این مکانیزم، استفاده از آن را در اندروید، ChromeOS و سرورهای تولیدی خود محدود کرده است.

جمع‌بندی

ظهور تهدیدهایی مانند روت‌کیت Curing، اهمیت بازنگری در رویکردهای امنیتی زمان اجرا را پررنگ‌تر می‌کند. تکیه صرف بر system call hooking دیگر پاسخگوی تهدیدات مدرن نیست. توسعه راهکارهایی با دید عمیق‌تر نسبت به ساختارهای کرنل و رفتارهای غیرمعمول برنامه‌ها به عنوان یک ضرورت جدید برای حفاظت از محیط‌های لینوکسی مطرح می‌شود.

سوالات متداول درباره روت‌کیت Curing و io_uring

🌐 روت‌کیت Curing چیست؟

روت‌کیتی است که با سوءاستفاده از مکانیزم io_uring بدون استفاده از system callهای سنتی، عملیات مخرب خود را انجام می‌دهد.

🌐 io_uring چه نقشی در دور زدن امنیت دارد؟

با استفاده از io_uring، برنامه‌ها می‌توانند عملیات I/O را بدون ثبت system call انجام دهند که این باعث عدم شناسایی توسط بسیاری از ابزارهای امنیتی می‌شود.

🌐 کدام ابزارهای امنیتی در برابر حملات io_uring آسیب‌پذیر هستند؟

ابزارهایی مانند Falco و Tetragon که به hooking system callها تکیه دارند، قادر به تشخیص عملیات مبتنی بر io_uring نیستند.

تمام حقوق سایت برای سلام دیجی و نويسندگان آن محفوظ می باشد