بدافزارها

روت‌کیت Drovorub
۲۸ مرداد ۱۳۹۹

روت‌کیت Drovorub

آژانس امنیت ملی (NSA) و دفتر تحقیقات فدرال (FBI) ایالات متحده امریکا در گزارش امنیتی که اخیراً منتشر نموده‌اند نسبت به وجود بدافزار لینوکسی ناشناخته موسوم به روت‌کیت Drovorub هشدار داده و آن را به گروه سایبری APT28 نسبت داده‌اند. در این گزارش چندین راهکار برای شناسایی مؤثر فعالیت بدافزار Drovorub ارائه شده است. در بسیاری از این راهکارها، شناسایی بدافزار در مقیاس بزرگ بر روی یک میزبان، چالش بسیار بزرگی است. NSA و FBI در گزارش خود صریحاً اعلام نموده‌اند که سیستم‌هایی با هسته لینوکس ۳٫۷ و پایین‌تر، به دلیل فقدان سیستم مناسب تأیید امضای هسته، مستعد ابتلا به بدافزار Drovorub هستند.

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

پویش روت‌کیت‌ها

درست همانند یک پویشگر بدافزار، پویشگر روت‌کیت نیز می‌تواند فرآیندهای سطح پایین را پویش نموده و احتمال بارگیری کدهای مخرب در هنگام راه‌اندازی سیستم را شناسایی کند. در اینجا به دو نرم‌افزار مورد استفاده برای شناسایی روت‌کیت اشاره می‌کنیم:

  • Chrootkit: یک پویشگر لینوکسی برای کشف روت‌کیت‌هایی که به سختی شناسایی می‌گردند.
  • Rkhunter: یک پویشگر لینوکسی برای شناسایی بدافزارهای درب پشتی و کدهای اکسپلویت احتمالی.

در مورد روت‌کیت Drovorub، توصیه می‌گردد که علاوه بر موارد فوق، حافظه سیستم توسط ابزارهای فارنزیک مثل Volatility نیز بررسی گردد. با استفاده از افزونه Linux_Psxview در Volatility می‌توان حضور روت‌کیت Drovorub را شناسایی نمود حتی اگر در حالت معمول از طریق PSlist شناسایی نگردد.

امن‌سازی هسته لینوکس

امروزه مشاورین امنیت توصیه می‌کنند که سازمان‌ها در سیستم‌های خود حتماً ویژگی «بوت ایمن UEFI» را در حالت “Full” یا ” Thorough” فعال نمایند. بوت ایمن UEFI نیاز به فریمور و هسته‌های امضا شده دارد. از آنجایی که امکان بارگیری هیچ درایور امضا نشده‌ای برای سخت‌افزار وجود ندارد، میزان حملات از این طریق نیز کاهش خواهد یافت. چراکه با این روش، تزریق یک ماژول‌ مخرب هسته به درون سیستم و همچنین پایداری روت‌کیت‌های امضانشده پس از راه‌اندازی مجدد سیستم به شدت دشوار می‌گردد. توجه به این نکته نیز ضروری است که ویژگی بوت ایمن (Secure Boot) هنوز در تمام توزیع‌های لینوکسی یکپارچه‌سازی نشده است. چالش‌های دیگری نیز با فعال‌سازی بوت ایمن ممکن است پدیدار گردند. اغلب با هر بار به‌روزرسانی هسته لینوکس یا ماژول‌های آن، دخالت کاربر نیز مورد نیاز است. همچنین ممکن است برخی از محصولات در حالت بوت ایمن اجرا نگردند. این مقاله منتشر شده توسط VMware، راهکارهایی را برای حل مشکلات مربوط به بوت ایمن ارائه داده است.

امن‌سازی هسته

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

امضا نمودن ماژول هسته

از زمان انتشار نسخه ۳٫۷ لینوکس، هسته آن از امضاهای دیجیتال در ماژول‌هایی که قابلیت بارگیری دارند پشتیبانی می‌کند. این ویژگی با اعمال تنظیماتی در CONFIG_MODULE_SIG، در هسته قابل فعال‌سازی است. این تغییرات، امضای خودکار ماژول را در مرحله ساخت هسته فعال نموده و تعیین می‌کند که کدام الگوریتم هش مورد استفاده قرار گیرد. به علاوه، کلیدهای محلی و راه دور نیز می‌توانند در این مورد بکار گرفته شوند. ضمناً برخی از این تغییرات ممکن است نیاز به امضاهای معتبر داشته باشند. با توجه به موارد گفته شده، تنها ماژول‌های معتبر قابل بارگیری هستند و در نتیجه سطح حملات به طور قابل ملاحظه‌ای کاهش خواهد یافت.

قوانین بارگیری ماژول

