ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware

ترجمه و تحلیل عمیق باج‌افزار Lynx Ransomware

مقدمه

ترجمه و تحلیل عمیق باج‌افزار Lynx Ransomware

باج‌افزار لینکس به‌عنوان یک تهدید جدید و پیشرفته در حوزه بدافزارها از اواسط سال 2024 فعالیت خود را آغاز کرده است. این بدافزار تاکنون بیش از 20 قربانی را در صنایع گوناگون تحت تأثیر قرار داده است. پس از نفوذ به سیستم، اقدام به رمزگذاری فایل‌های مهم کرده و پسوند ‘.lynx’ را به آن‌ها اضافه می‌کند. علاوه بر این، برای جلوگیری از بازیابی اطلاعات، فایل‌های پشتیبان، از جمله کپی‌های سایه، را نیز حذف می‌کند.

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

بررسی‌ها نشان می‌دهد که این بدافزار شباهت‌هایی با نسخه پیشین باج‌افزار INC دارد، که احتمال خرید کد منبع این باج‌افزار توسط سازندگان آن را مطرح می‌کند. اولین نمونه این تهدید توسط فردی با نام کاربری ‘rivitna2’ شناسایی شد. بررسی پایگاه داده ویروس توتال (VT) نشان داد که این باج‌افزار تنها توسط 26 آنتی‌ویروس شناسایی شده است، که نشان‌دهنده نرخ پایین تشخیص برای یک بدافزار در این سطح است. از این رو، تصمیم به بررسی دقیق‌تر آن گرفته شد

lynx

بررسی اجمالی

ترجمه و تحلیل عمیق باج‌افزار Lynx Ransomware

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

  • توقف اجرای برنامه‌ها و سرویس‌های سیستم
  • جستجو و شناسایی دایرکتوری‌ها
  • افزایش سطح دسترسی خود در سیستم
  • حذف نسخه‌های پشتیبان (Shadow Copies)
  • رمزگذاری تمام درایوهای متصل و پوشه‌های مشترک
  • تغییر تصویر پس‌زمینه دسکتاپ
  • چاپ یادداشت باج‌خواهی

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

–file رمزگذاری فایل مشخص شده
–dir رمزگذاری دایرکتوری مشخص شده
–help نمایش لیست تمام آرگومان‌ها و نحوه استفاده از آن‌ها
–verbose فعال کردن حالت مفصل (نمایش جزئیات بیشتر)
–stop-processes توقف فرآیندها از طریق RestartManager
–encrypt-network رمزگذاری اشتراک‌های شبکه
–load-drives سوار کردن حجم‌های موجود
–hide-cmd پنهان کردن پنجره کنسول (استفاده نمی‌شود)
–no-background تغییر تصویر پس‌زمینه را انجام ندهید
–no-print یادداشت را روی چاپگرها چاپ نکنید
–kill متوقف سازی فرآیندها و سرویس‌ها
–safe-mod ورود به حالت ایمن (استفاده نمی‌شود)

فهرست کاملی از شاخص‌های خطر (Indicators of Compromise – IOCs) در انتهای این مقاله ارائه شده است.

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

تحلیل کامل باج‌افزار

باج‌افزار با فراخوانی تابع اصلی (main function) شروع به کار می‌کند و بر اساس پارامترهای منتقل‌شده به باج‌افزار، پرچم‌ها را اختصاص می‌دهد.

خاتمه فرآیند

با انتقال پرچم kill، بدافزار با شمارش تمام فرآیندهای در حال اجرا آغاز می‌شود و هر فرآیندی که نام آن شامل هر یک از کلمات زیر باشد را خاتمه می‌دهد:

  • sql
  • veeam
  • backup
  • exchange
  • java
  • notepad

ابتدا، CreateToolhelp32Snapshot با پرچم TH32CS_SNAPPROCESS فراخوانی می‌شود تا یک عکس فوری از تمام فرآیندهای موجود در سیستم گرفته شود. عبور مقدار 0 نشان می‌دهد که تمام فرآیندها شامل می‌شوند.

سپس، Process32FirstW اطلاعات مربوط به اولین فرآیند در عکس فوری را بازیابی کرده و آن را در ساختار pe ذخیره می‌کند.

برای هر فرآیند، کد نام آن (pe.szExeFile) را با آرایه نام‌های فرآیندهای هدف با استفاده از یک تابع جستجوی بدون در نظر گرفتن حروف بزرگ و کوچک مقایسه می‌کند.

اگر نام یک فرآیند با نام‌های هدف مطابقت داشته باشد، OpenProcess با پرچم PROCESS_TERMINATE فراخوانی می‌شود تا یک هندل (handle) برای فرآیند به دست آید.

در نهایت، TerminateProcess برای خاتمه دادن فرآیند مطابقت‌یافته فراخوانی می‌شود.

Lynx

تابع شمارش و مدیریت خدمات

این تابع وظیفه شمارش خدمات سیستم، همراه با خدمات وابسته به آن‌ها، و خاتمه دادن به خدمات هدف را بر عهده دارد. در صورتی که نام نمایشی یا نام سرویس شامل یکی از کلمات کلیدی مشخص‌شده باشد، فرآیند خاتمه انجام می‌شود.

  1. استفاده از OpenSCManagerW:
    این تابع برای دسترسی به پایگاه داده مدیر کنترل سرویس (SCM) با مجوزهای کامل استفاده می‌شود.
  2. شمارش خدمات:
    خدمات سیستم شناسایی شده و اطلاعات آن‌ها در ساختاری به نام lpServices ذخیره می‌شود.
  3. بررسی و پردازش:
    یک حلقه به بررسی هر یک از خدمات موجود در لیست می‌پردازد تا مشخص کند آیا نام آن‌ها با کلمات کلیدی هدف تطابق دارد یا خیر.
  4. خاتمه خدمات:
    در صورت یافتن تطابق، تابع stop_services برای توقف سرویس هدف و همچنین سرویس‌های وابسته به آن فراخوانی می‌شود.
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware1

