LinkProبر اساس یافته‌های Synacktiv، تحقیقات در مورد به خطر افتادن یک زیرساخت میزبانی از خدمات وب آمازون (AWS) منجر به کشف یک روت کیت جدید GNU/Linux با نام LinkPro شده است.

Théo Letailleur، محقق امنیتی، گفت[۱]: «این دربِ پشتی دارای قابلیت‌هایی است که بر نصب دو ماژول [۲]eBPF [فیلتر بسته برکلی توسعه‌یافته] تکیه می‌کنند، از یک سو برای پنهان کردن خود، و از سوی دیگر با دریافت یک بسته جادویی از راه دور فعال می‌شود».

این آلودگی، به گفته شرکت امنیت سایبری فرانسوی، شامل بهره‌برداری مهاجمان از یک سرور جنکینز در معرض آسیب‌پذیر به [۳]CVE-2024-23897 (امتیاز ۹٫۸ در CVSS) به‌عنوان نقطه شروع بود، که به دنبال آن یک تصویر Docker Hub مخرب به نام “kvlnt/vv. (اکنون چندین مورد حذف شده است) روی cVE-2024-23897 مستقر شد.

تصویر Docker شامل یک پایه لینوکس کالی به همراه یک پوشه به نام “app” است که شامل سه فایل است:

  • sh، یک اسکریپت پوسته برای راه‌اندازی سرویس SSH و اجرای دو فایل باقی‌مانده
  • لینک، یک برنامه منبع باز به نام vnt که به‌عنوان سرور VPN عمل می‌کند[۴] و با اتصال به wherewego[.]top:29872 قابلیت‌های پروکسی را فراهم می‌کند و به مهاجم اجازه می‌دهد از هر کجا به سرور آسیب‌دیده متصل شود و از آن به‌عنوان یک پروکسی برای دسترسی به سرورهای دیگر استفاده کند.
  • برنامه، یک دانلودکننده مبتنی بر Rust به نام vGet که یک بار VShell رمزگذاری شده[۵] را از یک سطل S3 دریافت می‌کند، که سپس با سرور فرمان و کنترل (C2) خود (۵۶٫۱۵۵٫۹۸[.]۳۷) از طریق اتصال WebSocket ارتباط برقرار می‌کند.

همچنین دو نوع بدافزار دیگر به گره‌های Kubernetes تحویل داده شد، یک قطره‌چکان که درب پشتی دیگری vShell را تعبیه کرده بود، و یک روت کیت لینک پرو که به زبان Golang نوشته شده بود. بدافزار مخفی بسته به پیکربندی آن می‌تواند در حالت غیرفعال (معروف به معکوس) یا فعال (معروف به جلو) عمل کند و به آن اجازه می‌دهد فقط پس از دریافت یک بسته TCP خاص به دستورات سرور C2 گوش دهد یا مستقیماً با سرور تماس برقرار کند.

درحالی‌که حالت فوروارد از پنج پروتکل ارتباطی مختلف ازجمله HTTP، WebSocket، UDP، TCP و DNS پشتیبانی می‌کند، حالت معکوس فقط از پروتکل HTTP استفاده می‌کند. توالی کلی رویدادها به شرح زیر آشکار می‌شود:

  • ماژول “Hide” eBPF را نصب کنید که حاوی برنامه‌های eBPF از نوع Tracepoint و Kretprobe است تا فرآیندها و فعالیت شبکه خود را پنهان کند.
  • اگر نصب ماژول “Hide” ناموفق بود، یا اگر غیرفعال شده است، کتابخانه مشترک “so” را در /etc/ld.so.preload نصب کنید.
  • در صورت استفاده از حالت معکوس، ماژول eBPF “Knock” را نصب کنید، که شامل دو برنامه eBPF از نوع مسیر داده eXpress (XDP) و کنترل ترافیک (TC) است تا اطمینان حاصل شود که کانال ارتباطی C2 فقط پس از دریافت بسته جادویی فعال می‌شود.
  • با راه‌اندازی یک سرویس [۶]systemd به پایداری دست یابید.
  • دستورات C2 را اجرا کنید.
  • در صورت وقفه (سیگنال‌های SIGHUP، SIGINT و SIGTERM)، ماژول‌های eBPF را حذف کنید و /etc/libld.so اصلاح‌شده را حذف کنید و آن را به نسخه اصلی خود بازگردانید.

LinkPro