تنها ماژول‌های شناخته شده باید قابل بارگیری باشند. پشتیبانی محدود از ماژول‌ها (عدم صدور مجوز برای بارگیری ماژول‌ها و تعیین اینکه کدام ماژول‌ها استثنا هستند) می‌تواند به طور پیش‌فرض فعال گردد. از دستور زیر می‌توان برای غیر فعال کردن بارگیری استفاده کرد:

sysctl kernel.modules_disabled=1

برخی از ماژول‌ها ممکن است در هنگام راه‌اندازی سیستم بارگیری نشوند و بر حسب نیاز در حین فعالیت سیستم، بارگیری گردند. برای اطمینان از در دسترس بودن این ماژول‌ها، باید در هنگام راه‌اندازی بارگیری شوند قبل از اینکه غیرفعال گردند. برای بارگیری این ماژول‌ها، آن‌ها را درون فایلی که در مسیر /etc/modules-load.d قرار دارد، لیست کنید.

غیرفعال‌سازی کامل ماژول‌ها

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

قفل نمودن هسته لینوکس

امکان قفل نمودن هسته، از نسخه ۵٫۴ به هسته لینوکس اضافه شده است. حتی اگر حالت بوت ایمن نیز فعال باشد، root سیستم می‌تواند هسته را تغییر داده و برای مثال یک وصله را نصب کند یا یک فرآیند پایدار را ایجاد نماید. ویژگی قفل نمودن هسته برای ارائه یک سیاست جلوگیری از اصلاح کد هسته توسط root ایجاد شده است. این ویژگی دو حالت دارد: «یکپارچگی» و «محرمانگی». به طور کلی به سازمان‌ها توصیه می‌گردد که حالت «یکپارچگی» را مورد استفاده قرار دهند و حالت «محرمانگی» تنها برای سیستم‌های خاص بکار گرفته شود.

امن‌سازی sysctl.conf

فایل sysctl.conf حاوی پیکربندی اصلی یک سیستم لینوکسی است. با اعمال پیش‌فرض‌های امنیتی، تمام سیستم از یک زیربنای ایمن‌تر بهره‌مند خواهد شد. برای مثال غیرفعال کردن IP v6، نادیده گرفتن بسته‌های Broadcast در شبکه، فعال‌سازی ASLR و DEP/NX. برای اطلاعات بیشتر به این پیوند مراجعه کنید:

https://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening/

فعال‌سازی SELinux

SELinux یک ویژگی امنیتی پیشرفته برای هسته لینوکس است که امکان کنترل دسترسی جزء به جزء را با سیاست‌های امنیتی فراهم می‌کند. این ویژگی به طور پیش‌فرض در توزیع‌های Centos و Red Hat فعال است و در سایر توزیع‌ها نیز به راحتی فعال می‌گردد. اطلاعات بیشتر در:

https://www.linode.com/docs/quick-answers/linux/how-to-install-selinux-on-ubuntu-18-04/

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security-enhanced_linux/index

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

سایر موارد امن‌سازی سیستم‌های لینوکسی

در این نوشتار، ما بیشتر بر روی امن‌سازی هسته لینوکس متمرکز شده‌ایم. با این حال راهکارهای زیادی برای امن‌سازی خود سیستم‌عامل لینوکس نیز وجود دارد که عبارتند از:

  • حذف نرم‌افزارهای بلااستفاده
  • غیرفعال‌سازی سرویس‌های بلااستفاده
  • فعال‌سازی ثبت رویداد
  • کنترل دسترسی API
  • عدم استفاده مکرر از حساب کاربری root
  • رعایت اصل حداقل بودن اختیارات
  • پشتیبان‌گیری منظم

افزایش آنتروپی ASLR از طریق sysctl برای دشوارسازی اکسپلویت کردن سیستم. این کار از طریق افزایش تعداد کتابخانه‌هایی که می‌توانند در حافظه ذخیره شوند امکان‌پذیر است.

جزئیات بیشتر در خصوص امن‌سازی سیستم‌های لینوکسی از طریق پیوند زیر قابل مشاهده است:

https://www.cisecurity.org/cybersecurity-best-practices/

نتیجه‌گیری

هسته لینوکس و امن‌سازی آن، اغلب به عنوان یک چالش برای سازمان‌ها به شمار می‌رود و به سادگیِ امن‌سازیِ سایر سیستم‌عامل‌ها نیست. با این حال با توجه به گزارش منتشر شده توسط NSA-FBI و همچنین سازگاری بدافزارهای لینوکسی، به سازمان‌ها توصیه می‌گردد تا ضمن هوشیاری در این زمینه، تا حد امکان سیستم‌های لینوکسی خود را امن نموده و محصولات امنیتی مناسبی را برای این منظور بکارگیری نمایند.


تازه ترین ها