تابع Stop Services

این تابع تلاش می‌کند تا یک سرویس مشخص را به همراه خدمات وابسته آن متوقف کند.

OpenSCManagerW برای به دست آوردن یک هندل به مدیر کنترل سرویس با مجوزهای دسترسی کامل استفاده می‌شود.

OpenServiceW برای باز کردن سرویس مشخص شده با حقوق دسترسی مورد نیاز (SERVICE_QUERY_STATUS، SERVICE_ENUMERATE_DEPENDENTS و SERVICE_STOP) استفاده می‌شود. (

  • این تابع برای باز کردن یک سرویس خاص و دسترسی به اطلاعات و کنترل آن استفاده می‌شود.)

QueryServiceStatusEx برای پرس‌وجو وضعیت فعلی سرویس استفاده می‌شود. (این تابع برای دریافت اطلاعات مربوط به وضعیت فعلی یک سرویس مانند وضعیت اجرا، وضعیت توقف و … استفاده می‌شود)

خدمات وابسته شمارش می‌شوند و با فراخوانی stop_services برای هر سرویس وابسته، به صورت بازگشتی متوقف می‌شوند.

ControlService برای ارسال دستور توقف به سرویس فراخوانی می‌شود.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware2
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware3

یادداشت باج‌خواهی ابتدا با استفاده از روش Base64 رمزگشایی می‌شود و سپس به یک تابع منتقل می‌شود تا هر رخداد %id% با شناسه قربانی 66a204aee7861ae72f21b4e0 جایگزین شود.

				
					Your data is stolen and encrypted.
Your unique identificator is %id%
Use this TOR site to contact with us:
http://lynxch2k5xi35j7hlbmwl7d6u2oz4vp2wqp6qkwol624cod3d6iqiyqd.onion/login

Use this email to contact with us:
martina.lestariid1898@proton.me

Our blog
 ~ TOR Network: http://lynxbllrfr5262yvbgtqoyq76s7mpztcqkv6tjjxgpilpma7nyoeohyd.onion/disclosures
 ~ Mirror #1: http://lynxblog.net/ 
				
			
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware4
				
					/fix performance problems
				
			

بدافزار با استفاده از مکانیزم I/O Completion Port ویندوز، شروع به ایجاد یک محیط چند رشته‌ای برای عملیات رمزنگاری می‌کند.

ابتدا، فراخوانی تابع اطلاعات مربوط به سیستم فعلی، مانند تعداد پردازنده‌ها، را در ساختار SystemInfo پر می‌کند.

تعداد رشته‌هایی که باید استفاده شوند، چهار برابر تعداد پردازنده‌های موجود در سیستم تنظیم می‌شود. این هدف، بهره‌برداری از چند رشته‌ای برای سرعت بخشیدن به رمزنگاری دیسک را دنبال می‌کند.

سپس، یک I/O Completion Port برای مدیریت عملیات‌های ورودی/خروجی ناهمزمان ایجاد می‌شود.

  • 0xffffffff: این پارامتر نشان می‌دهد که در ابتدا هیچ هندل فایلی با پورت تکمیل ارتباط ندارد.
  • 0: این پارامتر مشخص می‌کند که پورت تکمیل به پورت موجودی مرتبط نیست.
  • 0: کلید تکمیل روی صفر تنظیم شده است و آخرین پارامتر حداکثر تعداد رشته‌هایی را که می‌توانند به‌طور همزمان اجرا شوند، مشخص می‌کند. اگر صفر باشد، به طور پیش‌فرض برابر با تعداد پردازنده‌ها خواهد بود.

یک رشته برای هر پردازنده ایجاد می‌شود تا تکمیل I/O را مدیریت کند.

هر رشته تابع رمزنگاری را اجرا می‌کند و از CompletionPort برای همگام‌سازی استفاده می‌کند.

تابع رمزنگاری در ادامه توضیح داده خواهد شد.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware5

تابع شمارش دایرکتوری

این تابع تلاش می‌کند تا یک فایل README.txt را در یک دایرکتوری مشخص ایجاد کند. برای یافتن اولین فایل در دایرکتوری، از تابع FindFirstFileW استفاده می‌کند.

یک حلقه بر روی هر فایل و دایرکتوری تکرار می‌شود. نمادهای خاص دایرکتوری مانند ‘.’ و ‘..’ و همچنین نقاط بازنویسی (reparse points) نادیده گرفته می‌شوند.

برای هر فایل، تابع بررسی می‌کند که آیا آن یک فایل سیستمی است یا دارای پسوندهای خاصی مانند ‘.exe’, ‘.msi’, ‘.dll’, ‘.lynx’ است. اگر فایل با این معیارها مطابقت نداشته باشد و نام آن LYNX یا README.txt نباشد، برای رمزگذاری با ایجاد یک رشته جدید در صف قرار می‌گیرد.

برای هر زیر دایرکتوری، یک فراخوانی بازگشتی به ‘enum_dir’ انجام می‌شود.

دایرکتوری‌های خاصی مانند ‘windows’, ‘program files’ و سایر موارد نادیده گرفته می‌شوند تا از پردازش دایرکتوری‌های سیستم جلوگیری شود.

این تابع با “Program Files” و “Program Files (x86)” به صورت جداگانه برخورد می‌کند. برای هر زیر دایرکتوری در داخل آن‌ها، یک فراخوانی بازگشتی به ‘enum_dir’ انجام می‌شود تا دایرکتوری “microsoft sql server” را برای رمزگذاری جستجو کند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware6
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware67
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware8
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware9

آماده‌سازی تابع رمزنگاری

