بحرانی Criticalآسیب‌پذیری‌های بحرانیبهره‌برداری فعالمحتوای نمونه

آسیب‌پذیری بحرانی اجرای کد از راه دور در کتابخانه Apache Log4j (Log4Shell)

شناسه هشدار: آپا-۱۴۰۰-۱۲۲۳انتشار: ۱۹ آذر ۱۴۰۰آخرین به‌روزرسانی: ۱۹ آذر ۱۴۰۰

خلاصه هشدار

آسیب‌پذیری CVE-2021-44228 در قابلیت JNDI کتابخانه پرکاربرد ثبت رخداد Apache Log4j 2 به مهاجم بدون احراز هویت اجازه می‌دهد با ارسال یک رشته دست‌کاری‌شده که در گزارش‌ها ثبت می‌شود، کد دلخواه را روی سرور اجرا کند. این آسیب‌پذیری به‌طور گسترده مورد بهره‌برداری قرار گرفته است.

سطح اهمیت
بحرانی Criticalامکان نفوذ گسترده یا اجرای کد از راه دور بدون پیش‌نیاز؛ اقدام فوری لازم است.
امتیاز CVSS
CVSS10.0
وضعیت
به‌روزرسانی‌شده
تاریخ انتشار

محصولات یا سامانه‌های تحت تأثیر

  • Apache Log4j 2 از نسخه 2.0-beta9 تا 2.14.1 (آسیب‌پذیری اصلی CVE-2021-44228)
  • Apache Log4j 2.15.0 در برخی پیکربندی‌های غیرپیش‌فرض (CVE-2021-45046)
  • برنامه‌ها و محصولات جاوا که مؤلفه log4j-core را به‌صورت مستقیم یا وابستگی غیرمستقیم به کار می‌برند

شرح فنی

Apache Log4j 2 یکی از پرکاربردترین کتابخانه‌های ثبت رخداد در برنامه‌های جاوا است. در نسخه‌های آسیب‌پذیر، قابلیت «جست‌وجو» (Lookup) در پیام‌های ثبت‌شده، امکان ارزیابی عباراتی مانند ${jndi:ldap://…} را فراهم می‌کرد. اگر مهاجم بتواند چنین رشته‌ای را در هر داده‌ای که توسط برنامه ثبت می‌شود (مانند سرآیند User-Agent، نام کاربری یا پارامترهای درخواست) قرار دهد، برنامه با سرور تحت کنترل مهاجم ارتباط برقرار کرده و ممکن است کد دلخواه او را بارگذاری و اجرا کند.

چرا این آسیب‌پذیری بحرانی است؟

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

پس از انتشار وصله اولیه (نسخه 2.15.0)، آسیب‌پذیری‌های تکمیلی از جمله CVE-2021-45046 نیز شناسایی شد؛ به همین دلیل ارتقا به آخرین نسخه‌های اصلاح‌شده توصیه می‌شود.

راهکار کاهش ریسک

  • فهرستی از همه برنامه‌ها و محصولاتی که از log4j-core استفاده می‌کنند (شامل وابستگی‌های غیرمستقیم) تهیه کنید.
  • در صورت عدم امکان به‌روزرسانی فوری، کلاس JndiLookup را از مسیر کلاس حذف کنید. توجه کنید که راهکار قبلی تنظیم formatMsgNoLookups به‌تنهایی کافی نیست.
  • ارتباطات خروجی غیرضروری سرورها به اینترنت (به‌ویژه LDAP و RMI) را محدود کنید.
  • گزارش‌ها را برای الگوهایی مانند ${jndi: و شکل‌های مبهم‌سازی‌شده آن بررسی کنید و سامانه‌های در معرض را از نظر نشانه‌های نفوذ ارزیابی کنید.

وصله و به‌روزرسانی

به نسخه‌های اصلاح‌شده Log4j ارتقا دهید: 2.17.1 برای جاوا ۸ و بالاتر، 2.12.4 برای جاوا ۷ و 2.3.2 برای جاوا ۶. این نسخه‌ها آسیب‌پذیری‌های بعدی مرتبط را نیز برطرف می‌کنند. برای محصولات تجاری، به‌روزرسانی ارائه‌شده توسط تولیدکننده را نصب کنید.

منابع

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