مبهم‌سازی: بهترین دوست بدافزارها (بخش ۱)

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

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

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

مبهم‌سازی (در زمینه نرم‌افزار) یک تکنیک است که باعث می‌شود باینری و داده‌های متنی قابل خواندن نباشند یا سخت درک شوند. توسعه‌دهندگان نرم‌افزار گاهی اوقات از تکنیک مبهم‌سازی استفاده می‌کنند چرا که آن‌ها نمی‌خواهند برنامه‌های آن‌ها مهندسی معکوس شده یا به سرقت برود.
پیاده‌سازی مبهم‌سازی می‌تواند به سادگی تغییر دادن چند بیت و یا به پیچیدگی استفاده از رمزنگاری‌های استاندارد (همچون AES، DES و غیره) باشد. در اصطلاح بدافزارها مخفی کردن تعداد کافی و مشخصی از کلمات مفید خواهد بود چرا که این رشته‌ها دیدی از رفتار بدافزار را به تحلیلگر ارائه می‌دهد. مثالی از این رشته‌ها می‌تواند آدرس‌های URL مخرب یا کلیدهای رجیستری باشد. گاهی بدافزارها پا را فراتر گذاشته و مبهم‌سازی را بر روی کل پرونده با برنامه‌های خاصی که packer نامیده می‌شوند، اعمال می‌کنند.
بیایید مثال‌های عملی از مبهم‌سازی که در بسیاری از بدافزارهای امروزی مورد استفاده قرار می‌گیرد را بررسی کنیم.

سناریوی اول: عملیات XOR
یکی از روش‌های معمول مبهم‌سازی استفاده از عملگر XOR ست. رایج بودن این روش به دلیل سادگی در پیاده‌سازی و مخفی کردن پرونده‌ی بدافزار از چشم‌های غیرحرفه‌ای است. داده‌های پررنگ‌شده در تصویر زیر را بررسی کنید.
۱_۶۶
این داده‌های مبهم‌سازی شده در حالت فعلی قابل خواندن نیستند. اما زمانی که عملگر XOR با مقدار ۰x۵۵ اعمال می‌شود، کلا چیز دیگری مشاهده می‌شود.
۲_۷۲
اعمال عملگر XOR با مقدار ۰x۵۵، آدرس URL مخرب را نشان می‌دهد. حال URL مخرب را در دست داریم. به نظر می‌رسد این بدافزار به آدرس http://tator۱۱۵۷.hostgator.com متصل می‌شود تا پرونده‌ی bot.exe را بازیابی کند.

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

از آنجایی که نویسندگان بدافزار می‌دانند که چنین ابزاری وجود دارد، از تکنیک‌های مخصوص خود برای جلوگیری از تشخیص استفاده می‌کنند. یکی از کارهایی که ممکن است انجام دهند استفاده از چرخه‌ی دوتایی است و یا اجرای XOR بر روی داده با استفاده از یک مقدار مشخص و در دور دوم اجرا با مقدار دیگر است. یک تکنیک ویژه (هرچند مؤثر) که به‌طور معمول استفاده می‌شود، افزایش مقدار XOR داخل یک حلقه است. با توجه به تکنیک آخر می‌توان بر روی حرف n با ۰x۵۵ و در ادامه حرف t با ۰x۵۶ عملیات XOR انجام داد و این روند را تا آخر پیش گرفت. این تکنیک نیز می‌تواند توسط برنامه‌های XOR معمول، شکسته شود.

در ادامه و در پستی دیگر، سایر مثال‌های عملی از مبهم‌سازی ارائه خواهد شد.

منبع: asis

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

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