این تابع وظایف زیر را انجام می‌دهد:

  • بررسی دسترسی نوشتن: ابتدا بررسی می‌کند که آیا مجوز نوشتن برای فایلی که قرار است رمزگذاری شود، وجود دارد یا خیر.
  • افزایش سطح دسترسی (در صورت نیاز): اگر مجوز نوشتن وجود نداشته باشد، تلاش می‌کند تا سطح دسترسی خود را افزایش دهد و مجدداً دسترسی نوشتن را بررسی می‌کند.
  • توقف فرآیندها (در صورت نیاز): اگر پرچم ‘stop_processes_flag’ منتقل شده باشد، تابع تلاش می‌کند تا هر فرآیندی که در آن لحظه یک هندل باز به فایل دارد را متوقف کند.

عدم رمزگذاری در صورت عدم موفقیت: اگر تمام این تلاش‌ها ناموفق باشد، فایل رمزگذاری نخواهد شد.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware10

تابع بررسی دسترسی نوشتن

این تابع اساساً بررسی می‌کند که آیا بدافزار مجوز نوشتن برای فایلی که قرار است رمزگذاری شود، دارد یا خیر.

برای این کار، 36 بایت از کاراکتر “2” را در انتهای فایل می‌نویسد.

سپس بررسی می‌کند که آیا داده‌های نوشته شده واقعاً 36 بایت هستند یا خیر.

اگر چنین باشد، به این معنی است که داده‌ها با موفقیت نوشته شده‌اند و بدافزار دسترسی نوشتن به فایل را دارد.

SetFilePointerEx مکان‌نما فایل را به انتهای فایل منتقل می‌کند.

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

در نهایت، SetEndOfFile فایل را کوتاه می‌کند و به طور مؤثر داده‌های نوشته شده را حذف می‌کند

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware11

تابع افزایش سطح دسترسی

اگر بررسی دسترسی نوشتن با شکست مواجه شود، باج‌افزار تابع priv_escalation را فراخوانی می‌کند که تلاش می‌کند “SeTakeOwnershipPrivilege” را در توکن فرآیند فعلی فعال کند.

این امتیاز به فرآیند اجازه می‌دهد تا مالکیت یک شیء را بدون اعطای دسترسی اختیاری به آن بگیرد. با این امتیاز، کاربر می‌تواند مالکیت هر شیء قابل تأمین امنیت در سیستم را به دست آورد و در نتیجه به باج‌افزار دسترسی نوشتن اعطا کند.

از دیدگاه کد، نحوه اعطای دسترسی نوشتن به شرح زیر است:

  • تعیین مالکیت: تابع ابتدا مالکیت یک فایل یا دایرکتوری را گرفته و توصیفگر امنیتی آن را برای اعطای کنترل کامل به یک گروه مشخص تنظیم می‌کند.
  • ایجاد SID: AllocateAndInitializeSid برای ایجاد یک SID برای گروه مشخص شده فراخوانی می‌شود.
  • تنظیم ساختار EXPLICIT_ACCESS: ساختار EXPLICIT_ACCESS برای تعریف مجوزها (کنترل کامل) برای ACL جدید تنظیم می‌شود.
  • ایجاد ACL جدید: SetEntriesInAclW برای ایجاد یک ACL جدید که این مجوزها را اعطا می‌کند، فراخوانی می‌شود. 5-
  • تنظیم DACL: SetNamedSecurityInfoW برای تنظیم DACL (لیست کنترل دسترسی) برای فایل یا دایرکتوری استفاده می‌شود.
  • باز کردن توکن فرآیند: OpenProcessToken برای باز کردن یک هندل به توکن فرآیند فعلی استفاده می‌شود
  • دریافت LUID برای SeTakeOwnershipPrivilege: LookupPrivilegeValueW برای دریافت LUID (Unique Identifier) برای SeTakeOwnershipPrivilege استفاده می‌شود. 8-
  • فعال کردن امتیاز: AdjustTokenPrivileges برای فعال کردن SeTakeOwnershipPrivilege برای توکن دسترسی فرآیند فعلی فراخوانی می‌شود. این امتیاز برای تغییر مالک فایل یا دایرکتوری مورد نیاز است.
  • تعیین مالکیت: SetNamedSecurityInfoW مجدداً برای تنظیم مالکیت فایل یا دایرکتوری به SID مشخص شده استفاده می‌شود. این مرحله مالکیت فایل یا دایرکتوری را به SID مشخص شده تغییر می‌دهد. پرچم OWNER_SECURITY_INFORMATION برای مشخص کردن اینکه مالکیت در حال تنظیم است، استفاده می‌شود.
  • دریافت مجدد LUID: LookupPrivilegeValueW مجدداً برای بازیابی LUID برای SeTakeOwnershipPrivilege استفاده می‌شود، که برای غیرفعال کردن امتیاز در مرحله بعدی مورد نیاز است
  • غیرفعال کردن امتیاز: AdjustTokenPrivileges برای غیرفعال کردن امتیاز SeTakeOwnershipPrivilege در توکن دسترسی فرآیند فعلی استفاده می‌شود و توکن را به حالت اولیه خود بازمی‌گرداند. 12-
  • تنظیم مجدد DACL: SetNamedSecurityInfoW مجدداً برای اعمال مجدد DACL استفاده می‌شود تا اطمینان حاصل شود که مجوزها به درستی تنظیم شده‌اند.
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware12

عملکرد خاتمه فرآیند با استفاده از مدیر راه اندازی مجدد (Restart Manager)

این تابع هر فرآیندی که یک هندل باز به فایلی که قرار است رمزگذاری شود دارد را خاتمه می‌دهد. این تابع از API مدیر راه اندازی مجدد (Restart Manager) برای شناسایی این فرآیندها و سپس خاتمه دادن آن‌ها استفاده می‌کند، در حالی که از خاتمه دادن “Windows Explorer”، “فرآیندهای حیاتی سیستم” و فرآیندهایی که کاربر فعلی مجوز خاموش کردن آن‌ها را ندارد، اجتناب می‌کند.

