تحلیل قانون: فایل باینری دات‌نت در مسیر غیر استاندارد

Windows DotNet Binary in Non Standard Path - Rule Analysis

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

این قانون اجرای فایل‌های باینری و ابزارهای چارچوب دات‌نت (مانند csc.exe, vbc.exe, jsc.exe و غیره) را از مسیرهایی غیر از پوشه‌های استاندارد ویندوز (مانند System32, SysWOW64, Microsoft.NET) شناسایی می‌کند. مهاجمان معمولاً این ابزارهای قانونی را به پوشه‌های قابل نوشتن توسط کاربر (مانند Temp یا Public) کپی می‌کنند تا از محدودیت‌های امنیتی مبتنی بر مسیر (Path-based Whitelisting) عبور کنند یا کدهای مخرب را کامپایل و اجرا نمایند.

Suspicious Paths: C:\Users\*, C:\Temp\*, D:\*
Excluded Paths: *\Windows\Microsoft.NET\*, *\System32\*
Technique: Masquerading (T1036) / Defense Evasion

ابزارهای .NET به دلیل قابلیت کامپایل و اجرای کد در حافظه، مورد علاقه مهاجمان برای حملات "Living Off The Land" هستند.

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

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

  • اجرا از پوشه‌های موقت: اجرای کامپایلرها (مانند csc.exe) از پوشه‌هایی مثل C:\Users\Public یا %TEMP%. این رفتار معمولاً برای کامپایل بدافزار در لحظه (On-the-fly) استفاده می‌شود.
  • تغییر نام فایل: کپی کردن ابزار اصلی با نامی دیگر (مثلاً mytool.exe) برای فریب تیم امنیت.
  • والد مشکوک: اجرای این ابزارها توسط اسکریپت‌های پاورشل یا فایل‌های آفیس.

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

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

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

  • نصب نرم‌افزارهای خاص: برخی نرم‌افزارهای قدیمی یا خاص ممکن است نسخه‌های اختصاصی دات‌نت را در پوشه خود نصب کنند.

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

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

نشانه قطعی خطر: اگر هش فایل باینری با نسخه اصلی مایکروسافت مطابقت دارد اما از پوشه‌ای مانند C:\Users\Public\Music اجرا شده است، سیستم آلوده است.

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

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

  • Sysmon Event ID 1 (Process Creation)
  • Windows Security Event 4688

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

  • Endpoint.Processes

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

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

process_path
process_name
original_file_name
parent_process_path
user
dest