لینوکسمحققان امنیت سایبری یک روت کیت اثبات ادعا (PoC) به نام [۱]Curing را نشان داده‌اند که از یک مکانیسم ورودی/خروجی ناهم‌زمان لینوکس به نام io_uring[2] برای دور زدن نظارت سنتی بر فراخوانی سیستم استفاده می‌کند.

ARMO گفت: این امر باعث ایجاد یک “نقطه کور بزرگ در ابزارهای امنیتی زمان اجرای لینوکس” می‌شود.

این شرکت در گزارشی که با The Hacker News به اشتراک گذاشت، گفت[۳]: “این مکانیسم به یک برنامه کاربر اجازه می‌دهد تا اقدامات مختلفی را بدون استفاده از فراخوانی‌های سیستم انجام دهد. درنتیجه، ابزارهای امنیتی که به نظارت بر فراخوانی سیستم متکی هستند، نسبت به روت کیت‌هایی که صرفاً بر روی io_uring کار می‌کنند، کور هستند.”

io_uring که برای اولین بار در نسخه ۵.۱ هسته لینوکس در مارس ۲۰۱۹ معرفی شد[۴]، یک رابط فراخوانی سیستم هسته لینوکس است که از دو بافر دایره‌ای به نام صف ارسال (SQ) و صف تکمیل (CQ) بین هسته و یک برنامه (یعنی فضای کاربر) برای ردیابی ارسال و تکمیل درخواست‌های ورودی/خروجی به‌صورت ناهم‌زمان استفاده می‌کند[۵].

روت‌کیت ابداع‌شده توسط ARMO، ارتباط بین یک سرور فرمان و کنترل (C2) و یک میزبان آلوده را تسهیل می‌کند تا دستورات را بدون انجام هیچ فراخوانی سیستمی مرتبط با عملیات خود، دریافت و اجرا کند و در عوض از io_uring برای دستیابی به همان اهداف استفاده می‌کند.

تجزیه‌وتحلیل ARMO از ابزارهای امنیتی زمان اجرای لینوکس موجود در حال حاضر نشان داده است که هر دو Falco[6] و [۷]Tetragon به دلیل وابستگی شدید به اتصال فراخوانی سیستم، نسبت به عملیات مبتنی بر io_uring بی‌توجه هستند.

خطرات امنیتی ناشی از io_uring مدتی است که شناخته شده است. در ژوئن ۲۰۲۳، گوگل فاش کرد[۸] که تصمیم گرفته است استفاده از رابط هسته لینوکس را در اندروید، ChromeOS و سرورهای تولیدی خود محدود کند، زیرا ابتدای بهره‌برداری قوی را فراهم می‌کند.

آمیت شندل، رئیس تحقیقات امنیتی در ARMO، گفت: “ازیک‌طرف، شما به قابلیت مشاهده در فراخوانی‌های سیستم نیاز دارید؛ از طرف دیگر، به ساختارهای هسته و زمینه کافی برای شناسایی مؤثر تهدیدها نیاز دارید.” «بسیاری از فروشندگان، ساده‌ترین مسیر را انتخاب می‌کنند: اتصال مستقیم به فراخوانی‌های سیستم. اگرچه این رویکرد، قابلیت مشاهده سریعی را ارائه می‌دهد، اما محدودیت‌هایی نیز دارد. از همه مهم‌تر، فراخوانی‌های سیستمی همیشه تضمین‌شده نیستند که فراخوانی شوند. io_uring، که می‌تواند آن‌ها را به‌طور کامل دور بزند، یک مثال مثبت و عالی است.»

  منابع

[۱] https://github.com/armosec/curing

[۲] https://man7.org/linux/man-pages/man7/io_uring.7.html

[۳] https://www.armosec.io/blog/io_uring-rootkit-bypasses-linux-security

[۴] https://blogs.oracle.com/linux/post/an-introduction-to-the-io-uring-asynchronous-io-framework

[۵] https://developers.redhat.com/articles/2023/04/12/why-you-should-use-iouring-network-io

[۶] https://github.com/falcosecurity/falco

[۷] https://github.com/cilium/tetragon

[۸] https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html

[۹] https://thehackernews.com/2025/04/linux-iouring-poc-rootkit-bypasses.html