RmStartSession یک جلسه جدید مدیر راه اندازی مجدد را آغاز می‌کند.

RmRegisterResources فایل مشخص شده را به عنوان یک منبع برای مدیریت در این جلسه ثبت می‌کند.

RmGetList لیستی از فرآیندهایی که در حال حاضر از فایل مشخص شده استفاده می‌کنند را بازیابی می‌کند.

سپس تابع از طریق این لیست فرآیندها تکرار می‌شود. اطمینان حاصل می‌کند که از خاتمه دادن Windows Explorer (RmExplorer) و فرآیندهای حیاتی سیستم (RmCritical) اجتناب می‌کند. برای هر فرآیند، بررسی می‌کند که آیا آن فرآیند فرآیند فعلی نیست و با دسترسی PROCESS_TERMINATE آن را باز می‌کند.

سپس TerminateProcess برای خاتمه دادن فرآیند فراخوانی می‌شود و WaitForSingleObject برای تکمیل خاتمه منتظر می‌ماند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware13

علاوه بر این، تابع کلید عمومی ECC را رمزگشایی کرده و آن را به تابع generate_aes_key منتقل می‌کند. از منحنی ECC curve25519 برای ایجاد یک کلید مخفی مشترک استفاده می‌کند که سپس با استفاده از SHA512 هش می‌شود. این مقدار هش شده به عنوان کلید AES استفاده می‌شود و برای تولید کلیدهای دور به AESKeyExpansion منتقل می‌شود.

مارکر شامل داده‌های زیر با مجموع 116 بایت است که در انتهای فایل رمزگذاری شده الحاق می‌شود:

  • کلید عمومی ECC (32 بایت)
  • SHA512(کلید عمومی ECC) (64 بایت)
  • “LYNX”
  • 00 00 00 00 (هدف ناشناخته)
  • 40 42 0F 00 (نمایانگر 1,000,000 – 1MB – اندازه بلوک رمزنگاری)
  • 05 00 00 00 (احتمالاً مرحله بلوک رمزنگاری – بعداً توضیح داده خواهد شد)
  • 01 00 00 00 (تعداد بلوک‌های رد شده – یک بلوک 5MB است)

و مقدار switch_value را برابر با 2 تنظیم می‌کند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware14
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware15

تنظیمات I/O غیرهمزمان و فراخوانی تابع رمزنگاری

این بخش از کد مربوط به راه‌اندازی عملیات خواندن غیرهمزمان فایل و فراخوانی تابع رمزنگاری است.

  • ایجاد ساختارهای لازم: ابتدا تابع، ساختارهای داده‌ای مورد نیاز برای عملیات خواندن و رمزنگاری فایل را ایجاد می‌کند.
  • شروع خواندن غیرهمزمان: سپس، عملیات خواندن غیرهمزمان فایل را آغاز می‌کند. در این روش، برنامه به جای اینکه منتظر بماند تا کل فایل خوانده شود، به سیستم‌عامل اعلام می‌کند که عملیات خواندن را به صورت پس‌زمینه انجام دهد و در صورت اتمام خواندن یک بخش از فایل، به برنامه اطلاع دهد.
  • ارتباط با پورت تکمیل I/O: تابع از تابع CreateIoCompletionPort برای مرتبط کردن هندل فایل با پورت تکمیل I/O استفاده می‌کند. پورت تکمیل I/O یک مکانیزم در سیستم‌عامل ویندوز است که به برنامه‌ها اجازه می‌دهد تا به طور مؤثر عملیات ورودی/خروجی (مانند خواندن فایل) را به صورت غیرهمزمان مدیریت کنند.
  • ساختار OVERLAPPED: برای مدیریت عملیات‌های غیرهمزمان، تابع از ساختار OVERLAPPED استفاده می‌کند. این ساختار حاوی اطلاعاتی در مورد عملیات در حال انجام، از جمله اشاره به بافر داده و رویدادی است که در صورت تکمیل عملیات، سیگنال می‌دهد.
  • دریافت بسته‌های تکمیل: تابع رمزنگاری با استفاده از GetQueuedCompletionStatus منتظر دریافت بسته‌های تکمیل از پورت تکمیل I/O می‌ماند. این بسته‌ها نشان می‌دهند که یک عملیات ورودی/خروجی (مانند خواندن بخشی از فایل) به اتمام رسیده است.
  • پردازش بسته‌های تکمیل: هنگامی که تابع رمزنگاری یک بسته تکمیل را دریافت می‌کند، بر اساس مقدار switch_value که در ساختار OVERLAPPED توسط تابع prepare_encryption تنظیم شده است، عملیات را پردازش می‌کند. مقدار switch_value مشخص می‌کند که چگونه داده‌های خوانده شده باید مدیریت و رمزگذاری شوند.
  • شروع رمزنگاری: پس از دریافت بسته تکمیل و تعیین نحوه پردازش داده‌ها، تابع رمزنگاری به مرحله رمزنگاری بخش خوانده شده از فایل می‌رود.
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware16

تابع رمزنگاری

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

انتظار برای بسته‌های تکمیل I/O:

این تابع به طور مداوم منتظر دریافت بسته‌های تکمیل I/O از طریق تابع GetQueuedCompletionStatus می‌ماند. هنگامی که یک بسته دریافت می‌شود، عملیات را بر اساس مقدار switch_value پردازش می‌کند.

بلوک سوئیچ دارای 4 حالت است:

  • case 0
  • case 1
  • case 2
  • case 3

