تحلیل قانون: اجرای شل توسط جاوا

Windows Java Spawning Shells - Rule Analysis

چرا این هشدار صادر می‌شود؟

این قانون زمانی فعال می‌شود که یک فرآیند مرتبط با جاوا (مانند java.exe) یا پردازش‌های وب سرور (مانند w3wp.exe) به عنوان والد، یک مفسر دستور (مانند cmd.exe یا powershell.exe) را به عنوان فرزند اجرا کند. این رفتار یکی از نشانه‌های اصلی بهره‌برداری از آسیب‌پذیری‌های وب اپلیکیشن‌ها است.

Parent Process: java.exe, w3wp.exe
Child Process: cmd.exe, powershell.exe, pwsh.exe
Technique: Exploit Public-Facing Application (T1190)

بسیاری از سرویس‌های سازمانی (مانند WebLogic، Tomcat، Jenkins) با جاوا اجرا می‌شوند. اگر آن‌ها شل باز کنند، معمولاً به معنی اجرای کد از راه دور (RCE) است.

دسته‌بندی سناریوهای مشکوک

سناریوهای پرخطر

  • آسیب‌پذیری‌های اجرای کد (مانند Log4Shell): مهاجم با ارسال ورودی مخرب به سرور وب، باعث می‌شود پروسه جاوا دستور دانلود یا اجرا را صادر کند.
  • وب‌شل‌های JSP: آپلود یک فایل مخرب روی سرور که دستورات سیستمی را اجرا می‌کند.
  • اجرای دستورات شناسایی: مشاهده دستورات شبکه یا کاربری بلافاصله پس از اجرای شل توسط جاوا.

سناریوهای متوسط

  • برنامه‌های سفارشی: برخی برنامه‌های داخلی قدیمی ممکن است برای انجام کارهایی مثل کپی فایل یا بکاپ، از فراخوانی خط فرمان استفاده کنند.
  • ابزارهای ساخت و توسعه: اگر روی سیستم توسعه‌دهنده باشد، ابزارهایی مثل Maven یا Gradle ممکن است اسکریپت‌هایی را اجرا کنند.

سناریوهای کم‌خطر (مثبت کاذب)

  • سرورهای بیلد (Jenkins): جنکینز ذاتاً وظیفه دارد اسکریپت‌های بیلد و بچ فایل‌ها را اجرا کند. این رفتار در سرورهای CI/CD طبیعی است.
  • نرم‌افزارهای مدیریتی جاوا: ابزارهایی که برای مدیریت دیتابیس یا سرور نصب شده‌اند و به صورت قانونی اسکریپت اجرا می‌کنند.

ارزیابی خطر و تریاژ

برای تشخیص واقعی بودن تهدید یا مثبت کاذب بودن، این موارد را بررسی کنید:

نشانه قطعی خطر: اگر سرور مورد نظر در دسترس اینترنت است و جاوا دستوراتی برای دانلود فایل یا اجرای اسکریپت کد شده صادر کرده، حمله قطعی است.

الزامات داده و مدل‌ها

اطلاعات مورد نیاز

  • Sysmon Event ID 1
  • Windows Security Event 4688

دیتامدل‌های مورد استفاده

  • Endpoint.Processes

فیلدهای کلیدی جهت بررسی

هنگام تحلیل لاگ‌ها در Splunk، این فیلدها حیاتی هستند:

parent_process_name
process_name
CommandLine
user
dest
parent_process_id