تکنیک حفر فرآیند

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

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

در ابتدا، فرآیند هدف توسط CreateProcess با تنظیم گزینه CREATE_SUSPENDED در وضعیت تعلیق ایجاد می‌شود. پس از طراحی و ایجاد فرآیند، می‌توان فضای حافظه آن را با استفاده از یک دستگیره (ارجاع) تغییر داد. این دستگیره به‌عنوان یک مرجع در تمام فراخوان‌های عملیاتی مورد استفاده قرار می‌گیرد. همچنین باید توجه داشت که در این مرحله، فرآیند خرابکارانه طراحی ‌شده است، اما به دلیل اینکه در وضعیت تعلیق قرار دارد، هنوز اجرایی و عملیاتی نشده است.

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

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

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

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

شناسایی حفر فرآیند با استفاده از ابزار معروفِ Volatility: استفاده از افزونه‌ی malfind ابزار Volatility

همان‌گونه که قبلاً مطرح شد، اگر طراح بدافزار بخش محافظت RWX را در فرآیند بالا برقرار نکند، می‌توان این فرآیند خرابکارانه را با استفاده از malfind شناسایی کرد. malfind به بررسی بخش‌های حافظه‌ای می‌پردازد که دارای امتیاز PAGE_EXECUTE_READWRITE بوده و روی دیسک مشخص نباشند. این بدافزاریاب همچنین از کد اسمبلی در آن بخش از حافظه نسخه‌برداری می‌کند و با بررسی نهایی، مشخص می‌کند که آیا در کد نسخه‌برداری‌شده، کد قابل اجرایی برای تحلیل‌گران وجود دارد یا خیر.

کارشناسان امنیتی ابتدا malfind را روی یک تصویر نمونه استفاده کردند و نتیجه زیر حاصل شد:

۱_۶۰
در این شکل، چندین حفر فرآیند به‌وضوح مشاهده می‌شود. با استفاده از این نمونه می‌توان دریافت که چندین نسخه از برنامه lsass.exe در سامانه وجود داشته و فعالیت می‌کنند، درحالی‌که در شرایط عادی فقط یک نسخه باید وجود داشته باشد. برای بررسی فعالیت این چند نسخه با نسخه عادی این برنامه، افزونه pslist مورداستفاده واقع شد و نتایج زیر به دست آمد:

۱_۶۱
همان‌گونه که مشاهده می‌شود، فرآیند شماره ۶۸۰ دارای والد با شناسه‌ی ۶۲۴ می‌باشد و فرآیندهای شماره ۸۶۸ و ۱۹۲۸ دارای والد ۶۶۸ می‌باشند. همچنین با استفاده از افزونه pstree، نمای مناسبی از این ارتباط میان فرآیندها و والد آن‌ها به ما می‌دهد:

۱_۶۲
از تصویر بالا می‌توان به‌وضوح فهمید که فرآیند ۶۸۰ به دلیل داشتن منشاء معتبری با نام winlogon.exe، فرآیندی صحیح و معتبر است. همچنین عدم وجود این فرآیند در نتایج حاصل از malfind، خود دلیلی دیگر بر درستی این فرآیند است. برای بررسی بهتر این موضوع، در شکل زیر بخش‌های نسخه‌برداری‌شده از حافظه در فرآیند ۸۶۸ و ۱۹۲۸ مورد بررسی واقع ‌شده‌اند:

۱_۶۳

۱_۶۳_۲

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

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

مقایسه اندازه چندین نسخه از یک فرآیند یکسان

می‌توان به‌منظور دستیابی به امکانات بیشتر، فرآیندهای lsass موجود را ازنظر حجم بررسی کرد. برای این منظور، ابتدا باید از این فرآیندهای lsass با استفاده از افزونه تغییرپذیری procdump، نسخه‌برداری صورت گیرد. سپس بخش ls را روی پوشه‌ای که هر سه فرآیند lsass در آنجا قرار دارند، انجام می‌دهیم. پس از این اقدام، به‌وضوح مشاهده می‌شود که در اندازه فرآیند ۶۸۰ در مقایسه با فرآیندهای ۸۶۸ و ۱۹۲۸ تفاوت وجود دارد.

۱_۶۴
این ابزارها بعد از نسخه‌برداری، در درون یک دستگاه که دارای نرم‌افزار ضدویروس بود، قرار داده شدند. پس ‌از این اقدام، نرم‌افزار ضدویروس McAfee اقدام به شناسایی فرآیند ۱۹۲۸ به‌عنوان یک فرآیند مخرب کرده و برای هر اجرای این فرآیند، اطلاعات زیر را نشان داد:

۱_۶۵
بررسی فرآیند دیگر، یعنی فرآیند ۸۶۸ نیز همین نتیجه را در برداشت:

۱_۶۶

مقایسه فرآیند با درهم‌سازی فازی

برای به دست آوردن اطلاعات بیشتر در این زمینه، می‌توان با استفاده از فرآیند درهم‌سازی فازی مشخص کرد چه تعداد از این فرآیندها همخوانی دارند. با استفاده از یک تابع درهم‌سازی مانند تابع md۵، فقط می‌توان مشاهده کرد که آیا نتایج حاصل از این فرآیندها همخوانی دارند یا خیر، اما با استفاده از درهم‌سازی فازی می‌توان به‌خوبی مشخص کرد پرونده‌های حاصل از این فرآیند تا چه حد به هم شبیه‌اند. برای این منظور از افزونه تغییرپذیری ssdeep برای فرآیندهای نسخه‌برداری‌شده استفاده شد:

۱_۶۷
در بخش زیر مشاهده می‌شود که فرآیند ۶۸۰ هیچ‌گونه همخوانی با دو فرآیند دیگر ندارد:

۱_۶۸
با توجه به مطالب ارائه‌ شده در این مقاله، می‌توان با استفاده از افزونه‎های تغییرپذیری و درهم‎سازی فازی، چگونگی انجام تکنیک حفر فرآیند و روش شناسایی آن را بررسی کرد.

منبع: asis

درباره نماد امنیت وب

“نماد امنیت وب” به عنوان یکی از شرکت های پیشتاز در زمینه امنیت نرم افزار و سرویس های تحت وب، با ارائه سرویس های امنیتی برای تمامی کسب و کار ها و دارای نمایندگی شرکت Acunetix (اکوانتیکس) بعنوان محبوب ترین اسکنر امنیتی black box در دنیا، ایمنی وب سایت شما را در مقابل حمله هکر ها تضمین می کند.