همانطور که قبلاً ذکر شد، مقدار switch_value روی 2 تنظیم شده است، بنابراین شروع به توضیح مورد case 2 می‌کنیم.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware17

case 2:

  • بررسی شمارنده خوانده شده: تابع بررسی می‌کند که آیا مقدار read_counter برابر با 0 است یا خیر.
  • شمارنده خوانده شده: read_counter برای شمارش تعداد بلوک‌های خوانده شده/رمزگذاری شده استفاده می‌شود.
  • دو حالت وجود دارد:
    • 1 – read_counter = 0: این نشان می‌دهد که این اولین بلوک برای خواندن/رمزگذاری است. در این حالت، next_enc_block_offset ارزیابی نمی‌شود.
    • 2 – read_counter != 0: این نشان می‌دهد که این اولین بلوک برای خواندن/رمزگذاری نیست. اگر این اولین بلوک برای رمزگذاری نباشد، next_enc_block_offset ارزیابی می‌شود. next_enc_block_offset برای نشان دادن محل بلوک بعدی که باید رمزگذاری شود استفاده می‌شود.
  • مثال:
    • باج‌افزار ابتدا 1MB از ابتدای فایل را رمزگذاری می‌کند و سپس 1MB را از آفست 6MB شروع می‌کند، بنابراین هر بار 5MB را می‌پرد.
  • نوشتن مارکر: همچنین مارکر در انتهای فایل نوشته می‌شود.
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware18

case 0:

  • بررسی next_enc_block_offset: تابع بررسی می‌کند که آیا مقدار next_enc_block_offset بزرگتر از اندازه فایل است یا خیر. اگر این شرط برقرار باشد، به این معنی است که دیگر داده‌ای برای رمزگذاری وجود ندارد و read_counter نیز با صفر برابر نیست، به این معنی که این اولین بلوک رمزگذاری نیست.
  • تنظیم switch_code به 3: اگر شرایط فوق برقرار باشد، تابع مقدار switch_code را به 3 تنظیم می‌کند.(case 3 – پایان رمزگذاری – داده دیگری برای رمزگذاری وجود ندارد. این نشان می‌دهد که تمام داده‌های فایل با موفقیت رمزگذاری شده‌اند و عملیات رمزگذاری به پایان رسیده است.)
  • ادامه رمزگذاری: اگر شرط فوق برقرار نباشد، به این معنی است که هنوز داده‌هایی برای رمزگذاری وجود دارند.
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware19

case 1:

شرط مورد نظر تعیین می‌کند که چند بایت خوانده/رمزگذاری شوند.

بیایید با یک مثال آن را بررسی کنیم.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware20

فرض کنیم 6.5 مگابایت داده برای رمزگذاری وجود دارد، به یاد داشته باشید که یک مارکر در انتهای فایل نوشته شده است (مورد 2) بنابراین 6.5 مگابایت + 0x74 بایت خواهد بود. اولین 1 مگابایت به طور معمول رمزگذاری می‌شود و سپس از 6 مگابایت شروع به رمزگذاری می‌کند که فقط 0.5 مگابایت است اما بدافزار هر بار 1 مگابایت را می‌خواند، بنابراین 0.5 مگابایت + 0x74 بایت را می‌خواند (که ما نمی‌خواهیم رمزگذاری شود).

شرط در تلاش است تا نحوه دریافت اندازه صحیح داده‌ها برای نوشتن را تعیین کند.

این کار با یک محاسبه ساده انجام می‌شود:

lpNumberOfBytesRead + next_enc_block_offset – filesize

که برای مثال داده شده:

  • lpNumberOfBytesRead = 0.5 مگابایت + 0x74 بایت
  • next_enc_block_offset = 6 مگابایت
  • filesize = 6.5 مگابایت

بنابراین نتیجه 0x74 است، اگر نتیجه برابر با 0x74 باشد، اساساً اندازه مارکر را از lpNumberOfBytesRead کم می‌کند و آن را به lpNumberOfBytesWritten اختصاص می‌دهد، lpNumberOfBytesWritten = 0.5 مگابایت که همان چیزی است که ما می‌خواهیم.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware21

پس از انجام محاسبات برای تعیین اندازه صحیح داده‌ها:

  • read_counter : تابع مقدار read_counter را افزایش می‌دهد. این شمارنده تعداد بلوک‌های داده‌ای که برای رمزگذاری خوانده شده‌اند را ردیابی می‌کند.( با توجه به موقعیت فعلی در فایل و اندازه کل فایل، مشخص می‌کرد که چه مقدار داده باید در این مرحله رمزگذاری شود.)
  • آماده سازی کلیدهای دور AES-CTR: از الگوریتم AES-CTR برای رمزگذاری داده‌ها استفاده می‌کرد. کلیدهای دور AES-CTR بر اساس یک کلید اصلی و یک شمارنده تولید می‌شوند و برای رمزگذاری هر بلوک داده به کار می‌روند.
  • case 3:
    • تغییر نام فایل رمزگذاری شده: فایل رمزگذاری شده به نام نهایی خود تغییر نام داده می‌شود. باج‌افزار ممکن است پسوند فایل را تغییر دهد یا نام جدیدی به آن اختصاص دهد.
    • بستن هندل‌های باز: تمام هندل‌های باز شده برای فایل، از جمله هندل خواندن و هندل نوشتن، بسته می‌شوند. این کار برای آزاد کردن منابع سیستم و اطمینان از اینکه عملیات فایل به درستی تکمیل شده است، ضروری است.

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

هندل چیست؟ هندل یک شناسه عددی است که به یک منبع سیستم (مانند یک فایل، یک دستگاه یا یک پنجره) اشاره می‌کند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware22