برای رسیدن به این هدف، LinkPro فایل پیکربندی “/etc/ld.so.preload” را تغییر می‌دهد تا مسیر کتابخانه مشترک libld.so را که درون آن تعبیه شده است، با هدف اصلی پنهان کردن مصنوعات مختلفی که می‌توانند حضور درب پشتی را آشکار کنند، مشخص می‌کند.

Letailleur توضیح داد: “به لطف وجود مسیر /etc/libld.so در /etc/ld.so.preload، کتابخانه مشترک libld.so نصب‌شده توسط LinkPro توسط همه برنامه‌هایی که به /lib/ld-linux.so14 نیاز دارند بارگیری می‌شود. این شامل تمام برنامه‌هایی است که از کتابخانه‌های مشترک استفاده می‌کنند، مانند glibc.”

هنگامی‌که libld.so در اجرای یک برنامه بارگذاری می‌شود، به‌عنوان‌مثال /usr/bin/ls، چندین تابع libc را (قبل از glibc) قلاب می‌کند تا نتایجی را تغییر دهد که می‌تواند حضور LinkPro را آشکار کند.”

بسته جادویی، به ازای Synacktiv، یک بسته TCP با مقدار اندازه پنجره ۵۴۳۲۱ است. هنگامی‌که این بسته شناسایی شد، ماژول Knock آدرس IP منبع بسته و تاریخ انقضا مربوط به یک ساعت را به‌عنوان مقدار آن ذخیره می‌کند. سپس برنامه بسته‌های TCP اضافی را که آدرس IP منبع آن‌ها با IP ذخیره‌شده قبلی مطابقت دارد، تحت نظر دارد.

به‌عبارت‌دیگر، عملکرد اصلی LinkPro منتظر ماندن برای ارسال یک بسته جادویی است، پس‌ازآن عامل تهدید یک پنجره یک‌ساعته برای ارسال دستورات به پورت موردنظر خود دارد. ماژول Knock همچنین برای تغییر هدر بسته TCP ورودی به‌منظور جایگزینی پورت مقصد اصلی با پورت شنیداری LinkPro (2333) و تغییر بسته خروجی برای جایگزینی پورت منبع (۲۲۳۳) با پورت اصلی طراحی شده است.

Synacktiv گفت: «هدف از این مانور این است که به اپراتور اجازه دهد تا دریافت فرمان را برای LinkPro با عبور از هر پورت مجاز فایروال جلویی فعال کند. این همچنین باعث می‌شود که ارتباط بین گزارش‌های فایروال جلویی و فعالیت شبکه میزبان آسیب‌دیده پیچیده‌تر شود.»

دستورات پشتیبانی شده توسط LinkPro شامل اجرای /bin/bash در شبه ترمینال، اجرای فرمان پوسته، شمارش فایل‌ها و دایرکتوری‌ها، انجام عملیات فایل، دانلود فایل‌ها و راه‌اندازی یک تونل پراکسی SOCKS5 است. در حال حاضر مشخص نیست چه کسی پشت این حمله است، اما گمان می‌رود که عوامل تهدید انگیزه مالی داشته باشند.

شرکت روت کیت برای پنهان کردن خود در سطح هسته از برنامه‌های eBPF از نوع tracepoint و kretprobe برای ره‌گیری فراخوانی‌های سیستم getdents (مخفی کردن فایل) و sys_bpf (پنهان کردن برنامه‌های BPF خودش) استفاده می‌کند. نکته قابل‌توجه این است که این تکنیک به یک پیکربندی هسته خاصی نیاز دارد (CONFIG_BPFORIP).

“اگر مورد دوم وجود نداشته باشد، LinkPro با بارگیری یک کتابخانه مخرب از طریق فایل /etc/ld.so.preload برای اطمینان از مخفی بودن فعالیت‌های خود در فضای کاربر، به روش جایگزین بازمی‌گردد.”

  منابع

[۱] https://www.synacktiv.com/en/publications/linkpro-ebpf-rootkit-analysis

[۲] https://thehackernews.com/2025/04/new-bpfdoor-controller-enables-stealthy.html

[۳] https://nvd.nist.gov/vuln/detail/cve-2024-23897

[۴] https://github.com/vnt-dev/vnt

[۵] https://apa.aut.ac.ir/?p=11522

[۶] https://redcanary.com/blog/threat-detection/attck-t1501-understanding-systemd-service-persistence

[۷] https://thehackernews.com/2025/10/linkpro-linux-rootkit-uses-ebpf-to-hide.html