رمزنگاری AES-CTR

  • تولید جریان کلید: جریان کلید رمزنگاری (keystream) با استفاده از الگوریتم AES-CTR تولید می‌شود. در این روش، یک کلید اصلی و یک شمارنده (nonce) استفاده می‌شود. برای هر بلوک داده، یک کلید دور منحصر به فرد با استفاده از کلید اصلی و شمارنده تولید می‌شود.
  • XOR با داده‌های متن ساده: جریان کلید تولید شده با استفاده از عمل XOR (Exclusive OR) با داده‌های متن ساده ترکیب می‌شود. این عمل باعث رمزگذاری داده‌ها و تبدیل آن‌ها به متن رمز شده می‌شود.
  • افزایش شمارنده: پس از رمزگذاری هر بلوک، شمارنده (nonce) افزایش می‌یابد. این تضمین می‌کند که برای هر بلوک داده، یک جریان کلید منحصر به فرد تولید شود و از تکرار الگوهای رمزنگاری جلوگیری شود.
  • نوشتن داده‌های رمزگذاری شده: در نهایت، داده‌های رمزگذاری شده به فایل اصلی نوشته می‌شوند.

در این مرحله، با استفاده از کلیدهای دور تولید شده توسط AES-CTR و عمل XOR، داده‌های خوانده شده از فایل رمزگذاری می‌شوند. سپس، داده‌های رمزگذاری شده به جای داده‌های اصلی در فایل نوشته می‌شوند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware23

جریان کاری تابع

  • تولید جریان کلید: جریان کلید رمزنگاری (keystream) با استفاده از الگوریتم AES-CTR تولید می‌شود. در این روش، یک کلید اصلی و یک شمارنده (nonce) استفاده می‌شود. برای هر بلوک داده، یک کلید دور منحصر به فرد با استفاده از کلید اصلی و شمارنده تولید می‌شود.
  • XOR با داده‌های متن ساده: جریان کلید تولید شده با استفاده از عمل XOR (Exclusive OR) با داده‌های متن ساده ترکیب می‌شود. این عمل باعث رمزگذاری داده‌ها و تبدیل آن‌ها به متن رمز شده می‌شود.
  • افزایش شمارنده: پس از رمزگذاری هر بلوک، شمارنده (nonce) افزایش می‌یابد. این تضمین می‌کند که برای هر بلوک داده، یک جریان کلید منحصر به فرد تولید شود و از تکرار الگوهای رمزنگاری جلوگیری شود.
  • نوشتن داده‌های رمزگذاری شده: در نهایت، داده‌های رمزگذاری شده به فایل اصلی نوشته می‌شوند.

در این مرحله، با استفاده از کلیدهای دور تولید شده توسط AES-CTR و عمل XOR، داده‌های خوانده شده از فایل رمزگذاری می‌شوند. سپس، داده‌های رمزگذاری شده به جای داده‌های اصلی در فایل نوشته می‌شوند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware24

عملکرد حذف کپی‌های سایه

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

تابع enc_del_shadow_copies تلاش می‌کند تا کپی‌های سایه را در تمام درایوهای موجود حذف کند و سپس اقدام به شمارش دایرکتوری‌ها و رمزگذاری آن‌ها کند. اگر پرچم encrypt_network_flag تنظیم شده باشد، اشتراک‌های شبکه را نیز رمزگذاری می‌کند.

این تابع بر روی هر حرف درایو ممکن (‘A’ تا ‘Z’) تکرار می‌شود و از GetDriveTypeW برای تعیین اینکه آیا درایو قابل جابجایی، ثابت یا از راه دور است استفاده می‌کند. درایوهایی که از این نوع نیستند، مانند درایوهای CD-ROM یا درایوهای غیر موجود، نادیده گرفته می‌شوند.

CreateFileW با مسیرهایی به فرمت \?\A:\ برای ایجاد هندل‌های فایل برای هر درایو فراخوانی می‌شود.

پیشوند \?\ به API ویندوز دستور می‌دهد تا مسیر را به عنوان یک رشته تحت اللفظی (literal string) رفتار کند و قوانین تجزیه مسیر عادی را دور بزند و به برنامه اجازه می‌دهد تا با مسیرهایی طولانی‌تر از MAX_PATH و شامل کاراکترهای ویژه کار کند.

رشته A: حرف درایو را مشخص می‌کند و :\ بعد از حرف درایو نشان‌دهنده دایرکتوری ریشه آن درایو است.

این تابع تلاش می‌کند تا کپی‌های سایه را با استفاده از DeviceIoControl با کد کنترل 0x53C028 (IOCTL_VOLSNAP_SET_MAX_DIFF_AREA_SIZE) حذف کند و حداکثر اندازه را به 1 تنظیم کند.

این تابع هر درایو موجود برای رمزگذاری را شمارش می‌کند.

این تابع با استفاده از توابع سیستم‌عامل ویندوز، تلاش می‌کند تا کپی‌های سایه را در تمام درایوهای موجود حذف کند و بدین ترتیب، امکان بازیابی اطلاعات توسط قربانیان را محدود کند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware25
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware26

عملکرد رمزگذاری پوشه‌های اشتراکی

این تابع به شمارش پوشه‌های اشتراکی موجود در شبکه پرداخته و برای هر پوشه اشتراکی یافت شده، پردازش‌های لازم را انجام می‌دهد. همچنین، منابع تو در تو را به صورت بازگشتی مدیریت می‌کند.

در ابتدا، تابع WNetOpenEnumW برای شروع شمارش منابع شبکه فراخوانی می‌شود. در این فراخوانی، از پارامتر RESOURCE_GLOBALNET برای شمارش تمام منابع شبکه، RESOURCETYPE_ANY برای شامل کردن تمامی انواع منابع، و 0x13u برای تعیین گزینه‌های اضافی استفاده می‌شود.

سپس، تابع WNetEnumResourceW در یک حلقه برای شمارش منابع شبکه فراخوانی می‌شود. این تابع بافر currentResource را با اطلاعات مربوط به منابع پر کرده و مقدار cCount را به‌روزرسانی می‌کند.

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

اگر منبع حاوی دامنه‌ای باشد که به عنوان یک ظرف (RESOURCEUSAGE_CONTAINER) شناخته شود، تابع enc_shared_folders به صورت بازگشتی برای شمارش محتوای آن دامنه فراخوانی می‌شود. در اینجا، RESOURCEUSAGE_CONTAINER به معنای این است که منبع به عنوان یک ظرف عمل می‌کند و می‌توان آن را به‌طور مجدد برای شناسایی منابع دیگر درون آن، مانند زیرپوشه‌ها یا دستگاه‌ها، شمارش کرد.

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

این تابع به باج‌افزار امکان می‌دهد تا به طور خودکار پوشه‌های اشتراکی موجود در شبکه را شناسایی کرده و اقدامات مورد نظر (مثل رمزگذاری) را بر روی آن‌ها انجام دهد. این قابلیت به باج‌افزار اجازه می‌دهد دامنه تأثیر خود را گسترش داده و به داده‌های بیشتری در شبکه دسترسی پیدا کند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware27

تابع Mount Volume

Mount Volume یا سوار کردن حجم: در سیستم‌عامل ویندوز، مفهوم سوار کردن حجم به معنی اتصال یک درایو یا منبع داده به یک حرف درایو در سیستم است. به عنوان مثال، سوار کردن یک درایو شبکه به حرف درایو “Z:” به شما امکان می‌دهد که به آن درایو از طریق این حرف دسترسی داشته باشید.

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

با استفاده از FindFirstVolumeW و FindNextVolumeW، تابع از طریق تمام حجم‌ها تکرار می‌شود.

سپس هر حجم را به یک حرف درایو موجود از آرایه lpszVolumeMountPoint با استفاده از SetVolumeMountPointW سوار می‌کند.

این فرآیند تضمین می‌کند که هر درایو سوار شده است و امکان رمزگذاری آن‌ها فراهم می‌شود.

FindFirstVolumeW و FindNextVolumeW: این توابع API ویندوز برای شمارش و بازیابی اطلاعات مربوط به حجم‌های موجود در سیستم استفاده می‌شوند.

DRIVE_NO_ROOT_DIR: این مقدار نشان می‌دهد که درایو مورد نظر وجود دارد اما دایرکتوری ریشه ندارد. این به معنی آن است که این حرف درایو در حال حاضر در سیستم استفاده نمی‌شود و می‌تواند برای سوار کردن حجم استفاده شود.

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

SetVolumeMountPointW: این تابع برای سوار کردن یک حجم به یک حرف درایو استفاده می‌شود.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware28

تابع تغییر پس‌زمینه

این تابع یک فایل تصویر موقت به نام “background-image.jpg” در پوشه موقت (temp) ایجاد می‌کند. این فایل حاوی یادداشت باج‌خواهی به صورت تصویر است و آن را به عنوان تصویر پس‌زمینه دسکتاپ تنظیم می‌کند.

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware29
ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware30

تابع Print Ransom Note

این تابع هر چاپگری که به سیستم متصل است را شمارش می‌کند و یادداشت باج‌خواهی را برای چاپ ارسال می‌کند.

EnumPrintersW برای بازیابی لیست چاپگرها فراخوانی می‌شود.

این تابع از طریق هر چاپگر تکرار می‌شود و “Microsoft Print to PDF” و “Microsoft XPS Document Writer” را نادیده می‌گیرد.

برای هر چاپگر باقی‌مانده، از StartDocPrinterW برای شروع سند و StartPagePrinter برای شروع یک صفحه استفاده می‌کند.

در نهایت، از WritePrinter برای ارسال یادداشت باج‌خواهی به چاپگر استفاده می‌کند.

 

ترجمه-و-تحلیل-عمیق-باج‌افزار-Lynx-Ransomware31

شاخص‌های خطر (Indicators Of Compromise)

LYNX hashes:

  • eaa0e773eb593b0046452f420b6db8a47178c09e6db0fa68f6a2d42c3f48e3bc
  • 571f5de9dd0d509ed7e5242b9b7473c2b2cbb36ba64d38b32122a0a337d6cf8b
  • b378b7ef0f906358eec595777a50f9bb5cc7bb6635e0f031d65b818a26bdc4ee
  • ecbfea3e7869166dd418f15387bc33ce46f2c72168f571071916b5054d7f6e49
  • 85699c7180ad77f2ede0b15862bb7b51ad9df0478ed394866ac7fa9362bf5683

INC hashes:

  • 64b249eb3ab5993e7bcf5c0130e5f31cbd79dabdcad97268042780726e68533f
  • 508a644d552f237615d1504aa1628566fe0e752a5bc0c882fa72b3155c322cef
  • 7f104a3dfda3a7fbdd9b910d00b0169328c5d2facc10dc17b4378612ffa82d51
  • 1754c9973bac8260412e5ec34bf5156f5bb157aa797f95ff4fc905439b74357a
  • d147b202e98ce73802d7501366a036ea8993c4c06cdfc6921899efdd22d159c6
  • 05e4f234a0f177949f375a56b1a875c9ca3d2bee97a2cb73fc2708914416c5a9
  • fef674fce37d5de43a4d36e86b2c0851d738f110a0d48bae4b2dab4c6a2c373e
  • 36e3c83e50a19ad1048dab7814f3922631990578aab0790401bc67dbcc90a72e
  • 869d6ae8c0568e40086fd817766a503bfe130c805748e7880704985890aca947
  • ee1d8ac9fef147f0751000c38ca5d72feceeaae803049a2cd49dcce15223b720
  • f96ecd567d9a05a6adb33f07880eebf1d6a8709512302e363377065ca8f98f56
  • 3156ee399296d55e56788b487701eb07fd5c49db04f80f5ab3dc5c4e3c071be0
  • fcefe50ed02c8d315272a94f860451bfd3d86fa6ffac215e69dfa26a7a5deced
  • 11cfd8e84704194ff9c56780858e9bbb9e82ff1b958149d74c43969d06ea10bd
  • 02472036db9ec498ae565b344f099263f3218ecb785282150e8565d5cac92461
  • e17c601551dfded76ab99a233957c5c4acf0229b46cd7fc2175ead7fe1e3d261
  • 9ac550187c7c27a52c80e1c61def1d3d5e6dbae0e4eaeacf1a493908ffd3ec7d
  • ca9d2440850b730ba03b3a4f410760961d15eb87e55ec502908d2546cd6f598c
  • 1a7c754ae1933338c740c807ec3dcf5e18e438356990761fdc2e75a2685ebf4a
  • a5925db043e3142e31f21bc18549eb7df289d7c938d56dffe3f5905af11ab97a
  • 7ccea71dcec6042d83692ea9e1348f249b970af2d73c83af3f9d67c4434b2dd0
  • 5a8883ad96a944593103f2f7f3a692ea3cde1ede71cf3de6750eb7a044a61486
  • 1a7c754ae1933338c740c807ec3dcf5e18e438356990761fdc2e75a2685ebf4a
  • 463075274e328bd47d8092f4901e67f7fff6c5d972b5ffcf821d3c988797e8e3
README.txt Ransomware Note Name
.lynx Extension
Curve25519 ECC
AES_CTR Encryption
background-image.jpg Background image

تشخیص
Yara

				
					rule MAL_RANSOM_INC_Aug24 {
   meta:
      author = "X__Junior"
      description = "Detects INC ransomware and it's variants like Lynx"
      reference1 = "https://x.com/rivitna2/status/1817681737251471471"
      reference2 = "https://twitter.com/rivitna2/status/1701739812733014313"
      date = "2024-08-08"
      hash1 = "eaa0e773eb593b0046452f420b6db8a47178c09e6db0fa68f6a2d42c3f48e3bc" // LYNX
      hash2 = "1754c9973bac8260412e5ec34bf5156f5bb157aa797f95ff4fc905439b74357a" // INC
      score = 80
   strings:
      $s1 = "tarting full encryption in" wide
      $s2 = "oad hidden drives" wide
      $s3 = "ending note to printers" ascii
      $s4 = "uccessfully delete shadow copies from %c:/" wide

      $op1 = { 33 C9 03 C6 83 C0 02 0F 92 C1 F7 D9 0B C8 51 E8 }
      $op2 = { 8B 44 24 [1-4] 6A 00 50 FF 35 ?? ?? ?? ?? 50 FF 15}
      $op3 = { 57 50 8D 45 ?? C7 45 ?? 00 00 00 00 50 6A 00 6A 00 6A 02 6A 00 6A 02 C7 45 ?? 00 00 00 00 FF D6 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 04 8B F8 8D 45 ?? 50 8D 45 ?? 50 FF 75 ?? 57 6A 02 6A 00 6A 02 FF D6 }
      $op4 = { 6A FF 8D 4? ?? 5? 8D 4? ?? 5? 8D 4? ?? 5? 5? FF 15 ?? ?? ?? ?? 85 C0 }
      $op5 = { 56 6A 00 68 01 00 10 00 FF 15 ?? ?? ?? ?? 8B F0 83 FE FF 74 ?? 6A 00 56 FF 15 ?? ?? ?? ?? 68 88 13 00 00 56 FF 15 ?? ?? ?? ?? 56 FF 15}
   condition:
      uint16(0) == 0x5A4D and
      (
         3 of ($s*)
         or 3 of ($op*)
         or (2 of ($s*) and 2 of ($op*) )
      )
}
				
			

پیوست الف - حالت‌های مختلف رمزنگاری

راهکارهای Nextron برای افزایش امنیت سایبری

Nextron در مواقعی وارد عمل می‌شود که اقدامات امنیتی سنتی ممکن است نتوانند تهدیدات را شناسایی کنند. ابزارهای forensics  دیجیتال ما تجزیه و تحلیل‌های جامع و دقیقی را بر روی سیستم‌هایی که نشانه‌های رفتار غیرعادی از خود نشان می‌دهند، انجام می‌دهند. این ابزارها به طور مؤثری نرم‌افزارهای خطرناک را شناسایی کرده و تهدیداتی را که ممکن است با روش‌های استاندارد نادیده گرفته شوند، آشکار می‌سازند.

مجموعه امضاهای ما برای تشخیص طیف وسیعی از نگرانی‌های امنیتی طراحی شده است. این شامل ابزارهای هکرها، بقایای آن‌ها، فعالیت‌های غیرعادی کاربران، تنظیمات پنهان و نرم‌افزارهای قانونی است که ممکن است برای حملات سوء استفاده شوند. رویکرد ما به ویژه در تشخیص تاکتیک‌های استفاده شده در حملات زنجیره تأمین و شناسایی ابزارهایی که از سیستم‌های آنتی‌ویروس و EDR (Endpoint Detection and Response) فرار می‌کنند، مفید است.

وبلاگ مستر لایسنس

در صورتی که این مقاله ( ترجمه و تحلیل عمیق باج‌افزار Lynx Ransomware ) برای شما مفید و آموزنده بود، پیشنهاد می‌شود برای اطلاع از سایر مقالات مستر لایسنس به صفحه وبلاگ مستر لایسنس مراجعه نمایید.

small_c_popup.png

استعلام قیمت

لطفا درخواست لایسنس مورد نیاز خود را با تکمیل فرم انجام دهید.

small_c_popup.png

مشاوره تخصصی

برای شروع امروز با یک متخصص صحبت کنید!